App性能优化思维导图
2023-04-24 22:28:32 0 举报
AI智能生成
App性能优化思维导图
作者其他创作
大纲/内容
耗损
耗电
计算优化
使用JobScheduler
合理的使用wack_lock
流量
网络
网络数据压缩传输
连接复用(keep-alive)
请求合并
数据缓存
安装包体积
资源优化
Android Lint 删除冗余资源,资源复用、资源文件最少化等
图片优化
使用一套图(主流分辨率)
图片无损压缩
SVG矢量图片
WebP图片
代码优化
移除无用的代码、无用的依赖库
libs库文件优化
so文件的动态下发
模块的插件化按需加载
assets资源优化
音频文件采用有损压缩
代码混淆
7z极限压缩
稳定性
内存优化
避免内存泄漏
单例模式引用Activity类型Context
Activity中持有非静态内部类
资源性对象为关闭(File、Cursor等)
注册对象未注销(EventBus、RxJava、ButterKnife等)
Handler使用不当引起内存泄漏
容器中的对象没及时清理
WebView导致内存泄漏
合理选择数据结构(SparseArray、ArrayMap等)
减少不必要的内存开销(合理创建对象、复用)
避免基本数据类型的装箱和拆箱消耗
图片的压缩、大图片的分块加载
崩溃
Crash监控、处理、日志上传
提高代码质量、逻辑严谨性、代码审核
流畅度
布局优化
使用轻量级UI组件(LinearLayout、FrameLayout)
通过RelativeLayout和ConstraintLayout减少复杂视图层级
布局复用(include标签)
View延迟加载(ViewStub标签)
减少层级(merge标签)
删除控件无用属性
wrap_content增加measure成本
渲染优化
避免过度绘制
移除 XML 中非必须的背景,移除 Window 默认的背景、按需显示占位背景图片
canvas.clipRect()来帮助系统识别可见区域,只有可见区域才被绘制
启动优化
减少Application的onCreate执行时间
减少启动页面的onCreate执行时间
三方SDK的异步初始化
主线程任务优化
主线程避免耗时操作(网络访问/大文件的IO操作)
视图刷新优化
减少刷新次数
缩小刷新区域
动画优化
选择合适的动画框架
0 条评论
下一页
为你推荐
查看更多