I am using 'android studio' for first time . Trying to run emulator but its take hours , doesn't show android mobile. Only its showing 'Android' in large text.
I read many blog and article , including
How to fix: "HAX is not working and emulator runs in emulation mode"
But still don't have solutions.
Any help please.
Thanks
The HAXM memory limit has to cover more than the memory assigned to you virtual device.
According to the log above, the amount of memory assigned to the device ("AVD RAM size", set to 1536MB) exceeds the memory limit of HAXM ("Max RAM size", currently set to 512MB). You have to adjust that: by running the HAXM installer, you can set the "Max RAM size" limit to 2048MB (or more should your physical machine be able to handle that) instead of the 512MB currently handled.
-> HAXM installer documentation: for Windows - for MacOS X
If your physical machine cannot afford assigning 2048MB or more to HAXM, assign as much as you reasonably can to HAXM (mine is 1024MB), and assign less memory to your virtual device. Be careful though, on my side I couldn't have a API 23 emulator running well with less than 768MB assigned (and 64MB for the heap).
-> To change the memory settings of your virtual device, you have to go to the "Android Virtual Device (AVD) Manager", and then to edit your device. I highlighted this in the picture below.
I'm using Eclipse, but the process should be similar under Android Studio.
If you wish to work with Android Studio built in AVD then consider installing Intel x86 Emulator Accelerator (HAXM). To find it, open Tools>Android>SDK Manager, then scroll down on the screen to Extras. You will see it as a last option. This would speed up things for better.
Much better solution will be to use genymotion. You can install it for free and it's way faster.
https://www.genymotion.com/#!/developers/user-guide
Related
My sincere thanks for your reading this.
I have just installed Android Studio and am attempting to run the default Hello World! script that is present when you create a new project.
Every time I try to run the the program in an Android Emulator my Emulator crashes and I get the error "Android Emulator Closed Unexpectedly" Every. Single. Time.
I have the Intel x86 Emulator Accelerator (HAXM installer) installed as suggested:
I try to run a Nexus 4 emulator with 512 mb of Ram and it never works:
When I run this I get:
During this, my system physical memory peaks at 80% but never goes to 100 (which I would expect if it were crashing).
I have searched similar questions including
Android emulator crashing on Windows 7 64 Bit Android 4.0 emulator always has a crashing Launcher? Android studio emulator fails to start with memory limit related error message and they say to lower the memory size (which is what I am trying to do). Unfortunately this isn't working
Any idea how I can solve this issue?
My computer specs are as follows:
64 Bit Windows
6gb Ram
Intel Core i3
I downloaded and installed all correct versions as instructed here: https://developer.android.com/studio/install.html
In my case, this issue took the whole weekend to solve.
All options I tried, until:
Android Development Studio prompted me to update the Android Emulator Version to 25.3.1 (no idea what it was on before as I didn't check this before). This was a download of ~170mb.
Once I downloaded and installed the update, the emulator now seems to run OK on low memory settings - settings in keeping with the answer to this question here: Android emulator generates a very annoying error
I am now running with settings:
RAM memory to 5012
Virtual heap 32
Internal storage 200 mb
External storage 64 mb
So basically, it was a complete fluke that this worked.
To anyone that gets this error after rooting the android image, (if using snapshots). You need to start the virtual device with the -writable-system parameter like when you rooted the device, excerpt from docs.
Snapshots
...Starting a virtual device by loading a snapshot is much like waking a physical from a sleep state, as opposed to booting it from a powered-off state.
I was also having the same problem, Every time I was starting Emulator, it was closing unexpectedly. then I tried to change the Emulator Performance in settings of AVD Managers; In Software it's not working but in Hardware it was showing blank black screen.
Then I realized, there might be some issue with Graphics Card(mine NVIDIA GeForce 940MX), It was showing this error
After Updating/Restarting the problem was not resolving, then I Disabled then Enabled the Graphics Card Driver in the Device Manager and It worked!!😊
LONG STORY SHORT: Check, the problem might be due to your Graphics Card!😐
in my case, i attempted using gennymotion [ you may install it asking google genymotion . com] this could serve as alternative.
if gennymotion after installation returns this error message "the version of openGl supported by your graphics card is too old:Genymotion requires at least openGl 2.0 support. "
then know our challenge is arising from not having required graphics driver
either you checkout this link [https://buffered.com/support/solve-opengl-error/] on how to resolve it in steps.
or you download the graphics drivers using the links below
Here are the links to the 4 most prominent graphics card manufacturers in the world:
Intel: http://www.intel.com/content/www/us/en/support/detect.html
restart your systems after installation of the appropriate graphics driver and continue your project .
I am using Android Studio with Intel HAXM. The problem is that the Android emulator takes too long to load and once it is loaded it is slow despite the Intel HAXM installation.
I just referred this question and below were my results
Android Studio startup is taking long
Result: The emulator is still slow even after loading it for a couple of times.
Intel HAXM configuration
Memory allocated: 1.9 GB(this is the max size as specified during the installation)
Status: Intel HAXM is working.
Android Studio
AVD Details
API Level:19
Android Version: 4.4.2
Please see the screenshot
System Configuration
Core i3 2nd gen
4 GB RAM
Please let me know if further details are needed.
I had the similar problem to you in the past, but its just down to your processor (i3) as it cant handle the emulator that well, you can debug/run your app on to an android phone or tablet. If you have either of these to hand you need to go to RUN ---> EDIT CONFIGURATIONS and change the target devices to 'USB device'. On the phone/ tablet you need to go in to developer options and turn on USB debugging, if this doesn't work check to see if you have the phones/tablets drivers installed. There are plenty of tutorials on youtube. Good Luck! :)
Because the emulator was really slow I installed the intel x86 emulator. I changed the settings in my emulator (ARM to intel atom). Now when I run a project it takes me to the emulator selection screen and when I select it, the project starts running, but the emulator doesn't pop up.
I tried switching the cpu back to ARM, but it still doesn't work.
When I close Android studio it asks me if I want to disconnect from the project so I'm sure it is running.
I came across a few posts that said to give the device 768 ram, but that didn't work.
Anyone knows a solution?
I was facing the exact same issue, but for me reducing the device RAM to 768 did fix it. Therefore I'd suggest continuing to decrease the RAM values and trying to launch it.
How about to use Rock speed Emulator - Genymotion?
I know it sometimes take time to launch emulator and launch app in emulator too. But it depends on your configuration of your PC and settings you have done in Eclipse or Android Studio.
For example: You may have kept "Build Automatically" ON and it sometimes slow down running time.
My current rep is not high enough yet to comment on another answer, so I am adding a new "answer" to +1 Paresh Mayani's answer to use Genymotion. I only recently discovered it and found it to be much much faster than the emulator. Instead of emulation it runs an Android rom in a VM using VirtualBox. I've found that it runs full speed on my machine and is just as fast in debug mode as normal mode, which is impressive since even my Nexus 5 struggles when connected to a debugger.
In my case also x86 was creating problem, I installed Android 5.0.1 armeabi-v7a and have set 768MB as RAM size and it worked.
Try to check and run the emulator ie. store a snapshot for faster startup...
I have tried that by checking the button and works fine.
If you're using an AMD machine try using the "ARM EABI v7 system image". For an intel chip use the "APIs Intelx86 Atom system image". Also, try a different tablet from the Android Studio settings e.g(Nexus 6), as the API level might not be supported from in the Nexus5 VM. You will also have a little wait time for the android emulator, mine takes about 7mins
I've successfully installed the Intel AVM for Jelly Bean v4.1, and I can create and start an Intel x86 AVM. However it's just as slow as the ARM ones. Having wasted a lot of time on this, as far as I can see the Intel emulation is no faster at all than the ARM images.
I do have HAXM installed, and on starting the emulator a message appears suggesting it's running in "fast" mode, but it's certainly not fast!
Is this because my PC (Windows 7, Intel) is not compatible, or did I miss something? How do I check compatibility?
Quoting the documentation:
The software requires an Intel CPU with Virtualization Technology (VT) support
However, this is not necessarily enabled by default on every machine with a VT-capable CPU. Once again, quoting the documentation:
Virtualization extensions are typically enabled through your computer's BIOS and are frequently turned off by default. Check the documentation for your system's motherboard to find out how to enable virtualization extensions.
So, for example, on a Dell Latitude E6400 sitting to my right, there is a BIOS option for "Enable Intel Virtualization Technology" that you have to check.
Checking the 'use host GPU' option in AVD properties seems to make it a bit faster for me (still slow but usable).
In Eclipse: Window > android Virtual Device Manager > Choose your device > Edit > 'use host GPU' checkbox at bottom.
NOTE: If you are using laptop with nvidia hybrid graphics (GeForce G210M in my case) make sure you have it on high performance before running the emulator. Otherwise Virtual device wont find the graphic card and will crash.
Also apart of "Virtualization Technology" I enabled something called "VTd support" in BIOS. I have no idea what it is or what it does (no description in my BIOS) but either of the above mentioned actions fixed the issue for me
I have the same issue. After making sure everything is properly configured:
(VT enabled in BIOS), Intel HAXM driver installed successfully, AVD details are as they should be.The emulator runs even slower than the ARM one.
If you still face the same problem as well. Star the issue here
Go into the AVD Manager (one of the little Android icons in the toolbar, hover to see which one) and on your AVD change the Memory Options: RAM to 768 MB. Hardware acceleration seems to fail if it's bigger.
(Also make sure "Use Host GPU" is ticked!)
(And also note the messages just below that. You might have to go into the SDK Manager and install an image.)
It still boots up slow, but once it's been running for a minute or two it should be faster. But it's still not as fast as a clean, native device, attached via USB.
In my case, I created and started several x86 emulators on an Linux server(cent os 7), and they all running slowly as hell.
The reason is, by default the emulators are set to have 2 cores, which is far less than the modern cell phones. So I changed the config.ini file in each emulator's directory, add one line hw.cpu.ncore=6(Depends on your major hardware, other properties may affect are hw.ramSize, vm.heapSize and so on. You can see all properties from hardware-qemu.ini in same directory.), and restart the emulators.
The emulators are running much more faster, not too much slower than real phones.
Hope my poor English expresses this clearly.
In my case i have a SSD Samsung 850 pro with software Samsung magician with rapid mode on that was the problem I put it off and android emulator run as a fash again.
The Android emulator is a bit sluggish. For some devices, like the Motorola Droid and the Nexus One, the app runs faster in the actual device than the emulator. This is a problem when testing games and visual effects.
How do you make the emulator run as fast as possible? I've been toying with its parameters but haven't found a configuration that shows a noticeable improvement yet.
Official web page
~50% faster
Windows:
Install "Intel x86 Emulator Accelerator (HAXM)" => SDK-Manager/Extras
Install "Intel x86 Atom System Images" => SDK-Manager/Android 2.3.3
Go to the Android SDK root folder and navigate to extras\intel\Hardware_Accelerated_Execution_Manager. Execute file IntelHaxm.exe to install. (in Android Studio you can navigate to: Settings -> Android SDK -> SDK Tools -> Intel x86 Emulator Accelerator (HAXM installer))
Create AVD with "Intel atom x86" CPU/ABI
Run emulator and check in console that HAXM running (open a Command Prompt window and execute the command: sc query intelhaxm)
Also don't forget install this one
P.S. during AVD creation add emulation memory: Hardware/New/Device ram size/set up value 512 or more
Linux:
Install KVM: open GOOGLE, write "kvm installation "
Create AVD with "Intel atom x86" CPU/ABI
Run from command line: emulator -avd avd_name -qemu -m 512 -enable-kvm
Or run from Eclipse: Run/Run Configurations/Tab "Target" - > check Intel x86 AVD and in "Additional Emulator Command Line Options" window add: -qemu -m 512 -enable-kvm (click Run)
P.S. For Fedora, for Ubuntu
OS-X:
In Android SDK Manager, install Intel x86 Atom System Image
In Android SDK Manager, install Intel x86 Emulator Accelerator (HAXM)
In finder, go to the install location of the Intel Emulator Accelerator and install IntelHAXM (open the dmg and run the installation). You can find the location by placing your mouse over the Emulator Accelerator entry in the SDK Manager.
Create or update an AVD and specify Intel Atom x86 as the CPU.
P.S: Check this tool, very convenient even trial
UPDATE: Now that an Intel x86 image is available, the best answer is by zest above.
As CommonsWare has correctly pointed out, the emulator is slow because it emulates an ARM CPU, which requires translation to Intel opcodes. This virtualization chews up CPU.
To make the emulator faster, you have to give it more CPU. Start with a fast CPU or upgrade if you can.
Then, give the emulator more of the CPU you have:
Disable Hyperthreading - Since the emulator doesn't appear to utilize more than one core, hyperthreading actually reduces the amount of overall CPU time the emulator will get. Disabling HT will slow down apps that take advantage of multiple CPUs. Hyperthreading must be disabled in your BIOS.
Make the emulator run on a CPU other than CPU 0 - This has a much smaller impact than turning off HT, but it helps some. On Windows, you can specify which CPU a process will run on. Many apps will chew up CPU 0, and by default the emulator runs on CPU 0. I change the emulator to run on the last one. Note that on OS X you cannot set affinity (see: https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac).
I'm seeing somewhere around a 50% improvement with these two changes in place.
To set processor affinity on Windows 7:
Open Task Manager
Click View All Processes (to run as administrator, otherwise you can't set processor affinity)
Right click on emulator.exe and choose Set Affinity...
On the Set Affinity dialog, select just the last CPU
Note: When you change affinity in this way, it's only changed for the lifetime of the process. Next start, you have to do it again.
I would like to suggest giving Genymotion a spin. It runs in Oracle's VirtualBox, and will legitimately hit 60 fps on a moderate system.
Here's a screencap from one of my workshops, running on a low-end 2012 model MacBook Air:
If you can't read the text, it's a Nexus 7 emulator running at 56.6 fps. The additional (big!) bonus is that Google Play and Google Play Services come packaged with the virtual machines.
(The source of the demoed animation can be found here.)
Enable GPU Hardware Acceleration (in addition to Intel's HAXM), if you are using API 15 v3 or newer and SDK Tools v17+. Graphics acceleration for the emulator takes advantage of your development computer's graphics hardware, specifically its graphics processing unit (GPU), to make screen drawing faster. This gives a noticeable boost in speed.
To enable graphics acceleration enabled by default on your emulator: when creating the AVD, in the Hardware section, click New, select GPU emulation and set the value to Yes.
To enable acceleration only at runtime: use the -gpu flag while starting the emulator like this:
emulator -avd <avd_name> -gpu on
Source: Google's Using the Emulator tutorial.
Edit Although using the Intel images gets some performance gains, the performance gained by using Genymotion is much greater. See Paul Lammertsma's answer.
Previous Answer
With ADT rev 17 the emulator supports running x86 system images in virtualization mode on Windows and Mac OS X. This has a noticeable impact on performance.
ADT rev 17 notes:
http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html
Configuring Virtual Machine Acceleration:
http://developer.android.com/guide/developing/devices/emulator.html#accel-vm
I recently switched from a core 2 # 2.5 with 3gb of ram to an i7 # 1.73 with 8gb ram (both systems ran Ubuntu 10.10) and the emulator runs at least twice as fast now. Throwing more hardware at it certainly does help.
Just wanted to say that after I installed the Intel HAXM accelerator and use the Intel Atom image the emulator seems to run 50 times faster. The difference is amazing, check it out!
http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html
I noticed that the emulator defaults to only Core 0, where most Windows applications will default to "any" core. Also, if you put it on another core (like the last core), it may make the emulator go crazy. If you can, you can try putting your heavy-CPU usage applications on the other CPU cores for a boost in speed.
Hardware-wise, get the fastest CPU you can get that works for single-core applications. More than 2 cores might not experience a huge difference in terms of emulator performance.
Eclipse + the Android emulator together eat up a ton of RAM. I would recommend 3 gigs of RAM at least because I used a system with 2 gigs of RAM, and it slowed down because the system ran out of RAM and started to use the page file.
I feel that the best CPUs for it will probably have a high clock (only use clock as a measure for CPUs in the same series btw), handle non-SIMD operations well, and have a turbo boost mechanism. There aren't many Java-based benchmarks, but overall look for application benchmarks like compression and office. Don't look at gaming or media since those are affected greatly by SIMD. If you find a Java one, even better.
On this year google I/O (2011), Google demonstrated a faster emulator. The problem is not so much on the byte code between ARM and x86 but the software rendering performed by QEMU. They bypass the rendering of QEMU and send the rendering directly to an X server I believe. They showed a car game with really good performace and fps.
I wonder when that will be available for developers...
Google recently announced a new emulator for Android. It's a much faster and better than the old one. You can find more info about it here.
choose a low resolution emulator (eg: Nexus S) if you don't have a good graphic card (like me)
I think it is because clr virtual machine uses cpu directly without code opcode translation.
It may be optimization for clr application or may be windows mobile/window phone 7 started on INTEL proccessor.
Android platform based on linux and theoretically you can start android on virtual machine in i686 environment. In this case virtual machines such as vmware could execute some opcodes direcly. But this option will be allowed only if you write on the Java. Because the Java interpret their byte-code or precompile it before execution.
see:
http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks
Thank you #zest! Worked like a charm. Some things of note: Need to apply Intel's hotfix for the HAXM to deal with kernel panic issue: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager
Also, note, if you have more than one abi, you need to uninstall one due to a bug in the latest version of the Android API (r19): https://code.google.com/p/android/issues/detail?id=66740 (remove armeabi-v7a in this case, since you want the x86 abi). Other than the 45-minutes it took me to resolve these, it was an very rewarding exercise in terms of the increased performance of the emulator.
You could also try the Visual Studio Android Emulator, which can also be installed as a standalone emulator (you don't need Visual Studio). Please note, that it can be installed only on Windows Pro or higher systems.
Use Genymotion instead of emulator. Genymotion has better performance
https://www.genymotion.com
Enabling this option worked for me.
AVD Manager -> Select device and click Edit-> Enable the option 'Use Host GPU'
I've been using the Intel(86) CPU/ABI. I created another emulator using the ARM(armeabi-v7a) and i found quite an improvement with the speed. I'm using platform 4.1.2 API level 16
Update your current Android Studio to Android Studio 2.0 And also update system images.
Android Studio 2.0 emulator runs ~3x faster than Android’s previous emulator, and with ADB enhancements you can now push apps and data 10x faster to the emulator than to a physical device. Like a physical device, the official Android emulator also includes Google Play Services built-in, so you can test out more API functionality. Finally, the new emulator has rich new features to manage calls, battery, network, GPS, and more.
Well question is from 2011 and I am answering in 2022 the best answer in my experience is to start emulator from command in that way the emulator starts a dedicated process and not a sub process of android studio. If the process is independent then it will be able to use the GPU properly and can utilize all resources unlike starting emulator from device manager.
You can create AVD from device manager and start is from the avd folder below is the way to start the emulator independently.
How to open emulator command line