Android 内存优化

优化方案:
代码数据总量:
代码混淆(缩小代码)、数据序列化(google ProtocolBuffer,可节省30%的数据大小)
注:慎用sharedPreferences,为了读一个数据,就将整个xml文件(例如:几百k的数据)读进内存,容易出错

数据结构:使用性能高的数据结构,SparseArray、HashMap

数据类型:使用内存占用小的数据类型,避免使用枚举

数据对象引用:根据不同场景,使用不用引用类型(强 软 弱 虚)
软引用:缓存机制,即实现内存敏感的数据缓存,如图片、网页缓存
虚引用:防止内存泄露,保障对象引用

----------------------------------------

# 性能优化

优化方向:流畅性、稳定性、资源节省性

-流畅性

启动速度:采用 异步加载(多线程)、分步加载、延期加载的策略,减少启动应用时加载的任务页面加载数据
响应速度

导致ANR的时间:

  1. 用户操作无响应超过5s
  2. 网络、数据库阻塞10s 广播接收者执行10s
  3. 服务在20s内无法处理完成 20s

- 稳定性

优化方向:Crash、ANR
ANR:(响应速度慢)使用多线程,将大量耗时操作放在子线程中执行
Crash:应用Crash很多情况是因为OOM

- 资源节省性

1.内存大小(内存优化)

  1. 避免内存泄露
  2. 避免内存抖动:避免频繁创建大量、临时、小的变量、局部对象
  3. Bitmap优化:释放资源、适配屏幕、解码方式、图片缓存
  4. 提高代码质量 & 减少代码数量
  5. 日常不正常使用:尽量少用多进程、依赖注入框架等

2.安装包大小

  1. 资源优化
  2. 减少不必要的库
  3. 代码混淆
  4. 插件化

减少网络流量:
使用缓存
采用三级缓存:内存缓存> 本地缓存> 网络缓存

减少耗电量:

ML (Memory Leak):指 程序在申请内存后,当该内存不需再使用 但 却无法被释放 & 归还给 程序的现象
OOM:应用程序所需的内存,超出了系统为其分配的内存限额的现象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值