если кто нибудь готов дополнить картину для ОС Linux, то - добро пожаловать!
Итак, камрады, мы продолжаем собирать информацию об Android и HTC Wildfire для лучшего понимания как "это работает" и "с чем его едят"
1. Что такое ADB
Итак, ADB - Android Debug Bridge, дословно Отладочный Мост для Андроид, по русски - Интерфейс для отладки Андроид.
Сразу оговорюсь, что под ADB понимается некая программа или сервис на вашем персональном компьютере, которая будет помогать вам понять, что происходит на вашем андроид аппарате и даёт инструменты/комманды для управления.
2. Что можно делать с помощью ADB
Первое и конечно самое полезное, это просмотр внутренних логов системы Андроид с помощью команды logcat.
Команда logcat поможет нам увидеть что происходит "внутри" Андроида. Мы сможем наблюдать за тем, какие программы работают, какие сервисы запущены и как они работают, есть ли ошибки в их работе.
Очень полезное свойство logcat, это то, что можно наблюдать процесс загрузки Андроид буквально от самого включения аппарата с Андроид. Тут то мы и сможем заметить, где и как система загружается и есть ли ошибки при загрузке.
Список комманд ADB достаточно широк, в данной статье нет смылса делать обзор всех, поэтому я приведу ниже список возможностей, а в конце статьи некоторые полезные и простые комманды, которые могут пригодиться при работе над отладкой кастомных прошивок.
ADB позволяет
*Промотреть какие устройства подключены и могут работать с ADB
*Просматривать лог системы Андроид
*Копировать файлы с/на Андроид устройства(о)
*Устанавливать/Удалять приложения на Андроид устройстве
*Удалять (очищать) раздел data на Андроид устройстве
*Прошивать (перезаписывать) раздел data на Андроид устройстве
*Ощуествлять различные скрипты управления Андроид устройством
*Управлять некоторыми сетевыми параметрами Андроид устройства
*И многое ещё...
3. Установка, дополнительные сервисы, как проверить ADB
ADB - это основной инструмент Android SDK для Winodws, но для полноценной работы необходимо установить еще Java SDK и драйвера для поддержки ADB интерфейса по USB.
Android SDK для Windows - http://dl.google.com...r07-windows.zip
Android SDK для Linux - http://dl.google.com...7-linux_x86.tgz
Java для Windows - http://www.java.com/
USB Driver for Windows - драйвера для Андроид устройств для поддержки ADB интерфейса.
Android SDK для Windows устанавливается просто, распаковываем содержисое архива прямо в корень системного диска, должна получится примерно вот такая структура
с:\android-sdk-windows |---add-ons |---platforms `---tools |---ant |---Jet | |---demo_content | |---JetCreator | `---logic_templates | `---JET_Logic8.logic | `---LgDoc `---lib |---x86 `---x86_64
Драйвера можно установить прямо из пакета Android SDK, запустив SDK Manager.exe и выбрав Installed Packages - Usb driver packadge - ставим галку напротив Usb driver packadge - и скачиваем.
В папке с Андроид SDK появится папка \usb_driver где и будут располагаться требуемые драйвера.
Или можно скачать по ссылке - http://narod.ru/disk...driver.zip.html
После установки USB драйверов (для Windows) в Диспетчере устройств вы должны наблюдать следующую картину
My Computer `---Android Phone `---Anddroid ADB Interface
Если у вас вместо Android ADB Interface после подключения Андроид устройства - желтый вопросительный знак, значит драйвера установились некорректно.
Попробуйте переустановить драйвера, предварительно удалив все мешающие этому моменту факторы. Например удалить HTC Sync и его установленные драйвера для устройства.
После всех инсталляций не поленитесь проверить переменную PATH вашей системы.
В ней обязательно должны присутствовать пути до папки \tools из пакета Android SDK, также путь до пакета Java.
Выглядеть может примерно как на моём компьютере
c:\>PATH PATH=C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\QuickTime\QTSystem; C:\Program Files\Universal Extractor;C:\Program Files\Universal Extractor\bin;C:\Program Files\Java\jre6\bin\java.exe; c:\android-sdk-windows\tools;C:\Program Files\OpenVPN\bin
Если у вас после установки Android SDK и Java в переменной PATH не появились пути к данным пакетам,
проверте еще раз, правильно ли вы установили данные приложения, а задем добавте вручную пути, например так:
Мой Компьютер -> Свойства -> Дополнительные параметры системы -> Переменные среды... -> Окно "Системные переменные" -> Path <- Изменить...
В окно ввода, в конец добавляем через ";" (точка с запятой) пути, куда вы установили Adnroid SDK, включая папку \tools и путь к Java с java.exe в конце.
Наличие путей к Android SDK и Java - важный момент, поэтому не поленитесь, проверте переменную PATH!
(достаточно запустить коммандную оболочку cmd.exe и выполнить PATH. И вы увидите содержимое переменной)
Примечание
Если вы используете у себя программу Droid Explorer, обратите внимание на папку - c:\Program Files\Droid Explorer\SDK\tools\
Как правило по умолчанию прогамма Droid Explorer устанавливает набор Android SDK, поэтому при наличии Droid Explorer на компьютере можно не устанавливать Android SDK, однако для коректной работы ADB переменная PATH должна указывать на папку c:\Program Files\Droid Explorer\SDK\tools.
= Как проверить работаспособность ADB =
Если все инсталляции прошли успешно (включая USB драйвера для ADB), можем приступить к проверки работоспособности интерфейса ADB.
== Подготовка Андроид устройства ==
В вашем телефоне идем в Настройки - Выбираем Приложения - Выбираем Разработка -
Убедитесь что ‘USB Debugging’ отмечено галочкой т.е. включено.
После этого подключаем Андроид устройство к ПК по USB, открываем коммандную строку и запускаем на выполнение комманду
adb devices
В ответ вам выскочит примерно следующее
c:\>adb devices List of devices attached HT06WPYxxxxx device
Это означает что ваше устройство видно через ADB интерфейс и всё хорошо
Если же вы увидите такое
c:\>adb devices List of devices attached
и пустота - проверяйте внимательно, правильно ли вы установили USB драйвера для ADB.
4. Как использовать ADB для отладки
Переходим к самому интересному!
Если у нас всё настроено и ADB отвечает на наши комманды, можем начать смотреть что у нас твориться внутри нашего Андроида.
Для этого в коммандной строке выполним комманду
adb logcat
После запуска комманды вы увидите примерно следующее
D/WifiService( 89): ACTION_BATTERY_CHANGED pluggedType: 2 I/global ( 89): Default buffer size used in BufferedReader constructor. It wo uld be better to be explicit if an 8k-char buffer is required. I/global ( 89): Default buffer size used in BufferedReader constructor. It wo uld be better to be explicit if an 8k-char buffer is required. D/BatteryService( 89): isUsbConnected() = true D/BatteryService( 89): mPlugType = 2 D/HtcConnIsUsb( 4843): Charger(b) request - false : true -> true D/UsbConnectedReceiver( 4672): action = psclient.intent.action.usb_status D/UsbConnectedReceiver( 4672): ACTION_BATTERY_CHANGED D/UsbConnectedReceiver( 4672): usbCurrentType = 2 D/UsbConnectedReceiver( 4672): Current type is same as previous, return! D/dalvikvm( 142): GC freed 1233 objects / 53360 bytes in 194ms D/dalvikvm( 4651): GC freed 205 objects / 6448 bytes in 203ms D/dalvikvm( 4651): GC freed 34 objects / 2008 bytes in 202ms
О да!
Это означает, вы получили доступ к логам системы Андроид и теперь сможете наблюдать, что происходит внутри системы
Можете понажимать любые доступные на Wildfire кнопки и вы увидите, что состояние системы изменяется и всё записывается в логфайл.
Сразу обращаю ваше внимание, что даже не углубляясь, что пишется в логах системы Андроид, можно понять, если встречаются записи в которых фигурируют следующие фразы
failed, error, warning, unable
это означает, что в какой то момент система столкнулась с ошибкой, некорректной работой сервиса или приложения.
Поэтому, если вы занимаетесь отладкой каких либо моментов в кастомной прошивке или готовите отчёт по тестам
Прервать выполнение команды adb можно нажав Ctrl+C.
Конечно, запустив в командной строке команду adb logcat, не очень удобно отслеживать какие либо события, поэтому я рекоммендую воспользоваться перенаправлением вывода в файл.
Для этого нам понадобиться создать командный файл logcat2txt.cmd с таким содержимым
adb logcat > c:\logcat.txt
Теперь при запуске нашего командного файла мы не увидим отчёта logcat в окне, но зато все записи будут сохраняться в файл - logcat.txt на диске C:\
И в последующем мы сможем открыть этот файл и посмотреть что у нас там записалось.
Примечание
Если вы тестируете кастомную прошивку, запускайте logcat с записью в файл сразу при перезагрузке Андроид устройства, и не прерывайте процесс примерно еще минут 10 после полной загрузки системы Андроид. Это позволит анализировать не только загрузку системы, но и подготовку её к работе.
= Фильтры для logcat =
Каждое сообщение logcat имеет теги и приоритеты связанне с ними
- V — Verbose (многословный) (самый низкий приоритет, режим по умолчанию)
- D — Debug (отладка)
- I — Info (информация)
- W — Warning (предупреждение)
- E — Error (ошибка)
- F — Fatal (критическая ошибка)
- S — Silent (тишина) (самый высокий приоритет, режим молчания, ничего не выводиться)
Применять так
adb logcat *:<тэг>
Следующее выражение фильтра показывает все сообщения с уровнем приоритета "предупреждение" и выше
adb logcat *:W
Т.е. если мы выполним такую комманду, то нам будут выводиться только сообщения об ошибках в работе системы, что в принципе нам и надо!
Еще один интересный момент.
Logcat командами можно посмотреть дополнительные буферы логов системы:
adb logcat [-b <buffer>]
- radio — Просмотр буфера содержащего сообщения модуля радио/телефонии.
- events — Просмотр буфера содержащего сообщения связанных событий.
- main — Просмотр основного буфера логов (по умолчанию)
Например для просмотра сообщений модуля радио/телефонии нужно ввести комманду
adb logcat -b radio
5. Несколько дополнительных полезных комманд ADB
Просто перезагрузка Андроид устройства
adb reboot
Быстрая перезагрузка Андроид устройства в режим Recovery
adb reboot recovery
Смотрим информацию о "разделах" памяти аппарата
adb shell cat /proc/mtd
Вам отобразиться нечто похожее:
dev: size erasesize name mtd0: 000a0000 00020000 "misc" mtd1: 00420000 00020000 "recovery" mtd2: 002c0000 00020000 "boot" mtd3: 0fa00000 00020000 "system" mtd4: 02800000 00020000 "cache" mtd5: 0af20000 00020000 "userdata"
Информация о разделах и свободных ресурсах
adb shell df
Здесь будет похоже на такое:
Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 160664 0 160664 0% /dev /dev/block/mtdblock4 40960 1292 39668 3% /cache /dev/block/mtdblock3 256000 146888 109112 57% /system /dev/block/mtdblock5 179328 125728 53600 70% /data /dev/block/mmcblk0p1 15521280 10056880 5464400 65% /sdcard
\ здесь продолжение следует...
6. Ссылки на статьи и дополнительные источники
Более полную информацию на английском можно получить здесь
http://developer.and.../tools/adb.html
LeOLiX из раздела Motorola на Android OS
http://forum.android....php/t2909.html
Как пользоваться Logcat, проверяем куда расходуется заряд батареи
http://www.se900.ru/forum/index.php?showto...st=0#entry57121
------------------------------------------------------------
Примечание автора:
Данный материал не претендует на полную истину.
Все вышеописанные материалы, являются мыслями автора статьи изложенными в "цифре".
В конце статьи есть ссылки на источники, если вы желаете более подробно изучить данную тему, воспользуйтесь авторитетными источниками близкими к Google.
------------------------------------------------------------
Источник: http://cleanbuzz.dyndns.org
Если у вас есть желание, что либо исследовать, тестировать или написать статью или справочный материал, не стесняйтесь, обращайтесь!
Мы всегда рады приветствовать в наших рядах увлечённых энтузиастов!
Команда CleanBuZz


Помощь





Наверх
















