Устанавливаем Android на ваш компьютер/ноутбук через виртуальную машину Oracle VM VirtualBox или VMWare Workstation. Самая последняя и стабильная версия на данный момент: Android 8.1 Oreo с патчем безопасности 5 января 2019 (сборка образа: 17 января 2019) Android 9.0 в виртуальных машинах работает очень плохо и в большинстве случаев не запускается, если есть информация о том, как заставить его стабильно запускать, пишите в ЛС, добавлю в шапку.
1. Сама виртуальная машина Oracle VM VirtualBox 5.22 (версия 6.0 на данный момент плохо дружит с Android-x86, пока пользуемся стабильной 5.2) 2. Образ Android. Его скачиваем с сайта Android-x86.org 3. Включение функции виртуализации у вашего процессора в биосе вашего хоста (у разных материнских плат и процессоров этот параметр в меню называется по разному, нужно искать, пример на моей материнской плате на картинке)
0.1. Скачиваем и устанавливаем программу. 0.2. Скачиваем образ Android.
1.1. Создаём виртуальную машину с любым названием, тип системы: Linux, версия: Ubuntu (разрядность не важна). 1.2. Объем оперативной памяти зависит от вашего компьютера/ноутбука, лучше ставить половину от доступной (т.е. если у вас на хосте стоит 8 гб, то можно спокойно ставить 4 гб). 1.3. Создаём новый виртуальный диск, VDI, Динамический, объем лучше от 8 Гб (в зависимости от количества нужных вам приложений). 1.4. Заходим в св-ва созданной машины через кнопку Настроить. Общие — Дополнительно — Включаем двунаправленный буфер. Система — Материнская плата — Убираем галочку в Порядке загрузки с Дискета Система — Материнская плата — Ставим галочку Включить I/O APIC Система — Материнская плата — Манипулятор курсора — ставим PS/2 мышь Система — Процессор — 2 ядра ЦПУ (или больше, если есть возможность) Система — Процессор — Включить PAE/NX Дисплей — Видео — Видео память 128 Мб Дисплей — Видео — Ставим галочку Включить 3D-ускорение Носители — Контроллер: IDE — Нажимаем на Пусто и справа где окошко привод нажимаем на диск и выбираем скачанный образ Android. 1.5. Нажимаем ОК.
2.1. Запускаем машину. 2.2. В первом окне стрелками на клавиатуре выбираем самую нижнюю Installation — Install Android-x86 to harddisk, подтверждаем выбор нажатием Enter. Если предлагает установить GPT, отказываемся! 2.3. После того, как пробегут все строки появится окно, в нём выбираете первый пункт Create/Modify partitions. 2.4. В появившимся окне стрелкой вправо выбираем Write и пишем yes, подтверждая нажатием Enter. 2.5. Стрелкой вправо выбираем New, потом Primary, подтверждаем появившийся объем. 2.6. Стрелкой вправо выбираем Write и пишем yes, подтверждая нажатием Enter. 2.7. Стрелкой вправо выбираем Bootable, нажимаем Enter и выходим через Quit. 2.8. Если всё сделали правильно, то появится первая записать sda1 Linux, подтверждаем Enter. 2.9. В следующем окне выбираем ext4. Потом подтверждаем, что хотим форматировать диск. 2.10. Ждём пока он отформатирует. 2.11. Во всех следующих окнах жмём Yes. 2.12. После того, как появится окно Android-x86 is installed successfully; наверху нажимаем кнопку Устройства — Приводы оптических дисков — Извлечь диск из привода. После этого выбираем Reboot и нажимаем Enter. 2.13. Машина перезагружается и выбираем самый первый пункт 2.14. После этого ждём, появляется лого Android, а дальше настройка системы, как будто у вас простой планшет на Android.
Теперь у вас есть уже рутированный Android с прошивкой для разработчиков.
Как изменить разрешение экрана? Android 4.4 и ниже: В папке с виртуальной машиной найдите файл, который называется название_машины.vbox, в него добавьте строку:
Она определяет разрешение и количество памяти для цвета. Android 5.0 и выше: Нативно изменить разрешение пока достаточно трудно, но есть костыль. Работает достаточно неплохо.
VirtualBox 6.0 не хочет запускать Android Проблема известна, решение простое — установить VirtualBox 5.22
Как включить полную поддержку программ, написанных для ARM в Android-x86? Настройки — Android-x86 options — Enable Native Bridge
Что работает и что не работает в последней версии (Android 8.1)? Не работает: сенсорный экран, Google Play и всё из него вытекающее Работает: камера, Wi-Fi, Bluetooth, мышка, клавиатура, установка .apk из любых источников, запускаются простые игры (возможно и сложные, но это пока не точно)
Сообщение отредактировал Smit7564 — 28.04.20, 22:47
Спасибо, все понятно расписал, +++++++ тебе!
Добавлено 31.01.2014, 18:38:
Правда можно вместо Virtual box можно использовать ЛЮБОЙ эмулятор. Я лично пробовал через MS virtual pc
Источник
Android and virtual machine
Краткое описание: Запуск виртуальной машины на базе Android.
VMOS is an APP software based on Virtual Machine (VM). VMOS can be installed in the form of a normal APP to Linux or Android system through VM technology. That is to run another complete Android system through an application Moreover, VMOS is not controlled by the host system. (Android on the phone).
VMOS Features: — Create a Fake Phone Environment: Use VMOS to create a full virtual Android environment with a working Play store and network connectivity. This virtual Android machine will run Android 5.1.1 and appears as a native OS with full touch control just like you would use on your primary Android system. The Android VM is complete with an app drawer, Google services, and some standard apps like a file manager and internet browser. You can sign in with your gmail account and access the full Play store and download new apps as well. — Root Support: The virtual machine that you create in VMOS can be rooted without affecting the primary system. This is a good solution for anyone looking to run root apps but don’t have the ability to root their actual phone. This is also an essential feature for developers testing apps. Root access is often required for specific functions of different applications. Now developers can run them without risking corrupting the primary system. — Multiple Accounts and Apps: With the ability to run two Android systems on one phone, you can use the virtual space to run duplicated apps with different accounts. The VM is a good way to keep your personal apps and accounts separate from your work. Sign in with your personal email, snapchat, twitter ect. on your main system, then put all of your work related accounts on the VM. You can run VMOS in a floating window, making it easy to switch between systems quickly, giving you faster access to duplicated apps.
ПЕРЕД ТЕМ, КАК ЗАДАТЬ ВОПРОС — ПРОЧИТАЙТЕ ШАПКУ!
Если установить образ VMOS выше версии вашего Android на устройстве, то образ не запустится по ограничению ядра.
VMOS Pro не запустится, если в вашем устройстве менее 2ГБ ПЗУ-памяти
Приложение позволяет создать «второе пространство» внутри себя (с приложениями которые вы туда установите), работает одновременно и независимо с другими приложениями пользователя (при достаточном количестве оперативной памяти). Это не эмулятор и в Recovery через программу не войти!
Версии: Версия PRO имеет Android 7 и поддерживает 64bit arm v8a приложения, возможность иметь несколько разных виртуальных машин и многое другое. Является улучшенной версией старого VMOS. GL — глобальный релиз программы, имеет английский язык, редко обновляется CN — китайский билд, имеет китайский язык, часто обновляется, в связи с этим имеет больший функционал в отличии от глобальной
Нажать на установку в маркете.
Принудительно закрыть маркет.
Снова в него зайти.
Если не заработало — попробуйте перезапустить VMOS.
VMOS вправе работать нестабильно, как и программы в нём. На вашем устройстве теперь работают сразу две системы.
Если есть проблемы с одной программой/игрой, можно попробовать поменять как и приложение, так и используемый ром.
Для более-менее стабильной работы VMOS Pro необходимо 2гб+ ОЗУ.
Q. Как работает VMOS? A. VMOS — это новая и инновационная технология. Он виртуализирует собственную операционную систему Android на вашем телефоне. С VMOS вы можете переключаться между реальной и виртуальной системами в любое время. Данные и приложения хранятся локально.
Q. На какой телефон можно установить приложение? A. Телефон должен иметь больше 32 ГБ памяти и 3 ГБ оперативной памяти, также телефон должен работать на версии android 5.1 и выше.
Q. Могу ли я клонировать приложение из реальной системы в ВМ? A. Да. File→Choose APP→Import [Файл -> выбрать приложение -> импорт].
Q. Как дела с быстродействием системы? A. На самом деле, данное приложение работает быстрее, чем облачные, так как все данные хранятся в локальном хранилище.
Q. Почему VMOS нужен доступ к хранилищу, информации об устройстве, расположению, IMEI и аудио? A. VMOS требует данные разрешения для лучшего эмулирования системы.
Q. VMOS безопасен для реального устройства? A. Конечно, реальный телефон и VMOS используют разные операционные системы. Данные из обеих систем не будут мешать друг другу.
Внимание, лайфхак! Если изучить шапку темы, то ты получишь ответ на 99% своих вопросов и проблем!
Источник
Virtual Machine in Android: Everything you need to know
Aug 4, 2019 · 6 min read
Virtual Machine?
A virtual machine is based on computer architectures to provide functionality of a computer.
There are 2 main types of Virtual Machine (VM):
System virtual machines (full virtualization VMs) provide a substitute for a real machine.
Process virtual machines are designed to execute computer programs in a platform-independent environment.
Java Virtual Machine
Follow “write once, run anywhere” principle, JVM allows programs — written in Java/Kotlin — to run on any device or operating system.
How it works?
IDEs — like IntelliJ / Android Studio — use Java Compiler ( javac ) to compile Java code ( .java ) into Java bytecode ( .class ).
Then on runtime environments (Web, PC, Android), JVM translates it into machine specs instruction set that this environment can understand.
Start JVM.
Start main thread. Load .class into memory using Classloader.
Verify bytecode is valid and not violate Java’s security restrictions.
Translate bytecode into machine instructions and execute them.
Unload classes. Terminate main thread.
Shutdown JVM.
Note that: It’s possible to compile Java code to native code ahead-of-time, then run. And it’s also possible to interpret Java code directly.
Android OS
Android is an open source, Linux-based software stack created for a wide array of devices and form factors. For example, the Android Runtime (ART) relies on the Linux kernel for underlying functionalities: networking, multi-threading and low-level memory management.
Why Android use virtual machine?
There are many reason that Google engineers decide to use Android with VM, but two main reason is:
Security: In theory, app code is totally isolated by the VM and cannot even “see” the host OS. So app code that contains malware cannot affect system directly, make app and system more robust and reliable.
Platform independent: Android platform can run on different devices with different architectures (ARM, MIPs, x86). To abstract out the need to compile binaries for each architecture, VM comes into play.
Dalvik Virtual Machine
Dalvik Virtual Machine (DVM) is a Process virtual machine for Android.
DVM is a virtual machine that optimized for mobile environment (memory, battery life, performance. )
Dalvik EXecutable
Dalvik EXecutable ( .dex ) is Dalvik bytecode which translated from Java bytecode using dx tool (replaced by D8 tool since API 28). This format was designed for systems that have constrained memory and processor speed.
Multiple classes are included in a single .dex file:
Compare with Java VM
The DVM was built specifically for Android, to address the battery life, processing speed. Moreover, the Java tools are free but the JVM is not, so Google engineers made their own VM and made it as free.
Unlike JVM, which are simple stack machines, the DVM uses a register-based — which requires fewer instructions, fewer code units, avoid unnecessary memory access — resulting in better performance code.
Android Runtime
Android Runtime (ART) is the managed runtime used by apps and system services on Android. Replacing the predecessor Dalvik, ART performs the translation of the app’s bytecode into native instructions that are later executed by the device’s runtime environment.
The ART is written to run multiple VMs on low-memory devices. To maintain backward compatibility, ART also uses the same input bytecode as Dalvik — the standard Dalvik EXecutable ( .dex ) files — which also designed for Android to minimize memory footprint.
From Android 5.0, each app runs in its own process, with its own instance of ART. But prior to this, it use Dalvik. If your app runs well on ART, then it should work on Dalvik as well, but the reverse may not true.
Just-In-Time vs Ahead-Of-Time
Just-In-Time (JIT) added in Android 2.2. It dynamically compiles bytecode into native machine code at run-time to make app runs faster. It does all this while app is running, and that’s where the “Just-In-Time” comes from.
Ahead-Of-Time (AOT) added in Android 4.4. It statically compiles bytecode into machine code at install-time — using on-device dex2oat tool — and stores data in the device’s storage, to improve run-time performance.
Compare with Dalvik VM
Dalvik is a JIT compilation based engine.
The ART includes a JIT compiler (with code profiling). The JIT compiler complements new AOT compiler and improves runtime performance, speed up apps and system updates.
Furthermore, ART has many more advantage:
Optimized garbage collector: one GC pause instead of two.
Loop optimizations: Bounds check, Induction variable is eliminated.
Faster native calls using @FastNative and @CriticalNative annotations.
Improve battery life.
Reduce startup time as native code is directly executed.
Faster runtime performance because AOT compile at install-time.
From API 28, convert APK’s DEX files to more compact machine code.
Better debugging support (dedicated sampling profiler, detailed exceptions reporting, and ability to set watchpoints to specific fields).
Optimized Garbage Collector
Garbage Collector (GC) can impact app’s performance with “stop-the-world” events, which resulting in frozen frames, poor UI responsiveness. The default GC plan is the CMS (concurrent mark sweep).
The ART improves GC in several ways:
The number of pauses is reduced from 2 to 1 compared to Dalvik. Dalvik’s first pause — which mostly root Marking — is done concurrently in ART by getting the threads to mark their own roots.
Parallelized processing in the second pause (before Sweeping phase).
Increased GC throughput enabled by the sticky CMS collector.
Reduce total time when clean up recently-allocated, short-lived objects.
Performs heap compaction — when app changes process state to background or cached — to reduce background memory usage.
In Conclusion
Before Android 5.0 (API 21), Android use Dalvik Virtual Machine (DVM) — a Process virtual machine — that optimized for mobile environment (memory, battery life, performance. ).
After that, each Android app runs in its own process and with its own instance of the Android Runtime (ART) — an app runtime environment used by Android OS. Replacing Dalvik, ART performs the translation of the app’s bytecode into native instructions that are later executed by the device’s runtime environment.