1. 采用JNI调用时,将耗时间的处理放到c/c++层来处理。
2. 有些能用文件操作的,尽量采用文件操作,文件操作的速度比数据库的操作要快10倍左右。
3. 访问网络的耗时操作启动一个新线程来做,而不要再UI线程来做。
4. 如果方法用不到成员变量,可以把方法申明为static,性能会提高到15%到20%。
5. 慎用异常,异常对性能不利。只要有异常被抛出,VM就必须调整调用堆栈,因为在处理过程中创建了一个新的对
象。异常只能用于错误处理,不应该用来控制程序流程。
6. 用移位操作替代乘法操作可以极大地提高性能。
7. 不要随意的使用stingA=StringB+StringC的写法,有大量拼接操作的地方用StringBuilder代替。
8. system_server初始化时,system_init函数中,
ProcessState::self()->startThreadPool()的调用次数可以适当增加,提高system_server的并发响应性能。
9. 开机启动过程中,在ZygoteInit的main函数中,preloadCalsses加载了一千多个,耗费时间较久,
可以不加载不需要的类。
10. 开机启动完成后会扫描预装各目录下的apk,可以将不需要的apk裁掉。
11. system_server的run函数里面创建的服务较多,可以将不需要的服务去掉,
减少系统资源的占用和开机启动时间。
12. Android Runtime优化,给dalvik设置合理的参数:
dalvik.vm.checkjni
dalvik.vm.execution-mode
dalvik.vm.heapstartsize
dalvik.vm.heapgrowthlimit
dalvik.vm.heapsize
dalvik.vm.dexopt-flags