相关疑难解决方法(0)

应用可以使用的最大RAM量是多少?

我对这个关于Android操作系统内存管理的问题很好奇,所以我希望对这个主题有一个非常详细的答案.

我想知道的是:

  • Android应用程序(不是系统应用程序)可以使用的最大内存量(以兆字节 / 占总RAM的百分比)是多少?
  • Android版本之间有什么区别吗?
  • 有关设备制造商的任何差异吗?

最重要的是:

  • 当系统确定应用程序在运行时可以使用多少RAM时(假设每个应用程序的内存最大值不是静态数字),它是什么/它取决于什么

到目前为止我所听到的(直到2013年):

  • 早期的Android设备每个应用上限为16MB
  • 后来这个上限增加到24MB或32MB

是什么让我很好奇:

这两个限制都非常低.

我刚刚下载了Android任务管理器来检查我的设备RAM.我注意到有些应用程序使用大约40-50兆字节的RAM,这比上面提到的最大RAM使用量(比如说32 MB)要多得多.那么Android如何确定应用程序可以使用多少RAM?应用程序如何超出此限制?

此外,我注意到当使用大约30-40兆字节时,我的一些应用程序崩溃(被系统杀死?)和OutOfMemoryException.另一方面,我的手机上运行的应用程序使用100 MB以上的一段时间后(可能由于内存泄漏)不会崩溃或被杀死.因此,在确定可以节省多少RAM时,显然还取决于应用程序本身.这怎么可能?(我用带有768 MB RAM的HTC One S进行了测试)

免责声明:我不以任何方式与Android任务管理器应用程序相关联.

memory android memory-management out-of-memory android-memory

140
推荐指数
3
解决办法
6万
查看次数

存储内存占用少的大字典+快速查找的方法(在Android上)

我正在开发一个需要大量(~25万字词典)的安卓文字游戏应用程序.我需要:

  • 合理快速查找例如恒定时间更好,需要每秒执行200次查找以解决单词拼图,并且可能更频繁地在0.2秒内进行20次查找以检查用户刚刚拼写的单词.

编辑:查询通常会问"在字典中吗?".我想在这个单词中支持最多两个通配符,但这很容易,只需生成通配符可能存在的所有可能的字母并检查生成的单词(即26*26查找带有两个通配符的单词) .

  • 因为它是一个移动应用程序,使用尽可能少的内存并且只需要少量初始下载字典数据是首要任务.

我的第一次天真尝试使用了Java的HashMap类,这导致了内存不足异常.我已经研究过使用android上可用的SQL lite数据库,但这看起来有些过分.

做我需要的好方法是什么?

java algorithm complexity-theory android data-structures

22
推荐指数
2
解决办法
1万
查看次数