Читайте также:
|
|
У загальному випадку, АД складається з:
- Java -класів, які є підкласами основних класів з Android SDK (View, Activity, ContentProvider, Service, BroadcastReciever, Intent) і Java -класів, у яких немає батьків в Android SDK.
- Маніфесту додатки.
- Ресурсів типу рядків, зображень і т.п.
- Файлів.
Java класи
На рис. 2.2. представлена ієрархія основних класів з Android SDK.
View - базовий клас для всіх віджетів користувальницького інтерфейсу (GUI widgets). Інтерфейс Android -додатку являє собою дерево примірників спадкоємців цього класу. Можна створити це дерево програмно, але це неправильно. Інтерфейс визначається за допомогою XML (файли шарів, layout files), а під час виконання автоматично перетворюється (inflate, термін Android) в дерево відповідних об'єктів.
Клас Activity і його підкласи містять логіку, що лежить за інтерфейсом користувача. Цей клас відповідає ViewModel в архітектурному шаблоні Model-View-ViewModel (MVVM). Відношення між підкласом Activity і користувача інтерфейсом - це відношення один до одного; зазвичай кожен підклас Activity має тільки один пов'язаний з ним шар користувальницького інтерфейсу, і навпаки. Activity має життєвий цикл.
Рис. 2.2. Ієрархія класів Android SDK
У перебігу життєвого циклу Activity може перебувати в одному з трьох станів:
- активно і виконується - цей користувальницький інтерфейс знаходиться на передньому плані (кажучи технічно - на вершині стека активують);
- призупинено - якщо даний інтерфейс користувача втратив фокус, але все ще бачимо. У такому стані ніякої код не виконується;
- завершено - якщо інтерфейс користувача невидимий. У такому стані код не виконується.
Код Activity виконується тільки коли відповідний інтерфейс користувача видимий і має фокус. Немає гарантії, що об'єкт Activity і пов'язані з ним об'єкти знаходяться в пам'яті, коли Activity призупинено або завершено.
Клас ContentProvider і його підкласи представляють model в архітектурі MVVM. У більшості практичних випадків це обгортка над базою даних SQLite з способом доступу на основі URI. Існуючий метод query() контент-провайдера повертає об'єкт Cursor, який вкрай схожий на JDBC ResultSet інтерфейсом і тим, як він працює. Справжнє призначення контент-провайдерів - інкапсулювати базу даних.
Основна ідея контент-провайдерів базується на архітектурі AJAX додатків. AJAX програми зазвичай використовують архітектуру MVVM, де модель представлена як URI на стороні сервера.
Service - це різновид Model, обслуговуюча інші варіанти використання, ніж ContentProvider. Ці класси можуть виконуватися навіть коли процес, в якому вони працюють, не на передньому плані. Так, якщо ви розробляєте Activity, що виконує розтягнуту в часі операцію, яка повинна завершитися навіть працюючи в тлі, ви повинні створити Service, який реалізує цю операцію, і запустити його з Activity. Service так само має життєвий цикл. Це означає, що він може бути запущений Android -додатком за деякою умовою.
Клас BroadcastReceiver і його підкласи являють собою отримувача в механізмі взаімодейтсвіе видавець / отримувач, реалізованому в архітектурі Android.
Маніфест Android
Маніфест Android - важлива частина Android -додатку. Він являє собою XML файл і виконує кілька функцій. Цими функціями являються:
- визначає ім'я Java -пакету програми. Ім'я пакету являє собою унікальний ідентифікатор для програми;
- описує компоненти програми - Activity, Service, BroadcastReceiver та ContentProvider. Визначає імена класів, що реалізують кожний з компонентів і оголошує їх можливості (наприклад, які Intent -повідомлення вони можуть обробляти). Ці оголошення дозволяють системі Android знати, які компоненти і за яких умов можуть бути запущені;
- зумовлює процеси, які будуть містити компоненти програми;
- оголошує дозволи, які додаток повинен мати для доступу до захищених частинах API та взаємодії з іншими додатками;
- також оголошує дозволи, які потрібні для доступу до компонентів програми;
- перераховує класи Instrumentation, які надають профайлінг та іншу інформацію під час роботи програми. Ці оголошення присутні в маніфесті тільки поки додаток розробляється і тестується; вони віддаляються перед публікацією програми;
- оголошує мінімальний рівень Android API, який вимагає додаток;
- перераховує бібліотеки, з якими програма має бути пов'язано.
Ресурси
Android -додатки використовують наступні типи ресурсів:
- зображення;
- шари GUI (XML файли);
- оголошення меню (XML файли);
- текстові рядки;
- файли
АД використовує кілька різних типів файлів:
- файли «загального призначення»;
- файли БД;
- файли Opaque Binary Blob (OBB) (вони являють собою зашифровану файлову систему, яка може бути монтована для додатку);
- кешовані файли.
Дата добавления: 2015-12-07; просмотров: 109 | Нарушение авторских прав