Android 技术提升总结(持续更新)

​​​​​​性能优化相关(Android性能优化典范)

  1. 内存优化(Android的内存管理机制 & 内存分析工具:Android Profiler
    1. OOM优化
    2. 内存抖动优化
    3. 列表数组优化
    4. 内存泄露(Activity泄露):使用StrictMode或者LeakCanary 
  2. UI渲染优化(Android UI渲染 & 分析工具Layout inspector(hierarchy viewer))

         过度绘制(Overdraw):同一帧的某个像素在同一时间内被多次绘制(多层UI不可见的UI也被绘制)

         过度绘制检查:设置->开发者模式->调试GPU过度绘制

             

                蓝色,淡绿,淡红,深红代表了4种不同程度的Overdraw情况。蓝色表示不存在过度绘制,其他颜色分别表示2x,3x,4x过度绘制。

解决办法:1. 普通View尽量扁平布局(RelativeLayout)减少View嵌套层次,尽量使用RelativeLayout,去掉非必需的background等

                  2.自定义View,使用canvas.clipRect()canvas.quickreject()方法来控制需要刷新的区域

     3. 电量优化(检测工具Battery Historian)

             1. 非及时任务(如:上传log等)可以等充电时或链接WiFi时上传(移动网络比WiFi更耗电,且每次启动时比传输时耗电)

              2. 尽量打包传输,减少网络请求次数

              3. 正确使用Wakelock,及时释放WakeLock,以及及时释放硬件设备

              4. 使用JobScheduler集中处理收到的任务,在合适的时间,合适的网络下运行

      4. 启动速度优化

             1. 用TraceView 找到代码中启动速度慢的位置,进行UI

             2. 减少Application中onAttachBase()和onCreate()中耗时工作,在可行的范围内尽量改为异步初始化

      5. Bitmap优化

   

  1. 三方工具
    1. Battery Historian(Google)
    2. Emmagee(NetEase)
    3. Leakcanary(Squre)
    4. AndroidDevMetrics
  2. 电量优化

  3. UI优化

  4. 启动速度优化

内存相关

  1. 内存管理(分配&回收)

  2. 内存抖动

  3. Doze 和 App Standby

  4. 保活 

    1. 进程保活
    2. 网络连接保活

编译打包

  1. MultiDex
  2. Gradle Plugin
  3. Gradle 多渠道打包
  4. Gradle 动态编译
  5. Apk签名流程

代码质量

  1. Findbugs
  2. Android Lint

  3. SonarQube

虚拟机

  1. Dalvik
  2. ART

架构

  1. MVP
  2.  

你可能感兴趣的:(Android)