Android高效编程(特别实用)

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值