Подключение реальных android-устройств в Android Studio и Eclipse

Подключение реальных android-устройств в UbuntuЭта простая инструкция поможет подключить обычные физические android-устройства в режиме USB debugging mode к среде разработки в Ubuntu. Тестирование приложения на реальном устройстве гораздо продуктивнее и эта инструкция расскажет как сделать это на устройстве, без дополнительных утомительных действий. Достаточно просто запустить приложение в среде разработки Android Studio или Eclipse и оно автоматически стартует на устройстве. С выходом новых карт Google Maps API v2 для ОС Android, это стало весьма актуально, т.к. на данный момент не получится полноценно использовать Google Play Services на эмуляторе.

Прежде чем начать подключать устройство к системе, следует включить режим USB debugging на самом смартфоне или планшете, это включается в меню:

Android 3.2 и более ранние версии:
Settings > Applications > Development

Android 4.0 и выше:
Settings > Developer options

ВАЖНО: В Android 4.2 и выше, Developer options скрыто по умолчанию. Для активации опции нужно зайти в меню Settings > About phone и нажать на Build number семь раз. После этого следует вернуться в предыдущий пункт Developer options.

Теперь начнём, добавим правило работы с нужным нам USB устройством, для этого создадим следующий файл:

sudo touch /etc/udev/rules.d/51-android.rules
Далее откроем файл на редактирование:

sudo nano /etc/udev/rules.d/51-android.rules

Добавим в файл следующюю строку с атрибутами производителя устройства и доступа к устройствам на уровне системы:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

ВАЖНО: четырёхсимвольное значение параметра idVendor (0bb4) должно совпадать с идентификатором производителя устройства из таблицы USB Vendor IDs ниже.

Company USB Vendor ID
Acer 0502
ASUS 0b05
Dell 413c
Foxconn 0489
Fujitsu 04c5
Fujitsu Toshiba 04c5
Garmin-Asus 091e
Google 18d1
Haier 201E
Hisense 109b
HTC 0bb4
Huawei 12d1
Intel 8087
K-Touch 24e3
KT Tech 2116
Kyocera 0482
Lenovo 17ef
LG 1004
Motorola 22b8
MTK 0e8d
NEC 0409
Nook 2080
Nvidia 0955
OTGV 2257
Pantech 10a9
Pegatron 1d4d
Philips 0471
PMC-Sierra 04da
Qualcomm 05c6
SK Telesys 1f53
Samsung 04e8
Sharp 04dd
Sony 054c
Sony Ericsson 0fce
Sony Mobile Communications 0fce
Teleepoch 2340
Toshiba 0930
ZTE 19d2

Идентификатор может быть не таким однозначным, например часы Sony Smartwatch 3 имеют идентификатор 0fce, что соответствует вендору Sony Mobile Communications.

Установим нужные права на только что созданный файл:

sudo chmod a+r /etc/udev/rules.d/51-android.rules

Теперь подключим или переподключим наше устройство к порту USB и перейдём в каталог platform-tools в Android SDK. В моём случае он располагается в директории /opt:

cd /opt/android-sdk-linux/platform-tools

если установлен Android Studio Bundle, то путь может быть таким:

cd /opt/android-studio/sdk/platform-tools

И выполним в консоли такой код:

adb devices

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

1234567890ABCDEF device

Если появляется ошибка «adb: команда не найдена», то нужно уствновить пакет:

sudo apt-get install android-tools-adb

При ошибке: adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

sudo apt-get install lib32stdc++6 lib32z1 lib32z1-dev

Последний шаг, настройка исходного кода приложения, а именно файла AndroidManifest.xml. Нужно просто добавить параметр android:debuggable в тэг <application>, например:

<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:debuggable="true" />

ВАЖНО: перед выпуском приложения, параметр android:debuggable следует удалить.

Теперь при запуске проекта в Android Studio или Eclipse, будет предлагаться передать его на физическое устройство или на эмулятор. После выбора первого — проект стартует на смартфоне.

Инструкция написана на основе документации Using Hardware Devices.

Инструкции по теме:

Добавить комментарий