|
Adobe Flash / AIR large memory footprints on Android platforms |
This article examines how much memory footprint Adobe software needs to run on the Android platform, and the issue that arises because of it.
How Android memory works
To understand the issue we need to look at home Android memory works, I've written an article here that goes into detail about it.http://www.mccran.co.uk/index.cfm/2011/1/14/How-Android-application-memory-works
Adobe Flash and Adobe AIR
Applications built using either of these two technologies do not inherently run on the Android platform.
Playing Flash movies or running AIR applications requires you to install specific interpreter applications, namely Flash player and the AIR runtime platform.
Installing either of these obviously requires installation space (RAM) and memory space (ROM) to allow them to run on your Android device.
In a desktop environment this is not an issue as you effectively have unlimited storage space, and virtually unlimited memory based on internal RAM and the page file system (using internal storage space as temporary memory).
When we compare this to installing these applications on the Android platform the problem becomes apparent.
After installing Adobe Flash player I can see in my system settings that it has an 11.29mb memory footprint. Adobe AIR is even larger at a 16.34mb memory footprint. So together they have a combined memory usage of 27.63mb. That is 18.71% of your total available memory. Bear in mind that this is just for the Adobe applications, not any of the applications you actually want to run!
This leaves you with only 119.99mb of total free system ROM. Android systems effectively shut down when they reach less than 15mb of ROM space available. At 15mb free you will get a system message telling you that you are nearly out of memory and synchronisation routines stop working. At less than 8mb all system services shutdown.
Taking this into account means that after installing Flash player and AIR you only have around 100mb of system memory to actually run applications in.
On a platform that I'm already struggling to fit all my useful applications on the amount of memory these two applications use is simply too much, so they've had to come off.
It would be nice to see truly lightweight mobile versions of Adobe Flash and AIR.
HTCs Desire HD has 1GB effective space for apps (I used one for 2 months while testing for work, it's the only feature I missed over my Desire), and Galaxy S afaik has about 1.5GB for apps.
Hopefully future versions of Android will provide a more efficient use of the SD space. Personally I went to the step of rooting my Desire and installing a custom image for the sole purpose of making a 512MB ext3 partition on the SD, and using that for the dalvik etc so I can have more space for apps.
I thought it was more an Android restriction, not a hardware one. That makes rooting it a really viable option, as I'm fed up juggling apps to accomodate the low memory warnings.
Before I turn to Google do you have any handy links based on your experience rooting it?
http://www.fjetland.com/blog/post.cfm/droids-in-sp...
So far I'm very happy with it, but there are some things worth being aware of. First of all, you'll still appear to have only about 150MB space for apps available. But as you start to install apps, they'll consume much less space than they're "supposed to", I assume this is due to storage redirection to the partition on the SD happening at a lower level. You won't get unlimited space with my process, but I figure I have about 2-3 times more room now than before I rooted it. There might be even better images and setups.
* Remember part of the system is now on the SD. That means the SD card stays in when the phone is on. Always.
* I notice some system slowdowns during app installation, and Market occasionally crashes after uninstalling apps. again I suspect the SD card and redirection. My SD is only a class 2 card, it could be the card speed that's causing issues.
* occasional general lag. I've been running SetCPU since I rooted the phone with some pretty aggressive settings to increase battery life. I expect this could be the caused by that - or the card speed. On the other hand you can also overclock your CPU for excellent performance. It hasn't bothered me enough to remove SetCPU profiles yet.
I still might try other ROM's, but so far I'm very happy with LeeDroid