Android性能调优落脚点
http://www.trinea.cn/android/performance/
http://www.trinea.cn/android/android-performance-demo/
以下内容是从以上链接中提取出的要深入的大纲内容
何为性能问题
在性能测试中存在两个概念:
(1). 响应时间
指从用户操作开始到系统给用户以正确反馈的时间。一般包括系统处理时间 + 网络传输时间 + 展现时间。对于非网络类应用不包括网络传输时间。响应时间是用户对性能最直接的感受。
(2). TPS(Transaction Per Second)
TPS为每秒处理的事务数,是系统吞吐量的指标,在搜索系统中也用QPS(Query Per Second)衡量。TPS一般与响应时间反相关。
备注:移动端的性能还包括FPS,该指标是用于衡量移动端UI流畅度的一个指标
通常所说的性能问题就是指响应时间过长、系统吞吐量过低。在web性能测试中,也会将高并发下内存泄漏归为性能问题。
在Android应用程序中由于系统ANR的限制,所以对主线程的响应时间提出了更高的要求。Android ANR的具体要求是指Activity对事件响应不超过5秒,BroadcastReceiver中执行时间不超过10秒。
性能调优方式
明白了何为性能问题之后,就能明白性能优化实际就是优化系统的响应时间,提高TPS。优化响应时间,提高TPS的方式包括:
(1) 降低执行时间
这部分包括:a. 缓存(包括对象缓存、IO缓存、网络缓存), b. 数据存储类型优化, c. 算法优化, d. JNI, e. 逻辑优化, f. 需求优化
(2) 同步改异步,利用多线程提高TPS
(3) 提前或延迟操作,错开时间段提高TPS
对于数据库优化、布局优化、Java代码部分优化都可以归纳到上面的几种方式中。
1.性能瓶颈的定位
学会使用各种工具定位各种可能导致的性能问题,工具包括
(1)Traceview、monkey、monkey runner调试
2.性能调优点
(1)同步改异步
一定程度上解决ANR的问题,但是需要注意控制线程本身的最大数量导致的性能问题
(2)缓存
图片缓存、线程池、View缓存、IO缓存、消息缓存、通知栏notification缓存
(3)Layout优化
(4)数据库优化
(5)算法优化
(6)延迟执行