Страница 1 из 3

Быстрая альтернатива Android Virtual Device

Добавлено: 28 янв 2013, 07:16
damager82
Перед любым начинающим Android-разработчиком рано или поздно встает вопрос о том, где и как удобнее запускать и отлаживать свои программы.


Click here to read this article!

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 28 янв 2013, 14:17
Finch
На железе всегда тестирую, от Galaxy Gio до Nexus 4 (Galaxy Gio, Galaxy Ace, Xpreia Arc S, Galaxy S2, Xperia Acro S, Xperia S, Nexus 4).
Из планшетов Nexus 7, Galaxy Tab.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 28 янв 2013, 20:15
rezak90
Finch писал(а):На железе всегда тестирую, от Galaxy Gio до Nexus 4 (Galaxy Gio, Galaxy Ace, Xpreia Arc S, Galaxy S2, Xperia Acro S, Xperia S, Nexus 4).
Из планшетов Nexus 7, Galaxy Tab.
Поддерживаю, не один эмулятор не сможет нормально эмулировать устройство, проверено миллионы раз.
З.Ы. те кто скажут мол дивайс покупать нужно и всё такое, одно дело если любитель пишет приложения, другое дело если вы хотите зарабатывать на этом то начинайте покупать по тихоньку устройства.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 29 янв 2013, 02:42
Finch
Не обязательно покупать, например у меня на работе есть куча народу с разными девайсами. Например у кого-то там друзья с "модными" смартами, попросить потестить версию.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 29 янв 2013, 06:30
eternal_ego
AVD тоже может работать с х86 образом. Эти образы далеко не для всех версий API есть, но для пары ключевых - имеются. И тоже работают в разы быстрее образов с эмуляцией arm-машины.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 29 янв 2013, 09:41
neoksi
Пробовал этот способ, но на моем ПК с процессором Intel Atom виртуалка с Android 4, нормально так и не запустилась. В результате программу на 4 версии тестирую через устройства друзей.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 29 янв 2013, 11:42
Mikhail_dev
Бывают ситуации, что хочешь попасть на работу андроид девелопером, но нету знаний в этом деле, хотя в java хорошо разбираешься. Телефона нету, а друзей тоже не всегда попросишь, ибо это время, походы до них. В общем AVD хоть и не очень хорош, но вполне помогает понять азы и решить насущную проблему.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 30 янв 2013, 04:34
frostegater
При пинге основного компа он пингует его без остановки. В чём причина?
upd/ проблему решил, не заметил что нужно нажать Ctrl+C

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 03 фев 2013, 01:17
Haster
Подскажите, как разлочить экран в эмуляторе андроида?
Держу нажатой кнопку мыши - значок с замком не увеличивается. Это глюк или механизм какой-то другой?
Заранее спасибо!

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 10 мар 2013, 01:43
insider
Потратил полдня, разбираясь с этой темой. Выкладываю свои наблюдения, главным образом по части настройки соединения с ADB и интернетом. Может, что-то будет избыточным, но всегда лучше, когда есть больше информации. Руководство для чайников.

Использовал образ "android-x86-4.0-RC2-eeepc.iso".
Первое отличие - мне хотелось сделать так, чтобы не нужно было устанавливать заново никаких параметров при включении ВМ. Поэтому, во-первых, я решил установить ОС, а не запускать как LiveCD. Устанавливал с параметрами: Linux/Other Linux, 512 МБ ОЗУ, создать виртуальный диск -> VDI -> динамический на 8 ГБ (многовато, наверное, но не суть). Аудио нужно выставить SoundBlaster 16 (если оно нужно). Процесс установки не сложен, решения можно принять самому по ходу. Подключаем образ, выбираем Install to harddisk. Дальше нужно создать раздел - Create/Modify Partitions. Создаем новый раздел New -> Primary, указываем размер (по умолчанию весь доступный виртуальный диск), ставим ему флаг Bootable, нажимаем Write, подтверждаем yes. Таблица пишется на диск. Выходим Quit. В списке появился созданный раздел, устанавливаем систему в него, форматируем в ext3, устанавливаем GRUB, разрешаем сделать /system как read-write, запускаем установленную систему. Устанавливаем параметры первого запуска Android. "Извлекаем диск" с образом из ВМ, а то при очередном запуске нам снова предложат установку.

