Багато програмістів хочуть зайнятися розробкою програм під Android. Але мало хто уявляє, які кроки тут треба зробити. Ця добірка покликана допомогти новачкам в освоєнні Android-розробки.
Початок роботи
Новачкам у програмуваннідопоможе наша.
Для новачків в Android Google зробив хороший вступ в Android на своєму сайті. Також є чудовий краудсорсинговий гід з Android. Крім того, є курс від Google до Udacity.
Якщо у вас виникають проблеми з Android, рекомендується спершу перевірити StackOverflow . Він створений для відповіді на технічні питання і навіть є.
Ви завжди можете знайти на нашому сайті.
FAQ
Я хочу почати розробляти під Android. З чого мені почати?
Перший та найважливіший крок у розробці під Android – це вивчення Java та XML. Як тільки ви більш-менш познайомитеся і з тим, і з іншим, вивчіть офіційну Документацію з Android і пройдіть кілька уроків, поки не відчуєте себе досить впевненим для створення власних проектів. Успіхів!
Чи потрібний мені Android-пристрій для розробки?
Ви можете писати програми без будь-якого Android-пристрою, використовуючи включений у постачання емулятор (або вдосконалений Genymotion). Однак для обліку апаратних вимог ніщо не замінить тестування на цьому пристрої.
Яку IDE краще використовувати?
- Android Studio- IDE, що офіційно підтримується, для розробки під Android. Саме вона використовується в сучасних посібниках та відео, у тому числі і від Google.
- Eclipseбула основною IDE для розробки під Android протягом багатьох років, тому більшість застарілих уроків, ресурсів, відео та скріншотів зроблено на ній.
- IntelliJ IDEAбув альтернативою Eclipse, але зараз розумніше почати з Android Studio. Android Studio – це відгалуження IntelliJ IDEA, тому ви отримаєте всі її переваги плюс бонуси під Android.
Може, мені варто забути про Java та почати вчити Kotlin?
Google тепер офіційно підтримує Kotlin як мову розробки під Android, але це не означає, що про підтримку Java можна забути. У найближчому майбутньому документація, інструменти, нові фічі платформи будуть підтримувати як Kotlin, так і Java. Хоча Kotlin - молодша мова з деякими приємними особливостями, ви все ще можете створювати чудові програми на Java. Вибір залежить тільки від вас, але якщо вам не важливо або ви новачок, то, можливо, краще зробити вибір на користь Kotlin.
Ресурси
Тут представлені основні ресурси з розробки під Android на англійській мові. Це не повний список, але достатній для старту.
Офіційні ресурси Android
Дизайн
- Краси для Android – це натхнення для створення графічних інтерфейсів під Android.
Розсилки
- Android Weekly – чудове розсилання, яке допомагає бути в курсі останніх розробок Android.
Колекції бібліотек
Інструменти
- Genymotion – вкрай корисний та функціональний емулятор.
- Android Asset Studio – чудова колекція інструментів для створення/редагування іконок, зображень тощо.
- Codota Plug-in для Android Studio - чудові приклади коду прямо в Android Studio.
Приклади open source додатків
Ідеї для додатків
Отже, у вас є ідея для застосування... Люди щодня про це пишуть. Але перед тим, як просити допомоги у реалізації проекту, потрібно відповісти на такі ключові питання:
Який мій бюджет?
Якщо ви налаштовані серйозно і бажаєте випустити свій продукт, ви повинні подумати про свій бюджет. Навіть у разі простого застосування потрібно подумати про кілька тисяч доларів. Хоча б.
Яка маркетингова стратегія?
Ви збираєтеся використовувати звичайне сарафанне радіо чи готові платити за популярність?
Який список завдань даного проекту?
А також які є обмеження? Скільки мені потрібно розробників?
Звідки будуть приходити/де зберігатимуться дані?
А також як вони будуть використовуватися? Чи розроблено у мене відповідну політику приватності?
Чи є ціль заробити грошей?
Якщо так, як ви зібралися її досягати? Через рекламу, IAP , підписки, платні програми? Все вищезазначене?
Як ви платитимете вашим розробникам?
Чи є у вас капітал або ви зібралися платити їм після того, як програма почнемо приносити дохід? Часто незалежні контрактники вимагають повної вартості авансом. Більшості розробників нецікаво поділ доходів, крім випадків, коли самі вкладаються у додаток.
Яким буде метод тестування?
На який тип пристрою ви збираєтесь встановлювати його? Як багато ітерацій вам потрібно? Яких людей ви хочете залучити?
Як швидко ви хочете опублікувати програму в магазині?
Це однозначно вплине на кінцевий дохід.
Чи вимагатимете або пропонуватимете реєстрацію/інтеграцію із соціальними мережами?
Продумайте реалізацію цієї функціональності.
Яка ваша цільова аудиторія?
Це нішеве додаток чи може бути поширене всюди?
Чи вже реалізована моя ідея?
Якщо так, як я можу покращити її або що в ній немає?
Що робити з ідеями для програм, якщо ви не розробник?
Ви, можливо, шукаєте розробників у вашу команду для реалізації програми. Якщо у вас є гроші і ви можете заплатити розробнику або фірмі, все просто і зрозуміло. Далі ми поговоримо про те, що робити, якщо у вас не вистачає грошей, щоб платити комусь.
Усвідомте, що ваша ідея може бути не унікальною, а розробка вимагає значних зусиль.
- Намалюйте дизайнвашої програми (зовнішній вигляд та функціональність). Він може бути грубим та намальований на папері. Але він має бути досить конкретним, а не розмитим.
- Складіть список своїх навичок,пов'язаних із ідеєю.
- Складіть список того, що ви вкладетеу свою ідею.
Зрозумійте, що технологія вимагає значних зусиль. Уявіть, що розробник працює повний робочий день (8 годин) протягом 2 місяців, щоб створити вашу програму. І ви також працюєте повний робочий день. Що ви робите у цей час?Якщо ваша робота, на ваші уявлення, закінчується раніше, то потрібно переглянути ідею. У цьому сценарії розробник виконує більшу частину роботи, і ви, чесно кажучи, марні. Те, що ви можете дати після того, як програма закінчена, не має особливого значення і не буде мотивувати розробника закінчувати продукт.
Перегляд вашої ідеї
Якщо розробник виконує більше роботи, ніж ви, необхідно переглянути ідею, щоб розподілити роботу більш справедливо. Це надасть переваги від спільної роботи. Подивіться на ваш список навичок та подумайте, як їх можна застосувати. Це нормально, якщо програма буде відрізнятися від початкового задуму. Переглядайте його доти, доки кількість вашої роботи та роботи розробника, як мінімум, не зрівняються.
- Розподіляйте роботу настільки справедливо, наскільки це можливо.
- Фокусуйтеся насамперед на ваших навичках.
- Ваше завантаження має приблизно дорівнювати 2 місяцям повноцінної роботи. Для простих програм завантаження, звичайно, може бути меншим. Ви можете попросити спільноту (наприклад,
Як відбувається процес розробки під Android? Виділимо кілька основ:
- У Java файлах ви описуєте логіку програми - те, що ви хочете, щоб ваша програма виконувала.
- У XML файлах ви розробляєте макети – зовнішній вигляд.
- Як тільки програма буде написана, потрібно використовувати інструмент збирання для того, щоб скомпілювати всі файли і упаковати їх разом в.apk файл, який можна запускати на пристроях Android та/або опублікувати в Google Play.
- Усі утиліти та файли, які використовуються для створення програми під Android, об'єднані в інтегроване середовище розробки (IDE). IDE – це програма, яку ви відкриєте для редагування ваших файлів коду, а також компіляції та запуску.
- Раніше стандартною IDE для розробки під Android була Eclipse, але зараз її замінила функціональніша Android Studio — продукт компанії Google.
Ви, звичайно ж, знайдете більш глибокі процеси, що відбуваються за лаштунками перерахованих вище кроків. Наприклад, просунуті користувачі захочуть дізнатися про роль віртуальної машини Dalvik. Наприкінці статті будуть перераховані посилання на корисні ресурси, з якими має бути знайомий кожен Android розробник. Першою з них є офіційна документація від Google.
- Завантажимо та встановимо Android Studio.
- Дізнаємося про запуск та тестування програм на пристроях та емуляторах Android.
- Створимо простий додаток на Android, який виводить напис Hello World на екран мобільного пристрою.
Наприкінці статті ви можете ознайомитися з корисними рекомендаціями розробникам-початківцям від компанії.
Встановлення середовища розробки Android Studio
Почати читати документацію і писати код щоб дізнатися на що здатна платформа - це дійсно привабливо. І ми скоро це зробимо! Однак для початку роботи з платформою Android необхідно налаштувати середовище розробки.
Новачкам у програмуванні під Андроїд особливо важливо не поспішати і методично слідувати кожному кроці. Навіть якщо ви виконуєте кроки правильно, може знадобитися усунути невелику проблему з настроюванням середовища в залежності від конфігурації вашої системи або версії продукту. Для цього використовуйте пошукові послуги. Особливо можна виділити ресурс StackOverflow.
Важливо не допустити, щоб будь-які підводні камені перешкоджали вашій кінцевій меті - навчитися програмування Android. Відомо, що навіть професіонали іноді мають певні проблеми з налаштуванням робочого оточення. У таких випадках буває важливим є знання командного рядка. Якщо ви хочете краще ознайомитися з цим інструментом, внизу наводиться посилання на хороший вступний .
Поряд із тренуваннями в синтаксисі, важливо навчити себе мисленню успішного програміста, яке не прийматиме повідомлення про помилку file X not found остаточним вироком. Таке мислення легко тренується вами у випадках, якщо ви не здаєтеся і шукайте вирішення проблеми.
Перейдіть на сторінку Android Studio developer.android.com/studio/index.html та знайдіть кнопку для завантаження останньої версії для своєї платформи.
Клацніть по кнопці завантаження і вас попросять ознайомитися з правилами та умовами використання програмного продукту. Після уважного прочитання (як ви завжди це робите) і прийняття починається завантаження. Ймовірно, це триватиме кілька хвилин. Після цього ви можете встановити Android Studio аналогічно до будь-якої іншої програми. На початковій сторінці завантаження містяться інструкції з інсталяції під Mac та Windows.
Тепер, коли ви встановили Android Studio, запустимо його! Відкрийте Android Studio. Програма запитає, чи ви хочете імпортувати свої настройки. Оскільки ви починаєте з нуля, просто оберіть другий пункт і продовжуйте.
Ви повинні побачити гарний завантажувальний екран у стилі Material Design.
Після закінчення завантаження ви потрапите на екран привітання.
Навіть у тому випадку, якщо ви щойно завантажили Android Studio, у вас може бути не остання версія. Щоб уникнути проблем з версіями надалі, натисніть кнопку Check for updates now і, якщо необхідно, виконати всі інструкції для отримання останньої версії. Іноді Studio автоматично інформує вас про те, що є оновлення за допомогою екрана, подібного до цього:
У такому разі завжди вибирайте Update and Restart. Чудово! Ми успішно впоралися із встановленням середовища для розробки.
Створення першого Android проекту
Настав час створити перший проект. Почнемо із простого. У програмістів прийнято називати першу програму Hello World. Давайте слідувати цій традиції, а потім зробимо кілька невеликих змін, щоб програма використовувала ваше ім'я для привітання. В кінці ви зможете завантажити його на пристрій та показати своїм знайомим. Android Studio має невеликий покроковий інструмент, який допоможе створити свій проект. Натисніть "New Project" на стартовому екрані:
Заповніть його так. Не соромтеся замінити "example" у імені пакета на щось ще, щоб видалити попередження внизу екрана. Ви також можете встановити розташування проекту, вказавши будь-яку папку на жорсткому диску
Для версій SDK, що розкриваються, зверніть увагу на розділ «Опис» у нижній частині діалогового вікна. У ньому пояснюється, для чого призначено кожне налаштування.
Встановіть мінімальний потрібний SDK, як показано на знімку екрана. Це встановлює мінімальну версію Android, необхідну для запуску програми. Вибір цього значення для ваших власних проектів – це питання балансування можливостей SDK, які ви хочете, та пристроїв, які будуть підтримуватись.
Для отримання додаткової інформації про версії API та їх використання на сайті для розробників під Android існує спеціальна сторінка Dashboards https://developer.android.com/about/dashboards/index.html.
Після вибору версії відкривається екран вибору стартового шаблону. Ви можете створити програму, яка вже взаємодіє з api google maps і відображає карту. У нашому тестовому прикладі вибираємо Empty Activity та натискаємо кнопку «Next».
І зараз ви знаходитесь на останньому кроці процесу створення програми. Перш ніж натиснути Finish, зверніть увагу на деякі речі. Тут ви вперше стикаєтеся зі згадками про головні архітектурні компоненти будь-якої програми.
- — це перша, але не остання згадка слова Activity. У контексті Android, Activity зазвичай розглядається як "екран" у вашому додатку. Цей елемент дуже гнучкий. Коли Android Studio створює клас MainActivity, він успадковує його від класу Activity із пакета Android SDK. Ті, хто знайомий з об'єктно-орієнтованим програмуванням, розуміють цю концепцію, але для новачків, це, в основному, означає, що ваша MainActivity буде версією Activity, що настроюється.
- Layout Name— макет того, що буде показано користувачеві, визначено у спеціальному вигляді Android XML. Ви скоро навчитеся читати та редагувати ці файли.
Натискаємо Finish. Деякий час займе створення та завантаження проекту. Через деякий час Android Studio завершить білд вашого проекту. Звичайно, проект поки що порожній, але в ньому є все необхідне для запуску на Android-пристрої або емуляторі.
Після завантаження проекту ви переглядаєте файл макета у форматі XML. Перш ніж перейти до програмування під Android, давайте поговоримо про те, як ми можемо запустити цю програму. Настав час сказати «Hello world!».
Запуск програми на емуляторі
Тепер настав час сказати кілька слів про емулятор. Android Studio поставляється з програмним забезпеченням, здатним емулювати Android-пристрій для запуску на ньому програм, перегляду веб-сайтів, налагодження та всього іншого.
Цю можливість надає Android Virtual Device (AVD) Manager. За бажанням ви можете налаштувати кілька емуляторів, встановити розмір екрану та версію платформи для кожного нового емулятора. Цей функціонал дуже корисний, оскільки позбавляє розробників необхідності купувати кілька пристроїв для тестування програм.
Натисніть кнопку Run у вигляді зеленої стрілки.
Прийде почекати деякий час, поки емулятор завантажиться і як тільки він буде готовий, ви побачите щось на зразок цього:
Мої вітання! Ви зробили свій перший додаток для Android!
І так ... Чому і як це спрацювало?
Щоб почати робити зміни та додавати цікаві функції, необхідно отримати робоче знання про те, що відбувається за лаштунками. Погляньте на розділ проекту Android Studio з файлами та папками у лівій частині екрана. Можливо, вам потрібно натиснути маленьку вкладку на краю (див. нижче), якщо провідник проекту не відображається.
Перегляньте кілька хвилин структуру папок і двічі клацніть по файлах, щоб побачити їх вміст у головному вікні. Якщо все це виглядає загадково, не хвилюйтесь!
Структура Android проекту: Команда
Кожна хороша команда складається з людей, які виконують відведені їм ролі. Ви хочете виконати роботу правильно? Вам потрібна правильна команда. У проектах Android є кілька ключових елементів, і кожен із них має відіграти певну роль:
Java: Професіонал
Це частина вашого коду, яка відповідає за логіку програми. Ваш код знаходиться в каталозі src\main\java в основній папці проекту. Для вивчення Java можна порадити книгу Брюса Еккеля "Філософія Java";
Resources: Артист
Недостатньо просто зробити Android додаток, він має бути ще й стильним. Ваша програма ніколи не буде виділятися, якщо у нього немає чітких значків та зображень, добре продуманих макетів і, можливо, навіть плавних анімацій.
При ініціалізації папка містить такі папки:
- drawable, де зберігаються іконки. Зараз там лежить лише стандартна іконка програми.
- layout з XML файлами, які є дизайнами екранів.
- menu c XML файлами списків елементів, які відображатимуться на панелі дій.
- values з XML файлами, що містять розміри, кольори, строкові константи та стилі.
AndroidManifest.xml: Бос
Цей XML-файл інформує вашу систему про вимоги до обладнання та програмного забезпечення програми та містить його версію ім'я та значок. Маніфест також містить інформацію про всі Activity у додатку. Вам потрібна робота, яку виконує ваш додаток? Спочатку поговоріть із начальником.
Внесення змін
Перейдіть до res/values/strings.xml та двічі клацніть файл. Коли ви відкриєте файл, ви побачите два рядкові ресурси в XML.
Ці ресурси використовуються в різних місцях, але дуже зручно мати весь текст, який використовується у вашому додатку в одному файлі. Якщо вам потрібно перекласти його, або якщо ваш колега з маркетингу попросить видалити всі зайві посилання, тут легко внести всі зміни.
Змініть рядок hello_world, який програма відображає на екрані. Змініть її вміст на щось особисте, наприклад, використовуйте власне ім'я. Вийде щось на кшталт:
Натисніть кнопку Run. Програма повинна перезапуститись і ви побачите персональне повідомлення:
Ми вітаємо вас – ви зробили перший проект та навчилися редагувати вихідний код. Перший крок в програмуванні Android зроблено. Бажаємо удачі на цьому непростому, але дуже цікавому шляху! Якщо вам потрібна професійна розробка програми для Android, звертайтеся до фахівців Infoshell.
У зв'язку з тим, що у деяких людей не виходить запустити мої проекти, і поспілкувавшись з ними я зрозумів, що проблема не в коді, а в збірці Eclipse + Android SDK я вирішив написати як ставитися ця краса, і доводиться до ладу.
Установка Eclipse та Android SDK
- Завантажити Android SDK для вашої платформи (Windows, Mac OS X або Linux).
- Розпакуйте завантажені файли в будь-яке місце, що запам'ятовується, на жорсткому диску (у мене в Windows це D:\eclipse\).
- Якщо Eclipse вже встановлено, завантажте та встановіть Eclipse IDE for Java Developers . Для програмування Google рекомендує використовувати Eclipse 3.5 (Galileo).
- Запустіть Eclipse та виберіть Help->Install New Software.
- Натисніть Addу вікні Available Software.
- Введіть Android Development Tools у поле Nameта https://dl-ssl.google.com/android/eclipse/ у полі Location.
- Натисніть OKта перевірте Developer Toolsу списку доступного ПЗ. Цим самим ми встановимо Android Development Tools та DDMS, налагоджувальний інструмент для Android. Якщо у вас виникли проблеми з установкою АДТ, то використовуйте стару версію АДТ 15.0. Оновлення до версії 15,0
- Натисніть Nextі Finishдля встановлення плагіна. Потрібно перезапустити Eclipse одного разу після інсталяції.
- Після перезапуску Eclipse виберіть Window->Preferences, і ви побачите Androidу списку категорій.
- Тепер потрібно вказати на Eclipse, де розташований встановлений Android SDK. Натисніть Android, потім Browseдля вибору розташування розпакованих файлів SDK. Наприклад, C:\Program Files\android\android-sdk
Орієнтація платформи Android
Перш ніж почати написання програм для Android, потрібно завантажити SDK для платформи Android. Кожна платформа має власну версію Android SDK, встановлену на пристроях користувачів. Для версії Android 1.5 та вище існує дві платформи: Android Open Source Projectі Google.
Android Open Source Project- платформа з відкритим вихідним кодом, але не включає розширення Google, такі як Google Maps.Якщо ви не хочете використовувати Google API, функціональність карт Google буде недоступна для вашої програми. Якщо у вас немає особливих причин робити це, я б рекомендував вам настроїти націлення на одній із платформ Google, оскільки це дозволить вам використовувати власні розширення Google.
- Оберіть Window->Android SDK Manager.
- Натисніть Available Packagesу лівій колонці та перевірте репозиторій, щоб показати список доступних платформ Android.
- Ви можете вибрати платформи для завантаження зі списку або залишити всі позначені, щоб завантажити всі доступні платформи. Після завершення, натисніть Install Selectedта дотримуйтесь інструкцій з встановлення.
Після того, як все було успішно завантажено, ви готові приступити до розробки для Android.
Створення нового проекту Android
Майстер налаштування Eclipse New Project Wizard допоможе створити програму Android, згенерувавши файли та код, готові до запуску, праворуч від блоку. Це швидкий спосіб переконатися в працездатності та хороша початкова точка на початку розробки додатків:
Після натискання Finish, Eclipse створить новий проект Android, готовий до запуску Пам'ятайте, що ви говорили Eclipse згенерувати Activity, названий MyFirstAndroidProjectActivity ? Це код, який Android насправді використовує для запуску програми. Згенерований код буде відображено у вигляді простого повідомлення в дусі Hello World.
Пакети
Ім'я пакета – ідентифікатор для вашої програми. Коли настане час публікації результату на Android Market, цей ідентифікатор буде використовуватися для відстеження оновлень для програми, тому важливо переконатися, що цей ідентифікатор є унікальним. Хоча тут ми використовуємо ім'я com.my.first.project, для реальної програми краще вибрати щось на зразок com.yourcompanyname.yourapplication.
Версії SDK
Версія Min SDK Version (назва говорить сама за себе) - рання версія Android, на якій програма буде працювати. З кожним новим випуском Android, SDK додає та змінює різні методи. При виборі версії SDK, Android (і Android Market) знає, що ваша програма буде працювати лише на пристроях з версією Android вказаної версії та вище.
Запуск вашої програми
Зараз спробуємо запустити нашу програму в Eclipse. Оскільки це перший запуск, Eclipse запитає, з яким типом проекту ви працюєте:
- Оберіть Run->Runабо натисніть Ctrl+F11.
- Оберіть Android Applicationі натисніть OK.
Eclipse спробує запустити програму на пристрої з Android. На даний момент, однак, у вас немає пристроїв під керуванням Android, тому запустити проект не вдасться, і вам буде запропоновано створити новий пристрій Android Virtual Device(AVD)
Віртуальні пристрої (Android Virtual Devices)
Android Virtual Device (AVD) емулює середовище Android, будь то мобільний телефон або планшетний ПК. Ви можете створювати скільки завгодно пристроїв AVD з різними версіями платформи Android. Для кожного AVD можна настроїти різні параметри пристроїв, вказавши наявність фізичної клавіатури, підтримки GP, роздільну здатність камери і так далі.
Перш ніж запустити програму, ви повинні створити свій перший пристрій AVD із платформою SDK (Google API, 1,6).
У цьому посібнику ви зрозумієте, як почати розробку під Андроїд, а саме: мобільних додатків на платформі Android Eclipse + SDK. Сьогодні існує безліч підходів до розробки та створення мобільних додатків для Android. Складні апаратні пристрої, планшетні ПК та різноманітні програмні платформи (Symbian OS, iOS, WebOS, Windows Phone 7) відкривають безкрайній простір для розробників.
Отже, список програм для початку розробки мобільних програм під Android величезний. Яку платформу вибрати? Яку мову програмування вивчати? Який набір програм вибрати для планування проекту? У цьому посібнику ви засвоїте, як почати розробку мобільних програм для платформи Android, відкриту мобільну ОС від Google.
Чому платформа Android?
Android – відкрита платформа, заснована на ядрі Linux. Встановлено її на тисячах девайсів широкого кола виробників. Android надає програми для всіх видів обладнання, які тільки можна представити у вигляді сучасних мобільних пристроїв – цифрові компаси, відеокамери, GPS, датчики та багато іншого.
Безкоштовні інструменти розробки для Android дозволяють швидко почати створення безкоштовних або майже безкоштовних програм. Коли ви готові явити світові вашу програму, ви можете опублікувати її за допомогою Android Market. Публікація в Android Market вимагає одноразового реєстраційного внеску (25 дол. США на момент написання статті) і, на відміну від App Store Apple (який дуже суворо підходить до цензу), робить вашу програму доступною для скачування та покупки після швидкого огляду - якщо програма не порушує правила та закон.
Ось кілька інших відмінностей Android SDK, які пропонує Вам переваги як розробнику:
- Пакет Android SDK доступний для Windows, Mac і Linux, тому вам не потрібно платити за нове "залізо" для написання програм.
- SDKвбудований у Java. Якщо ви знайомі з мовою програмування Java, ви вже на півдорозі до освоєння.
- З урахуванням поширення програми через Android Market, вона буде доступна відразу для сотень тисяч користувачів. Ви не обмежуєтесь лише офіційним Market"ом, оскільки є альтернативи. Наприклад, ви можете опублікувати додаток на своєму блоги. Amazon за чутками, готує власний магазин Android-додатків.
- Як і технічна документація SDK, для розробників Android створюються нові ресурси. Платформа набирає все більшої популярності серед користувачів та розробників.
Досить говорити - давайте почнемо розробку програм для Android!
Установка Eclipse та Android SDK
Орієнтація під платформу Android під час розробки
Перш ніж почати написання програм для Android, потрібно завантажити SDK для платформи Android. Кожна платформа має власну версію Android SDK, встановлену на пристроях користувачів. Для версії Android 1.5 та вище існує дві платформи: Android Open Source Project та Google.
Android Open Source Project - платформа з відкритим вихідним кодом, але не включає розширення Google, такі як Google Maps. Якщо ви не хочете використовувати Google API, функціональність карт Google буде недоступна для вашої програми. Якщо у вас немає особливих причин робити це, я б рекомендував вам настроїти націлення на одній із платформ Google, оскільки це дозволить вам використовувати власні розширення Google.
- Виберіть Window->Android SDK and AVD Manager.
- Натисніть Available Packages у лівій колонці та перевірте репозиторій, щоб показати список доступних платформ Android.
- Ви можете вибрати платформи для завантаження зі списку або залишити всі позначені, щоб завантажити всі доступні платформи. Після завершення, натисніть Install Selected і дотримуйтесь інструкцій з інсталяції.
Після того, як все було успішно завантажено, ви готові приступити до розробки під Android.
Створення нового проекту Android
Майстер налаштування Eclipse New Project Wizard допоможе створити програму Android, згенерувавши файли та код, готові до запуску, праворуч від блоку. Це швидкий спосіб переконатися в працездатності та хороша початкова точка на початку розробки додатків:
Після натискання Finish, Eclipse створить новий проект Android, готовий до запуску та розробки під Android. Пам'ятайте, ви казали Eclipse згенерувати Activity, названий BrewClockActivity? Це код, який Android насправді використовує для запуску програми. Згенерований код буде відображено у вигляді простого повідомлення в дусі Hello World.
Пакети
Ім'я пакета – ідентифікатор для вашої програми. Коли настане час публікації результату на Android Market, цей ідентифікатор буде використовуватися для відстеження оновлень програми, тому важливо переконатися, що цей ідентифікатор унікальний. Хоча тут ми використовуємо ім'я com.example.brewclock,для реальної програми краще вибрати щось на зразок com.yourcompanyname.yourapplication.
Версії SDK
Версія Min SDK Version (назва говорить сама за себе) - рання версія Android, на якій програма буде працювати. З кожним новим випуском Android, SDK додає та змінює різні методи. При виборі версії SDK, Android (і Android Market) знає, що ваша програма буде працювати лише на пристроях з версією платформи Android вказаної версії та вище.
Запуск вашої програми
Зараз спробуємо запустити нашу програму в Eclipse. Оскільки це перший запуск, Eclipse запитає, з яким типом проекту ви працюєте:
- Виберіть Run->Run або натисніть Ctrl+F11.
- Виберіть Android Application та натисніть OK.
Eclipse спробує запустити програму на пристрої з Android. На даний момент, однак, у вас немає пристроїв під керуванням Android, тому запустити проект не вдасться, і вам буде запропоновано створити новий пристрій Android Virtual Device (AVD).
Віртуальні пристрої (Android Virtual Devices)
Android Virtual Device (AVD) емулює середовище Android, будь то мобільний телефон або планшетний ПК. Ви можете створювати скільки завгодно пристроїв AVD з різними версіями платформи Android. Для кожного AVD можна настроїти різні параметри пристроїв, вказавши наявність фізичної клавіатури, підтримки GP, роздільну здатність камери і так далі.
Перш ніж запустити програму, ви повинні створити свій перший пристрій AVD із платформою SDK (Google API, 1,6).
Давайте зробимо це зараз:
- Якщо ви ще не намагалися запустити програму, натисніть Run (або клавіші Ctrl+F11)
- Коли спливає попередження, натисніть Yes, щоб створити AVD.
- Натисніть New у діалоговому вікні Android SDK and AVD Manager.
- Встановіть такі параметри для AVD: Name: Android_1.6 Target: Google APIs (Google Inc.) - API Level 4 SD Card Size: 16 MiB Skin Built In: Default (HVGA)
- Натисніть Create AVD.
- Закрийте діалогове вікно Android SDK and AVD Manager.
Запуск коду
Спробуйте запустити програму знову (Ctrl + F11). Eclipse тепер буде створювати ваш проект та запускати новий AVD. Пам'ятайте, AVD повністю емулює середовище Android, причому вам навіть не потрібно спостерігати досить повільний процес завантаження, як у випадку з реальним пристроєм. Тому, як тільки AVD буде готовий до роботи, краще не закривати вікно, поки ви закінчили програмувати, протягом усього дня.
Розробка під андроїд: проектування інтерфейсу користувача
Одним з перших кроків до створення будь-якої програми взагалі - проектування інтерфейсу користувача. Ось невеликий малюнок нашої програми:
Користувач зможе встановити час кип'ятіння за хвилини, використовуючи кнопки + і -. Коли він натисне Start, відлік часу розпочнеться протягом зазначеної кількості хвилин. Якщо користувач скасовує кип'ятіння, натиснувши кнопку ще раз, час буде збільшено, коли таймер досягне 0.
Побудова інтерфейсу
Користувальницький інтерфейс Android або оболонка, описані в документації XML, можуть бути знайдені в папці res/layouts. Код шаблону, вже згенерований Eclipse, оголошений res/layouts/main.xml і, як ви помітили, вже працює в емуляторі.
Eclipse має власний інструментарій для проектування макета, який дозволяє створювати інтерфейс методом перетягування в межах екрану. Проте часом легше написати інтерфейс у XML і використовувати графічний макет для попереднього перегляду результатів.
Давайте зробимо це зараз, змінивши main.xml відповідно до ескізу вище:
- Відкрийте res/layouts/main.xml в Eclipse подвійним натисканням Package Explorer.
- Виберіть вкладку main.xml у нижній частині екрана, щоб перейти до режиму XML.
Наразі змінимо зміст main.xml на наступне:
# /res/layouts/main.xml
Як ви можете бачити, файлів в Android XML є багато, але це дозволить вам контролювати практично кожен елемент на екрані.
Одним з найважливіших елементів інтерфейсу в Android є контейнери Layout, такі як LinearLayout, що використовується в цьому прикладі. Ці елементи невидимі для користувача, але виступають як контейнери для інших елементів, таких як Buttons та TextViews.
Є кілька типів розташування макета, кожен із яких використовується для побудови різних типів планування. Як і LinearLayout та AbsoluteLayout, TableLayout дозволяє використання інтерфейсу з використанням сітки. Ви можете дізнатися більше про це в загальний макет об'єктів розділ API-документації.
Прив'язка вашого макета до коду
Після збереження макет, спробуйте запустити програму в емуляторі, натиснувши Ctrl + F11 або натисніть значок Run в Eclipse. Тепер замість повідомлення Hello World ви побачите, що в Android тепер відображається інтерфейс програми.
Якщо натиснути будь-яку кнопку, вони підсвічуватимуться, як і очікувалося, але не робіть що-небудь крім цього. Давайте продовжимо написання коду за інтерфейсом макета:
# /src/com/example/brewclock/BrewClockActivity.java ... import android.widget.Button; import android.widget.TextView; public class BrewClockActivity extends Activity ( /** Properties **/ protected Button brewAddTime; protected Button brewDecreaseTime; protected Button startBrew; protected TextView brewCountLabel; protected TextView brewTimeLabel; ... )
Далі, ми змінимо виклик на створення. Це виклик відбувається щоразу, коли на Android запускається програма. У коді, згенерованому Eclipse, onCreate створює вид активності на R.layout.main. Це рядок коду, який дає команду Android декодувати макет документа XML і відображати його користувачеві.
Об'єкт ресурсу (Resource Object)
Android, R - це спеціальний об'єкт, який автоматично створюється для забезпечення доступу до ресурсів вашого проекту (макети, рядки, меню, іконки...) всередині коду. Кожному ресурсу надається свій id. У файлі макета (див. вище) це @+id атрибути XML. Ми будемо використовувати їх для прив'язки Buttons та TextViews у нашому макеті:
# /src/com/example/brewclock/BrewClockActivity.java ... public class BrewClockActivity extends Activity ( ... public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); / / Connect interface elements to propertes brewAddTime = (Button) findViewById(R.id.brew_time_up), brewDecreaseTime = (Button) (TextView) findViewById(R.id.brew_count_label); brewTimeLabel = (TextView) findViewById(R.id.brew_time);
"Прослуховування" подій
Для визначення натискання кнопок нам необхідно реалізувати їхнє прослуховування. Ви можете бути знайомі зі слухачами зворотного дзвінка, або callbacks, з інших платформ, таких як Javascript / JQuery або Rails.
Android забезпечує аналогічний механізм шляхом надання інтерфейсу Listener, таких як OnClickListener, які визначають методи, які спрацьовуватимуть при виникненні події. OnClickListener інтерфейс повідомить вашу програму, коли користувач натискає на екран або певну кнопку. Крім того, необхідно сказати кожній кнопці про ClickListener:
# /src/com/example/brewclock/BrewClockActivity.java... // Be sure not to import // `android.content.dialoginterface.OnClickListener`. import android.view.View.OnClickListener; public class BrewClockActivity extends Activity implements OnClickListener (... public void onClick(View v) ( // TODO: Add code to handle button taps ) )
Далі ми додамо код, який обробляє кожне з наших кнопок. Ми також додамо чотири нові властивості Activity, що дозволить користувачеві встановити та відстежувати час пивоваріння: скільки варок було зроблено та чи запущено таймер.
# /src/com/example/brewclock/BrewClockActivity.java ... public class BrewClockActivity extends Activity implements OnClickListener ( ... protected int brewTime = 3; protected CountDownTimer brewCountDownTimer; protected int brewCount = 0; .. public void onClick(View v) ( if(v == brewAddTime) setBrewTime(brewTime + 1); else if(v == brewDecreaseTime) setBrewTime(brewTime -1); else if(v == startBrew) ( if( isBrewing) stopBrew(); else startBrew(); ) ) )
Зверніть увагу, що ми використовуємо CountDownTimer клас, який надається Android. Це дозволяє легко створити і запустити простий лічильник і отримувати повідомлення через регулярні проміжки часу, коли йде зворотний відлік. Ви будете використовувати це в методі startBrew, читайте нижче.
Наступні методи - моделі поведінки повзунка налаштування часу варіння, запуску та зупинки варення, а також лічильника. Ми також ініціалізуємо властивості brewTime і brewCount в Create.
Було б гарною практикою перемістити цей код в окремий клас моделі, але для простоти ми додамо код до BrewClockActivity:
# /src/com/example/brewclock/BrewClockActivity.java ... public class BrewClockActivity extends Activity implements OnClickListener ( ... public void onCreate(Bundle savedInstanceState) ( ... // Set the initial brew values setBrewCount(0); setBrewTime(3); ) /** * Набір абсолютної вартості для кількох хвилин до вечора. int minutes) ( if(isBrewing) return; brewTime = minutes; if(brewTime)< 1) brewTime = 1; brewTimeLabel.setText(String.valueOf(brewTime) + "m"); } /** * Set the number of brews that have been made, and update * the interface. * @param count The new number of brews */ public void setBrewCount(int count) { brewCount = count; brewCountLabel.setText(String.valueOf(brewCount)); } /** * Start the brew timer */ public void startBrew() { // Create a new CountDownTimer to track the brew time brewCountDownTimer = new CountDownTimer(brewTime * 60 * 1000, 1000) { @Override public void onTick(long millisUntilFinished) { brewTimeLabel.setText(String.valueOf(millisUntilFinished / 1000) + "s"); } @Override public void onFinish() { isBrewing = false; setBrewCount(brewCount + 1); brewTimeLabel.setText("Brew Up!"); startBrew.setText("Start"); } }; brewCountDownTimer.start(); startBrew.setText("Stop"); isBrewing = true; } /** * Stop the brew timer */ public void stopBrew() { if(brewCountDownTimer != null) brewCountDownTimer.cancel(); isBrewing = false; startBrew.setText("Start"); } ... }
Тільки частини цього коду, характерні для Android, створюють відображення тегів, використовуючи метод setText. У startBrew ми створюємо та запускаємо CountDownTimer для початку посекундного відліку, коли варіння/кип'ячення закінчено. Зверніть увагу, що ми визначаємо слухачів CountDownTimer (onTick та onFinish). onTick буде викликатися кожні 1000 мілісекунд (1 секунду), тоді як виклик onFinish відбувається тоді, коли таймер досягне нуля.
Уникаємо складності у програмуванні на Android
Щоб зберегти цей посібник для розробки під Android простим, я навмисне застосовував написи безпосередньо в коді (наприклад, "Brew Up!", "Start", "Stop"). Насправді, це не дуже хороша практика, тому що ускладнює пошук та зміну цих рядків у великих проектах.
Android забезпечує акуратний спосіб зберігання текстових рядків окремо від коду R-об'єкта. R дозволяє визначити всі рядки програми в файлі XML (res/values/strings.xml), до якого можна отримати доступ у коді за посиланням. Наприклад:
# /res/values/strings.xml
Тепер, якщо ви хочете змінити Brew Up! щось інше, потрібно змінити його один раз у файлі strings.xml. Якщо ваш додаток містить десятки файлів коду, написів в одному місці набуває величезного сенсу!
Перевіряємо BrewClock
Ми завершили написання коду, і настав час "випробувати" програму. Натисніть "Run" або Ctrl+F11, щоб запустити BrewClock в емуляторі. Якщо все пройшло добре, ви побачите інтерфейс налаштування та готові до заварювання чаю! Спробуйте встановити різний час заварювання та натисніть Start для зворотного відліку.
Резюме
У цьому короткому введенні в розробку під Андроїд, ви завантажили та встановили Android SDK та плагін Eclipse Android Development Tools (ADT). Ви налаштували емулятор або віртуальний пристрій для тестування ваших програм. Ви також створили робочий додаток для Android який підкреслив низку ключових понять , які ви будете використовувати при розробці майбутніх додатків Android.
Будемо сподіватися, що це розбудить ваш апетит для створення мобільних додатків та експериментів у цій захоплюючій області. Android пропонує відмінний спосіб написання програм для ряду нинішніх і майбутніх мобільних пристроїв. Якщо ви вже написали робочий додаток під цю платформу, не забудьте повідомити про це нам в коментарях!
Наталія Єлманова
Обговоривши в попередніх двох статтях даного циклу публікацію мобільних версій журналів, перейдемо на зовсім іншу тему. Сьогодні ми вперше за весь час існування даного циклу звернемося до інструментів для програмістів, причому не стільки заради навчання їх застосуванню (зробити це в рамках однієї статті абсолютно нереально), скільки з метою забезпечення повноти картини різноманітного світу інструментів створення мобільних додатків, книг, ігор , інтерфейсів до корпоративних систем та онлайнових сервісів
Сьогодні ми поговоримо про створення програм для платформи Android традиційним способом, тобто без застосування кодогенераторів та інших допоміжних засобів генерації програм з типовими функціями, з якими ми періодично знайомилися протягом даного циклу. Згадані інструменти нерідко дозволяють отримати потрібний результат з мінімальними витратами праці, але їх застосування обмежене випадками, коли «потрібний результат» - це додаток з більш-менш стандартною функціональністю, передбаченою авторами даних інструментів. Створити довільний додаток з їх допомогою або не вийде, або, в ряді випадків, вдасться при розробці нестандартної частини програми за допомогою тих самих професійних інструментів.
Що потрібно знати для того, щоб розпочати створення довільних програм для Android? Традиційно програми для цієї платформи створюються за допомогою мови програмування Java, тому потрібно знайомство з цією мовою хоча б на рівні розробника-початківця. Для створення програм потрібні набори бібліотек та утиліт Java SDK (JDK) та Android SDK. В принципі, для розробки додатків Android достатньо перелічених нами наборів бібліотек і утиліт і драйвера пристрою, на якому буде тестуватися додаток, або його емулятора. Однак в даний час все популярнішим стає застосування середовища Eclipse з модулем розширення Android Development Tools (ADT).
Процес встановлення ADT докладно описаний на ресурсі Google для розробників додатків Android http://developer.android.com/sdk/installing.html. При бажанні можна завантажити з ресурсу http://developer.android.com/sdk/index.html готове середовище розробки (рис. 1), що включає Eclipse, Android SDK і ADT, а потім за допомогою утиліти Android SDK Manager, що викликається з середовища і завантажити на свій комп'ютер з Інтернету бібліотеки для версій даної платформи, що цікавлять нас.
Рис. 1. Середовище розробки Eclipse із встановленим розширенням ADT
І нарешті, слід завантажити емулятор - Android Virtual Device (AVD), на якому налагоджуватиметься програма, обравши необхідну версію платформи, обсяг віртуальної SD-карти та роздільну здатність екрану. Замість емулятора можна використовувати і реальний пристрій, у цьому випадку слід завантажити драйвер, наприклад, з сайту Google.
Підготувавши середовище і вибравши робочу область (Workspace) - розташування файлів проектів майбутніх додатків, можна спробувати створити першу програму або з нуля, або скориставшись одним із готових шаблонів. Проект програми включає код Java-класів, ресурси - форми, що зберігаються у вигляді xml-файлів, наборів рядків, масивів, графічних файлів для різних дозволів екрану, а також маніфест AndroidManifest.xml, що є описом властивостей програми.
Форми програми можна редагувати як у xml-виставі, так і за допомогою візуального дизайнера, що дозволяє розміщувати на ній інтерфейсні елементи та інші компоненти програми (рис. 2).
Рис. 2. Редактор форм
Інші ресурси також мають відповідні редактори.
Для створення найпростішого прикладу на нашу традиційну тему Про журнал «Комп'ютерПрес» скористаємося всіма доступними засобами генерації коду і форм. Створимо нову програму за допомогою відповідного майстра, доступного в пункті New → Android Applicationу контекстному меню робочої області (рис. 3).
Рис. 3. Майстер створення нової програми
У процесі роботи майстра ми повинні вибрати версію платформи Android, з якою буде сумісна наша програма, сформувати іконку програми для різних розмірів екрану, а також вибрати тип головної форми програми - тієї, що має бути згенерована майстром.
На одному з перших екранів майстра відзначимо опції Create Custom Launcher icon і Create activity - у цьому випадку ми можемо створити свою піктограму програми, а сама згенерована програма буде містити Java-клас, що відображає на екрані пристрою форму і обробляє події, що виникають в ній (мал. 4).
Рис. 4. Вибір параметрів програми
Рис. 5. Створення піктограми програми
Для головної (і єдиної) форми нашого прикладу виберемо порожню форму (Blank Activity) із вкладками (рис. 6).
Рис. 6. Вибір типу головної форми програми
У цьому випадку майстром буде згенерована форма з вкладками (за замовчуванням їх три) та елементом управління, що містить багаторядковий текст (TextView), - за замовчуванням цей елемент у згенерованому коді зветься dummyTextView.
Як вже було згадано, застосування професійного інструменту для розробки додатків аж ніяк не передбачає, що всі програми створюються за допомогою кодогенераторів та візуальних дизайнерів – так чи інакше доведеться і писати код, і редагувати ресурси.
Почнемо з редагування ресурсів. Для початку привласним трьом вкладкам гененованої форми потрібні нам імена - нехай це будуть рядки «Про нас», «Рубрики» та «Адреса». Для цього згадаємо про те, що наша програма містить рядкові ресурси, знайдемо в папці res\values проекту програми файл strings.xml і, двічі клацнувши по ньому, відкриємо редактор рядкових ресурсів. У цьому редакторі замінимо вміст вже наявних рядків title_section1, title_section2, title_section3 на «Про нас», «Рубрики» та «Адреса», а також додамо три нові рядки: About, Address та Subjects - з текстами нашого сайту, вмістом яких ми будемо заповнювати елемент TextView на формі під час перемикання між вкладками (рис. 7).
Рис. 7. Редагування рядкових ресурсів
Нарешті, настав момент, коли без написання коду ми обійтися не зможемо - необхідно реалізувати заповнення елемента dummyTextView при перемиканні між вкладками. З цією метою ми повинні знайти у згенерованому коді класу MainActivity.java, відповідального за відображення форми та обробку її подій, обробник події OnCreateView, пов'язаний з перемальовуванням форми при виборі вкладки, та замінити у ньому згенерований автоматично рядок
dummyTextView.setText(Integer.toString(getArguments().getInt(
ARG_SECTION_NUMBER)));
на фрагмент коду, що виводить рядки About, Address і Subjects елемент TextView залежно від того, яку з вкладок вибрав користувач:
if (getArguments().getInt(ARG_SECTION_NUMBER)==1)(
dummyTextView.setText(R.string.About);
else if (getArguments().getInt(ARG_SECTION_NUMBER)==2)(
dummyTextView.setText(R.string.Subjects);
else if (getArguments().getInt(ARG_SECTION_NUMBER)==3)(
dummyTextView.setText(R.string.Address);
Далі слід зберегти внесені зміни та спробувати протестувати готовий додаток. Як було сказано, зробити це можна за допомогою пристрою, підключеного до комп'ютера, на якому ведеться розробка або за допомогою віртуального пристрою - емулятора смартфона Android (Android Virtual Device, AVD).
Для створення AVD потрібно вибрати пункт меню Windows → Android Virtual Device Managerі створити новий віртуальний пристрій, натиснувши кнопку Newправоруч від списку пристроїв (можливо порожнього). Потім слід описати характеристики нового пристрою. Після опису характеристик створений віртуальний пристрій з'явиться у списку пристроїв (мал. 8).
Рис. 8. Опис параметрів віртуальних пристроїв
Тепер слід зазначити, на якому з наявних віртуальних пристроїв потрібно тестувати створене нами програму. Для цього із контекстного меню проекту вибираємо пункт Run as → Run configurationsі в діалозі, що з'явився, на вкладці Target вибираємо віртуальний пристрій (рис. 9).
Рис. 9. Вибір віртуального пристрою для запуску програми
Тепер можна запустити програму, вибравши з контекстного меню проекту пункт Run as → Android Application. За процесом запуску можна стежити на вкладці Console середовища розробки (її можна за необхідності переключити в режим налагодження, в якому слід змінити розміри вікон так, щоб ця вкладка займала більше місця на екрані).
Якщо все було зроблено без помилок, буде запущений емулятор смартфона і через якийсь час (на мій досвід і досвід багатьох колег, іноді досить тривалий) на екрані емулятора з'явиться піктограма програми, а потім і сама програма (мал. 10).
Рис. 10. Готова програма, запущена на віртуальному пристрої
Отже, ми створили найпростішу програму за допомогою ADT. Звичайно, за допомогою кодогенераторів можна за той же час створити програму з більшою функціональністю, але, як ми вже обговорювали, подібний підхід добрий тільки для певного кола завдань. Вибір інструментів - кодогенераторів або професійних засобів - залежить насамперед від мети створення програми, а також від сукупності таких факторів, як бюджет, час, наявність уміння та бажання програмувати.