Android性能优化
2021-11-16 16:08:49 32 举报
AI智能生成
为你推荐
查看更多
Android性能优化是指对Android应用进行一系列的改进,以提高其运行速度、响应时间和用户体验。这包括减少应用程序的内存占用、CPU使用率和电池消耗,以及提高应用程序的稳定性和可靠性。常见的Android性能优化措施包括:优化布局、减少绘制时间、使用缓存、异步加载数据、避免内存泄漏等。这些措施可以帮助开发者创建更加高效、流畅且具有吸引力的应用程序。
作者其他创作
大纲/内容
过度绘制,某些像素在同一帧时间多次绘制,似的CPU、GPU负载过重
布局嵌套层级太深,无法在16ms内完成渲染
刷新频繁,刷新范围太大
频繁的触发measure、layout;整个view频繁的重新渲染
自定义view onDraw()创建对象,会导致gc频繁
动画
页面绘制
主线程做了稍微耗时操作;读取解析数据
创建大量垃圾对象导致gc频繁,会阻塞本次渲染
数据处理
启动优化
UI优化(卡顿)
JJVM角度而言,主要是堆内存泄漏,分配出去堆内存没有及时回收导致
代码角度而言,不再使用的对象被其他对象所引用,导致它无法及时回收,Activity泄漏
原因
非静态内部类、匿名内部类Hanlder、Thread、AsyanTask
单例模式传入Activity对象
观察者模式注册之后,关闭页面时没有返注册
资源性对象未关闭,Cursor、File等
Webview泄漏,放在单独进程
Bitmap没有及时回收
案例
profile、LeakCanary
分析工具
内存泄漏
大量垃圾对象的快速创建、回收,导致gc频繁
内存抖动
超过App进程分配的阀值就会OOM
加载大图、长图,Bitmap没有做压缩
一些大的资源对象使用完毕没有及时回收
内存泄漏最严重的结果就是OOM
OOM
内存优化
图片用svg、webp格式
drawable xml用代码来写
资源文件
代码混淆
删除不必要的代码和库
ndk、so文件保留一个arm就可以了
三方库太大,可以考虑小一点的替代方案,或者下载源码按需求重新编译
代码
APK优化
连接复用
body做gzip压缩
合并请求
请求失败
解析异常
异常拦截
断点续传、分片传输、失败重连
Protocol Buffer
网络优化
存储简单的配置数据等
SharedPrefence
存储复杂的关系型数据
SQLite
File
跨进程数据访问,一般和SQLite结合使用,把数据提供给其他app进程使用
ContentProvider
网络存储
存储优化
性能优化
0 条评论
回复 删除
下一页