App性能优化
2023-09-11 14:15:56 时间
1、稳定性
(1)内存优化
内存分析工具:
Memory Monitor 工具
Memory Analyzer工具
LeakCanary工具
Android Lint 工具
(1.1)避免内存泄漏
单例模式引用Activity类型Context
Activity中持有非静态内部类
资源性对象为关闭(File、Cursor等)
注册对象未注销(EventBus、RxJava、ButterKnife等)
Handler使用不当引起内存泄漏
容器中的对象没及时清理
WebView导致内存泄漏
(1.2)合理选择数据结构(SparseArray、ArrayMap等)
(1.3)减少不必要的内存开销(合理创建对象、复用)
(1.4)避免基本数据类型的装箱和拆箱消耗
byte->Byte
short->Short
int->Integer
float->Float
double->Double
char->Char
boolean->Boolean
(1.5)图片的压缩、大图片的分块加载
(2)崩溃
代码审查:
Alibaba Android开发规范手册
Alibaba Java开发规范手册
Android Lint
Alibaba代码审查工具
FindBugs
(2.1)Crash监控、处理、日志上传
Thread.setDefaultUncaughtExceptionHandler()
(2.2)提高代码质量、逻辑严谨性、代码审核
2、流畅度
(1)布局优化
使用轻量级UI组件(LinearLayout、FrameLayout),LinearLayout避免使用权重属性,比较耗费性能
通过RelativeLayout和ConstraintLayout减少复杂视图层级、布局扁平化,ConstraintLayout相对于RelativeLayout性能更好
布局复用(include标签)
View延迟加载(ViewStub标签)
减少层级(merge标签)
删除控件无用属性
wrap_content增加measure成本
(2)渲染优化(避免过度绘制)
移除XML中非必须的背景,移除Window默认的背景、按需显示占位背景图片
Canvas.clipRect()来帮助系统识别可见区域,只有可见区域才被绘制
(3)启动优化
减少Application的onCreate执行时间
减少启动页面的onCreate执行时间
三方SDK的异步初始化
(4)主线程任务优化
主线程避免耗时操作(网络访问/大文件的IO操作)
(5)视图刷新优化
减少刷新次数
缩小刷新区域
(6)动画优化
选择合适的动画框架
3、耗损
(1)耗电
计算优化
使用JobScheduler
合理的使用wack_lock
(2)流量
(3)网络
网络数据压缩传输
连接复用(keep-alive)
请求合并
数据缓存
4、安装包体积
(1)资源优化
Android Lint 删除冗余资源,资源复用、资源文件最少化等
(2)图片优化
使用一套图(主流分辨率)
图片无损压缩
SVG矢量图片
WebP图片
(3)代码优化
移除无用的代码、无用的依赖库
(4)libs库文件优化
so文件的动态下发
模块的插件化按需加载
(5)assets资源优化
音频文件采用有损压缩
(6)代码混淆
使用ProGuard代码混淆器工具,它包括压缩、优化、混淆等功能
(7)7z极限压缩
如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点这自行获取…
相关文章
- 面试百问:如何测试App性能?
- uni-app - 电子签字板组件(签名专用写字画板,支持调整写字板 “横纵“ 方向,可调整线条粗细颜色等,Canvas 绘制非常丝滑流畅)完美兼容 H5 APP 小程序,最好用的画板签字教程插件源码
- uni-app - 日历选择器组件(支持日期 “范围选择“ 多选 / 支持单选日期 / 自定义默认选中时间 / 弹框式 / 支持农历 )完美兼容 H5 APP 小程序,最好用的教程完整源代码插件!
- uni-app - 实现多选功能,点击项目时选中并高亮显示(支持全选 / 反选,以及轻松的 “回显“ 数据)点击选中并改变样式,全端兼容 H5 App 小程序,代码高效简洁无 BUG
- 移动App性能测评与优化第1章
- 移动App性能测评与优化1.2.2 Dalvik Heap的常见问题
- 移动App性能测评与优化1.4.3 zygote共享内存机制
- 移动App性能测评与优化1.5.1 从class对象说起
- 移动App性能测评与优化2.2.3 优化方法三:传感器
- 移动App性能测评与优化2.2.4 优化方法四:云省电策略
- Android App性能优化笔记之一:性能优化是什么及为什么?
- 《移动App测试的22条军规》——第23章,第20节对微信App进行性能测试和安全性测试
- SwiftUI iOS 完整项目之基于CoreData构建购物计划App(教程含源码App Store上线app)
- macOS App开源UI汇总
- iOS APP性能优化
- IOS APP上架App Store及提交审核详细教程
- uni-app微信相关开发问题记录:微信分享报错"包名不对,请检查包名是否与开放平台填写一致"、Android微信支付只能调起一次的问题、App微信登录与公众号微信登录的unionid不一致
- uni-app知识点:条件编译#ifdef MP、HBuilder基座和自定义基座差别、去除顶部导航栏、手机桌面应用消息角标实现、APP应用图标配置及云端打包时的注意事项、如何使app文字内容长按可以选择复制
- 性能优化7--App瘦身
- Android性能优化之App应用启动分析与优化