Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Програмні засоби для мобільних пристроїв

Скачати 310.86 Kb.

Програмні засоби для мобільних пристроїв




Скачати 310.86 Kb.
Сторінка4/4
Дата конвертації10.03.2017
Розмір310.86 Kb.
1   2   3   4
провідником до інших компонентів і призначений для виконання невеликого обсягу робіт, наприклад, він може запустити відповідний події сервіс.

Усі розглянуті компоненти є спадкоємцями класів, визначених у Android SDK, основні з яких показано на рис 3.1.

Рис 3.1, Ієрархія класів Android SDK

Жовтим кольором виділені класи, з якими розробник працює безпосередньо та успадковує від них свої класи.

Програміст, також програмник[Джерело?] - фахівець, що займається програмуванням, виконує розробку програмного забезпечення (в простіших випадках - окремих програм) для програмованих пристроїв, які, як правило містять один чи більше CPU.
Провідник - матеріал, що проводить світло або електрику (на противагу діелектрику). Для провідника характерні високі тепло- або електропровідність. Найчастіше провідник є речовиною, яка має багато вільних електронів (метали).
Ієра́рхія (грец. ίεράρχίά, від ίερσς - священний, та άρχή - влада) - поділ на вищі й нижчі посади, чини; суворий порядок підлеглості нижчих щодо посади або чину осіб вищим. В ієрархії між її членами діють вертикальні зв'язки - відносини субординації.
Інші класи не менш важливі, але вони рідше використовуються безпосередньо. Нижче розглянуті класи View, Intent і Activity.

Клас View є основним будівельним блоком для компонентів інтерфейсу користувача (UI), він визначає прямокутну область екрану і відповідає за відображення і обробку подій.

Додавання - бінарна арифметична операція, суть якої полягає в об'єднанні математичних об'єктів.
Прямоку́тник - це чотирикутник, усі кути якого прямі. Протилежні сторони прямокутника рівні. Є окремим випадком паралелограма.
Є базовим класом для віджетів (widgets), які використовуються для створення інтерактивних компонентів для користувача інтерфейсу: кнопок, текстових полів, списків і т. д. А також є базовим класом для класу ViewGroup, який є невидимим контейнером для інших контейнерів і віджетів, визначає властивості розташування компонентів для користувача інтерфейсу. Інтерфейс Android-додатку є ієрархією UI компонентів (рис. 3.2). Можна описати цю ієрархію програмно, але більш простим і ефективним способом задати розташування елементів інтерфейсу є XML файл, який надає зручну для сприйняття структуру компоновки (layout file).
Сприйняття́, сприйма́ння (перцепція, від лат. perceptio) - пізнавальний психічний процес, який полягає у відображенні людиною предметів і явищ, у сукупності всіх їх якостей при безпосередній дії на органи чуття.
Під час виконання XML файл автоматично перетворюється на дерево відповідних об'єктів.



Рис. 3.2, Ієрархія компонентів, що визначає компоновку інтерфейсу користувача

Клас Activity – це основна видима частина додатку. У процесі його роботи (рис.3.3), спочатку створюється об’єкт класу Activity, потім він запускається, відпрацьовує та знищується, а користувач переходить до нового об’єкта.

Рисунок 3.3. Процес роботи класу Activity

Об'єкти-екземпляри класу Intent використовуються для передачі повідомлень між основними компонентами додатків. Відомо, що три з чотирьох основних компонентів: активності, сервіси та приймачі широкомовних повідомлень, можуть бути активовані за допомогою повідомлень, які називаються намірами. Такі повідомлення є інструментом пізнього зв'язування компонентів одного або декількох додатків. Екземпляр класу Intent являє собою структуру даних, що містить опис операції, яка повинна бути виконана, і зазвичай використовується для запуску активності або сервісу.

В програмуванні та комп'ютерних науках структу́ри да́них - це способи організації даних в комп'ютерах. Часто разом зі структурою даних пов'язується і специфічний перелік операцій, що можуть бути виконаними над даними, організованими в таку структуру.
У випадку з приймачами широкомовних повідомлень об'єкт Intent містить опис події, яка сталася або було оголошено.

Для кожного типу компонентів існують свої механізми передачі намірів.