Лирическое отступление: для активации курсора в Android должна быть выключена интеграция мыши. Выключить можно сочетанием Host key + I, в меню "Машина" или ПКМ на иконке мыши справа внизу.

Дальше самое важное -- настройка сети. У народа работают разные варианты. Пришлось подбирать и заниматься любовью с Гуглом, но вроде смысл до меня дошел. В настройках ВМ я включил два сетевых адаптера. Первый -- адаптер, через который выполняется подключение к Интернету (у меня Wi-Fi от Atheros) в режиме сетевого моста. Это у нас будет отвечать, как уже понятно, за доступ к Интернету. Второй -- виртуальный адаптер хоста VirtualBox Host-Only Ethernet Adapter. Соответственно, в настройках сети компьютера смотрим, чтобы он был включен. Заодно поинтересуемся прописанным в нем IP-адресом. У меня был 192.168.56.1.

Переключаемся на Android. Запускаем консоль через Alt+F1 (не паникуйте, GUI возвращается по Alt+F7). Команда netcfg - список сетевых интерфейсов. Нас интересуют eth0 и eth1. Смотрим, кому что присвоено. Скорее всего, eth0 работает (UP), и ему присвоен IP-адрес из вашей ЛС. Полдела с Интернетом сделано. Теперь нужно поднять сеть для обмена данными с ADB. Вариант 1: использовать DHCP, что не очень удобно, так как при каждом запуске ВМ IP может меняться. Но все же: команда netcfg eth1 dhcp. Снова смотрим netcfg - полученный IP-адрес и используем для подключения ADB. Вариант 2: предпочтительнее выделить статический IP. Пишем ifconfig eth1 192.168.56.2 netmask 255.255.255.0. Главное, чтобы IP был из той же подсети, что и IP, прописанный в VirtualBox Host-Only Ethernet Adapter (см. выше). Коннект с ADB теперь должен работать, но с Интернетом все еще проблемы: не прописан DNS. Нам нужна команда setprop net.dns1 8.8.8.8 (четыре восьмерки - адрес DNS от Гугла). Проблема, однако, в том, что команда должна быть запущена сразу после загрузки. Убьем двух зайцев: решим проблему с DNS и навсегда закроем тему с выделением IP. Дополним файл /etc/init.sh двумя строками с помощью редактора vi. Выполняем vi /etc/init.sh. Прокручиваем до последней строки (у меня их было 45), нажимаем "o", добавляем две строки:

Код: Выделить всё

ifconfig eth1 192.168.56.2 netmask 255.255.255.0
setprop net.dns1 8.8.8.8
Нажимаем esc. Наберем ZZ, и файл сохранится. Откроем еще раз и удостоверимся, что все в порядке. Если с vi возникнут проблемы, то Гугл в помощь (к примеру). Перезагрузка, и все должно работать. Тестим Интернет через встроенный браузер. Тестим коннект к ADB командой adb connect 192.168.56.2 с вашего компьютера. Отключение той же командой, только disconnect. Запускаем вашу программу из Eclipse, все должно работать.

Удачи. Надеюсь, у вас это займет меньше времени, чем у меня.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 мар 2013, 13:06
Xakep
rezak90 писал(а):одно дело если любитель пишет приложения, другое дело если вы хотите зарабатывать на этом то начинайте покупать по тихоньку устройства.
Должен не согласится. Дело не в том кто пишет, а в том как пишет. Да, должен согласится с тем что иногда окончательная доводка программы требует настоящего железа - особенно если реализация железа специфическое.
Но. Нужно не забывать что эмулятор, это своего рода эталон. Если программа будет работать на эмуляторе, то значит в 99.9% случаев будет работать и на других аппаратах.
______________________________________________________________________________________________________

Кстати. Что то тут не кто не упоминал о AndroVM, а ведь он больше всего подходит в качестве замены стандартному AVD.
2013-03-21_153922.jpg
2013-03-21_153922.jpg (120.05 КБ) 29585 просмотров
Из всех манипуляций что мне пришлось сделать, так это только накидать маленький батник для запуска эмулятора в один клик (Ну лентяй я! ;) ).
Android_4_Start.cmd

Код: Выделить всё

