Link to home
Start Free TrialLog in
Avatar of ptreves186

asked on

android emulator problems


I know that the standard ARM emulator that comes with Android is pretty slow the first time it is started-up. I heard that I could setup inside a VirtualBox an Android image.
I have followed the following instructions:

However, when typing the command:

adb connect
unable to connect

Also, I found an Android 4.1 image that loads-up and runs great in the Virtual Box but I am unable to create a hard drive configuration under the Settings - Storage options.
The Android 2.3.3 image freezes at the point where it needs to install the linux kernal.

Suggestions as to what could be the problem ?

Avatar of alexey_gusev
Flag of United Kingdom of Great Britain and Northern Ireland image

with GPU support, why would you want to bother with VBox?
Avatar of ptreves186


I am not sure how that works. It looks like a new feature from Google.
Attached are 2 screen shots of an error I encounter when trying to setup android SDK in VirtualBox.

Suggestions ?

re GPU support, see eg

it was releases not that while ago, and it is really easy to add: select it just like you select eg SD card support when you build your emulator image. imho, it's MUCH easier than trying to battle with VBox. I didn't try the latest SDK revision (#20) yet, so maybe Google improved it even more.
Most of my experience with handroid has been with Android version 2.3.3.
The emulator is very slow to start-up. The snapshot feature helps on repeat start-ups.

My understanding that Android 4.0 introduced GPU support (ICS).
The latest Android revision is 4.1 (JellyBean).

That means that I would need to upgrade all my android projects to android 4.0 at least.
Of maybe create a new AVD (Android Virtual Device) supporting SDK revision for android 4.0.

no no, it's not ICS, it's the emulator, so it doesn't depend on the OS version.
if your hardware supports GPU then it works with all versions.
why dont you just try it? create new AVD and select GPU support and see what happens ;)
I think GPU stands for Graphics Processing Unit.

emulator -avd em41fast -gpu on
emulator: ERROR: Snapshots and gpu are mutually exclusive at this point. Please turn one of them off and restart the emulator.

emulator -avd em41fast -gpu on
WARNING: Data partition already in use. Changes will not persist!
WARNING: Cache partition already in use. Changes will not persist!
Failed to create Context 0x3005
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
emulator: emulator window was out of view and was recentered

The emulator comes-up but remains black. I don't see the typical android keyword or the color display that I expect with android 2.3 (I know the grahics display is different with android 4.0, 4.1).

are you using Eclipse? I think you're trying too much here :)
via AVD Manager in Eclipse, create new AVD for 2.3.3 with GPU support selected and just start it. you don't need a snapshot actually, it remembers the data etc etc
Yes, I am using eclipse. THis is the command line output I get:

emulator -avd em233 -gpu on
Failed to create Context 0x03005
emulator: WARNING: Could not initialize OpenlES emulation, using software renderer.
emulator: emulator window was out of view and was recentered

These are the AVD Properties I have set:
Abstracted LCD density:         240
Max VM application heap size:    96
Device ram size:               1024
GPU emulation:                  yes

This works.
However with android 4.0/4.1. I only get to "android" display.
I don't get to the point of seeing the color display.
I have been making progress.
At this point, I have installed Android 4.0 ICS in the Virtual Box and can reboot in (DEBUG) mode. I have read that I need to bring the ethernet adapter UP to allow me to connect an Android Debug Bridge from Eclipse.

I have tried the following series of Linux Korn Shell commands:

I have used the netcfg command to list all the network interfaces available, all have IP except for one which has the loopback IP

netcfg ifb0 dhcp
netcfg ifb0 up

But my IP is still:

Suggestions ?

try to assign static IP
Avatar of simonet
Since you`re running Windows, forget about all that`s been said above. Everything.

Since the last 2 updates of the ADK, Intel and Google teamed up to provide a x86 image for the emulated that benefits from the Intel Virtualization instructions present in most Intel CPU from the Intel Core forward.  So, if you CPU supports CPU Virtualization, you can run an Android image in native x86 code and still using native GPU emulation.

Here`s how:

(there are other x86 images for the emulator other than the one listed in Intel`s example. I am at this very moment developing my apps on an ICS 4.03 x86 emulator and it is extremely fast. All the images are available in the Android SDK Manager from within Eclipse).

More info here:

Also, if you google for "android x86 emulator", or Android atom emulator, there will be tons of articles about how to optimize the emulator performance on Windows machines.

My emulator is running as fast as my Galaxy S3.

Another thing: testing your apps on an Atom/x86 emulator image has nothing to do with how compatible it will be with Arm devices. After all, the same Java bytecode that will run on an Atom emulator or device, will run just as well on an Arm emulator or device.

Check this too (Intel Hardware Execution Manager how-to):

and this :
wow, great post!

Thanks for your very informative post. I am learning alot.
I would expect that my laptop an Intel Atom would support HAXM but it looks like it does not. (as per screen shots attached).

I managed to install the Intel Atom x86 image and create a corresponding AVD but am unable to install the HAXM driver from Intel.

Can this still work ?
When running the AVD it stops at the "android" display on a black background.
Pressing the Home, Menu or Back buttons on the emulator does not do anything.

Suggestions ?

This is as far as I get.
Check in your computer`s BIOS if the virtualization feature is enabled. If it isn`t, do enable it and then try reinstalling HAXM.

Even if it is not supported by the CPU, running the Atom x86 emulator image without HAXM is already a lot faster than the original ARM image.
Thanks for the info.
I have check my laptop BIOS and I do not see any Virtualization option.
This is what I get:

CPU Type   Intel(R) Atom(TM) CPU N270 @1.60GHz
CPU Speed 1.60 GHz

HDD Model Name  ST9160314AS
HDD Serial Number  5VC9JCZ4

System BIOS Version  V1.10
VGA BIOS Version  Intel V1585

Product Name LT20
Manufaturer Name Gateway
SATA Mode:    AHCI

I don't see any option to ENABLE Virtualization.
I did install the Android_x86 image and it works without the HAXM driver.

Avatar of alexey_gusev
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial