Android 优化

概述

宽泛的内容,具体优化要针对具体的场景,以下是楼主想到的一些点

优化点

  • 代码架构
    好的架构具有高内聚、低耦合,易扩展,扩展是重点

  • 数据模型选择
    移动设备资源有限,根据使用场景选择合适数据模型,ArrayList、LinkedList、HashMap、ArrayMap、SparseArray

  • 内存泄漏
    生命周期长的尽量少持有生命周期短,及时对无用的对象置null

  • 合理分配内存资源
    对强、弱、软、虚引用合理的使用,优化代码逻辑,避免频繁分配内存对象,触发垃圾回收GC ,造成卡顿

  • 业务逻辑
    优化业务逻辑,复杂操作工作尽可能放在服务端操作,减少浮点型、乘除法计算

  • 避免页面重复刷新
    页面刷新策略尽可能在最小范围内刷新,没有使用到的页面尽量不刷新,同时也要避免刷新过一次重复刷新,可使用缓存

  • 减少页面层级嵌套
    减少页面层级嵌套,防止过度绘制

  • 压缩、减小资源
    部分图片资源可以转为svg形式使用,大图加载用bitmap工具类进行采样压缩,重设RGB格式

  • 及时清理无用资源,释放内存
    bitmap、Cursor、IO流等

  • 使用系统提供的资源
    一些颜色、风格可以使用系统自带的,线程使用频繁可以使用线程池,增加复用,减少重新创建

  • 减小安装包体积

部分优化工具

  • GPU过度绘制调试工具

  • Android Memrory Montior内存监控工具

  • heap view 查看堆上的对象实例情况

  • 腾讯bugly 监控app崩溃异常情况

  • Systrace 收集和检测时间app各个阶段消耗时间

  • Hierarchy Viewer可视化界面布局层级

  • 严格模式strictMode

优化方法

  1. monkey压力测试
  2. 性能调优trace
  3. android studio的profile调试功能分别查看CPU/内存/电量调试
  4. monkey配合battery-historain电量调试功能

冷启动加速

  1. 多进程注意判断进程名,防止多进程正常进程业务
  2. 子线程初始化一些三分库,比较耗时的启动加载业务
  3. 优化启动页面的布局,简单布局层级
  4. 部分视图懒加载方式viewStub
  5. 优化启动的网络业务任务

内存优化

  1. bitmap压缩- 质量压缩、采样率压缩、缩放压缩, RGB565
  2. 多次使用图片最好进行缓存
  3. 自定义组件时,业务上不要一次性加载所有状态图片,及时recycle
  4. hashmap使用arraymap
  5. 内存泄漏,主页生命周期是App的长周期

电量优化

  1. 第三方库一些日志接口,特殊处理去掉
  2. 重复刷新
  3. 及时关闭对硬件资源的使用

异步初始化组件

** 梳理业务逻辑,延迟初始化组件、操作 **
** 正确使用线程;**
** 去掉无用代码、重复逻辑等。**

电量优化

  1. 第三方库有些心跳网络传输,如mob的log4日志传输,可以去掉传输
posted @ 2019-09-04 18:03  帅气好男人_jack  阅读(6)  评论(0编辑  收藏  举报  来源