App性能优化

目录

1、稳定性

2、流畅度

3、耗损

4、安装包体积


1、稳定性

# 公众号:AllTests软件测试
(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、流畅度

# 公众号:AllTests软件测试
(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、耗损

# 公众号:AllTests软件测试
(1)耗电
计算优化
使用JobScheduler
合理的使用wack_lock
(2)流量
(3)网络
网络数据压缩传输
连接复用(keep-alive)
请求合并
数据缓存

4、安装包体积

# 公众号:AllTests软件测试
(1)资源优化
Android Lint 删除冗余资源,资源复用、资源文件最少化等
(2)图片优化
使用一套图(主流分辨率)
图片无损压缩
SVG矢量图片
WebP图片
(3)代码优化
移除无用的代码、无用的依赖库
(4)libs库文件优化
so文件的动态下发
模块的插件化按需加载
(5)assets资源优化
音频文件采用有损压缩
(6)代码混淆
使用ProGuard代码混淆器工具,它包括压缩、优化、混淆等功能
(7)7z极限压缩

精彩推荐

面试笔试系列

思维导图系列

Linux常用命令壁纸

接口Requests系列

测试框架pytest系列

Jmeter快速上手之接口测试

自动化测试框架结构图

移动安全框架(MobSF)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangmcn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值