Android

Android 开发基础规范

在开发 Android 项目的过程中,对项目的管理和规范化必不可少。如果我们只是单独开发某一个简单的页面或者是某一个模块,代码的管理似乎并不太重要,而且有时候还会显得非常累赘。但是当项目有多个模块,比如笔者做过的一个视频播放类软件,就涉及到网络请求,UI 跳转,视频播放,视频下载,数据统计等等一系列的模块,那么这个时候,对于代码的管理就显得非常重要了。

现在,结合笔者自身的经验,对本人写代码的经验做一个简单的总结,肯定还有许多不完善的地方,留待以后再慢慢补充。

1、整体的代码要做管理

初学开发,或者刚做开发不久的人,可能不明白,代码要做管理?很多人都以为代码管理,仅仅只是代码的规范化和格式化,其实远远不止这些。很多JAVA初学者都觉得代码有IDE编辑器帮我们管理,何必要自己管理,再或者觉得反正JAVA的虚拟机机制会帮我们管理。这种想法很错误。

1.1 文件要有注释

Android 开发规范

一、Android 编码规范

1.java 代码中不出现中文,最多注释中可以出现中文

2.局部变量命名、静态成员变量命名

只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写

3.常量命名

只能包含字母和_,字母全部大写,单词之间用_隔开

4.layout中的id命名

命名模式为:view缩写_模块名称_view的逻辑名称

view的缩写详情如下

LayoutView:lv

RelativeView:rv

TextView:tv

ImageView:iv

ImageButton:im

Button:btn

5.activity中的view变量命名

命名模式为:逻辑名称+view缩写

建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view

6.strings.xml中的id命名

quick-cocos2d-x 游戏开发 [13] —— 节点生命周期事件,帧事件等其他事件

在前面已经学过了“触摸事件”,"触摸捕获事件",“按键事件”,此外,quick还有其他几个事件,前面已经列过有这些,

 

预定义的节点事件:

  • cc.NODE_EVENT - enter, exit 等事件
  • cc.NODE_ENTER_FRAME_EVENT - 帧事件
  • cc.NODE_TOUCH_EVENT - 触摸事件
  • cc.NODE_TOUCH_CAPTURE_EVENT - 捕获触摸事件

预定义的层事件:

  • cc.ACCELERATE_EVENT - 重力感应事件
  • cc.KEYPAD_EVENT - 硬件按键事件

预定义的菜单事件:

  • cc.MENU_ITEM_CLICKED_EVENT - CCMenu 菜单项点击事件
 

这里我就简单拿两个来说下,掌握起来都很容易。先看这个cc.NODE_EVENT。

节点事件其实就是节点的几个生命周期,这在cocos2dx c++中一定有所了解。直接看代码吧,

quick-cocos2d-x 游戏开发【11】 —— 多点触摸

在前面已经谈过单点触摸的用法了,所以对于多点触摸来说,也是非常简单容易的。

 

多点触摸其拥有added,removed这么两个独有事件。

added  屏幕中增加了一个触点

removed  屏幕中移除了一个触点

 

另外,还有这么一个event.points 屏幕中全部触点信息,

每一个触点依然可以获取到其,

point.x, point.y                         触摸点的当前位置
point.prevX, point.prevY         触摸点之前的位置
point.id                                     触摸点 id,用于确定触摸点的变化

 

结合单点触摸的几个事件,所以多点触摸事件发生时,会有began,added,moved,removed,ended,canclled这些响应事件。

Android 中使用百度定位 sdk 实时的计算移动距离

前段时间因为项目需求,通过百度定位adk写了一个实时更新距离的程序(类似大家坐的士时,车上的里程表),遇到很多技术点,总结了一下发表出来和大家相互学习。直接要求定位具体的位置应该是不难的,只需要引入百度定位adk,并配置相关参数就可以完成,显示百度地图也类似,但是如果需要不断的实时显示移动距离,GPS定位从一个点,到第二个点,从第二个点,到第三个点,从第三个点......,移动距离是多少呢?不得不说,要实现这种需求的确存在一定的难度。

目标:使用百度定位sdk开发实时移动距离计算功能,根据经纬度的定位,计算行驶公里数并实时刷新界面显示。
大家都知道定位有三种方式:GPS 、Wifi 、 基站 .
误差方面的话,使用GPS误差在10左右,Wifi则在20 - 300左右 ,而使用基站则误差在100 - 300左右的样子,因为在室内GPS是定位不到的,必须在室外,
而我们项目的需求正好需要使用GPS定位,所以我们这里设置GPS优先。车,不可能在室内跑吧。


使用技术点:
1.百度定位sdk
2.sqlite数据库(用于保存经纬度和实时更新的距离)
3.通过经纬度计算距离的算法方式

Android 动态布局,并动态为 TextView 控件设置 drawableLeft、drawableRight 等属性添加图标

注:(图中每一个条目和图标都是由代码动态生成)

 

代码动态布局,并需要为每一个条目设置图标,此时用到了 android:drawableLeft="@drawable/icon" 

 

父xml文件:

Android 开发之如何使用 FastJson

在Android开发中,我们Android客户端如果要和服务器端交互,一般都会采用json数据格式进行交互,FastJson是阿里巴巴工程师开发的一个Json处理工具包,包括“序列化”和“反序列化”两部分,Fastjson是一个Java语言编写的高性能功能完善的JSON库。

一个JSON库涉及的最基本功能就是序列化和反序列化。

Fastjson支持java bean的直接序列化。你可以使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库。

    FastJson速度最快,fastjson具有极快的性能,超越任其他的Java Json parser。

    FastJson功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖。

    Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

Guidelines on How to Run a Basic Analysis for Android* Graphical Applications Using Intel® GPA tools

Introduction

In this article I’ll provide some simple steps on how to perform a basic analysis for Android* graphics applications using Intel® GPA tools. Most performance-sensitive graphic applications on Android are games, so I will assume that we’re optimizing a game.

  • Android*
  • Android*
  • GPA
  • Android
  • Iscriversi a Android