Android: Інструменти програміста

Anatoliy Odukha
Anatoliy OdukhaSenior Software Developer, Android/C++ à GlobalLogic
Android: Інструменти
програміста
Одуха Анатолій
квітень 22, 2012
anatoliy.odukha@globallogic.com
Структура доповіді:
• Що таке «інструментарій», чому він
потрібен
• Де і як шукати драйвер
• Android Assets Studio
• Android SDK і його утиліти
• TraceView and MAT
• Dev Tools App
• Оцінюємо мережевий трафік
• Енергоспоживання
• Crash Log
• Reverse engineering: apk файл
Тривалість: 30хв
Для чого це потрібно?
• Розробка ї Android програм – тренд ринку.
• Потреба в програмістах
– Велика кількість малих проектів, які треба швидко
закривати
– Міграція java програмістів в мобільну розробку
– Java для багатьох знайома , тому підхід до вивчення
дещо поверхневий
• Без знання як користуватися засобами
розробки робота не можлива або не
ефективна
Інструментарій
• Поняття «інструмент», «утіліта»
• Де їх брати? Хто це все пише?
• Як ефективно знайти і застосувати?
– Попередній досвід і систематичне навчання
– Усвідомлення конкретної проблеми і того, що для іі
розв'язку вже може існувати готовий
інструментарій
– Прочитати офіційну документацію
http://developer.android.com/guide/developing/tools/inde
• Android Tools Project Site сайт всіх утіліт
інтегрованих з SDK і плагіна до Eclipse (ADT)
Квест: зроби скріншот
• Практичний приклад коли потрібна утилітах в
процесі розробки:
– Відправити скріншот замовнику
– Замовник пише про візуальні дефекти, на прохання
прислати
• Особливості операція на різних смартфонах
• Скільки часу це займе, якщо точно не знаєш як
робити?
Drivers
• Де взяти?
– USB driver з SDK
– Драйвера з офіційних сайтів. Часто тягнуть за собою
велику кількість
– Пошук по forum.xda-developers.com найкращий
варіант. Наприклад там є драйвер Samsung який не
тягне за собою 100+Мб різних програм, на відміну
від офіційної версії.
• Проблем при одночасному використанні
драверів від різних виробників поки що не
помічено
• ADB не обов'язково буде працювати з
девайсом. E.g. Kindle Fire
інструкція як налаштувати abd
*
* для Windows OS
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
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
Android
Asset
Studio:
launcher
icon
Android
Asset
Studio:
menu
icon
Android
Asset
Studio:
device
frame
generator
SDK Tools
• Офіційний набір програміста
• Open-source проект Android Tools Project Site
http://tools.android.com/
• Загружати з http://developer.android.com/
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
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
SDK tools
– mksdcard - створює образ діска, наприклад для SD
cart в емуляторі.
– Monkey генерує випадковим чином активність
користувача - кліки, жести, system-level events.
Використовувати для стрес тестів.
– monkeyrunner надає API яке дозволяє керувати
девайсом або емулятором з зовнішнього кода
– ProGuard - обфускатор
– sqlite3 CLI shell для sqlite, дозволяє працювати з
дата файлами створеними на девайсах
– traceview - перегляд лог файлів, аналізу часу роботи
функцій в програмі
– Zipalign - оптимізація apk файлів
android tool:
CLI керування проектом
• Повний опис параметрів на сайті
• Опис CLI керування проектом на сайті
– Створити новий проект
– Додати ant build.xml
– Обновити існуючий проект – змінити target
– Створити Library Project
• Призначення – автоматизація build системи
DDMS
• Повний опис на сайті
• Swiss knife tool:
– Перегляд "heap usage"
– Відслідковуваня використання памяті Tracking
memory allocation
– Робота з файловою системою девайса/емулятора
– Перегляд даних про потік(thread information)
– Method profiling
– Network Traffic tool
– LogCat
– Мережа - замінти статус, швидкість, затримки
– Сімуляція дзвінків і SMS
– Емуляція данних з GPS
DDMS: Allocations Tracker
DDMS: Dump HPROF & MAT
• Поставити MAT -
Memory Analyzer Plugin for Eclipse
• Отримати hprof за допомогою DDMS
• Конвертувати в «рідний» формат - hprof-
conv.exe
• Відкрити в MAT
DDMS: Dump HPROF & MAT
Hierarchy Viewer
Dev Tools App
• apk дістати з емулятора і загрузити на
девайс
– adb -e pull /system/app/Development.apk
./Development.apk
– adb -d install Development.apk
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
Використання батареї
• Точних методів не існує
– Багато програм в маркеті які приблизно
показують долю витратах енергіі
– Можливі неопосередковані втрати, які не
видно (e.g. програма тримає WiFi)
• Визначення проблеми
– Порівняння розряду батареї з/без програми за
досить довгий проміжок часу
– Скарги користувачів
Crash Log - ACRA
• Дозволяють швидко виявити проблеми зі
стабільністю роботи
• Вибір реалізаціі
– Власна реалізація
– Готова бібліотека
• ACRA open-source crash log for android
– Гнучка в налаштуванні
– Стабільна
– Нема потреби у власному сервері
– Репорти приходять як Google Forms
– Підтримка CSV
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/зібрати назад
The End.
Questions???
1 sur 27

Recommandé

