manifest中的largeHeap是干什么用的?
来源:互联网 发布:.net java 编辑:程序博客网 时间:2024/04/29 12:23
今天群里有人讨论怎么给app分配超过100M的内存,有人亮出了largeHeap参数。搜搜资料写写代码,大概有些了解。以我的手机htc one x为例说明一下
先看机器的内存限制,在/system/build.prop文件中:
dalvik.vm.heapsize=128mdalvik.vm.heapgrowthlimit=64m这里,heapgrowthlimit就是一个普通应用的内存限制,用ActivityManager.getLargeMemoryClass()获得的值就是这个。而heapsize是在manifest中设置了largeHeap=true之后,可以使用的最大内存值。
下面做实验,不停地解码图片到内存,看多少会爆掉:
当largeHeap=false时:
04-08 17:18:50.169: E/dalvikvm(25460): Out of memory: Heap Size=60451KB, Allocated=51973KB, Limit=65536KB
当largeHeap=true时:
04-08 17:21:06.934: E/dalvikvm(24787): Out of memory: Heap Size=130851KB, Allocated=122377KB, Limit=65536KB
结论就是,设置largeHeap的确可以增加内存的申请量。但不是系统有多少内存就可以申请多少,而是由dalvik.vm.heapsize限制。
建议:Android官方给的建议是,作为程序员的我们应该努力减少内存的使用,想回收和复用的方法,而不是想方设法增大内存。当内存很大的时候,每次gc的时间也会长一些,性能会下降呦。
- manifest中的largeHeap是干什么用的?
- manifest中的largeHeap是干什么用的?
- manifest中的largeHeap是干什么用的?
- manifest中的largeHeap是干什么用的?
- manifest中的largeHeap是干什么用的?
- manifest中的largeHeap是干什么用的?
- android--manifest中的largeHeap是干什么用的?
- sass中的sourcemaps是干什么用的
- oracle的SQL语句中的(+)是干什么用的?
- oracle的SQL语句中的(+)是干什么用的?
- 数据库执行语句中的@是干什么用的?
- 请问示波器中的trigger是干什么用的
- js中的eval 函数到底是干什么用的
- 安卓manifest中的android:largeHeap="true"作用
- ?????????这是干什么用的?
- 显卡是干什么用的?
- 花生壳是干什么用的
- PatternCompiler是干什么用的
- Web 即时通讯
- 【初学EXT】布局
- codeforces 294B Shaass and Bookshelf
- vc屏蔽回车键解决自动退出程序问题
- 一个很好的blog---Nginx开发从入门到精通
- manifest中的largeHeap是干什么用的?
- 深入浅出Linux设备驱动同步、互斥
- Android获取文件夹路径 /data/data/
- Facebook的API的一些说明
- JAVA数据库编程——JDBC(二):插入时间字段,显示小时分钟秒
- ASP.NET - Repeater 控件
- DB2的SQLCODE和SQLState相关解释
- ASP .NET - XML 文件绑定到List
- android开源库