Механі́зм (грец. μηχανή mechané - машина) - система тіл, що призначена для перетворення руху одного або декількох тіл у потрібний рух інших тіл. Механізм складає основу більшості машин і застосовується в різноманітних технічних об'єктах.



  • Щоб запустити активність або викликати у працюючої активності нову дію, необхідно передати об'єкт-намір в метод Context.startActivity () або Activity.startActivityForResult ().

  • Щоб запустити сервіс або доставити нові інструкції працюючому сервісу, необхідно передати об'єкт-намір в метод Context.startService (). Також об'єкт-намір може бути переданий в метод Context.bindService (), щоб зв'язати між собою викликаючий компонент і сервіс.

  • Щоб доставити об'єкт-намір всім зацікавленим приймачам широкомовних повідомлень, необхідно передати його в будь-який з методів: Context.sendOrderedBroadcast(), Context.sendStickyBroadcast () або Context.sendBroadcast ().

У кожному випадку система Android у відповідь на намір знаходить відповідний компонент: активність, сервіс або безліч широкомовних приймачів і запускає його, якщо необхідно.

На рис. 3.4 можна побачити як відбувається передача намірів (Intent). В даному випадку одна активність запускає іншу. Активність А створює намір з описом дії і передає його в метод startActivity(). Система Android перевіряє всі додатки на збіг з наміром, коли збіг знайдено, система запускає відповідну активність, для чого викликає метод onCreate () і передає в нього об'єкт-намір Intent.



Рис. 3.4. Передача намірів (Intent)

3.2 Загальна структура проекту

Кожен Android-додаток складається з програмного коду, написаного на Java та ресурсів, які відокремлені від вихідного коду, наприклад, зображеннь, аудіофайлів, і всього, що відноситься до візуального сприйняття програми.

Цифрові звукові формати - формати файлів для збереження звукових даних у комп'ютерних системах. Файли таких форматів називають також аудіофайлами, або звуковими файлами.
Анімація, меню, стилі, кольори, ідентифікатори, текст, розташування елементів інтерфейсу користувача тощо, визначаються у XML файлах. Використання таких ресурсів програми дозволяє легко оновлювати різні характеристики додатку без модифікації коду і дозволяє оптимізувати ваш додаток для різних конфігурацій пристроїв, таких, як різні мови і розміри екрану.

Одним з найбільш важливих аспектів забезпечення ресурсів окремо від вихідного коду є можливість забезпечити певний набір альтернативних ресурсів для використання їх для різних конфігурацій пристроїв.

Альтернати́ва (фр. alternative, рос. альтернатива, англ. alternative, нім. Alternative) -
Наприклад, можно перекладати текст елементів інтерфейсу користувача на інші мови і зберігати його в окремих файлах для кожної мови. Потім для відповідної мови користувача система Android застосовує відповідні рядки мови для інтерфейсу. Або є необхідність часто створювати різні макети для деякої активності, залежно від розміру екрану пристрою і його орієнтації. Наприклад, коли на екрані пристрою в портретній орієнтації повинні бути розміщені кнопки у вертикальній орієнтації, а в альбомній – кнопки повинні бути вирівняні по горизонталі.
Горизонталь, ізогіпса (англ. contour lines, horizontal, isohyps, нім. Höhenkurve f, Horizontale f; рос. горизонталь, изогипса; від дав.-гр. ισος - равний і дав.-гр. ὕψος - висота) - лінія на плані (карті), яка з'єднує точки земної поверхні з однаковою абсолютною висотою.
Портре́т або Портретний жанр (фр. portrait) - мальоване, скульптурне або фотографічне зображення людини або групи людей, а також відповідний жанр образотворчого мистецтва. Багато портретів створено і в гравюрі.
Щоб змінити макет залежно від орієнтації, можна визначити дві різні схеми і застосувати відповідний класифікатор для ім'я каталогу кожного макету. Потім система автоматично застосує відповідний макет залежно від поточної орієнтації пристрою. Android підтримує безліч різних наборів для альтернативних ресурсів.

Для кожного ресурсу SDK визначає унікальний цілочисельний ідентифікатор, який можна використовувати для посилання на ресурс в коді програми або з інших джерел, визначених у XML.

Ідентифіка́тор (identifier) - 1. Ознака, яка служить для ідентифікації особи чи предмета, що розпізнається. // Захисна ознака для встановлення справжності банкноти чи цінного папера.

Перед тим як Android-система зможе почати компонент програми, система повинна знати, що даний компонент існує, прочитавши файл AndroidManifest.xml (файл "маніфесту"). Ваш додаток повинен оголосити всі його компоненти в цьому файлі, що повинні бути в кореневому каталозі проекту. Маніфест робить кілька речей в додаток до декларування компонентів програми:


  • Виявлення будь-яких дозволів користувача, які вимагає додаток, наприклад, доступ в Інтернет або читання контактів користувача.

  • Оголошення мінімального рівня API, необхідного для програми.

  • Оголошення апаратних і програмних можливостей, що використовуються.

  • Використання API, з якими має бути пов'язаний додаток, наприклад Google Maps API.
    Гугл ка́рти (англ. Google Maps) - набір додатків, побудованих на основі безкоштовного картографічного сервісу і технологій, які надає компанія Google.


