Android 性能优化学习_01

96 阅读1分钟

性能优化维度:

  • 启动速度
    • 度量启动速度
    • 异步初始化
  • 内存
    • 内存抖动、泄露
    • 线上内存监控
    • 如何检检测不合理图片
  • 卡顿
    • 自动化卡顿检测
    • 耗时监控
  • 稳定性:
    • 崩溃
    • 容灾方案

还有 瘦身布局电量流量

专项治理:

  • 存储优化
  • 列表卡顿优化
  • webView 白屏检测
  • 性能埋点
  • 日志回捞

性能优化难题:

  • 线上问题无从追查
  • 优化效果无法长期保持

手机 App 启动时间收集方案

线下采集启动时间 adb shell

adb shell am start -W packagename/packagename.activity

  • ThisTime:最后一个 Activity 启动耗时
  • TotalTime:所有 Activity 启动耗时
  • WaitTime:AMS 启动 Activity 的总耗时

手动打点

ApplicationattachBaseContext中记录开始时间,在用户看到页面的渲染第一帧记录结束时间。如果是根据onWindowFocusChanged来记录结束时间会比实际情况短,不够准确,可以根据第一次绑定 View 时,监听 addOnPreDrawListener 来记录结束时间

工具使用 traceview:

  • 图形展示时间,调用栈
  • 信息全面,所有线程

代码使用

// 开始收集
Debug.startMethodTracing()
// 结束收集
Debug.stopMethodTracing()

生成文件在 SD:Android/data/packagename/files 目录下