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)延迟执行

 

猜你喜欢

转载自lynen.iteye.com/blog/2030592