Android上开发注重的是效率和内存消耗,有别于普通的Java开发:
1、Avoid Creating Objects能不使用包装类就不使用包装类。
尽量使用StringBuffer来处理字符串。
尽量使用一维数组代替多维数组。
2、Use Native Methods
尽量使用系统提供的接口方法,因为系统提供的接口方法使用C编写的,比自己用Java编写的效率高。
3、Prefer Virtual Over Interface
多使用接口的具体实现类:
1). Map myMap1 = new HashMap();
2). HashMap myMap2 = new HashMap();
两者比较结果:第一种是一向大家比较推崇的,因为接口回调对以后的维护成本低,但是接口方法的调用比实现类方法的调用更耗时。
4、Prefer Static Over Virtual
多使用静态的方法和属性。
5、 Avoid Internal Getters/Setters
对象内部直接用不用属性,避免使用Getters/Setters方法。
6、Cache Field Lookups
访问对象的属性比访问本地变量花费时间多。
变通写法:
for (int i = 0; i < this.mCount; i++)
dumpItem(this.mItems[i]);
应该改为:
int count = this.mCount;
Item[] items = this.mItems;
for (int i = 0; i < count; i++)
dumpItems(items[i]);
7、Declare Constants Final
声明一些final类型的常量
static int intVal = 42;
static String strVal = "Hello, world!";
可以写成如下:
static final int intVal = 42;
static final String strVal = "Hello, world!";
8、Use Enhanced For Loop Syntax With Caution
谨慎使用增强的for循环(For-Each),因为它创建多余临时变量。
9、Avoid Enums
避免使用枚举。
10、Use Package Scope with Inner Classes
建议使 用内部类。
11、Avoid Float
尽量避免使用浮点型。
12、 Some Sample Performance Numbers
一些常用操作的占用时间相对比 较:
操作 时间
Add a local variable 1
Add a member variable 4
Call String.length() 5
Call empty static native method 5
Call empty static method 12
Call empty virtual method 12.5
Call empty interface method 15
Call Iterator:next() on a HashMap 165
Call put() on a HashMap 600
Inflate 1 View from XML 22,000
Inflate 1 LinearLayout containing 1 TextView 25,000
Inflate 1 LinearLayout containing 6 View objects 100,000
Inflate 1 LinearLayout containing 6 TextView objects 135,000
Launch an empty activity 3,000,000