为了账号安全,请及时绑定邮箱和手机立即绑定

Android的内存管理方式

标签:
Android

1、Android系统内存分配与回收方式

android 系统是多任务系统,通过分时复用的方式,多个应用可以同时在手机上运行
一个APP通常就是一个进程对应一个虚拟机
命令:adb shell ====>ps ====>dumpsys meminfo com.xxx.xxx.xxx
GC只在Heap剩余空间不够时才触发立即回收
GC触发时,所有的线程都是会被暂停

2、APP内存限制机制

每个APP分配的最大内存限制,随不同设备而不同
最大的吃内存大户:图片
APP为什么要限制内存?手机的内存是有限的

3、切换应用时后台APP清理机制

APP切换时后台是通过LRU Cache模式来处理的(LRU Cache算法:最近使用的排在最前面,最少可能的被清理掉)
onTrimMemory()方法:level
int memClass = activityManager.getMemoryClass();
int largeMemClass = activityManager.getLargeMemoryClass();
memClass 和 largeMemClass 一般情况是一样的值
清单文件里可以设置largeHaep值为true,但是,基本不会这样设置,设置了的意义也不大,而且在很多设备上设置是无效的
运行时总的内存Memory:total
运行时空闲的内存Memory:free
运行时最大的内存Memory:max
Float total=Runtime.getRuntime().totalMemory()1.0f/(10241024);
Float free=Runtime.getRuntime().freeMemory()1.0f/(10241024);
Float max=Runtime.getRuntime().maxMemory()1.0f/(10241024);
memClass = largeMemClass = max

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
14
获赞与收藏
101

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消