Android на VirtualBox. Установка и настройка

1. VirtualBox
2. Android SDK — средства разработчика, то, ради чего я и ставлю Андроид на виртуальную машину
3. Eclipse Classic 4.2 — среда разработки
4. Android-x86-2.3-RC1 — образ диска

Создаем виртуальную машину.
В VirtualBox при создании виртуальной машины выбираем
— Имя машины и тип ОС:
Имя: Android
в качестве ОС выбираем Linux
Версия: Other Linux
Для аппаратной начинки мне хватит 1Gb оперативной памяти и 1 CPU (остальные настройки оставил по умолчанию)
Добавить жёсткий диск: VDI drive, динамический размер, 4Гб

При первом запуске VB спросит, с какого носителя будет производится установка и здесь можно будет выбрать ISO-образ дистрибутива.

В загрузчике выбрать пункт меню
Installation — Install Android-x86 to harddisk
Далее создаем разделы (Create/Modify partitions)
New -> Primary -> Size (in MB) 4293,60
Подтвердить
Выбрать «Bootable»
Выбрать «Write» и подтвердить запись изменений, вписав yes
Quit (Выход)

Выбираем раздел для установки (Please select a partition to install Android-x86)
sda1 Linux VBOX HARDDISK
Выбор файловой системы (Please select a filesystem to format sda1)
ext3
Подтвердить форматирование
Yes
Установка загрузчика GRUB (Do you want install boot loader GRUB?). Подтвердить.
Yes

Вы хотите сделать /system для чтения и записи (Do you want to install /system directory as read-write). Подтвердить. Yes

Создаем SD карту (Create a fake SD Card)
Максимум 2Гб, создаем, форматируем и перезагружаемся (Перед перезагрузкой не забываем в меню «Устройства — Приводы оптических дисков» выбрать «Изъять диск из привода»).


Настраиваем сеть (интернет). GSM пока не научились эмулировать :(
В настройках виртуальной машины:
1. Сеть -> Адаптер 1 -> Тип подключения — NAT
Проброс портов:
Rule1:
Протокол TCP
IP хоста [в системе это Ethernet adapter VirtualBox Host-Only Network]: 10.0.2.101
Порт хоста: 5555
IP гостя: 10.0.2.15 (на скриншоте это адрес адаптера eth0)
Порт гостя: 5555
2. Сеть -> Адаптер 2 -> Тип подключения — Виртуальный адаптер хоста
Имя:  VirtualBox Host-Only Ethernet Adapter
Тип адаптера: PCnet-PCI II (Am79C970A)

В настройках Android:
1, Настройки -> Ethernet configuration -> Ethernet configuration:
Ethernet Devices: eth0
Connection Type: DHCP

Загрузить виртуальную машину и проверить, назначился ли адрес (Alt+F1 ):

netcfg

Должно быть что-то вроде
null

Изменяем разрешение экрана, чтобы было как на смартфоне (480×800).

Для того, чтобы сменить разрешение экрана виртуального устройства Android-x86 необходимо:

  1. Добавить пользовательское разрешение экрана (делается под текущим пользователем, из папки C:\Program Files\Oracle\VirtualBox):
    VBoxManage setextradata "НАЗВАНИЕ_ВИРТУАЛЬНОЙ_МАШИНЫ" "CustomVideoMode1" "480x800x16"
  2. Выяснить шестнадцатиричное значение для этого режима VideoMode:
    2.1. Запустить виртуальную машину
    2.2. В меню GRUB нажать клавишу a
    2.3. На следующем экране дописать в строку загрузчика vga=ask и нажать Enter
    2.4. В списке найти желаемое разрешение (480х800х16) и записать/запомнить шестнадцатиричное значение в колонке ‘Mode’
  3. Перевести значение в десятеричный формат (например 363 в шестнадцатеричном формате — это 867 в десятеричном).
  4. Теперь нужно отредактировать меню menu.lst:
    4.1. В меню GRUB выбрать Debug Mode
    4.2. Ввести следующее:

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

    4.3. Нажать ESC чтобы перейти в командный режим. Нажать ‘i’,
    Добавить vga=867 (если ваше шестнадцатеричное значение 363). Теперь строка загрузчика будет выглядеть так:

    kernel /android-2.3-RC1/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode DPI=160 SRC=/android-2.3-RC1 SDCARD=/data/sdcard.img vga=867

    4.4. Сохранить файл:

    :wq

    (Нажать ESC , потом держать Shift и нажать на клавиатуре ;: на русской , потом вписать wq и нажать Enter )

  5. Размонтировать и перезагрузиться:
    cd /
    umount /mnt
    reboot -f
    

Теперь нужно связать эмулятор и Eclipse.

Необходимо, чтобы к этому шагу Eclipse уже был установлен.
Запускаем виртуальную машину и под текущим пользователем открываем CMD.
Заходим в папку «C:\Program Files (x86)\Android\android-sdk\platform-tools»
Набираем:

adb connect 10.0.2.101

Должны получить:

connected to 10.0.2.101:5555

P.S. Лучше создать cmd-файл с этой командой, т.к. периодически связь слетает:
"C:\Program Files (x86)\Android\android-sdk\platform-tools\adb" connect 10.0.2.101

Горячие клавиши:

  • ESC или ПКМкнопка «Назад» на устройстве
  • Menu — клавиша справа от правой клавиши WIN (между правым Alt и Ctrl)
  • Экран консолиAlt+F1 ,
  • Экран устройства (графический) — Alt+F7
  • Правый Alt+курсор влево , Правый Alt+курсор вправо — листание экранов
  • Клавиша WIN — домой
  • Правый Ctrl+H или F5 — кнопка питания (Заблокировать экран — F5 )
  • Левый Alt+курсор влево ,Левый Alt+курсор вправо — Переключение между экраном устройства и консоли. Лучше работает на экране блокировки, без блокировки помимо этого он еще и листает экраны устройства.
  • Поиск — F3

Если система уснула, то разбудить ее можно, если несколько секунд держать клавишу «Home» (левый WIN) или «Назад» (ESC ).