Android/iOS应用程序内存限制(澄清)&;土坯空气
我一直在这些论坛上寻找一个关于内存限制的想法,这些内存限制适用于使用FlexSDK创建并运行在Android/iOS上的应用程序。 我在这里查看了以下帖子:Android/iOS应用程序内存限制(澄清)&;土坯空气,android,ios,memory,air,Android,Ios,Memory,Air,我一直在这些论坛上寻找一个关于内存限制的想法,这些内存限制适用于使用FlexSDK创建并运行在Android/iOS上的应用程序。 我在这里查看了以下帖子: 据我所知,应用程序的最大容量限制是32MB,但在Android上运行AdobeAIR应用程序给了我超过32MB的空间。 对于RAM、堆和“ROM”的这些概念,我感到相当困惑。这些不都一样吗? 基本上,我想知道的是一个进程可以访问多少“RAM” 根据我在Android上的测试,我假设它是以下各项的总和: 32 MB的堆空间 操作系
- 32 MB的堆空间
- 操作系统通过杀死低优先级应用程序回收的共享内存(?)
- 可用内存量
谢谢。是的,每个应用程序的内存限制仍然有效。在android中,每个应用程序都有自己的VM实例,因此也有自己的堆内存(不与其他应用程序共享),具有一定的固定大小。分配给应用程序的堆内存大小由制造商设置,因此不同移动设备的堆内存大小不同,根据设备的不同,堆内存大小在16MB到64MB之间。 通过在manifest file属性中包含android:largeHeap=“true”,可以将特定应用程序的堆大小增加一倍(尽管强烈建议您这样做)。所以我假设“AdobeAIR”应用程序就是这样做的 当你关闭一个应用程序时,android并不会真的杀死它。该应用程序在后台运行,以便下次打开时可以快速加载。因此,我们设备的RAM只有一部分分配给每个应用程序,因此每个应用程序都有硬限制
不过我对iOS一无所知我有一个基于C++的iOS游戏,它有时会占用太多的iPad 1的256MB RAM,而它会被OS阻止。因此,对iOS的限制基本上是OS+应用程序(估计160MB)。必须提到的是,我在运行其他应用程序时会停止运行,这样就不会有其他应用程序在后台运行。对于iOS小于4.0的应用程序,每个应用程序的限制是40Mb。在4.1上,我可以看到使用仪器时,一个应用程序将在60MB时停止。但不能提供任何官方文件。