android应用性能优化.pdf,Android应用性能优化大纲

一、如何评价一个应用的好坏?

ff1cf2da94f5

好的应用

二、如何评价一个应用的性能?

ff1cf2da94f5

高性能的应用

三、快

Android中主线程的关键职责是处理用户交互,在屏幕上绘制像素,开发中应该避免任何阻碍主线程的事情,才能对用户操作及时响应。

ff1cf2da94f5

分析工具

应用慢、卡顿的根本原因:

1、绘制任务太重,绘制一帧耗时太长;

2、主线程太忙,VSync信号来时没有准好绘制数据,导致丢帧。

ff1cf2da94f5

卡顿原因

3.1 UI渲染任务重

3.1.1 减少布局层级

ConstraintLayout、RelativeLayout、

Merge、ViewStub

自定义layout

3.1.2 减少绘制时间

RelativeLayout有性能低的问题,会对子view做两次测量布局(横向、纵向)。有开源的只做一次测量的精简版RelativeLayout。

LinearLayout有weight属性,也需要两次测量。

少用wrap_content,减少measure成本

删除无用的属性

减少过度绘制,去掉重叠区域多余的背景Activity主题色、Window默认背景,自定义view时看不见的区域可以不用绘制canvas.clipRect()。同一个区域避免绘制多次。

从设计上减少圆角、阴影、透明、动效,可大幅降低绘制时间

内容预绘制,比如StaticLayout、优化后的Textview --> PrecomputedText

3.1.3 布局复用

include

view pool、view holder

3.2 主线程太忙

3.2.1 内存优化

内存的不合理使用对UI卡顿、耗电、稳定性都有不同程度的影响。所以内存优化是性能优化中最重要的优化之一。

ff1cf2da94f5

内存优化

ff1cf2da94f5

图片内存优化

具体实现可以参考之前的文章《Android中高效的显示图片》。

3.2.2 存储优化

ff1cf2da94f5

存储优化

四、稳

ff1cf2da94f5

稳定性

4.1 Code Review 方法论

4.1.1 code review的时机:

底层公共模块、与其他模块耦合的功能变更代码;

重大feature代码;

新同事的代码;

发布前紧急集成的代码;

4.1.2 code review的人:

团队审查;

模块负责人;

结对审查;

4.1.3 code review流程:

先审查实现思路;

再审查设计模式;

接着审查核心代码;

最后审查实现代码。

五、小

ff1cf2da94f5

瘦身

六、监控

监控的意义:

发现问题

验证优化效果

监控收集的信息:

基础信息

用户信息:账号、设备号、地理位置

设备信息:系统版本、硬件型号、APP版本

系统状态:内存状态、CPU使用率、网络状态

2、错误信息

crash堆栈、anr trace文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值