android程序最大内存大小,关于android中最大堆大小和可用内存的两个问题

早期的设备的每个应用的上限为16MB。后来的设备增加到24MB。未来的设备可能会有更多的可用性。

该值反映了设备上可用的物理内存和显示设备的属性(因为能够显示更多颜色的较大屏幕通常需要较大的位图)。

编辑:其他的…

我不久前读了一篇文章,指出垃圾收集分配器本质上是对具有无限内存的机器进行建模。你可以分配尽可能多的,它会照顾细节。 Android主要以这种方式工作你坚持参考你需要的东西,软/弱参考你可能没有的东西,并丢弃对你永远不会再需要的东西的引用。 GC全部排除。

在你特定的情况下,你可以使用软引用来保持内存中不需要的东西,但是如果有足够的空间,那么就要保留。

这开始与位图分开,主要是因为一些早期的设计决策导致了“外部分配”机制。此外,软参考机制需要一些调整 – 初始版本倾向于保留所有内容或丢弃所有内容。

Dalvik堆正在积极发展(参见例如Android 2.3“Gingerbread”上的笔记,其中引入了一个并发GC),因此希望在未来的版本中解决这些问题。

编辑:更新…

4.0“冰淇淋三明治”中的“外部配置”机制消失了。 Bitmaps的像素数据现在存储在Dalvik堆上,避免了早期的烦恼。

最近的设备(例如Nexus 4)将堆大小限制在96MB以上。

从ActivityManager.getMemoryClass()可以获得应用程序内存限制的一般意义,作为“内存类”。 java.lang.Runtime函数maxMemory()可以获得更具体的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值