Presentación1 par
Presentación1Presentación1
Presentación1Juan Calvache
90 vues6 diapositives
Software de diagnostico y mantenimiento par
Software de diagnostico y mantenimientoSoftware de diagnostico y mantenimiento
Software de diagnostico y mantenimientoyulianaosorno82
204 vues27 diapositives
Facebook, tutta la Potenza di un "MIPIACE"! par
Facebook, tutta la Potenza di un "MIPIACE"!Facebook, tutta la Potenza di un "MIPIACE"!
Facebook, tutta la Potenza di un "MIPIACE"!Webfactory srl
1.7K vues88 diapositives
House of I.T. Overview par
House of I.T. OverviewHouse of I.T. Overview
House of I.T. OverviewHouse of I.T.
263 vues10 diapositives
Escuela normal superior de pasto par
Escuela normal superior de pastoEscuela normal superior de pasto
Escuela normal superior de pastoJuan Calvache
44 vues7 diapositives
SISTEMAS OPERATIVOS par
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSangyjohannagt
79 vues6 diapositives

Contenu connexe

En vedette

Aula virtual par
Aula virtualAula virtual
Aula virtualedwin jose avalos vargas
55 vues13 diapositives
How to Start a Startup - Yury Chernushenko - Lecture #1 par
How to Start a Startup - Yury Chernushenko - Lecture #1How to Start a Startup - Yury Chernushenko - Lecture #1
How to Start a Startup - Yury Chernushenko - Lecture #1Yury Chernushenko
533 vues4 diapositives
PLANIFICACIÓN VIAL URBANA par
PLANIFICACIÓN VIAL URBANAPLANIFICACIÓN VIAL URBANA
PLANIFICACIÓN VIAL URBANAAcademia de Ingeniería de México
2.5K vues20 diapositives
Aplicaciones del mantenimiento par
Aplicaciones del mantenimientoAplicaciones del mantenimiento
Aplicaciones del mantenimientojairo curipoma
1.6K vues17 diapositives
Formateo de PC paso a paso - tutomar par
Formateo de PC paso a paso - tutomarFormateo de PC paso a paso - tutomar
Formateo de PC paso a paso - tutomarJomar Burgos Palacios
2.1K vues12 diapositives
La gestion curricular en las instituciones educativas ccesa007 par
La gestion curricular en las instituciones educativas ccesa007La gestion curricular en las instituciones educativas ccesa007
La gestion curricular en las instituciones educativas ccesa007Demetrio Ccesa Rayme
2.8K vues24 diapositives

En vedette(11)

How to Start a Startup - Yury Chernushenko - Lecture #1 par Yury Chernushenko
How to Start a Startup - Yury Chernushenko - Lecture #1How to Start a Startup - Yury Chernushenko - Lecture #1
How to Start a Startup - Yury Chernushenko - Lecture #1
Aplicaciones del mantenimiento par jairo curipoma
Aplicaciones del mantenimientoAplicaciones del mantenimiento
Aplicaciones del mantenimiento
jairo curipoma1.6K vues
La gestion curricular en las instituciones educativas ccesa007 par Demetrio Ccesa Rayme
La gestion curricular en las instituciones educativas ccesa007La gestion curricular en las instituciones educativas ccesa007
La gestion curricular en las instituciones educativas ccesa007
Effective Presentation Using PowerPoint par Ousman Faal
Effective Presentation Using PowerPointEffective Presentation Using PowerPoint
Effective Presentation Using PowerPoint
Ousman Faal471 vues
Knowledge Process Outsourcing (KPO) in Education Sector – GUI Model Approach par Ashok Rangaswamy
Knowledge Process Outsourcing (KPO) in Education Sector – GUI Model ApproachKnowledge Process Outsourcing (KPO) in Education Sector – GUI Model Approach
Knowledge Process Outsourcing (KPO) in Education Sector – GUI Model Approach
Ashok Rangaswamy738 vues
Computer Hardware and software par VisualBee.com
Computer Hardware and softwareComputer Hardware and software
Computer Hardware and software
VisualBee.com80.4K vues

Similaire à Android: Інструменти програміста

Retroscope par
RetroscopeRetroscope
RetroscopeVladimir Brataschuk
109 vues11 diapositives
Android Platform Architecture par
Android Platform ArchitectureAndroid Platform Architecture
Android Platform ArchitecturePavel Bashmakov
1.3K vues18 diapositives
DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels) par
DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)
DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)Drupaltour
538 vues17 diapositives
Изучение интерфейсов операционных систем с помощью Embedded System par
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded Systemitconnect2016
304 vues49 diapositives
Drupal Optimization par
Drupal OptimizationDrupal Optimization
Drupal OptimizationDmytro Kinakh
394 vues17 diapositives
Програмне забезпечення LINUX par
Програмне забезпечення LINUXПрограмне забезпечення LINUX
Програмне забезпечення LINUXЕкатерина Осадчая
1.1K vues22 diapositives

Similaire à Android: Інструменти програміста(20)

DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels) par Drupaltour
DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)
DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)
Drupaltour538 vues
Изучение интерфейсов операционных систем с помощью Embedded System par itconnect2016
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
itconnect2016304 vues
Programne zabezpechenna par 1cana1
Programne zabezpechennaProgramne zabezpechenna
Programne zabezpechenna
1cana1385 vues
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI par Пупена Александр
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
"Rethinking Continuous Delivery", Andrii Nasinnyk par Fwdays
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
Fwdays57 vues
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python... par GoQA
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
GoQA202 vues
Computers and Computing Works lecture №7 par Lesia Sobolevska
Computers and Computing Works lecture №7Computers and Computing Works lecture №7
Computers and Computing Works lecture №7
Lesia Sobolevska484 vues

Android: Інструменти програміста

  • 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/зібрати назад

Notes de l'éditeur

  1. 1.Структура доповіді 2.Оглядовість – список корисних інструментів, їх опис, але це не практична сесія.
  2. Додатковий приклад: [2010-02-03 10:31:14 - androidVNC]Error generating final archive:Debug certificate expired on 1/30/10 2:35 PM!