我对这个与Android操作系统的内存管理有关的问题感到非常好奇,因此我希望就该主题提供一个非常详细的答案。
我想知道的是:
Android应用程序(非系统应用程序)可以使用的最大内存量(兆字节 / 占总RAM的百分比)是多少?
Android版本之间有什么区别吗?
关于设备制造商有什么区别吗?
最重要的是:
什么被视为/ 这是什么取决于当它涉及到系统中确定多少内存的应用程序可以在运行时使用(假设每个应用程序的内存最大是不是一个静态的数字)?
到目前为止(截至2013年)我所听到的:
早期的Android设备的每个应用上限为16MB
后来这个上限增加到24MB或32MB
是什么让我非常好奇:
这两个限制都非常低。
我刚刚下载了Android任务管理器,以检查设备的RAM。我已经注意到,有些应用程序使用大约40-50 MB的RAM,这比上面提到的最大RAM使用量(例如32 MB)要明显得多。那么Android如何确定一个应用可以使用多少RAM?应用程序怎么可能超过该限制?
此外,我注意到当使用大约30-40 MB时,我的某些应用程序崩溃了(被系统杀死了?),并出现OutOfMemoryException。另一方面,一段时间后(可能是由于内存泄漏),我的手机上使用的应用程序使用的内存为100 MB以上,并且不会崩溃或消失。因此,在确定可以保留多少RAM时,显然还取决于应用程序本身。这怎么可能?(我使用具有768 MB RAM的HTC One S进行了测试)
免责声明:我不以任何方式与Android Task Manager应用关联。
一只萌萌小番薯
相关分类