HELLO WORLD У СТИЛІ ANDROID

&nbsp

Налаштувавши середовище розробки, ми можемо, нарешті, створити наш перший Android-проект в Eclipse Разом з плагіном ADT ви отримали набір помічників, що роблять процес створення нових проектів для Android дійсно легким

Створення проекту

Існують два способи створення нового Android-проекту Клацніть правою кнопкою миші в поданні Package Explorer (Диспетчер пакетів) (див рис 25) і виберіть New Project (Новий проект) з появи контекстного меню У діалозі, виберіть Android Project (Проект Android) в категорії Android Як бачите, тут є безліч інших параметрів створення проекту Це стандартний спосіб створити новий проект будь-якого типу в Eclipse Після підтвердження відкриється помічник створення проектів Android Другий спосіб набагато простіше: просто натисніть кнопку створення нового Android-проекту (див рис 24)

У діалоговому вікні створення проекту Android необхідно встановити кілька значень

1 Дати проекту назву За угодою про найменування прийнято використовувати тільки маленькі букви У даному прикладі проект буде називатися hel 1 про worl d

2 Визначити мету збірки Поки виберемо мета Android 15 – перша програма буде дуже проста, і нам не потрібні просунуті можливості начебто мультитач

ПРИМІТКА

Ви бачили, що кожен новий реліз Android додає нові класи у фреймворк API Параметр, що задає мета збірки, визначає, яку версію цього API ви хочете використовувати у вашому додатку Наприклад, вибравши мету Android 23, ви отримуєте доступ до самого повного й актуального набору функцій Але платою за це є ризик поділу: якщо хтось запустить ваш додаток на апараті з більш старою версією ОС (наприклад, Android 15), то при спробі звернення вашої програми до можливостей API, доступним тільки у версії 23, відбудеться збій У таких випадках вам необхідно буде програмно визначати використовувану версію під час виконання і використовувати розширений функціонал тільки при роботі з відповідною версією операційної системи Це звучить жахливо, при правильній архітектурі ви цілком можете реалізувати подібний вибір

3 Визначити назву вашої програми (наприклад, класичне hel про world), назва пакета Java, в якому будуть міститися ваші вихідні файли (наприклад, comheloworld), і назва активності Поняття активність в Android – синонім вікна або діалогу в настільних операційних системах Назвемо його HelloWorldActivity

4 Поставити мінімальну версію Android, необхідну для запуску вашої програми Для цього використовується поле Min SDK Version (Мінімальна версія SDK) Це необовязковий параметр, проте його установка вважається хорошим тоном Версії SDK нумеруються починаючи з 1 (10) і збільшуються по мірі виходу нових релізів З версії ОС 15 актуальним є третя реліз, тому введемо в поле значення 3 Памятайте, що раніше вам необхідно було вибрати мету збірки, яка може виявитися новіше, ніж мінімальна версія SDK Це дозволяє вам працювати з більш високим рівнем API, зберігаючи, однак, сумісність з більш старими версіями ОС (звичайно, необхідно переконатися, що ви викликаєте тільки ті методи, які підтримуються API для даної версії)

Після цього натисніть Finish (Готово) для створення першого проекту Android

ПРИМІТКА

Установка мінімального рівня версії SDK має свої наслідки Програма може запускатися тільки на пристроях з версією Android, рівною або більшою мінімальному рівню SDK, який ви визначили Коли користувач відвідує Android Market за допомогою стандартного системного додатка, то він бачить тільки програми, що задовольняють вимогам мінімального SDK

&nbsp

Дослідження проекту

У поданні Package Explorer (Диспетчер пакетів) ви повинні побачити проект, названий helоworld Якщо ви розгорнете його і його підрозділи, то побачите щось, схоже на рис 26 Це загальна структура більшості Android-проектів Розглянемо її докладніше

Androi dMani fest xml – описує додаток Він визначає, які активності та служби в ньому містяться, на якій мінімальній і цільової версії Android його передбачається запускати і які дозволи йому необхідні для роботи (наприклад, доступ до карти памяті або до мережі) defaul t properti es – зберігає різні настройки збірки Ми не будемо чіпати цей файл – ADT сам змінює його вміст при необхідності src / – містить всі вихідні коди на Java Зверніть увагу – пакет має імя, визначене нами на етапі створення проекту gen / – містить вихідні коди на Java, згенеровані складальної системою Android Вони створюються автоматично, і ми не будемо мати з ними справу безпосередньо

Рис 26 Структура проекту Hello World

assets / – місце зберігання файлів, необхідних додатку (наприклад, файли конфігурації і звукові доріжки) Ці файли при складанні включаються в пакет

res / – місце зберігання ресурсів для програми (значків, строкових значень для інтернаціоналізації, XML-файлів компонування) Як і ресурси (assets), вони включаються в пакет при складанні програми

Android 15 – повідомляє нам, що ми збираємо додаток для версії ОС 15 Це насправді залежність у формі стандартних J AR-файлів, що зберігають у собі класи API для Android 15

Подання Package Explorer (Диспетчер пакетів) приховує від нас ще один каталог – bin /, що містить компілює код, який можна розгортати на пристрої або емуляторі Як і у випадку з папкою gen /, зазвичай можна не замислюватися, що в ній відбувається

Можна з легкістю додавати в уявлення Package Explorer (Диспетчер пакетів) нові вихідні коди, папки та інші ресурси Для цього потрібно натиснути правою кнопкою миші на необхідному каталозі, вибрати в контекстному меню пункт New (Новий) і вказати тип ресурсу, який ми хочемо додати Проте в даному випадку у нас вже є все необхідне Наступне наше завдання – трохи змінити вихідний код

Написання коду програми

До цього моменту ми не написали ще жодного рядка коду – пора змінити цей стан речей Помічник створення проекту Android створив для нас клас шаблону активності, який називається НеloWorldActivity Саме ця активність буде показуватися на екрані телефону при запуску програми на емуляторі або реальному пристрої Відкрийте вихідний код класу подвійним натисканням файлу в поданні Package Explorer (Диспетчер пакетів) Ми замінимо код цього шаблону рядками з лістингу 21

Лістинг 21 HelloWorldActi vityJava

Проаналізуємо лістинг 21, щоб зрозуміти, що він робить

Все, що нам зараз необхідно, – загальне розуміння того, що відбувається

Файл програмного коду починається зі стандартного оголошення Java-пакетів і декількох декларацій імпорту Велика частина класів, складових фреймворк Android, міститься в пакеті android:

Далі визначаємо клас HelloWorldActivity і успадковуємо його від базового класу Activity, пропонованого API фреймворка Android Activity – це, загалом-то, аналог вікна в класичних інтерфейсах настільних систем, що має одне обмеження – воно завжди має займати весь екран пристрою (за винятком рядка оповіщення у верхній частині інтерфейсу Android)

Крім того, ми реалізуємо в цьому класі інтерфейс OnCl i ckLi stener Якщо у вас був досвід роботи з іншими інструментами розробки інтерфейсів, то, можливо, ви можете передбачити наступний крок:

У нашій активності буде два елементи: Button і число, що зберігає кількість натискань цієї кнопки:

Кожен клас типу Activity повинен реалізовувати абстрактний метод Acti vi ty onCreate, що викликається системою одноразово при першій появі активності Це свого роду заміна звичного конструктору, використовуваному зазвичай для створення екземпляра класу Виклик методу onCreate базового класу обовязково повинен бути першим рядком у тілі методу:

Далі створюємо обєкт типу Button і встановлюємо для нього початковий текст Button – один з багатьох віджетів, пропонованих API фреймворка Android Віджет – поняття, синонімічне поданням в Android Зверніть увагу – наша кнопка є членом класу Чи не loWorldActi vity Трохи пізніше нам знадобиться посилання на нього:

Наступний рядок методу onCreate встановлює OnCl i ckLi stener для обєкта Button OnCl i ckLi stener – інтерфейс зворотного виклику з єдиним методом, OnCl i ckLi stener onCl i ck, що викликається кожен раз при натисканні кнопки Ми хочемо отримувати повідомлення про ці натисненнях, тому реалізуємо в НеloWorldActi vity даний інтерфейс і зареєструємо його в якості OnCl i ckLi stener для нашого обєкта Button:

Останній рядок нашого методу onCreate призначає обєкт Button так званим поданням вмісту нашої активності Уявлення можуть бути вкладеними, і подання вмісту є кореневим ланкою цієї ієрархії У даному випадку ми просто встановлюємо обєкт Button як уявлення, що відображається нашою активністю Для простоти ми не будемо вдаватися в деталі того, як активність буде компонуватись з даними поданням вмісту

Наступний крок – реалізація методу OnCl i ckLi stener onCl i ck, чого вимагає інтерфейс, підключений до нашого класу Acti vi ty Цей метод викликається кожного разу, коли натискається кнопка Усередині нього ми збільшуємо на одиницю значення лічильника touchCount і присвоюємо тексту кнопки це нове значення

Підводячи підсумок наших зусиль по розробці програми hel1о world, можна сказати, що ми створили активність, що містить елемент типу Button При кожному його натисканні ми реагуємо, змінюючи текст кнопки Можливо, це не саме вражаюче додаток у світі, але для демонстрації воно цілком підходить Зауважте – нам поки нічого не довелося компілювати вручну Плагін ADT в поєднанні з Eclipse буде перезбирати проект кожен раз, коли ми додаємо, змінюємо або видаляємо файли коду або ресурси Результат цієї збірки – файл з розширенням АР К, який готовий до розгортання на емуляторі або реальному пристрої Файл АРК розташовується в папці bi / проекту Ви будете використовувати даний додаток в наступних розділах для розуміння процесу запуску та налагодження Android-додатків на емуляторах або телефонах

Джерело: Mario Zechner / Маріо Цехнер, «Програмування ігор під Android», пров Єгор Сидорович, Євген зазноби, Видавництво «Пітер»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*