Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Ускорение разработки для Android с помощью VirtualBox и Android-x86

Оригинал: Speeding up Android development with Android-x86 and VirtualBox
Автор: Bruno Costa
Дата публикации: 16 ноября 2011 года
Перевод: А. Кривошей
Дата перевода: январь 2012 г.

Недавно я начал изучать программирование для Android и до сих пор единственной вещью, которая тормозила весь процесс разработки, был болезненно медленный эмулятор Android. На самом деле это прекрасно выполненный эмулятор, который моделирует большинство (если не все) аспектов работы реального устройства (например, я ограничивал пропускную способность сети, чтобы посмотреть, как мое приложение будет работать при медленном соединении), но действительно медленный.
Должен сказать, что мой компьютер не относится к разряду топовых. Это обычный Core 2 Duo с 4 Гб оперативной памяти, на котором работает Ubuntu 11.10 (amd64), поэтому я начал искать решения, которые позволили бы ускорить работу эмулятора, и обнаружил, что в качестве эмулятора можно использовать Android-x86. Он не так хорош, как официальный эмулятор от Google, но после определенных настроек действительно ускоряет как загрузку, так и скорость исполнения программ.
Проект Android-x86 предлагает несколько ISO-образов, которые могут быть запущены на VirtualBox. Скачайте со страницы загрузки образ android-x86-2.3-RC1-eeepc.iso, который стабилен в работе и имеет поддержку ethernet. Имеется также образ RC1 honeycomb, но его я не тестировал. Теперь создадим виртуальную машину в VirtualBox. Я использовал следующие настройки:

$ Linux / Linux 2.6, RAM: 256 MB, Fixed Size, 512 MiB VDI Disk

название и тип виртуальной машины

Можете попробовать менять настройки, чтобы добиться наилучшей производительности ваших приложений. Для меня оказалось достаточно 256 Мб оперативной памяти.

настройка размера RAM виртуальной машины

Теперь необходимо подключить к виртуальной машине ISO-образ, для этого выберите из списка свою виртуальную машину, перейдите в "Settings / Storage", кликните иконку диска и выберите свой ISO.

настройка носителей виртуальной машины

Перейдите в "Network", здесь имеются две несложные опции - если вы пользуетесь роутером, выберите опцию "Bridged Adapter" и устройство, подключенное к интернету (у меня это eth1). По моему мнению, это самый легкий способ настройки сетевого соединения.

настройка сетевых установок виртуальной машины

Если у вас нет роутера, или он по каким-либо причинам не работает, выберите NAT. При использовании NAT вы не подключаетесь к устройству напрямую, однако, к счастью, VirtualBox имеет очень удобную возможность пробрасывания портов. Для его активации необходимо кликнуть на "Advanced / Port forwarding" и добавить правило, что-то вроде этого:

настройка форвардинга

Имейте ввиду, что независимо от того, каким образом вы подключаетесь к сети, необходимо в расширенных настройках указать тип адаптера PCnet-FAST III.
Также, если вам не нужен USB-контроллер, можете его отключить.
Теперь нажмите OK и запустите виртуальную машину. В меню GRUB выберите "Install to Harddisk"

загрузочное меню android-x86

Следуйте инструкциям установщика. В меню "partition options" выберите "Create/Modify partitions", загрузится редактор разделов (cfdisk). Теперь, используя клавиши со стрелками, выберите "New / Primary" и задайте размер раздела (у меня 534,64). Сделайте раздел загрузочным и выберите "Write", чтобы сохранить изменения, а затем "Quit", чтобы вернуться в инсталляционное меню.
Выберите созданный раздел (sda1) и кликните "OK". Теперь отформатируйте его в ext3 и установите GRUB.
Когда установщик спросит, хотите ли вы сделать системную директорию доступной на чтение/запись, согласитесь. Установка длится не очень долго. Вы можете также создать виртуальную SD-карту. Я сделал ее размером 128 Мб. Однако этот этап можно пропустить и сразу перезагрузиться.
После окончания инсталляции вы можете выключить виртуальную машину, перейти в настройки и отключить ISO-образ, после чего вновь запустить ее.

режим отладки

В меню GRUB выберите пункт "Debug Mode", чтобы настроить разрешение экрана, я задал 480х750 для более полного эмулирования экрана смартфона. Для этого выполните следующие команды:

$ mount -o remount,rw /mnt
$ cd /mnt/grub
$ vi menu.lst

Откроется конфигурационный файл меню GRUB с настройками по умолчанию. Вам необходимо создать новый пункт со следующими опциями:

Чтобы перейти в режим редактирования (который называется режимом вставки) в vi, используйте клавишу Insert. После вставки вышеприведенных строк сохраните файл на диск: нажмите Escape (чтобы выйти из режима вставки), затем в командной строке в нижней части экрана введите ":wq".
Теперь необходимо отмонтировать диск и перезагрузить виртуальную машину. Для этого введем следующие команды:

$ cd /
$ umount /mnt
$ reboot -f

Готово! Теперь необходимо сделать кое-какие настройки.
Через пару секунд вы увидите домашний экран Android. В виртуальной системе кликните по иконке меню приложений и перейдите в "Settings". Активируйте Ethernet-адаптер. Чтобы вернуться к домашнему экрану, нажмите клавишу Win, чтобы вернуться на одну страницу назад, нажмите Escape.

настройка сети

Если вы ранее выбрали NAT, то настраивать ничего не нужно, если Bridged, то необходимо получить IP-адрес виртуальной машины. Нажмите Alt + F1, чтобы перейти к командной строке Busybox и выполнить команду netcfg. Ваши настройки сети должны быть выведены на консоль. Чтобы вернуться в графический интерфейс, нажмите Alt + F7.

настройка сетевого моста

Теперь необходимо подключить adb, чтобы была возможность использовать эмулятор из Eclipse.
Откройте консоль и перейдите в поддиректорию platform-tools в папке с android sdk. Если вы используете NAT, выполните команду:

$ adb connect 127.0.0.1

Если вы используете Bridged Adapter, выполните команду:

$ adb connect ip-adress

Где ip-adress - это адресс, который ранее был выведен командой netcfg.

Теперь перейдите в Eclipse и запустите свой проект как Android Application. Если окно выбора устройства не отображается, перейдите в "Run Configurations" и установите переключатель "Android Launcher" в положение "Manual".

настройка eclipse

Я обычно использовал официальный эмулятор, только чтобы удостовериться, что все работает как надо.
Вы также можете скачать более старые версии android от проекта android-x86 для эмуляции других устройств. Надеюсь, что эта статья поможет вам в разработке приложений под android.