美文网首页Android开发探索
Android应用性能优化大纲

Android应用性能优化大纲

作者: 都有米 | 来源:发表于2019-01-12 15:53 被阅读46次

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

    好的应用

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

    高性能的应用

    三、快

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

    分析工具

    应用慢、卡顿的根本原因:
    1、绘制任务太重,绘制一帧耗时太长;
    2、主线程太忙,VSync信号来时没有准好绘制数据,导致丢帧。


    卡顿原因
    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 主线程太忙

    分析应用耗时可以参看之前的一篇文章 Android性能优化之CPU Profiler

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

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

    3.2.2 存储优化

    存储优化

    四、稳

    稳定性
    4.1 Code Review 方法论

    4.1.1 code review的时机:

    1. 底层公共模块、与其他模块耦合的功能变更代码;
    2. 重大feature代码;
    3. 新同事的代码;
    4. 发布前紧急集成的代码;

    4.1.2 code review的人:

    1. 团队审查;
    2. 模块负责人;
    3. 结对审查;

    4.1.3 code review流程:

    1. 先审查实现思路;
    2. 再审查设计模式;
    3. 接着审查核心代码;
    4. 最后审查实现代码。

    五、小

    瘦身

    六、监控

    监控的意义:

    1. 发现问题
    2. 验证优化效果

    监控收集的信息:

    1. 基础信息
      用户信息:账号、设备号、地理位置
      设备信息:系统版本、硬件型号、APP版本
      系统状态:内存状态、CPU使用率、网络状态

    2、错误信息
    crash堆栈、anr trace文件

    相关文章

      网友评论

        本文标题:Android应用性能优化大纲

        本文链接:https://www.haomeiwen.com/subject/puttdqtx.html