@ECHO OFF
START E:\Oracle\VirtualBox\VirtualBox.exe --comment "Android" --startvm "f7b3ef19-314e-4f5a-9851-9538f291820a"
ping -n 1 -w 15000 192.168.254.254 > nul
c:\PROGRA~1\Android\android-sdk\platform-tools\adb.exe kill-server
c:\PROGRA~1\Android\android-sdk\platform-tools\adb.exe start-server
c:\PROGRA~1\Android\android-sdk\platform-tools\adb.exe connect 192.168.56.101
c:\PROGRA~1\Android\android-sdk\platform-tools\adb.exe devices

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 мар 2013, 13:50
rezak90
Но. Нужно не забывать что эмулятор, это своего рода эталон. Если программа будет работать на эмуляторе, то значит в 99.9% случаев будет работать и на других аппаратах.
Я Вам сотню случаев могу привести почему это не эталон. Достаточно даже одного - не воспроизвести производительность телефона. Для покрытия 80% тестов всех дивайсов необходимо не менее 150 разных дивайсов что бы оттестировать приложение. И Вы возможно будете смеяться, но существуют даже должность для зарядки и залития всех дивайсов (это если серъёздная организация и имеет как я сказал 150 дивайсов)

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 мар 2013, 15:05
rezak90
и кстати если речь уж пошла о эталонах, то эталоном считается не эмулятор а дивайсы сертифицированные гуглом, из последних это линейка нексусов

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 мар 2013, 15:38
Xakep
А вы сравните папки /system в Нексусе и AVD. Будите удивлены но они фактически идентичны. Различаются только либами отвечающими за работу с железом, ну и в Нексусе еще пару плющек добавили для разнообразия.
Достаточно даже одного - не воспроизвести производительность телефона.
Я пропущенные СМС и Звонки как раз и тестировал на эмуляторе. Согласен, что не 100% функционала, но, для начала проекта вполне хватает.
Для покрытия 80% тестов всех дивайсов необходимо не менее 150 разных дивайсов что бы оттестировать приложение.
Достаточно и эмулятора, так как это фактически чистый AOSP. А то что производители девайсов начинают творить с прошивками прости господи не пойми что, так это проблемы только производителей девайсов, но не как не программиста.
Хотя. Можно конечно смирится и продолжать мучатся с железками по принципу "Любой каприз за ваши деньги"...

ps Что то мы плавно съехали в оффтоп. :)

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 мар 2013, 16:27
rezak90
почитайте на досуге http://habrahabr.ru/company/mbt/blog/172409/

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 мар 2013, 17:20
Xakep
Почитал. Занятное чтиво. Но. Ни чего нового я для себе не узнал. Я уже говорил
производители девайсов начинают творить с прошивками прости господи не пойми что, так это проблемы только производителей девайсов, но не как не программиста.
Если вольные программисты начнут творить только под эталон. Может быть тогда производители девайсов задумаются почему не кто не берет их девайсы из за не совместимого софта...

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 мар 2013, 18:01
rezak90
всё зависит от того какой продукт производится, если проект огромен и конкурентно способен то приходиться думать о таких масштабах, если это "аля-калькулятор" конечно хватит и эмулятора.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 июн 2013, 13:51
Leatar
Добрый день. Я установил VirtualBox, установил образ Андроида, подключил ADT, все работает прекрасно. Однако столкнулся с одним неприятным моментом: иногда экран VirtualBox просто становится черным и ничего не показывает. При этом виртуальная машина продолжает работать, все процессы работают, но я ничего не вижу. Приходится перезапускать ОС Андроид, заново настраивать порты для подключения к интернету и ADT. Кто-нибудь сталкивался с такой проблемой?

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 21 июн 2013, 14:00
anber
А про bluestacks еще ниче никто не писал?
Самый простой, быстрый и стабильный из альтернативных эмуляторов. Правда при переходе из альфы в бету сильно покромсали функционал и версия андроида только 2.3 но для тестирования логики подходит на ура.

Re: Быстрая альтернатива Android Virtual Device

Добавлено: 08 июл 2013, 17:09
RomanNT
Промучился целый день - может кому мой опыт время съекономит:
сразу после запуска эмулятора нужно зайти в настройки и включить отладку по USB (Настройки / Для разработчиков / Отладка по USB).
Иначе эмулятор не пингуется и adb его не видит.
Если выбирать между android-x86 и AndroVM - на мой вгляд, AndroVM и ставить проще, и работает быстрее, и пользоваться удобнее.
Иструкция по установке AndroVM см. выше в этой же теме: viewtopic.php?t=1582#p10258