"Android 卡顿优化之实现" Android 优化之卡顿优化的实现主要介绍了 Android 优化之卡顿优化的实现。卡顿优化是 Android 优化的一个重要方面,主要是解决 Android 应用程序在运行时出现的卡顿问题。 了解卡顿的原因是优化的关键。卡顿的原因有很多,如过于复杂的布局、过度绘制、频繁的 GC 等。只有了解卡顿的原因,才能更好地优化 Android 应用程序。 Android 系统每隔 16ms 会发出 VSYNC 信号重绘界面(Activity)。之所以是 16ms,是因为 Android 设定的刷新率是 60FPS(Frame Per Second),也就是每秒 60 帧的刷新率,约合 16ms 刷新一次。这就意味着,我们需要在 16ms 内完成下一次要刷新的界面的相关运算,以便界面刷新更新。 过于复杂的布局是卡顿的主要原因之一。UI 渲染的整个过程由 CPU 和 GPU 两个部分协同完成。CPU 负责 UI 布局元素的 Measure、Layout、Draw 等相关运算执行,GPU 负责栅格化(rasterization),将 UI 元素绘制到屏幕上。如果 UI 布局层次太深,或是自定义控件的 onDraw 中有复杂运算,CPU 的相关运算就可能大于 16ms,导致卡顿。 过度绘制也是卡顿的主要原因之一。UI 线程的复杂运算会造成 UI 无响应,导致 ANR,但更多的是造成 UI 响应停滞卡顿,ANR 是卡顿的极致。 要解决卡顿问题,需要从多方面入手。需要减少刷新次数,例如进度更新,要进度有变化再去刷新,且保证频率不得高于系统的刷新频率。需要避免非必要的刷新,如控件不可见,则无需刷新。再次,需要避免后台线程影响,如列表控件,在滑动时不要去加载图片,可以在滑动监听里停止图片的加载。 此外,局部刷新也是一种有效的优化方法,如 RecyclerView 的 DiffUtil。自定义 View 可以使用 invalidate(Rect dirty) 或 invalidate(int left, int top, int right, int bottom) 方法。尽量使用属性动画,它减少了自身的重绘。 需要清除 StringBuilder、List 等在创建时传入一个合适的参数指定初始容量,以避免频繁扩容的开销。开启硬件加速也是解决卡顿的重要方法,可以在 Application 级别、Activity 级别、Window 级别、View 级别启用硬件加速。 监控是解决卡顿的重要步骤。可以使用《Android 应用性能优化最佳实践》2.8 章,主要利用 MainLooper 里的 Printer。BlockCanary 开源库和 StrctModeANRActivity 的 View 都可以用来监控卡顿。 卡顿优化是 Android 优化的一个重要方面,需要从多方面入手,了解卡顿的原因,使用多种优化方法,监控卡顿情况,以提高 Android 应用程序的性能。
- 粉丝: 3
我的内容管理
展开
我的资源
快来上传第一个资源
我的收益 登录查看自己的收益
我的积分
登录查看自己的积分
我的C币
登录后查看C币余额
我的收藏
我的下载
下载帮助
前往需求广场,查看用户热搜最新资源
- Java编程实战指南:从入门到精通
- 通信工程概预算测验考试库.doc
- 计算机网络存储技术.docx
- 深度学习下初中历史的活动教学策略.docx
- 法律知识问题互联网安全方面法律.doc
- 基于大数据的计算机网络信息安全防护技术分析.docx
- 单片微型计算机方案设计书报告.doc
- 第9章网络安全技术.ppt
- 大数据思维在高校思政教育中的融入.docx
- 分析智能楼宇计算机系统设计与施工要点.docx
- 51单片机控制直流电机的调速方案设计书.doc
- (源码)基于JavaScript的等值面生成与裁切系统.zip
- “分析研究主导型”本科自动化专业发展现状调查.doc
- 单片机定时闹钟设计方案.doc
- 网络环境下校本研修的研修资源建设.doc
- 探究计算机教学中学生创新思维能力的培养.docx


信息提交成功