Android(安卓)内存限制
16lz
2022-01-08
Android 内存限制
Android是一个多任务系统, 为了保证多任务的运行, Android给每个App可使用的Heap大小设定了一个限定值.
这个值是系统设置的prop值, 系统编译时内置的, 保存在system/build.prop中. 一般国内的手机厂商都会做修改, 根据手机配置不同而不同, 可以通过如下命令查看:
$ adb shellshell@hwH60:/ $ cat /system/build.prop
以手头的Huawei 荣耀6为例, heap size相关的prop如下:
dalvik.vm.heapstartsize=8mdalvik.vm.heapgrowthlimit=192mdalvik.vm.heapsize=512mdalvik.vm.heaptargetutilization=0.75dalvik.vm.heapminfree=2mdalvik.vm.heapmaxfree=8m
其中:
dalvik.vm.heapstartsize
– App启动后, 系统分配给它的Heap初始大小. 随着App使用可增加.
dalvik.vm.heapgrowthlimit
– 默认情况下, App可使用的Heap的最大值, 超过这个值就会产生OOM.
dalvik.vm.heapsize
– 如果App的manifest文件中配置了largeHeap属性, 如下.则App可使用的Heap的最大值为此项设定值.
"true"> ...
– 当前理想的堆内存利用率. GC后, Dalvik的Heap内存会进行相应的调整, 调整到当前存活的对象的大小和 / Heap大小 接近这个选项的值, 即这里的0.75. 注意, 这只是一个参考值.
dalvik.vm.heapminfree
– 单次Heap内存调整的最小值.
dalvik.vm.heapmaxfree
– 单次Heap内存调整的最大值.
也可以直接使用getprop查看单项prop:
$ adb shell getprop dalvik.vm.heapsize
512m
更多相关文章
- 【Android(安卓)开发】:UI控件之 ListView 列表控件的使用
- android sql详细使用
- Android(安卓)getText(@string/a)和直接使用字符的区别
- android简单实例-----------------使用SQLiteOpenHelper以及SQLi
- Android伸手党系列之四:Android项目开发常用技术
- Android(安卓)Hilt的使用以及遇到的问题
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用