Changes and additions:
- Project Marble: We are prioritizing CPU/RAM usage of the emulator as part of Project Marble.
- In addition to the top most annoying issues, we would like your feedback on all aspects of emulator resource usage and performance, especially if you are running a machine with 8 GB of RAM or lower. In general, we would like to make running the emulator much more viable on machines with less RAM and less powerful CPUs.
- Pause/resume. To address concerns about resource usage, the emulator can now be completely paused. When paused, the emulator will largely not consume CPU, while allowing its RAM to be paged out more readily, which should allow more processes to run on the system. The pause/resume mechanism works as follows:
- Minimizing the emulator; minimize pauses the emulator, and restoring the emulator window will resume running. Or use the console commands:
- adb emu avd pause
- adb emu avd resume
- Fixed issues where the emulator did not minimize properly or could not be restored from a minimized state.
- The emulator's CPU usage stats for main loop and vCPU threads can now be displayed in the console when the environment variable SHOW_FPS_STATS is set to 1. This can be useful for sending feedback on excessive CPU/RAM usage situations.
- For our CI users: The emulator no longer causes Qt and its dependencies to be linked when started with the -no-window flag. This allows the emulator to run on machines with more minimal configurations due to assuming the existence of fewer system libraries in addition to improving resource usage.
- The emulator UI is now based on Qt 5.11.
- For upcoming system images, the emulator now supports Hardware Composer 2.0. This should result in lower driver overhead when running most animations.
- The emulator build is now based on CMake/Ninja.
Removal of deprecated components: Windows 32-bit build, QEMU1
- The Windows 32-bit build has been removed. This will break compatibility on 32-bit Windows systems. We did this to ship a smaller download and to better focus our resources on what the vast majority of users seem to be using. Please let us know if this removal does not work for you.
- QEMU1 (the emulator-$ARCH.exe binaries in the emulator folder) has been removed. This will break compatibility for the following system images:
- AOSP armeabi-v7a API 14
- AOSP armeabi-v7a API 16
- AOSP mips API 16
- AOSP mips API 17
- AOSP armeabi-v7a API 19
- Android TV x86 API 21
- Android TV armeabi-v7a API 21
- AOSP armeabi-v7a API 21
- AOSP armeabi-v7a API 22
- Android Wear armeabi-v7a API 23
- Android Wear x86 API 23
- AOSP armeabi-v7a API 23
- API 9 and lower
- We plan to release updated system images for the broken combinations that are widely used, and/or make a previous emulator build always available to run the older images. Please let us know if this removal does not work for you, and what combinations of 32-bit build / QEMU1 are critical to your use case.