Memory limit for Android / iOS apps (clarification) and Adobe Air

I searched these forums for the idea of ​​memory limitations imposed on applications created using the SDK flex and running on Android / iOS. I reviewed the following posts here:

From what I understand, there is a limit of up to 32 MB for applications, however, launching the Adobe Air application on Android provided me with much more than 32 MB. I am pretty confused about these concepts of RAM, heap and "ROM". Aren't all the same? Basically, I would like to know how much "RAM" can access the process?

From my test on Android, I assumed that this is the sum of the following elements:

  • The memory capacity is 32 MB.
  • Shared memory recovered by the OS by destroying lower priority applications (?).
  • The amount of free memory.

I also did some tests on iOS (an application packaged using the Flex SDK), and it seems that on the iPad (256 MB RAM) the application crashes after receiving about 150 MB RAM.

I would be grateful if someone could give me some clarification, I am mainly looking for answers to the following questions:

  • On Android, is this 16, 24, 32 MB limit per application still in place?
  • If so, does anyone know if the Air C runtime uses code to access additional RAM? (I will also check this on the Adobe forums).
  • If there is no limit or I misunderstood it, what is the actual maximum amount of "RAM" that a process can access, is it the sum of the element mentioned above, or is there some other formula?
  • Does anyone know the limitations on the iOS platform (maximum amount of RAM per application)?

Thanks.

+4
source share
2 answers

Yes, the memory limit for each application is still there. In android, each application has its own virtual machine instance and, therefore, its own heap memory (which is not shared with other applications) of a certain fixed size. The size of the heap memory allocated for the application is set by the manufacturer and, therefore, varies from mobile to mobile and ranges from 16 MB to 64 MB depending on the device. The heap size for a specific application can be doubled by including in the attribute of the manifest file android: largeHeap = "true" (although this is strongly discouraged). Therefore, I assume the Adobe Air application does this.

When you close the application, android doesn’t really kill it. The application runs in the background so that it can be downloaded quickly the next time it is opened. Thus, for each application, only part of the device’s RAM device is allocated, and therefore a hard limit for each application.

I don't know anything about iOS!

+4
source

I have a C ++ based iOS game that sometimes gets the opportunity to use too much of my iPad 1 256 MB of RAM and the OS stops. So the iOS limitation is basically an OS + application (presumably 160 MB). I must mention that I stop other applications when I launch it, although nothing is working in the background.

0
source

All Articles