2. Структура доповіді:
• Що таке «інструментарій», чому він
потрібен
• Де і як шукати драйвер
• Android Assets Studio
• Android SDK і його утиліти
• TraceView and MAT
• Dev Tools App
• Оцінюємо мережевий трафік
• Енергоспоживання
• Crash Log
• Reverse engineering: apk файл
Тривалість: 30хв
3. Для чого це потрібно?
• Розробка ї Android програм – тренд ринку.
• Потреба в програмістах
– Велика кількість малих проектів, які треба швидко
закривати
– Міграція java програмістів в мобільну розробку
– Java для багатьох знайома , тому підхід до вивчення
дещо поверхневий
• Без знання як користуватися засобами
розробки робота не можлива або не
ефективна
4. Інструментарій
• Поняття «інструмент», «утіліта»
• Де їх брати? Хто це все пише?
• Як ефективно знайти і застосувати?
– Попередній досвід і систематичне навчання
– Усвідомлення конкретної проблеми і того, що для іі
розв'язку вже може існувати готовий
інструментарій
– Прочитати офіційну документацію
http://developer.android.com/guide/developing/tools/inde
• Android Tools Project Site сайт всіх утіліт
інтегрованих з SDK і плагіна до Eclipse (ADT)
5. Квест: зроби скріншот
• Практичний приклад коли потрібна утилітах в
процесі розробки:
– Відправити скріншот замовнику
– Замовник пише про візуальні дефекти, на прохання
прислати
• Особливості операція на різних смартфонах
• Скільки часу це займе, якщо точно не знаєш як
робити?
6. Drivers
• Де взяти?
– USB driver з SDK
– Драйвера з офіційних сайтів. Часто тягнуть за собою
велику кількість
– Пошук по forum.xda-developers.com найкращий
варіант. Наприклад там є драйвер Samsung який не
тягне за собою 100+Мб різних програм, на відміну
від офіційної версії.
• Проблем при одночасному використанні
драверів від різних виробників поки що не
помічено
• ADB не обов'язково буде працювати з
девайсом. E.g. Kindle Fire
інструкція як налаштувати abd
*
* для Windows OS
7. Google USB Driver
• google-usb_drivers в "3rd party tools"
– Підходить лише для частини девайсів
– Можливо ваш девайс буде з ним працювати, якщо
поправити adb_usb.ini та android_winusb.inf
*
* для Windows OS
Kindle Fire:
В текстовому редакторі додамо в кінець файла стрічку:
0x1949
В директоріі SDK знаходимо (пошуком, структура директорій
може залежати від версії) android_winusb.inf.
В секції [Google.NTx86] і [Google.NTamd64] додати:
;Kindle Fire
%SingleAdbInterface% = USB_Install, USBVID_1949&PID_0006
%CompositeAdbInterface% = USB_Install, USBVID_1949&PID_0006&MI_01
8. Android Asset Studio
• On-line інструмент генерації графіки
– Лінк тут
– Launcher icons
– Menu icons
– Action bar icons (Android 3.0+)
– Tab icons
– Notification icons
• Open-source проект
http://android-ui-utils.googlecode.com
• Додатково містить stencils для створення
прототипів UI
12. SDK Tools
• Офіційний набір програміста
• Open-source проект Android Tools Project Site
http://tools.android.com/
• Загружати з http://developer.android.com/
13. SDK Tools
• Eclipse plugins
– Редагування, компіляція і дебагер для Андроід
проектів. Сode completion при редагуванні ресурсів
– Візуальний редактор layouts і manifest файлів
– Інтегровані в Eclipse perspective для hierarchy
viewer, ddms
• Емулятор
• SDK & AVD Manager - загрузка SDK і його
компонентів, створення і керування AVD
• Hierarchyviewer - аналізує ієрархію views в
програмі
• ddms - Dalvic Debug Monitor Service
• Command line tools
14. SDK tools
– android - створення і редагування AVDs, проектів,
інсталяція компонентів SDK.
– Dalvik Debug Monitor Server (ddms) – доступ до
більшості можливостей дебагера і оптимізації з
графічного інтерфейсу
– dmtracedump - генерує графіки/діаграми з trace log.
Використовує Graphviz який необхідно доставити
– Draw 9-patch - WYSIWYG редактор nine-patch
графіки
– Android Emulator (emulator) - побудований на QEMU
емулятор
– Hierarchy Viewer (hierarchyviewer) - аналізує
структуру UI
– hprof-conv - конвертує HPROF файл в формат
зрозумілий і іншим java tools
– layoutopt - допомагає аналізувати і оптимізувати
layouts
15. SDK tools
– mksdcard - створює образ діска, наприклад для SD
cart в емуляторі.
– Monkey генерує випадковим чином активність
користувача - кліки, жести, system-level events.
Використовувати для стрес тестів.
– monkeyrunner надає API яке дозволяє керувати
девайсом або емулятором з зовнішнього кода
– ProGuard - обфускатор
– sqlite3 CLI shell для sqlite, дозволяє працювати з
дата файлами створеними на девайсах
– traceview - перегляд лог файлів, аналізу часу роботи
функцій в програмі
– Zipalign - оптимізація apk файлів
16. android tool:
CLI керування проектом
• Повний опис параметрів на сайті
• Опис CLI керування проектом на сайті
– Створити новий проект
– Додати ant build.xml
– Обновити існуючий проект – змінити target
– Створити Library Project
• Призначення – автоматизація build системи
17. DDMS
• Повний опис на сайті
• Swiss knife tool:
– Перегляд "heap usage"
– Відслідковуваня використання памяті Tracking
memory allocation
– Робота з файловою системою девайса/емулятора
– Перегляд даних про потік(thread information)
– Method profiling
– Network Traffic tool
– LogCat
– Мережа - замінти статус, швидкість, затримки
– Сімуляція дзвінків і SMS
– Емуляція данних з GPS
19. DDMS: Dump HPROF & MAT
• Поставити MAT -
Memory Analyzer Plugin for Eclipse
• Отримати hprof за допомогою DDMS
• Конвертувати в «рідний» формат - hprof-
conv.exe
• Відкрити в MAT
22. Dev Tools App
• apk дістати з емулятора і загрузити на
девайс
– adb -e pull /system/app/Development.apk
./Development.apk
– adb -d install Development.apk
23. Network Sniffer
• Оцінити об’єм трафіка згенерованого
програмою/девайсом
• Корисний при розробці/відлагодженні
деяких типів програм
• Rooted android + tcpdump
– Root device
– Find and copy any pre-build tcpdump bin for
Android
• DDMS Network Statistics
• WiFi карта на компі як точка доступа
• Fiddler Web Debugger
– Робота з HTTPS
– Зручно аналізувати HTTP
24. Використання батареї
• Точних методів не існує
– Багато програм в маркеті які приблизно
показують долю витратах енергіі
– Можливі неопосередковані втрати, які не
видно (e.g. програма тримає WiFi)
• Визначення проблеми
– Порівняння розряду батареї з/без програми за
досить довгий проміжок часу
– Скарги користувачів
25. Crash Log - ACRA
• Дозволяють швидко виявити проблеми зі
стабільністю роботи
• Вибір реалізаціі
– Власна реалізація
– Готова бібліотека
• ACRA open-source crash log for android
– Гнучка в налаштуванні
– Стабільна
– Нема потреби у власному сервері
– Репорти приходять як Google Forms
– Підтримка CSV
26. Reverse engineering: apk файл
• dex2jar http://code.google.com/p/dex2jar/
• JD – java decompiler
http://java.decompiler.free.fr/
– Малоймовірно, що вдасться знову скомпілювати
результат роботи JD.
• smali – assembler/disassembler dex формата
http://code.google.com/p/smali/
• Збірник apktool з xda-developers
– Базується на smali/baksmali
– Відновлює хмл файли
– Стабільно працює цикл: декомпіліція/поправити
маніфест, код, layouts/зібрати назад