Android virtual device ubuntu

Android программы в Ubuntu.

Если хочется поиграть в игрушки с платформы Android в любимой Ubuntu, то данная статья поможет в этом. Ведь Андроид это патченное ядро Linux и виртуальная java машина Dalvik. Вроде родные проекты и всё должно быть гладко. Так ли это?

Подготовка.

По умолчанию в Ubuntu идёт Java, которая именуется OpenJDK и официально признаётся эталонной реализацией Явы. Хотя жизнь показывает, что не все Java программы, работающие в Oracle Java, работают в OpenJava — вот такое нарушение собственного девиза «написано раз — работает везде».

У меня в системе установлена Java от Oracle, но с OpenJava не должно быть проблем.

Так же следует знать, что мы будем запускать 32 битное приложение и если у вас 64 битная система, то в релизах Убунту ДО версии 12.xx нужно установить пакет ia32-libs. С версии 12.xx взят курс на «многоархитектурность» и вам нужно поставить пакет ia32-libs-multiarch, который позволит 32 битным программам найти нужные библиотеки в 64 битной системе.

И так у вас есть установленная Java и если у вас 64 битная система, то вы разобрались с ia32-libs* и 32 битные программы у вас запускаются корректно.

Android SDK.

Вам нужно скачать увесистый файл android-sdk*linux.tgz с сайта developer.android.com. Скачайте в домашнюю папку и распакуйте, чтобы получилась итоговая папка

Для запуска Android SDK Manager используйте

/android-sdk-linux/tools/android. При первом запуске из сети будут скачаны многие дополнительные модули и потребуется ваше терпение, зависящее от ширины вашего Интернет канала.

Создание Android Virtual Device.

После обновления, можно приступить к формированию своего виртуального смартфона, который называется Android Virtual Device (AVD). В меню «Tools — Manage AVDs» вы найдёте Android Virtual Device Manager.

Как видно из картинки, все ваши созданные AVD будут храниться в

/.android/avd/. Создать новую AVD вы можете кнопкой New.

В появившемся окне вы должны задать параметры AVD:

  • Name: — название вашей AVD. Должно быть уникально в пределах множества различных AVD.
  • Target: — целевая программная платформа. В моём случае это были: Android 4.1.2 API Level 16 и Google APIs API Level 16. Google API позволит использовать Google Play — место андроидных приложений, некий аналог убунту репозиториев. Но используя Google Play вы можете столкнуться со множеством ситуаций, когда Google Play будет сообщать, что «ваше устройство не поддерживается». Для таких целей я создал второй AVD с «Android 4.1.2 API Level 16» и использовал ручную установку приложений из файлов apk.
  • CPU/ABI: — целевая аппаратная платформа. В моём случае доступны были: Intel Atom (x86), ARM (armeabi-v7a), Mips (mips).
  • SD Card: — задайте готовый образ «виртуальной» карты через File или создайте новую карту через Size и укажите размер.
  • Snapshot: — возможность создания снимков оставьте не тронутым.
  • Skin: — «шкурку» лучше оставить в дефолтном значении, у меня это WVGA800. Это определяет так же размер экрана.
  • Hardware: — рекомендую добавить кнопкой New новое устройство (поддержку) Клавиатура, что позволит комфортно использовать внутри Андроида ввод с клавиатуры, а не использовать только мышь, щёлкая по виртуальным кнопкам виртуальной клавиатуры.

Нажмите Create AVD и наберитесь терпения.

Использование Android Virtual Device.

Закончив создание AVD, запустите её выделив в списке и нажав кнопку Start и в новом окне Launch. Загрузившись в ваш виртуальный смартфон или планшет под управлением Андроид, вы увидите интерфейс, позволяющий видеть слева собственно экран, а справа элементы управления.

Желательно русифицировать интерфейс, хотя, если вы хорошо владеете английским языком, то можете и оставить английский язык единственным. Найдите в настройках Custom Locale и выставьте ru_RU.

Убедитесь, что вы разрешаете установку из неизвестных источников. Галочка ДОЛЖНА быть установлена.

У меня не получилось подружиться с Google Play, хотя я просто мало пытался и мне было проще скачать файл apk и установить его.

Теперь можно установить себе множество бесплатных развлекающих программ, которые вы не нашли под Ubuntu. Разве такие есть?

Лепим ярлыки Андроиду.

Если вы установили нужный софт в вашу виртуальную платформу и хотите быстро запускать её, то можете создать ярлык на Рабочем Столе или в Unity Launcher. Для этого создайте desktop файл, указывающий и запускающий вашу платформу. В моём случае был создан ярлык с запуском

Читайте также:  Принципы material design android