Структура даного проекту Android-додатку зображена на рис. 3.5.

Рис 3.5, Структура проекту у Android Studio

Даний проект містить наступні компоненти:


  • папка manifests містить файл маніфесту програми

  • папка java містить весь програмний код додатку написаний мовою Java.

  • res/drawable – містить зображення, що використовуються в програмі, такі як іконки кнопок. Всі зображення задано у векторній формі у файлах XML, завдяки чому вони будуть максимально чітко виглядати на екрані будь-якого розміру та роздільної здатності.

  • res/layout – містить макети графічного інтерфейсу всіх елементів програми.

  • res/mipmap – містить іконку програми у чотирьох варіантах для корректного відображення на різних конфігураціях екрану.

  • res/values – містить значення кольорів інтерфейсу, параметри відображення на різних екранах, ідентифікатори та текст елементів інтерфейсу користувача, параметри оформлення графічного інтерфейсу.

3.3 Опис основних модулів програми

Модуль користувацького інтерфейсу – модуль програми, що реалізує весь графічний інтерфейс додатку та його взаємодію з користувачем. Завданням даного модуля є зручне представлення даних програми для користувача, забезпечення зручної роботи з додатком та інтуїтивно зрозумілого дизайну. Даний модуль складається з наступних компонентів:



FragmentList – головний фрагмент користувацького інтерфейсу додатка. Завантажується при старті програми та відображає вертикальний список усіх записів, відсортований за часом створення. Новіші записи додаються у голову списку. Також даний фрагмент містить основні елементи управління списком, такі як додавання, видалення та пошук записів. Макет графічного представлення фрагменту задано у файлі fragment_list.xml, а вигляд елементів списку задається файлом list_item.xml. Фрагмент відображається на весь екран та містить наступні функціональні елементи:

  • Панель інструментів – об’єкт класу Toolbar з офіційної бібліотеки com.android.support:appcompat-v7:22.2.0. Знаходиться у верхній частині екрану та виконує класичні функції панелі дій Android-додатку. Містить заголовок списку та поле для пошуку елементів списку за назвою та текстом запису. Панель приховується коли користувач починає скролити список вниз для звільнення екранного простору і з’являється знову, якщо користувач потягне список вгору.

  • Список елементів – об’єкт класу RecyclerView з офіційної бібліотеки com.android.support:recyclerview-v7:22.2.0. Представляє собою вертикальний список записів користувача. При роботі даного списку в пам’яті пристрою створюються об’єкти лише тих елементів, що представлені на екрані, дозволяючи знизити об’єм необхідної оперативної пам’яті та підвищити швидкодію програми. Коли з’являється необхідність вивести в область видимості інші елементи, даний список використовує вже створені об’єкти елементів, що в даний час не відображаються, просто замінюючи дані в них. Таким алгоритмом роботи і пояснюється назва класу. Для роботи список використовує об’єкти класів RecyclerView.Adapter, що забезпечує взаємодію списку з даними, та RecyclerView.ViewHolder, який забезпечує відображення елементів списку згідно макету, який задано у файлі XML, і їх функціональність.
    Функціоналі́зм - архітектурний напрям, різновид раціоналізму, що виник у 1920-х роках у Німеччині. Основні вимоги функціоналізму: обумовленість зовнішнього виду будівлі її конструкцією і внутрішнім плануванням, які, у свою чергу, визначаються її практичним призначенням (функцією).
    Також список забезпечує анімації додавання та видалення елементів. Займає весь видимий простір на екрані.

  • Елемент списку – графічне представлення запису користувача, що відображається у списку записів. Являє собою елемент CardView з бібліотеки com.android.support:cardview-v7:22.2.0. Імітує паперову картку, що відображає один запис користувача. Містить заголовок запису та текст, зображення або посилання в залежності від типу запису. Натискання на елемент відкриває його для перегляду.

  • Кнопка додавання запису – кнопка у правому нижньому кутку екрану. Візуально представляє собою круглу кнопку, що відображається постійно над головним списком програми. Реалізує створення нового запису. Являє собою об’єкт класу FloatingActionButton з офіційної бібліотеки дизайну додатків com.android.support:design:22.2.0.

  • Інформаційна панель – елемент, який з’являється після видалення запису зі списку знизу екрану. Відображає повідомлення про здійснену дію і дає можливість відмінити її. Зникає сама через деякий час. Є об’єктом класу Snackbar з офіційної бібліотеки com.android.support:design:22.2.0.

