Android UI优化小结
来源:互联网 发布:easybcd引导linux失败 编辑:程序博客网 时间:2024/04/30 02:25
前言
Android系统的极致UI性能是60帧每秒,所以每帧处理的时间不能超过16ms。这是Android官方给出的流畅运行定义。
我们来看一下,一帧需要处理多少数据。
我手头有个1920x1080的pad,60帧的情况下,一秒的像素量就是1920x1080x60。
设置个1920x1080的背景,
转换成内存
Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位 ---->1920x1080x60x16/8 = 237.3M
Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位 ---->1920x1080x60x32/8 = 474.6M
Bitmap.Config RGB_565:每个像素占四位,即R=5,G=6,B=5,没有透明度,那么一个像素点占5+6+5=16位 ---->1920x1080x60x16/8 = 237.3M
Bitmap.Config ALPHA_8:每个像素占四位,只有透明度,没有颜色。 ---->1920x1080x60x4/8 = 59.3M
看着都觉得多
简单分析
UI卡顿的原因主要是以下几类
1.UI线程有耗时或轻微耗时操作
2.Layout过于复杂
3.View过度绘制---单位时间内,动画执行次数太多,加重CPU GPU负担
4.View频繁measure layout,增加渲染次数
5.内存GC,阻塞渲染
6.冗余资源,渣渣逻辑-----加载执行慢
7.ANR
分析工具
针对1、2、4可以用hierarchyviewer.bat和lint过冗余
在SDK目录下..\adt-bundle-windows-x86_64-20140702\sdk\tools\hierarchyviewer.bat
针对3,可以用DDMS查看Heap或者adb shell dumpsys cpuinfo 或者adb shell top -m 1
针对5,可以用内存监控,leakCanary blockCanary或者DDMS里头的Allocation Tracker。主要是找一下内存抖动。工具是挺多的,还有腾讯的WeTest。
- Android UI优化小结
- android UI布局的性能优化小结
- Android UI 小结
- android UI小结(一)
- android UI小结(二)
- android UI小结(三)
- android UI小结(四)
- android UI小结(五)
- android UI小结(六)
- Android优化-ui优化
- android优化之UI优化
- Android 性能优化 UI优化
- Android-性能优化-UI优化
- android优化-UI优化总结
- [译]Android UI 优化
- Android UI 优化 1
- Android UI 优化 2
- Android UI 优化3
- Java实现 链表实现队列
- 【Git学习】如何删除GIT中的.DS_Store
- 非约束列表(俗称:万能适配器 )(附源码)
- Synchronized用法
- 生成网站证书
- Android UI优化小结
- 全局变量与局部变量的定义关系
- 设计模式之适配器模式
- 关于C#中ajax跨域访问
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
- [Java面试二]Java基础知识精华部分.
- Redis实现分布式session功能的共享 [转]
- Java LinkedList基本用法
- Unity学习之P&D 过河游戏智能帮助实现