Android 性能优化

作者: a57ecf3aaaf2 | 来源:发表于2019-03-30 17:31 被阅读0次

    布局优化

    • include 标签。
    • merge 标签。
    • ViewStub 视图。
    • 减少视图绘制:
      1.尽量避免在列表布局中使用 LinearLayout 的 layout_weight 属性(会测量两次)。
      2.能够设置 Gone 的不要设置为 Invisible。
      3.避免在 onDraw 方法中使用大量局部变量。
      4.避免在简单布局中进行过多嵌套。
      5.使用 Layout Inspector、Hierarchy Viewer 工具检查布局层次、手机开发者模式检查过度绘制。

    内存优化

    • 使用 IntentService,在任务结完成后及时结束 Service。
    • 在 onLowMemory、onTrimMemory(API 4.0) 中处理资源回收。
    • 避免 Bitmap 资源的浪费。
    • 使用 Android 自带的已优化的数据容器,如 SparseArray、ArrayMap、Pair 等。
    • 谨慎使用依赖注入框架、外部 libs等。
    • 使用 ProGuard 进行代码压缩、优化。
    • 避免在 ListView 的 Adapter 中无条件调用 notifyDataSetChanged() 方法。
    • 静态内部类持有 Activity 优化、耗时操作处理,Lint 检查等。
    • 使用线程池。
    • 避免过多使用枚举类型。
    • 尽量使用静态内部类。

    避免 OOM

    • 使用 Memory Monitor 检查内存泄露。
    • 导出 HPROF 文件,使用 MAT 分析内存泄露。
    • 集成内存检测工具 LeakCanary,检测潜在的内存泄露元凶 。
    • 及时关闭 Closeable 对象。
    • 必要时,使用享元模式、LRU Cache 进行内存优化。

    避免 ANR

    • 避免对输入事件的响应时间过长。
    • 避免在 BroadcastReceiver 中处理耗时操作。
    • 避免在主线程中执行大量的耗时操作,耗时操作是导致 ARN 的主要原因。
    • 分析 /data/anr/traces.txt 文件,检查 ANR 发生原因。

    本文由 Fynn_ 原创,未经许可,不得转载!

    相关文章

      网友评论

        本文标题:Android 性能优化

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