我对这个关于Android操作系统的内存pipe理的问题非常好奇,所以我希望对这个问题有一个比较详细的回答。 我想知道的是: 什么是Android应用程序(不是系统应用程序)可以使用的最大内存量 (以兆字节 /占总内存的百分比 )? Android版本有什么区别? 有关设备制造商有任何分歧吗? 最重要的是: 考虑哪些“副因素” /当系统确定应用程序在运行时可以使用多lessRAM(假设每个应用程序的最大内存不是静态数)时, 它依赖于什么 ? 到目前为止我所听到的(直到2013年): 早期的Android设备的每个应用程序上限为16MB 后来这个上限增加到24MB或32MB 什么让我非常好奇: 这两个限制都非常低。 我刚刚下载了Android任务pipe理器来检查我的设备RAM。 我注意到,有些应用程序使用大约40-50兆字节的RAM,比上面提到的最大RAM使用量要多32MB。 那么Android如何确定应用程序可以使用多less内存? 应用程序如何超过这个限制? 此外,我注意到,使用大约30-40兆字节时,我的一些应用程序崩溃(系统死亡?)与OutOfMemoryException 。 另一方面,我有一些应用程序在我的手机上运行一段时间(可能是由于内存泄漏),使用100 MB或更多 ,不会崩溃或死亡。 所以显然也取决于应用程序本身,当涉及到确定有多less内存可以保留。 这怎么可能? (我用768 MB RAM的HTC One S进行了testing) 预先感谢您的解释。 免责声明:我不以任何方式附属于Android任务pipe理器应用程序。
最近我遇到了我的Web应用程序中的这个错误: java.lang.OutOfMemoryError:PermGen空间 这是在Tomcat 6和JDK 1.6上运行的典型的Hibernate / JPA + IceFaces / JSF应用程序。 显然这可能会在重新部署应用程序几次之后发生。 是什么原因造成的,为避免这种情况可以采取什么措施 我如何解决这个问题?