На десерт видео, где менеджер Canonical Ричард Коллинз показывает прямо противоположную задачу — Ubuntu работает в паре на телефоне с Android. Когда вы вставляете смартфон в док станцию, Убунту берёт управление на себя и вы работаете как на обычном ПК. Но Убунту будет в курсе о ваших звонках и СМС. Вынимаете смартфон из док станции и перед вами обычный смартфон под управлением Android.

Источник

Запуск приложений в Android Virtual Device на удаленном Linux-сервере

В процессе работы над одним проектов возникла ситуация, когда необходимо проводить в автоматическом режиме ряд операций из мобильного приложения. Поскольку набор входных данных, которые вводит пользователь для работы приложения меняется, была необходима реализация, которая позволила бы имитировать действия пользователя. Более того, необходимо было, чтобы приложение запускалось автоматически на удаленном linux-сервере, выполняло действия и сохраняло результаты. О том, как решал данную задачу, я и хочу рассказать читателям.

Первая часть задачи решалась достаточно просто — взять библиотеку для тестирования мобильных приложений и реализовать необходимую логику. Выбор пал на Robotium. Во-первых, он бесплатный, во-вторых он позволяет достаточно удобно работать с тестируемым приложением, по крайней мере для меня. Не буду акцентировать внимание на реализации тестов, этому посвящены другие статьи, напомню только, что в результате получается еще одно приложение, которое умеет запускать тестируемое приложение, анализировать, что оно отображает и т.д. Вторая часть работы имела гораздо больше всевозможных подводных камней, но обо всем по порядку.

Требования и инструменты

Главным требованием было то, что приложение должно запускаться на linux-сервере. Для меня это значило, что привычного мне, заядлому «виндузятнику», графического интерфейса не будет со всеми вытекающими из этого сложностями. Также среди полезных пожеланий была возможность вести отладку все на том же сервере при необходимости.

Для реализации использовались:

  1. Среда разработки — IntelliJ IDEA;
  2. Удаленный сервер linux — Debian 7;
  3. Android SDK;
  4. Putty — для реализации удаленной отладки.

Шаг 1. Разворачиваем SDK

Сам Android SDK можно взять отсюда. Для его работы, разумеется, необходим предустановленный JDK, у меня это была версия 1.7. Ранее была необходима именно х86 версия, но начиная с некоторых последних версий данная проблема отпала. После того как Android SDK у нас есть, начинаем его устанавливать и настраивать:

  1. Копируем архив на нашу linux-машину и распаковываем в нужный каталог;
  2. Далее обновляем наш SDK.
    Тут два варианта. Первый, когда вы точно знаете, что вам необходимо, тогда получаем список доступных библиотек:

В результате получим длинный список доступных для скачивания пакетов, выбираем нужные и даем команду для из загрузки:

Второй вариант скачать все, что доступно на текущий момент. Мне он оказался ближе, потому что сам я не разработчик Android и не был уверен, что выберу все, что нужно:

