Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИКИТ_2015_8.05010201_Постайчук.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

2.1.2 Основні частини програми

У загальному випадку, АД складається з:

  • 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) (вони являють собою зашифровану файлову систему, яка може бути монтована для додатку);

  • кешовані файли.