android: Інструменти програміста
TRANSCRIPT
![Page 2: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/2.jpg)
Структура доповіді:• Що таке «інструментарій», чому він
потрібен• Де і як шукати драйвер• Android Assets Studio• Android SDK і його утиліти• TraceView and MAT• Dev Tools App• Оцінюємо мережевий трафік• Енергоспоживання• Crash Log• Reverse engineering: apk файл
Тривалість: 30хв
![Page 3: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/3.jpg)
Для чого це потрібно?• Розробка ї Android програм – тренд ринку.• Потреба в програмістах
– Велика кількість малих проектів, які треба швидко закривати
– Міграція java програмістів в мобільну розробку– Java для багатьох знайома , тому підхід до вивчення
дещо поверхневий
• Без знання як користуватися засобами розробки робота не можлива або не ефективна
![Page 4: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/4.jpg)
Інструментарій• Поняття «інструмент», «утіліта»• Де їх брати? Хто це все пише?• Як ефективно знайти і застосувати?
– Попередній досвід і систематичне навчання– Усвідомлення конкретної проблеми і того, що для іі
розв'язку вже може існувати готовий інструментарій
– Прочитати офіційну документацію http://developer.android.com/guide/developing/tools/index.html
• Android Tools Project Site сайт всіх утіліт інтегрованих з SDK і плагіна до Eclipse (ADT)
![Page 5: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/5.jpg)
Квест: зроби скріншот• Практичний приклад коли потрібна утилітах в
процесі розробки:– Відправити скріншот замовнику – Замовник пише про візуальні дефекти, на прохання
прислати
• Особливості операція на різних смартфонах • Скільки часу це займе, якщо точно не знаєш як
робити?
![Page 6: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/6.jpg)
Drivers • Де взяти?
– USB driver з SDK– Драйвера з офіційних сайтів. Часто тягнуть за собою
велику кількість – Пошук по forum.xda-developers.com найкращий варіант.
Наприклад там є драйвер Samsung який не тягне за собою 100+Мб різних програм, на відміну від офіційної версії.
• Проблем при одночасному використанні драверів від різних виробників поки що не помічено
• ADB не обов'язково буде працювати з девайсом. E.g. Kindle Fire інструкція як налаштувати abd
*
* для Windows OS
![Page 7: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/7.jpg)
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, USB\VID_1949&PID_0006%CompositeAdbInterface% = USB_Install, USB\VID_1949&PID_0006&MI_01
![Page 8: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/8.jpg)
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
![Page 9: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/9.jpg)
Android Asset Studio:launcher icon
![Page 10: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/10.jpg)
Android Asset Studio:menu icon
![Page 11: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/11.jpg)
Android Asset Studio:deviceframegenerator
![Page 12: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/12.jpg)
SDK Tools• Офіційний набір програміста• Open-source проект Android Tools Project Site
http://tools.android.com/• Загружати з http://developer.android.com/
![Page 13: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/13.jpg)
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
![Page 14: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/14.jpg)
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
![Page 15: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/15.jpg)
SDK tools– mksdcard - створює образ діска, наприклад для SD
cart в емуляторі.– Monkey генерує випадковим чином активність
користувача - кліки, жести, system-level events. Використовувати для стрес тестів.
– monkeyrunner надає API яке дозволяє керувати девайсом або емулятором з зовнішнього кода
– ProGuard - обфускатор– sqlite3 CLI shell для sqlite, дозволяє працювати з
дата файлами створеними на девайсах– traceview - перегляд лог файлів, аналізу часу роботи
функцій в програмі– Zipalign - оптимізація apk файлів
![Page 16: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/16.jpg)
android tool: CLI керування проектом
• Повний опис параметрів на сайті • Опис CLI керування проектом на сайті
– Створити новий проект– Додати ant build.xml– Обновити існуючий проект – змінити target– Створити Library Project
• Призначення – автоматизація build системи
![Page 17: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/17.jpg)
DDMS• Повний опис на сайті • Swiss knife tool:
– Перегляд "heap usage" – Відслідковуваня використання памяті Tracking
memory allocation– Робота з файловою системою девайса/емулятора– Перегляд даних про потік(thread information)– Method profiling– Network Traffic tool– LogCat– Мережа - замінти статус, швидкість, затримки– Сімуляція дзвінків і SMS – Емуляція данних з GPS
![Page 18: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/18.jpg)
DDMS: Allocations Tracker
![Page 19: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/19.jpg)
DDMS: Dump HPROF & MAT• Поставити MAT -
Memory Analyzer Plugin for Eclipse• Отримати hprof за допомогою DDMS• Конвертувати в «рідний» формат - hprof-
conv.exe • Відкрити в MAT
![Page 20: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/20.jpg)
DDMS: Dump HPROF & MAT
![Page 21: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/21.jpg)
Hierarchy Viewer
![Page 22: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/22.jpg)
Dev Tools App• apk дістати з емулятора і загрузити на
девайс– adb -e pull /system/app/Development.apk
./Development.apk– adb -d install Development.apk
![Page 23: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/23.jpg)
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
![Page 24: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/24.jpg)
Використання батареї• Точних методів не існує
– Багато програм в маркеті які приблизно показують долю витратах енергіі
– Можливі неопосередковані втрати, які не видно (e.g. програма тримає WiFi)
• Визначення проблеми– Порівняння розряду батареї з/без програми за
досить довгий проміжок часу– Скарги користувачів
![Page 25: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/25.jpg)
Crash Log - ACRA• Дозволяють швидко виявити проблеми зі
стабільністю роботи• Вибір реалізаціі
– Власна реалізація– Готова бібліотека
• ACRA open-source crash log for android– Гнучка в налаштуванні– Стабільна– Нема потреби у власному сервері– Репорти приходять як Google Forms– Підтримка CSV
![Page 26: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/26.jpg)
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/зібрати назад
![Page 27: Android: Інструменти програміста](https://reader036.vdocuments.site/reader036/viewer/2022062400/587892b71a28ab375f8b5fe7/html5/thumbnails/27.jpg)
The End.Questions???