标签:
Android编码注意事项
目录
一、代码整洁度……………………………………………………………………………2
二、变量常量………………………………………………………………………………2
三、配置文本存储…………………………………………………………………………2
四、数据库编码……………………………………………………………………………2
五、异常处理……………………………………………………………………………....3
六、代码细粒度设计………………………………………………………………………4
七、其他 ...…………………………………………………………………………………5
一、 代码整洁度
二、 变量常量
如果是全局变量,最好别这么写;如果是局部变量,代码比较少,到还可以这么写。
另外,常量名大家会用大写带下划线的命名方式如:
1 public static final String PREFERENCES_USER_CODE = "UserCode";
final修饰的对象或者变量,在内存中是不可修改,如果是对象则不可继承该对象。
static修饰的对象或者变量,在内存有且只有1个备份,可以修改。但是会被回收。
在这个类第一次被调用或实例化的时候就会被执行。
静态代码块只会执行一次,一般会用来初始化一些值,并且在所有对象中全局共享。
三、 配置文本存储
配置文本一般可以通过SharedPreferences或数据库
四、 数据库编码
最需要注意的就是游标的关闭和数据库访问对象的关闭。
1 public boolean delAll(String tabName) { 2 try { 3 dbHelper.del(tabName); 4 } catch (Exception e) { 5 return false; 6 } finally { 7 if (dbHelper != null) 8 dbHelper.close(); 9 } 10 return true; 11 }
一般都会用finally来关闭打开的数据库访问对象和游标对象,另外把不再使用的对象置为空,该对象很快会被虚拟机回收。
五、 异常处理(重点)
1. 空指针
在使用一个对象的时候,首先一件事情是要考虑这个对象是否是空指针。
if("1".equals(mData.get("Selected"))) {}
if(mData.get("Selected").equals("1")) {}
这2种写法的区别在于后面的写法可能会报空指针。
2.==
if(null != mSectionList) {}
这里只是提一下有些人喜欢把null放在前面
3.for
ArrayList<HashMap<String, String>> mList = new DBService(mContext).getResultsFile(mData.get("DamageID"));
if(null != mList && mList.size() > 0) {
for(final HashMap<String, String> map : mList) {}
}
在使用for循环的时候,必须对列表进行判断是否为空。切记
另外提一点就是在使用for循环的时候
for(int i = 0, len = jsonAry.length(); i < len; i ++) {}
可以这么写是因为后面一种每循环一次就会计算一次数组的长度,如果数据量大性能立马能体现出来
for(int i = 0; i < jsonAry.length(); i ++) {}
4.mSegmentJson.toString()
在使用一个对象时,如果当你无法确定那个对象不能为空,必须先判断下是否为空。
2. 数组下标越界
当你用数组的时候,首先要考虑的问题是下标越界问题,所以必须控制此异常的出现。
主要解决办法:判断数组长度,如果在范围内,才可以用
3.
解析异常
parseFloat
(String s)
主要解决办法:判断是否可以解析,或者直接try然后在catch里面处理
六、 代码细粒度设计
七、 其他
A.其实百度在Android中,一般常用的有百度地图API和百度定位API
B. 首先要注意AndroidManifest.xml相关配置(如果是定位需要定义一个service)和key的问题
A.连接手机或平板的时候,如果是主机,最好是用后面的USB接口。
B. 当连接手机或平板的时候,如果提示Could not open: AVD-API19,并且DDMS里面的 Devices。
C. 关于联调的话,市面上有91,、360、金山、豌豆荚等等都可以下载驱动。
D.
标签:
原文地址:http://www.cnblogs.com/threewang/p/4209909.html