interview

性能优化

ANR

ANR全称Application Not Responding,意思就是程序未响应。

出现场景

Android系统会监控程序的响应状况,一旦出现下面两种情况,则弹出ANR对话框

如何避免

基本的思路就是将IO操作在工作线程来处理,减少其他耗时操作和错误操作

如何改善

通常100到200毫秒就会让人察觉程序反应慢,为了更加提升响应,可以使用下面的几种方法

如果开发机器上出现问题,我们可以通过查看/data/anr/traces.txt即可,最新的ANR信息在最开始部分。

OOM

在实践操作当中,可以从四个方面着手减小内存使用,首先是减小对象的内存占用,其次是内存对象的重复利用,然后是避免对象的内存泄露,最后是内存使用策略优化。

减小对象的内存占用

内存对象的重复使用

大多数对象的复用,最终实施的方案都是利用对象池技术,要么是在编写代码的时候显式的在程序里面去创建对象池,然后处理好复用的实现逻辑,要么就是利用系统框架既有的某些复用特性达到减少对象的重复创建,从而减少内存的分配与回收。

避免内存泄漏

内存优化策略

卡顿优化

导致Android界面滑动卡顿主要有两个原因:

众所周知,界面的流畅度主要依赖FPS这个值,这个值是通过(1s/渲染1帧所花费的时间)计算所得,FPS值越大视频越流畅,所以就需要渲染1帧的时间能尽量缩短。正常流畅度的FPS值在60左右,即渲染一帧的时间不应大于16 ms

如果想让应用流畅运行 :

针对界面切换卡顿,一般出现在组件初始化的地方。屏幕滑动卡顿,ui嵌套层级,还有图片加载,图片的话,滑动不加载,监听scrollListener