那些年大家都在谈论的Android性能优化

Android性能优化概述。

Android性能优化似乎是一个老生常谈的问题,但我似乎只是一个新生。我不能像老生那样告诉你N多的优化方法。从去年毕业一直到现在,大大小小的项目也写了三个了。第一个是实习的时候自己一个人搞的,服务器带客户端。然后后两个是毕业后来新公司和一个同事一起搞的,已经上线了,也都在更新维护。
那我也来谈谈如何进行优化?好像并不能。老板需要的是速成,优化有卵用,还不如在大更一个版本。但事实好像并不是这样的,用户铺天盖地的反馈都证明了这样做出来的app体验不好。写这篇博客我所想做的和我要说明的是,作为一个不是老生的新生,我们该怎么去在性能优化的道路上摸索前进。

WHAT?什么是性能问题?

在性能测试中存在两个概念:

(1). 响应时间

指从用户操作开始到系统给用户以正确反馈的时间。一般包括逻辑处理时间 + 网络传输时间 + 展现时间。对于非网络类应用不包括网络传输时间。
展现时间即网页或 App 界面渲染时间。
响应时间是用户对性能最直接的感受。

(2). TPS(Transaction Per Second)

TPS为每秒处理的事务数,是系统吞吐量的指标,在搜索系统中也用QPS(Query Per Second)衡量。TPS一般与响应时间反相关。
通常所说的性能问题就是指响应时间过长、系统吞吐量过低。
对后台开发来说,也常将高并发下内存泄漏归为性能问题。
对移动开发来说,性能问题还包括电量、内存使用这两类较特殊情况。

HOW?怎样去进行性能优化?

明白了何为性能问题之后,就能明白性能优化实际就是优化系统的响应时间,提高TPS。优化响应时间,提高TPS。方式不外乎这三大类:

(1) 降低执行时间

又包括几小类

a. 利用多线程并发或分布式提高 TPS
b. 缓存(包括对象缓存、IO 缓存、网络缓存等)
c. 数据结构和算法优化
d. 性能更优的底层接口调用,如 JNI 实现
e. 逻辑优化
f. 需求优化

(2) 同步改异步,利用多线程提高TPS

(3) 提前或延迟操作,错峰提高TPS

WHERE?Android中的性能问题常出现在哪里?

(1)UI中的性能问题

a.布局
b.绘制

(2)内存中的性能问题

a.内存泄露
b.响应速度
c.listview
d.OOM
e.对象的内存占用过大以及不能重复利用
f.bitmap加载

(3)关于电量的性能问题

(4)关于网络的性能问题

纳尼?

其实这些都是那些老生总结过的经验,虽然有些拿来主义,但是凭我现在的水平好像也总结不出花来。那要这篇博客何用?不急不急,这只是开胃菜而已。在以后的博客当中,我会就Android中经常出现性能问题,去一步一步提升我做过的项目的性能。
其实每个人都在成为大神的路上,只不过有的人在走,而有的人在跑。不急不躁,脚踏实地,我们也可以————致不是老生的新生

任磊_Coder wechat
关注博主是一种态度,评论博主是一种欣赏。
坚持原创技术分享,您的支持将鼓励我继续创作!