Let's first understand the concept of RAM, technically speaking RAM (Random Access Memory) is a volatile storage used to hold data. It can be thought as a big filing cabinet that keeps things on ready to go state for the CPU to use. It's almost infinitely very fast, re-writable, and used differently by different operating systems.
Check here - Why octa core is note better than quad core?
In mobile phones, when the user is not actively using an app, the system moves it to the background state. For many apps, the background state is just a brief stop on the way to the app being suspended. Suspending apps is a way of improving battery life it also allows the system to devote important system resources to the new foreground app that has drawn the user’s attention.
Strictly Speaking, Apps don't use more RAM in Android than in iPhones. Same apps tend to use almost same amount of RAM in both the devices. The differences come mainly when the app goes to the background, i.e When the app is minimized or when you press the home button. That's where the difference in RAM Management kicks in.
Here the RAM in most popular Android phones and iPhones :
|iPhone and Android RAM Size|
Most apps can move to the extended state easily enough but there are also legitimate reasons for apps to continue running in the background. An audio app might need to continue playing music over the lock screen. Other apps might want to download content in the background so that it can minimize the delay in presenting that content to the user. When found necessary to keep a app running in the background, iOS helps to do so efficiently and without draining system resources or the user’s battery.
The techniques offered by iOS fall into three categories:
- Apps that start a short task in the foreground can ask for time to finish that task when the app moves to the background.
- Apps that initiate downloads in the foreground can hand off management of those downloads to the system, thereby allowing the app to be suspended or terminated while the download continues.
- Apps that need to run in the background to support specific types of tasks can declare their support for one or more background execution modes.
Note - Having more RAM has it's merits, we will discuss than in the end of this Article.
1. What Apple does is always try to avoid doing any background work unless doing so improves the overall user experience. Apple does this efficiently and android follows another path. An app might move to the background because the user launched a different app or because the user locked the device and is not using it right now. In both situations, the user is signaling that your app does not need to be doing any meaningful work right now. Continuing to run in such conditions will only drain the device’s battery and might lead the user to force quit your app altogether.
2. Android has Garbage Collection, iOS doesn't. So what is garbage collection? It’s a process that recycles memory once an Android app is done using the memory. This works pretty well on devices that have a lot of free RAM, but if a lot of apps are running in the background, things get dicey and hence the more RAM.
3. One of the main reason why Android is laggy is because of the way it treats UI rendering. On iOS UI rendering is done in a separate thread with real-time priority, on Android this happens in the main thread with normal priority. This of course means that other apps can take over your processor resources and hurt basic UI interactions, translating into a noticeable lag. You can check it out in real time with iPhone and Android's default browsers, if you tap and hold into the Safari window while it’s loading a webpage, the loading process stops, as UI rendering has the highest priority and takes over. The result is that the webpage will not load until you lift your finger off, but the UI will remain buttery smooth all the time. Android has a radically different approach - it will try to maintain a reasonable response rate for the UI and load the webpage, but often the frame rates would drop causing a visible lag.
So practically we can conclude that iOS doesn’t require less memory than Android or that Android needs more memory that iOS, it simply means that iOS has a better mechanism for handling the background apps and better scheme for re-purposing memory. In general it seems that Android apps that have moved to the background just sit there in their entirety and occupy almost the same amount of RAM they did when they were running in the foreground. On iOS quite the opposite is true, background apps occupy much less memory but the OS saves just enough of the app so that when the app is switched into the foreground again it is instantly available.
But less RAM in iPhones do have it's drawback, where it's most prominent is in the split view multitasking support. When we are running two apps side by side then neither of the app can reduce it's memory requirements. Since apps in Android and iOS use roughly the same amount of RAM then the 2GB on the iPad Air 2 or the iPad mini 4 is really not enough.
So OEMs typically just add an extra 1 or 2GB of memory, to counter the way Android handles background apps. That is a perfectly viable solution, however I would definitely love to see Android (i.e. Linux) handle background apps more efficiently and differently than it does today.
Please let me know what are your thought and which one of the memory management schemes you prefer!
Find Out why Octa Core is not Better than Quad Core.