Android应用如何使用> = 256Mb的RAM?

时间:2011-01-23 14:20:15

标签: java android memory mobile

据我所知,每部Android手机都限制所有应用程序的最大内存使用量约为16,24或32Mb。我刚看到有人讨论应用Dungeon Defenders,它似乎似乎使用了256 Mb的RAM。

应用程序描述:“最低要求:512 MB RAM(运行时256个可用)” http://www.appbrain.com/app/dungeon-defenders%3A-first-wave/com.trendy.ddapp

如何让这款游戏在Droid上运行的指南(需要自定义ROM才能获得256Mb的RAM免费运行游戏): http://www.forums.trendyent.com/showthread.php?447-How-to-play-Dungeon-Defenders-on-your- 摩托罗拉的Droid-Milestone-(需要根)

这怎么可能?有谁知道这里发生了什么?访问那么多RAM会使某些我正在编写的项目更容易编写,所以我很想知道这个游戏在做什么。

4 个答案:

答案 0 :(得分:1)

在德国柏林的droidcon上,我听说你无法增加应用程序在dalvik端使用的RAM量。你可以使用本机端的所有可用内存,所以我猜这个命名的应用程序已经使用NDK在C中实现了大量内存。这是我所知道的唯一可能的解决方案......

更新这不是会议,是我和Reto Meier及其同事一起访问我大学的Google实验室。

答案 1 :(得分:0)

据我所知,Android自2.2版以来可以使用超过256MB的RAM 然而,大多数手机显示的功率低于它们,因为系统总会保留一些Ram。

答案 2 :(得分:0)

我正在为我的应用程序使用NDK。对于我的测试设备,当我超过16mb限制(HTC magic,android 2.2)时,应用程序崩溃,系统抛出无效地址访问的异常。 所以不,你不能从原生方面或从java管理方那里使用你想要的所有内存。

我已经阅读过使用不同的.so库并在运行你的应用程序时加载它们,但我不知道它是如何工作的,或者它是否是一个可行的解决方法。有什么建议?

答案 3 :(得分:0)

如果您不需要实时渲染图像,答案很简单,只需将图像发送到服务器,使用一些图像处理命令,将其渲染回来,然后将其发送回Android。如果您的应用程序需要大于256MB的内存,那么您将严重限制很多受众,这并不好。