Обе эти команды описаны на официальном сайте в разделе документации, но почему-то описание ключа —no-ui, который указывает на запуск без графического интерфейса, я там не нашел, возможно, плохо искал.

  • Ждем окончания загрузки пакетов.
  • Далее для простоты управления можно добавить утилиты adb, android, emulator из каталогов platform-tools и tools в системные переменные, но я запускал их просто из каталога.

    Шаг 2. Создаем и запускаем Android Virtual Device

    Теперь нам необходимо создать наше виртуальное устройство, тут тоже ничего сложного, команда для этого стандартная:

    Имя устройства — ну тут все и так понятно.
    Порядковый номер версии ОС Android — его можно увидеть в списке доступных версий для создания устройства. Сам список можно получить командой:

    Набор инструкций процессора — какой процессор эмулировать, если для версии Android использовался только один вариант процессора, то данный параметр можно проигнорировать, иначе в ответ на команду утилита выдаст сообщение о необходимости явно указать набор инструкций, а также укажет возможные варианты. Например, у меня значение этого параметра было default/armeabi.

    После этого создает папку с набором файлов виртуального устройства, расположен он в каталоге */.android/avd, который находится или в директории root, или в директории, где расположен сам SDK (зависит от прав пользователя). Имя каталога с файлами совпадает с именем виртуального устройства.

    Теперь запускаем наше устройство. Напоминаю, что в условии стоит, что сервер у нас с терминальным доступом, а значит никаких графических библиотек у нас не было, нет и не будет. Но надо отдать ребятам из Google должное, они и этот случай предусмотрели:

    -no-window — указывает на запуск с отключенным экраном.
    Имя устройства — имя, которое мы указали при создании устройства выше.
    Более подробное описание и другие ключи для запуска можно найти здесь.

    Теперь нужно дождаться, пока устройство загрузится:

    Теперь нам осталось только установить наши приложения: основное, которое обращается к серверу, и robotium-приложение, которое умеет обращаться к основному и выполнять действия:

    -r — данный ключ показывает, что если приложение уже существует, то перезаписать его.
    Имя приложения — имя вашего apk-файла с расширением.

    На многих ресурсах я встречал упоминание, что AVD можно переносить просто скопировав файлы с одной машины на другую, но у меня не получилось: linux при попытке запуска бодро ругнулся на отсутствие файла kernel.ini, хотя на созданном непосредственно в linux-е эмуляторе никаких файлов с таким именем не наблюдалось. Но поскольку создание эмулятора дело минутное, я махнул на это рукой.

    Шаг 3. Запуск приложений

    Запустить robotium-приложение достаточно просто (я приведу конкретный пример для наглядности):

    emulator-5554 – имя эмулятора, обычно оно стандартно, если эмулятор запущен в системе один, но посмотреть список доступных запущенных устройство можно командой:

    e class com.example.robotium.Kernel – имя класса в robotium-приложении, непосредственно выполняющего тесты.
    com.example– имя package из файла AndroidManifest.xml для robotium-приложения.

    Казалось бы, вот и финиш, но не тут-то было. Приложение стартовало, какое-то время выполнялось и выпадало с ошибкой. Все оказалось банально, при запуске эмулятор стартует с заблокированным экраном – и ему все равно отображается этот экран или нет. Одна из первых ссылок в поисковике советует нам просто вбить команду:

    Тест на своей windows-машине показал, что это работает, причем независимо от того запущен эмулятор с параметром –no-window, и без него. А вот запуск на debian-е не дал ничего, ошибка повторялось, а значит причина в другом, предположил я. Долгие поиски не дали ничего конкретного, видимо, мало кому приходит в голову гонять тесты для GUI на терминальном сервере. В основном встречались комментарии, что поскольку тесты эти для gui, то и работать они при отключенном экране не могут, мол, нет GUI отображающегося, нет и тестов для них. Но у меня ситуация была из разряда «партия сказала надо» и придти с таким ответом к своему teamlead-у я не мог, поэтому я взял за аксиому, что экран просто не разблокировался, к сожалению проверить визуально как оно было на самом деле я не смог, сервер терминальный все-таки. Добавил дополнительные проверки на состояние экрана в момент запуска и действительно оказалось, что экран мало того, что не разблокирован, но и еще выключен – подвела-таки команда.

    Проблему решить помогла программная разблокировка. Для этого в robotium-приложении добавляем код:

    Чтобы данный код заработал в файл AndroidManifest.xml необходимо добавить следующие строчки:

    Следует отметить, что добавлять нужно не в файл robotium-приложения, а в файл тестируемого приложения, потому что вся работа с ОС Android ведется именно через него, а значит ему и нужны все права на доступ.

    После этого еще раз выполняем описанную ранее команду — ура, все запустилось все работает.

    Шаг 4. Настройка удаленной отладки

    К сожалению, с нуля, ни сама Android SDK, ни IDEA не умеют работать с виртуальными устройствами на удаленных серверах, а значит заставим их думать, что устройство здесь, рядом. Для этого настроим в Putty туннель к нашему серверу. Для этого надо добавить два порта — для устройства emulator-5554 это будут порты 5554 и 5555. Для уточнения на всякий случай пример на изображении:

    Теперь на удаленном сервере выключаем сервис ADB:

    А на локальной машине запускаем или перезапускаем (сразу выключив):

    Теперь если выполнить команду ./adb devices — мы увидим удаленные запущенные устройства. К сожалению, запускать эмуляторы удаленно мы не можем, только видеть уже запущенные, ну и работать с ними. Теперь, при запуске robotium-приложения непосредственно из IDEA в диалоге выбора устройства мы увидим и наш удаленный эмулятор (см. изображение). С ним можно работать точно так же как и с локальным.

    Спасибо за внимание, надеюсь данный пост будет полезен еще кому-то, потому что мне его в свое время очень не хватало.

    Источник

    Rebel code

    инструкции, руководства, документация

    Эмулятор Android-устройств на VirtualBox в Ubuntu

    Подробная пошаговая инструкция по установке и использованию эмулятора VirtualBox для использования совместно с Android Studio в ОС Ubuntu. Основная задача: использовать виртуальное устройство в VirtualBox для разработки и запуска приложений из Android Studio.

    Особенно актуально использование интерфейса Bluetooth в виртуальном устройстве VirtualBox, т.к. большинство эмуляторов его не поддерживает. С помощью этой инструкции можно подключить виртуальную машину к интерфейсу Bluetooth компьютера.

    1. Установка VirtualBox

    VirtualBox можно установить через «Центр приложений Ubuntu». После установки через терминал следует добавить текушего пользователя в группу vboxusers, это нужно для того, чтобы иметь доступ к реальным USB-устройствам через VirtualBox:

    имя_пользователя — имя текущего пользователя Ubuntu.

    После этого следует перезапустить сеанс пользователя или перезагрузиться.

    2. Создание виртуальной машины VirtualBox

    Создадим виртуальную машину с произвольным именем, на основе Linux / Other Linux (32-bit).

    Оперативная память будет 512 Мб, этого вполне достаточно.
    Далее создадим новый виртуальный диск, лучше использовать не менее 2 Гб, т.к. система займёт порялка 700 Мб. Тип диска VDI (VirtualBox Disk Image), фиксированный виртуальный жёсткий диск.

    Если создать слишком маленький по объёму виртуальный диск, можно поймать ошибку:
    Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE] , лечится увеличением объёма виртуального диска.

    3. Установка ОС Android

    Перед установкой системы Android следует скачать её образ c android-x86.org. В данной инструкции использован образ android-x86-4.4-r2.iso

    Запустим созданную виртуальную машину. После этого сразу же будет предложено выбрать загрузочный диск, следует выбрать скачанный образ ОС Android в формате iso. Далее описана последовательность действий со скриншотами.

    Выбираем установку системы:

    Создаём раздел для установки:

    В указанном ниже диалоге выбираем «New» / «Primary», оставляем полный размер виртуального диска, далее маркируем диск как «Bootable», нажимаем «Write» и «Quit»:

    Теперь выбираем созданный раздел для установки системы:

    Форматируем раздел в ext3:

    Соглашаемся на установку загрузчика GRUB:

    Соглашаемся на установку прав чтения/записи для файловой системы, это пригодится в будущем:

    Установка завершена, проверим установку запустив эмулятор:

    При первом запуске нужно выполнить настройки ОС Android. Подключаться по Wi-Fi не нужно, вводить данные аккаунта Google тоже.

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

    Перед изменением настроек виртуальную машину нужно выключить.

    Основная настройка, которую важно указать, это режим сетевого подключения, нам нужен «Сетевой мост» (bridge). Так как в моём случае все устройства подключены через роутер по Wi-Fi, я выбрал интерфейс wlan0, а не eth0.


    В разделе «Система» следует установить редим работы манипулятора курсора «PS/2 мышь», при таком режиме манипулятора удобно работать с ПК. В той же вкладке можно отключить устройство «Дискета».

    Полезно дополнительно увеличить размер видеопамяти до 32 Мб в разделе «Дисплей».

    5. Получение IP-адреса виртуального устройства

    Запускаем виртуальную машину и ждём окончания загрузки.

    Для определения IP-адреса виртуального устройства нужно в нём запустить консоль сочетанием Alt+F1 (вернуться в GUI-режим можно сочетанием Alt+F7). В консоли набираем команду:

    На экране появится примерно такой вывод:

    Нам нужно значение IP-адреса интерфейса eth0, через который работает наше устройство в виртуальной машине.

    6. Подключение виртуального Android-устройства

    В терминале Ubuntu переходим в директорию установки Android SDK, раздел инструментов, в моём примере это /opt/android-sdk-linux/platform-tools/:

    Остановим adb, этого делать не обязательно, но в некоторых случаях необходимо:

    Подключим виртуальное устройство по IP-адресу, который мы недавно узнали, указав порт 5555:

    Вывод в терминале будет примерно такой:

    В дальнейшем, после перезагрузки компьютера или после смены сеанса, потребуется повторное подключение, но по такому же IP-адресу. То есть достаточно один раз выполнить последнюю команду.

    7. Запуск приложений в эмуляторе VirtualBox

    На самом деле никаких дополнительных действий уже не требуется, после запуска приложения в Android Studio система сама предложит выбрать эмулятор из списка, в котором будет присутствовать новое виртуальное устройство.

    После подтверждения, на экране устройства появится запрос на установку приложений из нового источника:

    Теперь можно работать с устройствами VirtualBox в Android Studio.

    8. Использование реального Bluetooth-устройства через эмулятор VirtualBox

    Задача крайне актуальна для разработчиков под Android, которые разрабатывают приложения для связи по Bluetooth. Чтобы не покупать второе Android-устройство, можно обойтись его виртуальным заменителем.

    Чтобы эмулятор имел доступ к Bluetooth-адаптеру, встроенному или внешнему, нужно в настройках виртуальной машины добавить нужное устройство в список доступных, это делается на вкладке настроек «USB»:

    После нажатия на иконку добавления устройства (со знаком «+»), на экране появится список доступных устройств, как правило это видеокамера, адаптер bluetooth и wi-fi, кардридер и т.п.

    Если никакого списка устройств не появилось, то, скорее всего, текущий пользователь системы не состоит в группе vboxusers. Как это исправить описано в первом пункте в начале статьи.

    Выбираем нужное устройство и запускаем виртуальную машину.

    В настройках доступен интерфейс Bluetooth.

    Источник

    Читайте также:  Что такое jbl android
    Оцените статью