Фрагмент реалізує інтерфейси OnActionButtonPressedListener, що відповідає за обробку натискання на кнопку додавання запису, OnListItemSelectedListener, який обробляє натискання на елемент списку та OnListItemDeleted з обов’язковим методом OnListItemDeleted. Останній інтерфейс відповідає обробку подій видалення елементів зі списку.

FragmentEdit – фрагмент інтерфейсу, що забезпечує створення і редагування записів. Завантажується при створенні нового запису та містить поля вводу заголовку і тексту запису. Також надає можливість прикріпити до запису фотографію з камери чи файлової системи пристрою. Макет графічного представлення фрагменту задано у файлі fragment_edit.xml. Фрагмент відображається на весь екран та містить наступні функціональні елементи:



  • Панель інструментів – об’єкт класу Toolbar з офіційної бібліотеки com.android.support:appcompat-v7:22.2.0. Знаходиться у верхній частині екрану містить кнопки для додавання до запису тексту, посилання на веб-сайт то зображення з файлової системи пристрою, інтернету, або камери, а також кнопку збереження створеного запису.

  • Поле вводу заголовку – віджет AppCompatEditText з бібліотеки com.android.support:appcompat-v7:22.2.0. Представляє собою поле для введення тексту з клавіатури. Призначене для заголовку запису і відображає відповідну підказку для користувача.

  • Поле вводу тексту запису – також віджет AppCompatEditText. Призначене для введення тексту запису, або адреси веб-сайту чи зображення в мережі інтернет і також відображає відповідну підказку для користувача.
    Клавіату́ра (англ. keyboard) - сукупність розміщених у певному порядку клавіш пристрою, що використовується для введення і редагування даних, а також керування виконанням окремих операцій.
    Інтерне́т (від англ. Internet), міжмере́жжя - всесвітня система взаємосполучених комп'ютерних мереж, що базуються на комплекті Інтернет-протоколів. Інтернет також називають мережею мереж. Інтернет складається з мільйонів локальних і глобальних приватних, публічних, академічних, ділових і урядових мереж, пов'язаних між собою з використанням різноманітних дротових, оптичних і бездротових технологій.


Фрагмент реалізує інтерфейси OnNoteCreatedListener для обробки подій створення запису та OnNoteChangedListener, що обробляє завершення редагування запису.

FragmentView – фрагмент інтерфейсу, що відображає обраний запис для перегляду. В залежності від типу обраного запису або завантажується сам фрагмент, або запускається відповідний Intent для відображення контенту. Так текстові записи відкриваються на екрані додатку, для відображення веб-сторінок використовується вікно браузера за замовчуванням, а зображення відкриваються у стандартному додатку для перегляду зображень. Як і решта фрагментів, FragmentView займає весь екран і складається з таких компонентів:



  • Панель інструментів – об’єкт Toolbar у верхній частині екрану. Містить кнопку завершення перегляду, а також кнопки редагування та видалення запису.

  • Поле запису – віджет CardView, що містить заголовок та повний текст запису.

Фрагмент реалізує інтерфейси OnEditButtonPressedListener, який обробляє натискання на кнопку редагування запису на панелі інструментів та OnDeleteButtonPressedListener який обробляє натискання на кнопку видалення.
Пане́ль інструме́нтів (англ. toolbar) - елемент графічного інтерфейсу користувача, призначений для розміщення на ньому кількох інших елементів.

Модуль даних – модуль програми, що реалізує базу даних записів користувача та взаємодію з нею. База даних містить таблицю, кожен запис в якій представлений полем назви, полем тексту запису, до якого заносяться як текстові записи, так і посилання на веб-сторінки і файли, та полем типу, що визначає тип запису, наприклад, текст чи фотографія.

Веб-сторінка (англ. Web-page) - інформаційний ресурс, доступний в мережі World Wide Web (Всесвітня павутина), який можна переглянути у веб-браузері. Зазвичай, інформація веб-сторінки записана в форматі HTML, XHTML, або рідше Wml (для wap-сторінок).
Дані з бази даних формують список записів на головному екрані додатку.



Модуль контролеру – головний модуль програми. Реалізує взаємодію усіх інших модулів. Складається з класу MainActivity і запускається при старті програми. Представляє собою контейнер для фрагментів графічного інтерфейсу та реалізує їх взаємодію між собою і з базою даних. Взаємодія з фрагментами здійснюється за допомогою інтерфейсів. При завантаженні даний модуль спочатку підключається до бази даних, а потім ініціалізує та завантажує в контейнер фрагмент списку записів за допомогою об’єкта FragmentManager.


1   2   3   4


Скачати 310.86 Kb.

  • Ієрархія
  • Нижче