1. Java代码优化
(1) 添加注释;
(2) 使用缓存(memoization); key<——>result
—— 可以使用HashMap;(使用java.lang.Integer)
——SparseArray类(使用基本类型int),当键是整数时,比HashMap效率高(HashMap会创建很多Integer对象)
(3) 反射reflection 会使代码变慢
(4) ANR(Android检测到输入事件在5秒内没被处理,或者BroadcastReceiver在10秒内没有执行完毕,会弹出anr)
(5) onCreate方法一般包含setContentView以展开布局,可以降低布局复杂性加快速度:
a.使用RelativeLayout代替嵌套的LinearLayouts,尽可能保持扁平化布局;
b.使用ViewStub推迟对象创建;
(6) 主线程中不要进行网络操作或访问文件系统;(不同的SD卡具有不同的“速度”,需要测试不同制造厂商的SD卡)
(7) StrictMode——检测不良行为的工具
例 detectCustomSlowCall() 和 noteSlowCall(): 用来检测应用中执行缓慢的代码或潜在缓慢的代码
(8) SQLite
a. 加快要执行的SQL语句字符串的创建速度,使用+运算符连接字符串并不有效,
推荐使用StringBuilder对象,或调用String.format可以提高性能;
b. 只读取需要的数据,调用查询是选择正确的参数,可使性能明显提升;
2. 使用NDK
在开发环境中将代码编译为本地代码,而不是在Android设备上
原因:
字节码需要由虚拟机解释
本地代码由设备处理器直接执行,没有任何中间步骤,执行速度更快
使用本地代码和NDK的方式有两种:
应用的一部分用Java编写,另一部分用C/C++编写;
应用全部用C/C++写;
名词解释:
NDK —— 为应用开发本地代码而诞生的一套工具
armeabi —— 代表ARM嵌入式应用程序二进制进口,v7a指架构