一.Android优化要点之提高流畅度首先要明白什么是流畅度概念
1. 这是官方给出的概念:Android流畅运行,需要运行60帧/秒, 则需要每帧的处理时间不超过16ms 。
2. 每秒帧数,实际上就是指动画或视频每秒放映的画面数。因此“帧”的概念就是指 “画面”,1幅画就叫做“1帧”,每秒帧数指的就是“每秒播放的画面数” 。帧数就是在1秒钟时间里传输的图片的量,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps (Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可 以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。
3. 一帧占用内存数
当画面的分辨率是1024×768,刷新率要达到60帧/秒时,那么显卡在一秒钟内需要处理的像素 量就达到了“1024×768×60=5713920”。那么一个“像素量”,相当与占 用多少内存?我们用位图来代替粗略计算,把分辨率是1024×768看成一张对应大小的位图,通过位图的 大小来大概计算占用的内存大小。而位图的存储算法,在维基百科上有详细的介绍,详见下面的链接。
一张1024×768的16位(bit)位图文件大小 = 1024×768×16/8 = 1572864 B = 1536 KB = 1.5 MB。如果要求画面的刷新率达到60帧/秒,则每秒需要处理的数据量就达到1.5 * 60 = 90 MB,这个 数据是相当大。
实际系统中会通过GPU显卡处理显示,减少CPU工作量,或者系统会缓存或局部刷新来降低处理量。没 有研究过,也很想研究一下显示的流程。
二.Android优化要点之提高流畅度的根本:解放UI主线程
1. 不要阻塞UI线程;
2. 不要在UI线程之外操作UI。
三.Android优化要点之提高流畅度以ListView加载图片为例
更流畅?
1. ListView如何流畅顺滑加载?
2. ListView使用convertView可以提高两倍性能?
3. ListView回收item的原理是什么?
4. ListView重复加载调用的问题?
5. 如何解决图片加载OOM问题?
6. 如何更流畅的加载图片?
7. ListView加载大量图片并发问题?
ListView优化要点
1. 优化Adapter,使用conve