- •Кафедра Комп’ютерних систем та мереж
- •Дипломна робота
- •Національний авіаційний університет
- •Завдання на виконання дипломної роботи (проекту)
- •6. Календарний план-графік
- •7. Консультанти з окремих розділів
- •Реферат
- •Перелік скорочень
- •1.1 Поняття інформаційної структури підприємства
- •Розділ 1 інформаційна структура підприємства на базі архітектури клієнт-сервер
- •1.2 Технологія клієнт-сервер
- •1.3 Моделі реалізації технології клієнт-сервер
- •1.3.1 Модель файлового серверу
- •1.3.2 Модель доступу до віддалених даних
- •1.3.3 Модель серверу баз даних
- •1.3.4 Модель серверу додатків
- •1.4 Методи передачі даних між клієнтом і сервером
- •1.5 Засоби побудови клієнт-серверних додатків
- •Висновки до розділу 1
- •2.1.2 Основні частини програми
- •2.1.3 Архітектурні стилі і шаблони
- •2.2 Методи оптимізації Android-додатку
- •2.3 Засоби розробки Android-додатків
- •Висновок до розділу 2
- •Розділ 3 розробка технології створення оптимальних клієнт-сервер додатків на базі мобільних клієнтів
- •3.1 Проблеми побудови клієнт-серверних додатків на базі мобільних клієнтів
- •3.2 Стиснення даних
- •3.2.1 Порівняння алгоритмів стиснення
- •3.2.2 Аналіз отриманих даних
- •3.3 Шифрування даних
- •3.4 Методи синхронізації даних між клієнтом і сервером
- •3.4.1 Синхронізація усіх даних
- •3.4.2 Синхронізація оновлених даних
- •3.4.3 Синхронізація порціями
- •3.4.4 Синхронізація зі знанням того, що є на пристрої
- •Висновки до розділу 3
- •Розділ 4 розробка інформаційної структури підприємства на розробленій технології
- •4.1 Інформаційна структура підприємства
- •4.2 Структура розроблюваної системи
- •4.2.1 Структура серверної бд
- •4.2.2 Структура бд на Android-пристрої
- •4.2.3 Ахрітектура Android-додатку
- •4.2.4 Архітектура серверного додатку
- •4.3 Тестування розробленої системи
- •Висновки
- •Список використаних джерел
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) (вони являють собою зашифровану файлову систему, яка може бути монтована для додатку);
кешовані файли.
