VirtualBox — как альтернатива эмулятору ARM в Android SDK. Установка, настройка, подключение к среде разработки Eclipse и интернету
Наверняка многие из вас имели дело с эмулятором, поставляемым в комплекте Android SDK от компании Google. И, вероятно, очень многих разочаровала крайне медленная работа данного эмулятора, начиная от загрузки и заканчивая медленной работой вашего приложения. Речь идет об эмуляторе системы Android с поддержкой команд ARM-процессоров. Но ведь есть же в SDK образы системы Android для x86 процессоров, скажут многие, и будут правы. Но дело тут в том, что для эмуляции OS Android с поддержкой виртуализации x86-процессоров необходимо приложение HAXM от Intel, которое отказывается устанавливаться на компьютеры с процессорами фирмы AMD. Есть ли выход из данной ситуации для владельцев систем на базе AMD?
Ответ есть! И он заключается в использовании VirtualBox — свободнораспространяемой системы эмуляции с поддержкой виртуализации от фирмы Oracle. И не верьте тем, кто говорит, что настроить интернет на виртуальной машине можно только со специальным образом Андроида с поддержкой Ethernet. Поддержка Ethernet’а есть везде, просто в меню настроек Андроида нет такого пункта.
Что же нам нужно для успешной отладки своих приложений в виртуальной машине VirtualBox и настройки интернета?
Для этого необходимо скачать и установить последнюю версию VirtualBox’а, а так же скачать нужные вам образы ОС Android вот отсюда: http://www.android-x86.org/download
Запускаем VirtualBox и создаем виртуальную машину с такими параметрами:
Выделяем 256 Мб оперативной памяти, 128 Мб для видеоадаптера и создаём виртуальный диск размером 1 Гб (можно большего и меньшего размера под ваши потребности) типа VHD.
В настройках виртуальной машины подключаем скачанный образ системы Android:
Запускаем нашу виртуальную машину и видим:
Выбираем установку ОС «Андроид» на наш виртуальный жесткий диск и жмем Enter.
Далее выбираем первый пункт меню «Create/Modify partitions» и опять жмём Enter.
Теперь нужно создать первичный раздел Linux.
Выбираем пункт New, затем Primary, видим что-то вроде «Size (in MB): 1069,29» и жмём Enter, далее опять нажимаем Ввод на пункте Bootable и затем выбираем пункт Write.
На вопрос записать ли таблицу разделов на жесткий диск, вводим слово «yes».
После жмём на пункт Quit и видим следующее меню:
Выбираем первый пункт меню и далее выбираем пункт меню ext3 и жмём Ввод, далее нас спросят «Do you want to install boot loader GRUB?» — выбираем Yes, нажимаем Ввод. Далее нас спросят, «хотим ли мы, чтобы директория /system была доступна для чтения/записи?» — также выбираем Yes и нажимаем клавишу Ввод.
Если вы сделали все правильно, то вы увидите вот такую картинку с процессом установки ОС «Андроид» на виртуальный диск:
Поздравляю! Вы только что установили ОС «Андроид» для систем на базе x86-процессоров на виртуальный диск вашей виртуальной машины.
Но радоваться пока еще рано.
Теперь вы должны увидеть следующее окно:
Выбирите в этом окне пункт меню Машина, затем пункт Закрыть. нажмите на чекбокс «Выключить» и нажмите кнопку Ok.
После того, как вы выключили виртуальную машину, вы должны убрать из виртуального CD-привода образ с системой Андроид: Изъять диск из привода. Он нам больше не понадобится.
Далее в консоли либо в файл-менеджере типа Far создаем командный файл с расширением .bat, например s.bat, и прописываем в нём следующие команды:
Этим мы устанавливаем доступные для нашей виртуальной системы разрешения экрана, которые нам предпочтительно использовать. Жмём Ввод, и все изменения будут внесены в конфигурационные файлы виртуальной машины. Обратите внимание на имя вашей виртуальной машины, в моём примере это «Android 4.0 RC2».
После этого запускаем нашу виртуальную машину:
На первом пункте меню «Android-x86 4.0-RC2» нажимаем клавишу с латинской буквой «A», появится меню с конфигурационной строкой загрузки ОС в конце которой
будет написано «SRC=/android-4.0-RC2», после букв RC2 ставим пробел и пишем «vga=ask» и жмём Ввод. Потом еще раз Ввод. Появится вот такой экран:
Видим 4 созданные нами ранее видеорежима. Набираем на клавиатуре «361» и давим Ввод:
Далее настраиваете ваш Андроид как вам удобно. Не забывайте в меню виртуальной машины выбрать пункт «Машина» и пункт «Выключить интеграцию мыши». После этого вы можете кликнуть левой кнопкой мыши на окне с Андроидом и управлять им с помощью мышки. Выход из этого режима (по умолчанию) клавиша правый Ctrl.
Если Андроид впал в спячку и не реагирует на мышку, то пробудить его можно клавишей «контекстное меню» (нарисовано меню со стрелкой курсора), которая должна располагаться рядом с клавишей «Windows» (с изображением флага).
А теперь самое время подключить нашу среду разработки к виртуальной машине!
В меню окна нашей виртуальной машины жмем «Машина», «Настроить. », «Сеть», «Проброс портов», давим на иконку «+» и создаем новое правило для проброса портов:
IP адрес хоста 127.0.0.1, а IP гостя в моём случае 10.0.2.15. Узнать IP гостя можно следующим образом: в окне с Андроидом жмём комбинацию «Alt+F1» (выход из консоли «Alt+F7»). Попадаем в консоль, где вводим команду netcfg и давим Ввод:
Теперь после проделанных ранее манипуляций, пишем в консоли Windows «adb connect 127.0.0.1:5556» и вуаля!
А теперь самое вкусное!
Смотрим в настройках вашей сети DNS адреса провайдера,
Нажимаем в окне Андроида «Alt+F1» и вводим (в моем случае это DNS адрес 80.243.64.67):
(Вы должны ввести DNS адрес своего провайдера интернета).
Источник
Эмуляция arm для android x86
Описание:
Порт qemu-system-arm под Android.
Описание (переведённая на русский выдержка из документации):
Для платы ARM Integrator/CP эмулируются следующие устройства:
— Процессор ARM926E, ARM1026E, ARM946E, ARM1136 или Cortex-A8
— Два UART PL011
— Сетевая карта SMC 91c111
— LCD-контроллер PL110
— PL050 KMI с PS/2-клавиатурой и мышью
— Интерфейс MMC PL181 и карта памяти
Для платы ARM Versatile эмулируются следующие устройства:
— Процессор ARM926E, ARM1136 или Cortex-A8
— Векторный контроллер прерываний PL190
— Четыре UART PL011
— Сетевая карта SMC 91c111
— LCD-контроллер PL110
— PL050 KMI с PS/2-клавиатурой и мышью
— Шина PCI. Обратите внимание, что она обеспечивает доступ лишь к пространству памяти, но не IO. Это означает, что некоторые устройства (например, ne2k_pci NIC) непригодны для использования, а другие (например, rtl8139 NIC) могут использоваться только в том случае, если гостевые драйверы используют управляемые регистры памяти.
— PCI OHCI USB-контроллер
— Адаптер LSI53C895A PCI SCSI с поддержкой жёстких и компакт-дисков
— Интерфейс MMC PL181 и карта памяти
Поддерживается несколько вариантов ARM RealView, включая EB, PB-A8 и PBX-A9. Из-за особенностей взаимодействия с загрузчиком, на этих платах будут работать только определенные конфигурации ядра Linux.
Ядра для платы PB-A8 должны иметь включенными параметры CONFIG_REALVIEW_HIGH_PHYS_OFFSET и быть рассчитаны 512 МБ ОЗУ. Ядра для платы PBX-A9 должны иметь включенным параметр CONFIG_SPARSEMEM и отключенным параметр CONFIG_REALVIEW_HIGH_PHYS_OFFSET, а также быть рассчитаны на 1024 МБ ОЗУ.
Эмулируются следующие устройства:
— Процессор ARM926E, ARM1136, ARM11MPCore, Cortex-A8 или Cortex-A9 MPCore
— Контроллер прерываний ARM AMBA
— Четыре UART PL011
— Сетевая карта SMC 91c111 или SMSC LAN9118
— LCD-контроллер PL110
— PL050 KMI с PS/2-клавиатурой и мышью
— Шина PCI
— PCI OHCI USB-контроллер
— Адаптер LSI53C895A PCI SCSI с поддержкой жёстких и компакт-дисков
— Интерфейс MMC PL181 и карта памяти
Для КПК на базе XScale («Spitz», «Akita», «Borzoi» и «Terrier») эмулируются следующие устройства:
— Intel PXA270 SoC (ядро ARM V5TE)
— Флэш-память NAND
— Жесткий диск IBM/Hitachi DSCM в PXA PCMCIA-слоте — кроме «Akita»
— Интегрированный OHCI USB-контроллер
— Интегрированный LCD-контроллер
— Встроенные часы реального времени
— Cенсорный экран TI ADS7846 на шине SSP
— Аналого-цифровой преобразователь Maxim MAX1111 на шине I2C
— Контроллер клавиатуры, подключенный к GPIO, и светодиоды
— Карта памяти, подключенная к интерфейсу PXA MMC/SD
— Три встроенных UART
— Декодер WM8750 на шине I2C или I2S
Для КПК Palm Tungsten E (кодовое название «Cheetah») эмулируются следующие устройства:
— Texas Instruments OMAP310 SoC (ядро ARM 925T)
— ROM и RAM-память (образ прошивки может быть загружен с помощью -option-rom)
— Интегрированный LCD-контроллер
— Встроенные часы реального времени
— Сенсорный экран TI TSC2102i / аналого-цифровой преобразователь / декодер, подключенные через интерфейс MicroWire или I2S
— Матричная клавиатура, подключенная к GPIO
— Карта памяти, подключенная к интерфейсу OMAP MMC/SD
— Три встроенных UART
Для планшетов Nokia N800 и N810 (также известны как RX-34 и RX-44/48) эмулируются следующие устройства:
— Texas Instruments OMAP2420 SoC (ядро ARM 1136)
— ОЗУ и энергонезависимая флэш-память OneNAND
— Дисплей, подключенный к удаленному кадровому буферу EPSON, видеоконтроллер OMAP и контроллер LS041y3 MIPI DBI-C
— Сенсорные экраны TI TSC2301 (в N800) или TI TSC2005 (в N810), управляемые шиной SPI
— QWERTY-клавиатура, управляемая платой National Semiconductor LM8323 на шине I2C
— Карта памяти, подключенная к интерфейсу OMAP MMC/SD
— Три встроенных OMAP UART и консоль отладки STI
— Приемопередатчик Bluetooth(R) и HCI, подключенные к UART
— USB-контроллер Mentor Graphics «Inventra», встроенный в чип TI TUSB6010 — поддерживается только режим USB-хоста
— Датчик температуры TI TMP105, управляемый шиной I2C
— Плата управления питанием TI TWL92230C с часами реального времени на шине I2C
— Многоцелевые чипы Nokia RETU и TAHVO с часами реального времени, подключенные через CBUS
Для Luminary Micro Stellaris LM3S811EVB эмулируются следующие устройства:
— Ядро процессора Cortex-M3.
— 64 КБ флэш-памяти и 8 КБ SRAM.
— Таймеры, UART, ADC и шина I2C.
— OSRAM Pictiva 96×16 OLED с контроллером SSD0303 на шине I2C.
Для Luminary Micro Stellaris LM3S6965EVB эмулируются следующие устройства:
— Ядро процессора Cortex-M3.
— 256 КБ флэш-памяти и 64 КБ SRAM.
— Таймеры, UART, ADC, интерфейсы I2C и SSI.
— OSRAM Pictiva 96×16 OLED с контроллером SSD0323, подключенным через SSI.
Для интернет-радио Freecom MusicPal эмулируются следующие устройства:
— Ядро Marvell MV88W8618 ARM
— 32 МБ RAM, 256 КБ SRAM, 8 МБ флэш-памяти
— До двух 16550 UART
— Сетевая карта MV88W8xx8
— Звуковая плата MV88W8618, декодер WM8750 и микшер
— Дисплей 128×64 с регулировкой яркости
— Две кнопки, два колесика навигации с функциями кнопок
Модели Siemens SX1 v1 и v2 (по умолчанию). Эмулируются следующие устройства:
— Texas Instruments OMAP310 SoC (Ядро ARM 925T)
— ROM и RAM-память (образ прошивки может быть загружен с помощью -pflash), V1 (16 и 8 МБ), V2 (32 МБ)
— Интегрированный LCD-контроллер
— Встроенные часы реального времени
— Карта памяти, подключенная к интерфейсу OMAP MMC/SD
— Три встроенных UART
Тестовый образ Linux 2.6 доступен на сайте QEMU. Более подробную информацию можно найти в архиве списка рассылки QEMU.
Следующие параметры относятся к эмуляции ARM:
-semihosting
Включить эмуляцию системных вызовов посредством semihosting.
В случае с ARM это реализация интерфейса «Angel».
Обратите внимание, что гостевой ОС предоставляется прямой доступ к файловой системе основной машины.
Скачать:
Версия 4.1.0
версия: 3.0.1limbo-android-arm-kvm-release-3.0.1-beta-arm.apk ( 13.23 МБ )
версия: 3.0.0limbo-androidarmv7-arm-kvm-release.3.0.0.apk ( 8.36 МБ )
версия: 2.11.0limbo-androidarmv7-arm-release.2.11.0.apk ( 9.61 МБ )
limbo-androidarmv8-arm-release.2.11.0.apk ( 9.46 МБ )
версия: 2.10.0limbo-androidarm-arm-release.2.10.0.apk ( 8.91 МБ )
limbo-androidx86-arm-release.2.10.0.apk ( 9.4 МБ )
Источник
Эмуляция arm для android x86
Описание:
Порт qemu-system-arm под Android.
Описание (переведённая на русский выдержка из документации):
Для платы ARM Integrator/CP эмулируются следующие устройства:
— Процессор ARM926E, ARM1026E, ARM946E, ARM1136 или Cortex-A8
— Два UART PL011
— Сетевая карта SMC 91c111
— LCD-контроллер PL110
— PL050 KMI с PS/2-клавиатурой и мышью
— Интерфейс MMC PL181 и карта памяти
Для платы ARM Versatile эмулируются следующие устройства:
— Процессор ARM926E, ARM1136 или Cortex-A8
— Векторный контроллер прерываний PL190
— Четыре UART PL011
— Сетевая карта SMC 91c111
— LCD-контроллер PL110
— PL050 KMI с PS/2-клавиатурой и мышью
— Шина PCI. Обратите внимание, что она обеспечивает доступ лишь к пространству памяти, но не IO. Это означает, что некоторые устройства (например, ne2k_pci NIC) непригодны для использования, а другие (например, rtl8139 NIC) могут использоваться только в том случае, если гостевые драйверы используют управляемые регистры памяти.
— PCI OHCI USB-контроллер
— Адаптер LSI53C895A PCI SCSI с поддержкой жёстких и компакт-дисков
— Интерфейс MMC PL181 и карта памяти
Поддерживается несколько вариантов ARM RealView, включая EB, PB-A8 и PBX-A9. Из-за особенностей взаимодействия с загрузчиком, на этих платах будут работать только определенные конфигурации ядра Linux.
Ядра для платы PB-A8 должны иметь включенными параметры CONFIG_REALVIEW_HIGH_PHYS_OFFSET и быть рассчитаны 512 МБ ОЗУ. Ядра для платы PBX-A9 должны иметь включенным параметр CONFIG_SPARSEMEM и отключенным параметр CONFIG_REALVIEW_HIGH_PHYS_OFFSET, а также быть рассчитаны на 1024 МБ ОЗУ.
Эмулируются следующие устройства:
— Процессор ARM926E, ARM1136, ARM11MPCore, Cortex-A8 или Cortex-A9 MPCore
— Контроллер прерываний ARM AMBA
— Четыре UART PL011
— Сетевая карта SMC 91c111 или SMSC LAN9118
— LCD-контроллер PL110
— PL050 KMI с PS/2-клавиатурой и мышью
— Шина PCI
— PCI OHCI USB-контроллер
— Адаптер LSI53C895A PCI SCSI с поддержкой жёстких и компакт-дисков
— Интерфейс MMC PL181 и карта памяти
Для КПК на базе XScale («Spitz», «Akita», «Borzoi» и «Terrier») эмулируются следующие устройства:
— Intel PXA270 SoC (ядро ARM V5TE)
— Флэш-память NAND
— Жесткий диск IBM/Hitachi DSCM в PXA PCMCIA-слоте — кроме «Akita»
— Интегрированный OHCI USB-контроллер
— Интегрированный LCD-контроллер
— Встроенные часы реального времени
— Cенсорный экран TI ADS7846 на шине SSP
— Аналого-цифровой преобразователь Maxim MAX1111 на шине I2C
— Контроллер клавиатуры, подключенный к GPIO, и светодиоды
— Карта памяти, подключенная к интерфейсу PXA MMC/SD
— Три встроенных UART
— Декодер WM8750 на шине I2C или I2S
Для КПК Palm Tungsten E (кодовое название «Cheetah») эмулируются следующие устройства:
— Texas Instruments OMAP310 SoC (ядро ARM 925T)
— ROM и RAM-память (образ прошивки может быть загружен с помощью -option-rom)
— Интегрированный LCD-контроллер
— Встроенные часы реального времени
— Сенсорный экран TI TSC2102i / аналого-цифровой преобразователь / декодер, подключенные через интерфейс MicroWire или I2S
— Матричная клавиатура, подключенная к GPIO
— Карта памяти, подключенная к интерфейсу OMAP MMC/SD
— Три встроенных UART
Для планшетов Nokia N800 и N810 (также известны как RX-34 и RX-44/48) эмулируются следующие устройства:
— Texas Instruments OMAP2420 SoC (ядро ARM 1136)
— ОЗУ и энергонезависимая флэш-память OneNAND
— Дисплей, подключенный к удаленному кадровому буферу EPSON, видеоконтроллер OMAP и контроллер LS041y3 MIPI DBI-C
— Сенсорные экраны TI TSC2301 (в N800) или TI TSC2005 (в N810), управляемые шиной SPI
— QWERTY-клавиатура, управляемая платой National Semiconductor LM8323 на шине I2C
— Карта памяти, подключенная к интерфейсу OMAP MMC/SD
— Три встроенных OMAP UART и консоль отладки STI
— Приемопередатчик Bluetooth(R) и HCI, подключенные к UART
— USB-контроллер Mentor Graphics «Inventra», встроенный в чип TI TUSB6010 — поддерживается только режим USB-хоста
— Датчик температуры TI TMP105, управляемый шиной I2C
— Плата управления питанием TI TWL92230C с часами реального времени на шине I2C
— Многоцелевые чипы Nokia RETU и TAHVO с часами реального времени, подключенные через CBUS
Для Luminary Micro Stellaris LM3S811EVB эмулируются следующие устройства:
— Ядро процессора Cortex-M3.
— 64 КБ флэш-памяти и 8 КБ SRAM.
— Таймеры, UART, ADC и шина I2C.
— OSRAM Pictiva 96×16 OLED с контроллером SSD0303 на шине I2C.
Для Luminary Micro Stellaris LM3S6965EVB эмулируются следующие устройства:
— Ядро процессора Cortex-M3.
— 256 КБ флэш-памяти и 64 КБ SRAM.
— Таймеры, UART, ADC, интерфейсы I2C и SSI.
— OSRAM Pictiva 96×16 OLED с контроллером SSD0323, подключенным через SSI.
Для интернет-радио Freecom MusicPal эмулируются следующие устройства:
— Ядро Marvell MV88W8618 ARM
— 32 МБ RAM, 256 КБ SRAM, 8 МБ флэш-памяти
— До двух 16550 UART
— Сетевая карта MV88W8xx8
— Звуковая плата MV88W8618, декодер WM8750 и микшер
— Дисплей 128×64 с регулировкой яркости
— Две кнопки, два колесика навигации с функциями кнопок
Модели Siemens SX1 v1 и v2 (по умолчанию). Эмулируются следующие устройства:
— Texas Instruments OMAP310 SoC (Ядро ARM 925T)
— ROM и RAM-память (образ прошивки может быть загружен с помощью -pflash), V1 (16 и 8 МБ), V2 (32 МБ)
— Интегрированный LCD-контроллер
— Встроенные часы реального времени
— Карта памяти, подключенная к интерфейсу OMAP MMC/SD
— Три встроенных UART
Тестовый образ Linux 2.6 доступен на сайте QEMU. Более подробную информацию можно найти в архиве списка рассылки QEMU.
Следующие параметры относятся к эмуляции ARM:
-semihosting
Включить эмуляцию системных вызовов посредством semihosting.
В случае с ARM это реализация интерфейса «Angel».
Обратите внимание, что гостевой ОС предоставляется прямой доступ к файловой системе основной машины.
Скачать:
Версия 4.1.0
версия: 3.0.1limbo-android-arm-kvm-release-3.0.1-beta-arm.apk ( 13.23 МБ )
версия: 3.0.0limbo-androidarmv7-arm-kvm-release.3.0.0.apk ( 8.36 МБ )
версия: 2.11.0limbo-androidarmv7-arm-release.2.11.0.apk ( 9.61 МБ )
limbo-androidarmv8-arm-release.2.11.0.apk ( 9.46 МБ )
версия: 2.10.0limbo-androidarm-arm-release.2.10.0.apk ( 8.91 МБ )
limbo-androidx86-arm-release.2.10.0.apk ( 9.4 МБ )
Источник