Android App性能优化之内存优化实践

题记:

APP性能优化之内存优化三步论:这是为什么呢?怎么干?开始干

为什么要进行内存优化

1.APP运行内存限制,OOM导致APP崩溃。
2.APP性能:流畅性,响应速度用户体验

学习路线

Android的内存管理方式
1.Android系统内存分配与回收方式
一个APP通常就是一个进程对应一个虚拟机
GC只在heap剩余空间不够时才发出垃圾回收
GC触发时,所有的线程都会被暂停
2.APP内存限制机制
每个APP分配的最大内存限制,随设备的不同不同
吃内存大户:图片
为什么限制? Android系统是多任务系统
3.切换应用时后台APP清理机制
APP切换时的LRU Cache (该算法是最近使用的排在最前面,后台清理的时候按照使用时间来排序)
onTrimMemory()回调方法
4.监控内存的几种方法
方式一:AS监控 Android monitor工具

这里写图片描述

方式二:Android device monitor

这里写图片描述
这里写图片描述

APP内存优化方法
数据结构优化
频繁字符串拼接用StringBuilder
ArrayMap,SparseArray替换HashMap
内存抖动
再小的class耗费0.5KB
HashMap一个entry需要额外占用的32B(后面两个可以我们自身通过减少亢沉代码)
对象复用
复用系统自带的资源(能复用尽量复用)
ListView GridView recycleview的ConvertView(减少convertview的复用)
避免在onDraw方法里面执行对象的创建
避免内存泄漏有哪些方法
内存泄漏:由于代码质量瑕疵,导致这块内存,虽然停止没用了,但依然被其他东西引用,导致GC没发对其回收。
尤其Activity泄漏
使用application context 而不是 activity context
注意指针Cursor对象是否及时关闭

实践

OOM问题优化
OOM为题分析
强引用,软引用的意义
优化OOM问题的方法

实践

查看APP内存的方法和工具
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值