Android emulators: Difference between revisions
No edit summary |
No edit summary |
||
| Line 6: | Line 6: | ||
Android is like a Linux distribution in that it uses the Linux kernel to facilitate communication with the hardware and manage processes on the system. Unfortunately, the similarities end there, as Android uses an entirely different toolset from standard Linux distributions and no support is given for running it on PCs. (Software development on Android is also nothing like Linux development as apps are compiled into architecture-specific <code>APK</code>s via Java which, like IPA files on [[iOS emulators|iOS]], are specially designed Zip files. They may be occasionally coupled with <code>OBB</code> files, see [[Copy_protection#Bypassing_Copy_Protection]] section for information about APK+DATA and copy protection situation on Android). While Android can technically run Linux binaries, doing so requires superuser privileges that Android does not provide by default. For many devices, you can expect to see a custom ROM that has an integrated su binary (or a means to install it easily, such as a custom recovery), but not all devices have one. | Android is like a Linux distribution in that it uses the Linux kernel to facilitate communication with the hardware and manage processes on the system. Unfortunately, the similarities end there, as Android uses an entirely different toolset from standard Linux distributions and no support is given for running it on PCs. (Software development on Android is also nothing like Linux development as apps are compiled into architecture-specific <code>APK</code>s via Java which, like IPA files on [[iOS emulators|iOS]], are specially designed Zip files. They may be occasionally coupled with <code>OBB</code> files, see [[Copy_protection#Bypassing_Copy_Protection]] section for information about APK+DATA and copy protection situation on Android). While Android can technically run Linux binaries, doing so requires superuser privileges that Android does not provide by default. For many devices, you can expect to see a custom ROM that has an integrated su binary (or a means to install it easily, such as a custom recovery), but not all devices have one. | ||
However, the Linux kernel is flexible enough that it can be emulated well, unlike iOS, older cell phone models, and older Japanese Galapagos mobile phones. While Android natively supports mice<ref | However, the Linux kernel is flexible enough that it can be emulated well, unlike iOS, older cell phone models, and older Japanese Galapagos mobile phones. While Android natively supports mice,<ref>If you have an Android device, you can confirm this by connecting a Bluetooth or USB mouse via a USB adapter.</ref> most apps expect users to have a touchscreen, so Android emulators will usually default to emulating touchscreen presses like [[Nintendo DS emulators|DS emulation]] (though it can be less than ideal in many cases). The host's keyboard may often emulate the button controller add-ons, and some emulators support [[Xbox 360 emulators|Xbox 360]] controllers with some more tweaks. | ||
To run Android apps on your computer, most of the Android emulators employ a two-step approach. First, they set up a virtual environment using [[Hypervisors|hypervisor]] (and of course support for [[Wikipedia:X86_virtualization#Hardware-assisted_virtualization|hardware assisting virtualization]] such as vt-x/amd-v and virtual gpu adapter such as [https://docs.mesa3d.org/drivers/virgl.html VirGL]). Then, they use [[Recommended_linux_distros#Emulation_focused|custom Android-x86 images]] and translation layer such as "[[Compatibility_layer|libhoudini or libndk or Intel BT]]" to convert instructions from ARM processors (used in phones) to work on your computer's x86 architecture. See [[#Hardware features]] supported ABI, API sections and [[#Enhancements]] built-in translation layer and VM columns for more information. | To run Android apps on your computer, most of the Android emulators employ a two-step approach. First, they set up a virtual environment using [[Hypervisors|hypervisor]] (and of course support for [[Wikipedia:X86_virtualization#Hardware-assisted_virtualization|hardware assisting virtualization]] such as vt-x/amd-v and virtual gpu adapter such as [https://docs.mesa3d.org/drivers/virgl.html VirGL]). Then, they use [[Recommended_linux_distros#Emulation_focused|custom Android-x86 images]] and translation layer such as "[[Compatibility_layer|libhoudini or libndk or Intel BT]]" to convert instructions from ARM processors (used in phones) to work on your computer's x86 architecture. See [[#Hardware features]] supported ABI, API sections and [[#Enhancements]] built-in translation layer and VM columns for more information. | ||
<references group=" | <references group="n"/> | ||
==Before diving in== | ==Before diving in== | ||
| Line 19: | Line 19: | ||
==Emulators== | ==Emulators== | ||
{|class="wikitable" style="text-align:center;width:100% | {|class="wikitable" style="table-layout:fixed;text-align:center;width:100%" | ||
|+Before editing, review the [[Getting involved]] and [[Recommended emulators|Recommended]] pages. See [[Computer_specifications#Recommended_Specifications|system requirements]] page for performance demand of the emulators.<br>See tables for <span style="font-weight: bold; color: #CC0000; border: 1px solid #CC0000; padding: 2px;">[[#Enhancements|enhancements]], [[#Hardware_features|hardware features]], and [[#Android_consoles|Android consoles]]. Also see [[PlayStation Mobile]].</span><br>For more details such as [[licensing]], [[Source_code#Language_levels|programming language]], [[High_and_low-level_emulation|emulation method]], visit each emulator’s dedicated page. | |+Before editing, review the [[Getting involved]] and [[Recommended emulators|Recommended]] pages. See [[Computer_specifications#Recommended_Specifications|system requirements]] page for performance demand of the emulators.<br>See tables for <span style="font-weight: bold; color: #CC0000; border: 1px solid #CC0000; padding: 2px;">[[#Enhancements|enhancements]], [[#Hardware_features|hardware features]], and [[#Android_consoles|Android consoles]]. Also see [[PlayStation Mobile]].</span><br>For more details such as [[licensing]], [[Source_code#Language_levels|programming language]], [[High_and_low-level_emulation|emulation method]], visit each emulator’s dedicated page. | ||
!Name | !Name | ||
| Line 74: | Line 74: | ||
| align="left" |{{Icon|Windows|macOS}} | | align="left" |{{Icon|Windows|macOS}} | ||
|[https://andyroid.net/ 0.47.226.1096.26]||{{Ya}}||{{Red}} {{License|Proprietary}} | |[https://andyroid.net/ 0.47.226.1096.26]||{{Ya}}||{{Red}} {{License|Proprietary}} | ||
|?||{{Na}}<ref group=" | |?||{{Na}}<ref group="n" name=Bloatware/> | ||
|- | |- | ||
|ARC Welder<br><small>(Google Chrome)</small> | |ARC Welder<br><small>(Google Chrome)</small> | ||
| Line 89: | Line 89: | ||
| align="left" |{{Icon|Windows|macOS}} | | align="left" |{{Icon|Windows|macOS}} | ||
|[https://support.bluestacks.com/hc/en-us/sections/360012290292-Release-Notes {{BlueStacksVer}}]||{{Ya}}||{{Red}} {{License|Proprietary}} | |[https://support.bluestacks.com/hc/en-us/sections/360012290292-Release-Notes {{BlueStacksVer}}]||{{Ya}}||{{Red}} {{License|Proprietary}} | ||
|[https://support.bluestacks.com/hc/en-us/articles/4413818315789-Games-playable-on-different-Android-versions-on-BlueStacks-5 ?]||{{Na}}<ref group=" | |[https://support.bluestacks.com/hc/en-us/articles/4413818315789-Games-playable-on-different-Android-versions-on-BlueStacks-5 ?]||{{Na}}<ref group="n" name=Bloatware>These emulators are closed-source, and while they're distributed for free, their devs look for roundabout ways to monetize them. '''Since these emulators closed-source and comes with adware and bloatware applications, it's important to research the developers background before using them to ensure their trustworthiness and avoid potential privacy risks before using them'''. MuMu, LDPlayer, NoxPlayer and MEmu developed by the various Chinese software companies and BlueStacks App Player developed by American technology company called "[https://www.wikidata.org/wiki/Q4928776 BlueStacks]". Despite data security regulations existing in various regions (e.g., [[Wikipedia:General_Data_Protection_Regulation|GDPR]] in the "EU", [[Wikipedia:California_Consumer_Privacy_Act|CCPA]] in "California", and [[Wikipedia:Cybersecurity_Law_of_the_People's_Republic_of_China|Cybersecurity Law]] in "PRC"), concerns regarding government surveillance remain significant. Therefore, we recommend exercising caution when relying on closed-source software developed within such jurisdictions. Make sure to check if there are pre-installed '''extra''' apps comes with these emulators and disable or uninstall them (e.g. BlueStacks X, BlueStacks Services etc.), monitor your internet traffic and processor activity to detect any abnormal activity and block domains accordingly if the need arises or use tools like '[https://github.com/henrypp/simplewall simplewall]'. Also avoid giving sensitive account data as much as is possible due to potential security reasons. Besides basic safety, these precautions often make impacted emulators run faster and more responsive when the adware services and apps are turned off.</ref> | ||
|- | |- | ||
|Droid4X | |Droid4X | ||
| Line 101: | Line 101: | ||
|?||{{Na}} | |?||{{Na}} | ||
|- | |- | ||
|LDPlayer<ref group=" | |LDPlayer<ref group="n">LDShop and LDPlayer's cloud backend suffered a major data breach exposing user screens and payment sessions, while the bundled Sogou keyboard has been flagged for telemetry that logs plaintext keystrokes. ([https://x.com/nte_wl/status/2054627592054153273 see tweet)]</ref> | ||
| align="left" |{{Icon|Windows}} | | align="left" |{{Icon|Windows}} | ||
|[https://en.ldplayer.net/ 4.0.50.3]||{{Ya}}||{{Red}} {{License|Proprietary}} | |[https://en.ldplayer.net/ 4.0.50.3]||{{Ya}}||{{Red}} {{License|Proprietary}} | ||
|?||{{Na}}<ref group=" | |?||{{Na}}<ref group="n" name=Bloatware/> | ||
|- | |- | ||
|MEmu | |MEmu | ||
| align="left" |{{Icon|Windows}} | | align="left" |{{Icon|Windows}} | ||
|[https://www.memuplay.com/ {{MEmuVer}}]||{{Ya}}||{{Red}} {{License|Proprietary}} | |[https://www.memuplay.com/ {{MEmuVer}}]||{{Ya}}||{{Red}} {{License|Proprietary}} | ||
|?||{{Na}}<ref group=" | |?||{{Na}}<ref group="n" name=Bloatware/> | ||
|- | |- | ||
|MuMu | |MuMu | ||
| align="left" |{{Icon|Windows|macOS}} | | align="left" |{{Icon|Windows|macOS}} | ||
|[https://mumu.163.com/global/download/en/index.html 1.1.0.2]<br><small>[https://mumu.163.com 1.1.0.5 (v2.3.17) (Chinese Ver)]</small>||{{Ya}}||{{Red}} {{License|Proprietary}} | |[https://mumu.163.com/global/download/en/index.html 1.1.0.2]<br><small>[https://mumu.163.com 1.1.0.5 (v2.3.17) (Chinese Ver)]</small>||{{Ya}}||{{Red}} {{License|Proprietary}} | ||
|?||{{Na}}<ref group=" | |?||{{Na}}<ref group="n" name=Bloatware/> | ||
|- | |- | ||
|NoxPlayer | |NoxPlayer | ||
| align="left" |{{Icon|Windows}} | | align="left" |{{Icon|Windows}} | ||
|[https://www.bignox.com 7.0.2.7]||{{Ya}}||{{Red}} {{License|Proprietary}} | |[https://www.bignox.com 7.0.2.7]||{{Ya}}||{{Red}} {{License|Proprietary}} | ||
|?||{{Na}}<ref group=" | |?||{{Na}}<ref group="n" name=Bloatware/> | ||
|- | |- | ||
|LeapDroid | |LeapDroid | ||
| Line 180: | Line 180: | ||
==Compatibility layers ([[Compatibility_layers|...]])== | ==Compatibility layers ([[Compatibility_layers|...]])== | ||
{|class="wikitable" style="text-align:center;width:100% | {|class="wikitable" style="table-layout:fixed;text-align:center;width:100%" | ||
!Name | !Name | ||
!Platform(s) | !Platform(s) | ||
| Line 195: | Line 195: | ||
|[https://archive.ubuntukylin.com/ubuntukylin/pool/partner/kmre_2.4.6.8+22.04_amd64.deb 2.4.6.8]||{{Dunno}} ||{{Dunno}}||{{Dunno}} ||{{Na}} | |[https://archive.ubuntukylin.com/ubuntukylin/pool/partner/kmre_2.4.6.8+22.04_amd64.deb 2.4.6.8]||{{Dunno}} ||{{Dunno}}||{{Dunno}} ||{{Na}} | ||
|} | |} | ||
<references group=" | <references group="n"/> | ||
==Comparisons== | ==Comparisons== | ||
| Line 267: | Line 267: | ||
==Enhancements== | ==Enhancements== | ||
{|class="wikitable sortable" style="text-align:center;width:100%" | {|class="wikitable sortable" style="table-layout:fixed;text-align:center;width:100%" | ||
|+Please only include recommended emulators in this table. Do not bump or spam GitHub threads, issues, or feature request pages. | |+Please only include recommended emulators in this table. Do not bump or spam GitHub threads, issues, or feature request pages. | ||
! colspan=2 | Name | ! colspan=2 style="width:50%" | Name | ||
!ARCVM | !ARCVM | ||
! Android Studio | ! Android Studio | ||
| Line 521: | Line 521: | ||
| {{Dunno}} | | {{Dunno}} | ||
|} | |} | ||
<references group=" | <references group="n"/> | ||
==Hardware features== | ==Hardware features== | ||
{|class="wikitable" style="text-align:center;width:100%" | {|class="wikitable" style="table-layout:fixed;text-align:center;width:100%" | ||
|+Please only include recommended emulators in this table. Do not bump or spam GitHub threads, issues, or feature request pages. | |+Please only include recommended emulators in this table. Do not bump or spam GitHub threads, issues, or feature request pages. | ||
! colspan=2 | Name | ! colspan=2 style="width:50%" | Name | ||
!ARCVM | !ARCVM | ||
! Android Studio | ! Android Studio | ||
| Line 740: | Line 740: | ||
| colspan="2" | [[Wikipedia:Android_version_history#Android_7.1_Nougat|7.1 Nougat]] (API 25)<br><small>New JIT Compiler, making for 75 percent faster app installations and a 50 percent reduction in compiled code size.<br>JIT compiler with code profiling to ART, which lets it constantly improve the performance of Android apps as they run.<br>Vulkan 3D rendering API support.</small> | | colspan="2" | [[Wikipedia:Android_version_history#Android_7.1_Nougat|7.1 Nougat]] (API 25)<br><small>New JIT Compiler, making for 75 percent faster app installations and a 50 percent reduction in compiled code size.<br>JIT compiler with code profiling to ART, which lets it constantly improve the performance of Android apps as they run.<br>Vulkan 3D rendering API support.</small> | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Ya}}||{{Ya}}<ref group=" | |{{Ya}}||{{Ya}}<ref group="n" name="GenymotionOSsupport"/> | ||
|{{Na}} | |{{Na}} | ||
|{{Na}} | |{{Na}} | ||
| Line 748: | Line 748: | ||
| colspan="2" | [[Wikipedia:Android_version_history#Android_4.4_KitKat|KitKat]] (API 19)<br><small>Supporting [[Wikipedia:Android_version_history#Android_4.4_KitKat|Android 4.4 (KitKat)]] is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.<br> Older applications and games often rely on the "[[Wikipedia:Dalvik_(software)|Dalvik]]", which isn't present in newer versions and there could be '''[https://web.archive.org/web/20141215220606/http://www.androidruntime.com:80/list compatibility issues]'''.<br>Android 5.0 (Lollipop)(API 21) introduced the "[[Wikipedia:Android_Runtime|Android RunTime]]" (ART), [[Wikipedia:Android_Runtime#History|replacing "Dalvik" entirely]].<br>Having said that ART is mostly backwards compatible with Dalvik. See these sources for more information: [https://xdaforums.com/t/explained-art-runtime-in-android-4-4-kitkat.2622098/ 1], [https://www.geeksforgeeks.org/difference-between-dalvik-and-art-in-android/ 2], [https://developer.android.com/guide/practices/verifying-apps-art 3].</small> | | colspan="2" | [[Wikipedia:Android_version_history#Android_4.4_KitKat|KitKat]] (API 19)<br><small>Supporting [[Wikipedia:Android_version_history#Android_4.4_KitKat|Android 4.4 (KitKat)]] is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.<br> Older applications and games often rely on the "[[Wikipedia:Dalvik_(software)|Dalvik]]", which isn't present in newer versions and there could be '''[https://web.archive.org/web/20141215220606/http://www.androidruntime.com:80/list compatibility issues]'''.<br>Android 5.0 (Lollipop)(API 21) introduced the "[[Wikipedia:Android_Runtime|Android RunTime]]" (ART), [[Wikipedia:Android_Runtime#History|replacing "Dalvik" entirely]].<br>Having said that ART is mostly backwards compatible with Dalvik. See these sources for more information: [https://xdaforums.com/t/explained-art-runtime-in-android-4-4-kitkat.2622098/ 1], [https://www.geeksforgeeks.org/difference-between-dalvik-and-art-in-android/ 2], [https://developer.android.com/guide/practices/verifying-apps-art 3].</small> | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Ya}}||{{Na}}<ref group=" | |{{Ya}}||{{Na}}<ref group="n" name="GenymotionOSsupport">[https://support.genymotion.com/hc/en-us/articles/9511224511901-Which-Android-versions-are-available Genymotion: Which Android versions are available?], Since September 2022, Genymotion no longer provide Android 4.4 and below images, see[https://support.genymotion.com/hc/en-us/articles/360002708018-I-can-t-find-Android-4-4-and-below this page].</ref> | ||
|{{Na}} | |{{Na}} | ||
|{{Na}} | |{{Na}} | ||
| Line 756: | Line 756: | ||
| colspan=2 | [[Wikipedia:Android_version_history#Android_12|Snow Cone]] (API 31)<br><small>Android Runtime (ART) module added to the updatable core OS components via Google Play, added functionality to existing modules.</small> | | colspan=2 | [[Wikipedia:Android_version_history#Android_12|Snow Cone]] (API 31)<br><small>Android Runtime (ART) module added to the updatable core OS components via Google Play, added functionality to existing modules.</small> | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Ya}}||{{Ya}}<ref group=" | |{{Ya}}||{{Ya}}<ref group="n" name=GenymotionOSsupport/> | ||
|{{Ya}} | |{{Ya}} | ||
|{{Na}}<br><small>It uses android-x86 9.0 64-bit.</small> | |{{Na}}<br><small>It uses android-x86 9.0 64-bit.</small> | ||
| Line 767: | Line 767: | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Ya}}||{{Dunno}} | |{{Ya}}||{{Dunno}} | ||
|{{Ya}}<ref group=" | |{{Ya}}<ref group="n" name="GooglePlayGamesABI">[https://developer.android.com/games/playgames/start#playbility-architecture Google Play Games ABI Architecture support].</ref> | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Dunno}} | |{{Dunno}} | ||
| Line 786: | Line 786: | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Ya}}||{{Dunno}} | |{{Ya}}||{{Dunno}} | ||
|{{Ya}}<ref group=" | |{{Ya}}<ref group="n" name=GooglePlayGamesABI/> | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Dunno}} | |{{Dunno}} | ||
| Line 794: | Line 794: | ||
|{{Dunno}} | |{{Dunno}} | ||
|{{Ya|link=https://developer.android.com/games/optimize/64-bit#64-bit-emulator}}||{{Dunno}} | |{{Ya|link=https://developer.android.com/games/optimize/64-bit#64-bit-emulator}}||{{Dunno}} | ||
|{{Ya}}<ref group=" | |{{Ya}}<ref group="n" name=GooglePlayGamesABI/> | ||
|{{Ya}} | |{{Ya}} | ||
|{{Dunno}} | |{{Dunno}} | ||
| Line 825: | Line 825: | ||
|{{Dunno}} | |{{Dunno}} | ||
|} | |} | ||
<references group=" | <references group="n"/> | ||
==PlayStation Mobile== | ==PlayStation Mobile== | ||
| Line 835: | Line 835: | ||
'''Note: [[Smart_TV_emulators|Smart TVs and smart media players/media boxes]] (e.g. ChromeCast with Google TV, Amazon Fire TV) are not consoles, despite some of them are able to run video games. The distinction is simple: If a device is not designed with gaming as its sole or main purpose, then it's not an Android console. Please do not add that kind of devices that can play video games into this section.''' | '''Note: [[Smart_TV_emulators|Smart TVs and smart media players/media boxes]] (e.g. ChromeCast with Google TV, Amazon Fire TV) are not consoles, despite some of them are able to run video games. The distinction is simple: If a device is not designed with gaming as its sole or main purpose, then it's not an Android console. Please do not add that kind of devices that can play video games into this section.''' | ||
{| class="wikitable" style="text-align:center;width:100%" | {| class="wikitable" style="table-layout:fixed;text-align:center;width:100%" | ||
!Name | !Name | ||
![[MAME]] support | ![[MAME]] support | ||
| Line 1,062: | Line 1,062: | ||
*[https://xdaforums.com/t/list-of-devices-armv7-armv6-armv5.1596800/ XDAForums - List of devices: ARMv7, ARMv6, ARMv5] | *[https://xdaforums.com/t/list-of-devices-armv7-armv6-armv5.1596800/ XDAForums - List of devices: ARMv7, ARMv6, ARMv5] | ||
*[[Wikipedia:Comparison_of_high-definition_smartphone_displays#720p_by_1280_.28HD_ready.29|Early Android devices with OLED and HD Ready display]] | *[[Wikipedia:Comparison_of_high-definition_smartphone_displays#720p_by_1280_.28HD_ready.29|Early Android devices with OLED and HD Ready display]] | ||
==References== | |||
{{Reflist}} | |||
---- | ---- | ||
{{NEL}} | {{NEL}} | ||
[[Category:Android| ]] | [[Category:Android| ]] | ||
[[Category:Various emulation]] | [[Category:Various emulation]] | ||