Android性能优化的方方面面

目录

1.绘制优化
    1.1 绘制原理
    1.2 卡顿原因
    1.3 卡顿检测工具
        1.3.1 TraceView
        1.3.2 SysTrace
        1.3.3 HierarchyViewer
        1.3.4 Profile GPU Rendering
        1.3.5 AndroidLint
    1.4 第三方工具
    1.5 启动优化
        1.5.1 UI优化
        1.5.2 启动逻辑优化
2.内存优化
    2.1 内存检测工具
    2.2 内存抖动
        2.2.1 概念
        2.2.2 表现
    2.3 数据类型
    2.4 图片优化
3.存储优化
4.稳定性优化
    4.1 代码审查
    4.2 Crash监控
    4.3 提高进程存活率
5.耗电优化
    5.1 检测工具
    5.2 耗电模块
    5.3 优化
    5.4 Job Scheduler
6.安装包优化
    6.1 资源优化
    6.2 代码优化
    6.3 代码压缩
    6.4 代码混淆
    6.5 图片优化
    6.6 ProGuard
    6.7 Android Lint

 

1.绘制优化

1.1 绘制原理

FPS

1.2 卡顿原因

  • 绘制一帧时间太长
  • UI线程太忙了,丢帧了

1.3 卡顿检测工具

1.3.1 TraceView

  • 概念:方法调用关系、调用时长追踪,已经过时
  • 发展:取而代之CPUProfiler

自定义:

Debug.startMethodTracing("MYTAG");
Debug.stopMethodTracing();

1.3.2 SysTrace

  • 概念:性能数据的采集和分析工具【已经过时】
  • 发展:Android9.0系统自带SystemTrace】
  • 自定义:
Trace.beginSection("MyTrace");
Trace.endSection();

1.3.3 HierarchyViewer

  • 概念:View层级检测【已过时】
  • 发展:Layout Inspect取而代之

1.3.4 Profile GPU Rendering

渲染柱状图,红色就过渡了

1.3.5 AndroidLint

  • 层级检测
  • view个数检测

1.4 第三方工具

  • TimeMonitor
  • BlockCanary

1.5 启动优化

1.5.1 UI优化

1.5.2 启动逻辑优化

  • 分布加载
  • 异步加载
  • 延期加载 

2.内存优化

2.1 内存检测工具

  • Memory Monitor
  • MAT
  • LeakCanary

2.2 内存抖动

2.2.1 概念

在短时间内有大量的对象创建和回收,出现内存的忽高忽低

2.2.2 表现

内存图成锯齿状

2.3 数据类型

  • SparseArray
  • ArrayMap

2.4 图片优化

3.存储优化

  • SharedPrefenence
  • File
  • SQLite
  • ContentProvider

4.稳定性优化

4.1 代码审查

  • 何时审查
  • 审查什么

 公共模块

 业务模块

  • 谁来审查

 团队审查

 模块负责人审查

 结对审查

 自查

4.2 Crash监控

  • Java层Crash监控
  • Native层Crash监控
  • Crash上报机制

4.3 提高进程存活率

  • AlarmReceiver
  • BootReceiver
  • SyncAdapter

5.耗电优化

5.1 检测工具

  • Batterystats
  • Battery Historian

5.2 耗电模块

  • 显示
  • 网络
  • 耗电

5.3 优化

  • 计算优化
  • WakeLock使用不当

5.4 Job Scheduler

  • 在合适的时间
  • 合适的电量
  • 合适的网络条件

6.安装包优化

6.1 资源优化

6.2 代码优化

6.3 代码压缩

移除无效的类,属性,方法

6.4 代码混淆

把类名、方法名、属性名替换为一到两个字母

6.5 图片优化

6.6 ProGuard

6.7 Android Lint

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

门心叼龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值