App性能优化

App性能优化,第1张

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代码混淆器工具,它包括压缩、优化、混淆等功能
(77z极限压缩

如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点这自行获取…

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/921699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存