Saturday, June 30, 2012

Speeding Up the Android Emulator

Here are several tips explaining methods I've discovered for improving the performance of the Android AVD:

1. Enable Snapshot: Navigate to the AVD Manager in Eclipse via Window->AVD Manager. Select your AVD of choice and click Edit. Within the Snapshot section, fill the checkbox near Enabled.

2. Lower the Resolution: Inside the same screen where we changed Snapshot, select the bubble next to Built-in within the Skin section. From the adjacent drop-down, select QVGA. This is the lowest resolution natively offered by Android (240 x 320). I do not recommend going lower than this, as it may cause visual aspects to begin to come askew. 

3. Change Device RAM Size: Inside that same screen, under Hardware, you can configure Device RAM Size to whichever value you'd prefer. Obviously a greater RAM dedication will increase the performance of the AVD, but will also decrease the performance of all your other processes.

Your settings should now look something like this:

I do not advise messing around with the Abstracted LCD density or the Max VM application heap size, as these can cause some instability in the screen refresh rate and the memory usage, respectively.

Thursday, June 14, 2012

Three Things Android Could Learn From the iPhone Emulator:

1. Having a leaner emulator does pay off in the long run: I understand that I can leave the AVD running once I initially start it, but I still don't feel it's entirely necessary for the first boot up to take as long as it does. And if Android insists on sticking with this level of speed, why should I manually have to adjust the resolution of the emulator for best performance? I feel this is something that could easily be automated.

2. There is no need to include a special "snapshot" feature: I shouldn't need to special request the snapshot feature in order to expedite the emulator boot up – it should be turned on by default, and I should instead have to deactivate it in the rare case that I want a completely clean build. It also wouldn't hurt for it to be considerably less buggy (see next point).

3. I shouldn't need to wipe user data or reset the AVD to get it to run: Way too often it happens that I get error messages when I first start up Eclipse and try simply to run my code. These error messages claim that the snapshot is already in use. So instead, to fix this, I have to open up the AVD Manager and proceed to wipe user data before I can get a proper AVD boot up. Sometimes, if this doesn't do the trick, I have to also reset the adb before I can finally get through to the emulator. I believe that all this should happen behind the scenes, without the user's knowledge.

I am certain that Google is already aware of most of these issues and is working diligently to fix them for the next release. I'd like to make it clear that I am no Apple fan-boy, only an individual who has happened to use both environments and doesn't see the reason for the discrepancy in performance. Other than the above points, I believe the Android SDK is a very potent tool with much to offer to developers.

Search This Blog