Android Studio, Huawei и logcat

Я расскажу о том, как мне удалось добиться работы logcat в связке Android Studio + Huawei при отладке через USB — это мне потребовалось для отладки капризного приложения. Если Вам это интересно, читайте и смотрите далее.
Итак, что я имею:

  • смартфон Huawei Honor Pro (Ascend G600/U8950-1)
  • интегрированная среда разработки Android Studio 1.2.1.1 (ОС Windows 8.1)

Поставленная выше задача решается в несколько этапов:

Включение логов в Huawei
Процедура разблокировки логов в Huawei описана в [2] и [3].
Необходимо набрать на клавиатуре смартфона в режиме набора номера код *#*#2846579#*#*
*#*#2846579#*#*
,
после чего открывается доступ в сервисное меню смартфона (смартфон входит в режим обслуживания (Engineering mode)), в котором выбираем пункт меню ProjectMenu,
сервисное меню Huawei
затем — Background Setting
сервисное меню Huawei
затем Log setting
сервисное меню Huawei.
В меню LogSetting
Huawei LogSetting
выбираем пункт Log switch и отмечаем
Huawei Log switch,
а в пункте Log level setting указываем требуемый приоритет (например, DEBUG)
Huawei Log level setting.
Затем выходим из меню нажатиями кнопки НАЗАД.
После этого перезагружаем телефон.
Примечание.
В [3] указывается, что код *#*#2846579#*#* «подходит почти всем моделям Huawei«, а в [2] — «is stated for an Ideos X3 and is tested at a Honor U8860«, «Works on Huawei P7-L07«, «Works on Huawei Ascend Y300«. В [5] для Huawei Ascend G7 и P7 указан способ входа в сервисное меню с этим кодом: «Szerviz menü: *#*#2846579#*#*«.
Этот код упоминается в Maintenance Manual/Guide при описании процедуры обновления программного обеспечения (Upgrade Process) и/или при описании процедуры выполнения теста (MMI Test) для смартфонов Huawei U8185, U8350, U8500, U8510, U8650, U8950, U8800, U8815, U8860, U9200, U9500, U9510E, U9200, C8650.
Я убедился, что указанный код работает на смартфоне Huawei U8950-1.

Затем включаем ADB на смартфоне — в меню «Настройки» выбираем пункт «Для разработчиков»
Huawei Настройки,
а затем — «Отладка по USB«:
отладка по USB.
Если отладка включена, то при подключенном к компьютеру смартфоне пользователь информируется об этом с помощью значка и сообщения:
USB-отладка включена

Подключение смартфона к компьютеру и установка драйверов для ADB
Для возможности работы ADB смартфон должен быть подключен к компьютеру в режиме «Камера (PTP)«:
Huawei PTP

Протокол Picture Transfer Protocol (PTP) позволяет передавать изображения с цифровой камеры на компьютер или другие периферийные устройства без необходимости установки дополнительных драйверов устройств.
Альтернативой протоколу PTP является его расширение — протокол Media Transfer Protocol (MTP), разработанный Microsoft. Этот протокол предназначен для передачи музыкальных файлов на цифровые аудиоплейеры и медиафайлов на портативные медиаплейеры.
Подключаем смартфон к USB-порту компьютера.
Теперь необходимо установить драйвера ADB (Android Debug Bridge) Interface для смартфона.
Процедура установки драйверов описана в [1].  Она заключается в следующих шагах:
Сначала необходимо скачать (http://downloadcenter.samsung.com/content/SW/201401/20140121132354500/SAMSUNG_USB_Driver_for_Mobile_Phones_v1.5.33.0.exe, 14,7 Мбайт) и установить драйвера от Samsung. Эти драйвера имеют цифровую подпись:
цифровая подпись драйверов Samsung
Затем перезагружаем компьютер.
В Диспетчере устройств (Device Manager) ищем устройство Android:
Huawei Диспетчер устройств
и выбираем команду обновления драйверов (Update Driver Software)
Android Обновить драйверы,
затем выполняем поиск драйверов (Browse my computer for driver software)
Выполнить поиск драйверов на этом компьютере
и указываем на необходимость выбора драйвера из списка уже установленных на компьютере драйверов (Let me pick from a list of device drivers on my computer)
Выбрать драйвер из списка уже установленных.
Из открывшегося списка выбираем ADB Interface Android ADB interface и указываем драйвер SAMSUNG Android ADB Interface Samsung Android ADB Interface, соглашаясь с дальнейшими запросами.
После этого смартфон будет отображен в Диспетчере устройств как переносное устройство:
переносное устройство Huawei
В Проводнике смартфон отображается как цифровая камера:
Huawei Проводник
Если бы мы подключили смартфон по протоколу MTP, то он бы отобразился в Проводнике как плейер:
Huawei Проводник

Команды для логирования
Для вывода информации в журнал можно использовать различные варианты команды [4]

Log.*(тэг, информация)  ,

где * — символ, определяющий уровень (приоритет) выводимого сообщения:
v — VERBOSE (низший приоритет)
d — DEBUG — отладка
i — INFO — информация
w — WARN — предупреждение
e — ERROR — ошибка
тэг — строка, указывающую на компонент системы, из которого исходит сообщение;
В [4] рекомендуется заранее декларировать тэг, например, таким образом:
private static final String TAG = «MyActivity»;
информация — строка, содержащая выводимое сообщение

Отладка и просмотр логов
После подключения смартфона к компьютеру и запуска среды Android Studio в нижней панели во вкладке logcat отображаются сообщения из журналов:
Huawei и logcat
Как видно из скриншота, также отображается тип подключенного смартфона (HUAWEI U8950-1) и версия его операционной системы (Android 4.0.4 (API 15)).

Источники информации:
[1] https://forums.oneplus.net/threads/install-adb-drivers-for-windows-8-1-64-bits.51264/
[2] http://stackoverflow.com/questions/2250112/why-doesnt-logcat-show-anything-in-my-android
[3] http://habrahabr.ru/post/137560/
[4] http://developer.android.com/reference/android/util/Log.html
[5] http://logout.hu/blog/porterocka/index.html



Android Studio, Huawei и logcat: 2 комментария

  1. Иван

    Не смог подключить к AS Huawei Honor 6. Логи включил как у Вас написано. Драйвер с моего устройства ставиться сам. В диспетчере задач отображается как переносимое устройство. Но Android Stidio v2.1. его не видит, какие бы варианты usb подключения я не выбирал. Что делать? Подскажите. Я в этом деле совсем новичок…(((

  2. Алексей

    Способ не работает с Huawei 4C Pro — показывает интерфейс MTKLogger’а, куда копать не ясно

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *