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

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



1Аналіз існуючих реалізацій та вибір алгоритму роботи системи 8

1Аналіз існуючих реалізацій та вибір алгоритму роботи системи 8




Сторінка12/16
Дата конвертації10.03.2017
Розмір0.85 Mb.
1   ...   8   9   10   11   12   13   14   15   16

3.4 Розробка схеми роботи програми

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

При розробці алгоритму варто враховувати чинники, що мають забезпечити роботу мобільного додатку. До них можна віднести взаємодію між сервером і клієнтом, інтеграцію соціальних мереж, збереження даних користувача, обробку нотифікацій, наявність інтернет-з’єднання використовуючи 3G або WIFI модуль. Схема роботи системи наведена у додатку В.


3.5 Розробка схеми ресурсів системи


Схема ресурсів відображає основні фізичні ресурси, які використовує мобільний додаток під час своєї роботи. Сюди входять центральний процесор, оперативна пам’ять, відео та звуковий адаптер, носій інформації (флеш-карта, або SSD накопичувач) та дисплей.

Центральний процесор, ЦП (англ. Central processing unit, CPU) - функціональна частина комп'ютера, що призначена для інтерпретації команд.

Носі́й інформа́ції (data medium) - матеріальний об'єкт , створений природою або ж навмисно людиною, за допомогою якого можна зберігати і передавати інформацію

Також в роботі приймають участь динаміки та вібромотор, що сповіщають користувача про отримане повідомлення на головному екрані коли активний додаток та у строці нотифікацій, коли додаток знаходиться у згорнутому режимі. Схема ресурсів системи наведена у додатку Г.




3.6 Розробка програмного забезпечення

Для реєстрації в мережі користувачу необхідно ввести свої дані на сторінці логіну. У випадку, коли така інформація відсутня є можливість покрокової реєстрації, де необхідно ввести свою електронну адресу та пароль. Необхідною умовою є введення секретного паролю, який приходить листом на вказану електронну поштову скриньку. При цьому всі кроки по реєстрації відбуваються на серверній стороні, що не зобов’язує встановлювати зв'язок новоствореного аккаунту із вже створеним в соціальній мережі. Скріншоти логіну та реєстрації наведені на рисунку 3.3 та 3.4 відповідно.

Додаток дозволяє реєструватись у системі за допомогою профілів з інших соціальних мереж, таких, як Facebook та Google plus.

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

Google+, Google Plus (укр. Ґуґл Плюс) - багатомовна соціальна мережа та ідентифікаційна служба котра належить і управляється компанією Google Inc. Це друга за величиною соціальна мережа в світі, після випередження Twitter в січні 2013 року.

Задля цього необхідно отримати токен, який унікально ідентифікує користувача в тій чи іншій мережі [38].
c:\users\sashka\desktop\screenshots\screenshot_2014-06-12-16-44-09.png

Рисунок 3.3 – Головний екран входу


Токен являє собою послідовність цифр та символів певної довжини. Він створюється та знищується мережею за проханням користувача. Це відбувається при вході та виході із мережі відповідно. Час, що проходить між цим періодом називають часом життя токену (Time To Live).

Середній час життя або просто час життя - чисельна характеристика тривалості спонтанного розпаду нестабільних систем, час, протягом якого кількість таких систем зменшується в e разів (e - основа натуральних логарифмів).

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

Для цього необхідно користуватись спеціальними API, який використовує логін та пароль користувача для подальших дій. На це потрібен дозвіл користувача мобільного пристрою. Скріншот запиту на використання додаткової інформації в мережі Google plus наведено на рисунку 3.5.


c:\users\sashka\desktop\screenshot_2014-06-12-21-35-34.png

Рисунок 3.4 – Головна форма реєстрації


Користувацький інтерфейс програми створено за допомогою шаблонів, написаних на мові XML. XML (англ. Extensible Markup Language) - розширювана мова розмітки — мова розмітки ієрархічно структурованих даних для обміну між різними додатками, яка є спрощеною підмножиною мови розмітки SGML.

Мо́ва розмі́тки - штучна мова, що використовує набір анотацій до тексту, що надає інструкції стосовно структури тексту чи його відображення.

XML документ складається із текстових знаків, і придатний до читання людиною [41].

Хоча мова XML — це технологія, що може бути застосовна до багатьох різних предметних областей, її головне призначення — конструювання інтерфейсів користувачів [45].


c:\users\sashka\desktop\screenshots\screenshot_2014-06-12-18-19-22.png

Рисунок 3.5 – Форма запиту на інформації профілю Google plus


Отже, документи XML визначають розташування шаблонів, кнопок та інших елементів керування, що становлять форми в додатку. Головний екран програми зображений на рисунку 3.6.

Під час обміну інформацією між користувачами клієнтська програма аналізує як вхідні, так і вихідні дані. У випадку, якщо з’являються відео дані у вигляді посилання на відео, додаток має можливість загрузити його та відтворити одразу на цьому представленні. Це досягається шляхом використання в програмі Youtube API.

API YouTube використовує Android-плеєр, дозволяє включити функціональність відтворення відео в додатках Android.

Відтво́рення - слово, яке, в залежності від контексту застосування набуває різних значень.

API визначає методи для завантаження і відтворення відео YouTube (і плейлистів) і для настройки та управління відтворення відео. Існує можливість програмно управляти відтворенням файлів (програвання, призупинення, або перехід до певної точки в завантаженому відео).

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

Зберіга́ння - дія за значенням зберігати; технологічний процес.

Розмір кеша встановлюється в залежності від наявності вільного простору в пам’яті пристрою.

Смайли можна передавати лише тоді, коли в додатку відображається вікно з чатом, а саме з полем для введення повідомлення. Набір картинок, що визначають певні емоції можна змінювати. Файли такого типу знаходяться в папці assets, що існує в кожному мобільному додатку. Вибір певного файлу з папки реалізується за допомогою селектора, що описується за допомогою мови розмітки XML [48].

c:\users\sashka\desktop\screenshots\screenshot_2014-06-12-17-58-10.png

Рисунок 3.6 – Головний екран додатку


Також додатково такі функції, як відображення смайлів та програвання відео файлів наведено у додатку Д.


3.6.1 Збереження даних на мобільному пристрої

Для того, щоб зберігати важливі дані на телефоні (локально) було вирішено використовувати такі 2 механізми платформи Android, що забезпечують швидкий та надійний доступ до інформації:



  • SharedPreferences;

  • SQLite database.

Додаток автоматично створює файл у своїй папці і зберігає прості дані у вигляді «ключ - значення». Загальні налаштування підтримують базові типи boolean, string, float, long і integer, що робить їх ідеальним засобом для швидкого збереження значень за замовчуванням, змінних екземпляра класу, поточного стану UI і налаштувань. Вони найчастіше використовуються для забезпечення сталості даних між користувацькими сесіями і доступу до них компонентів програми.

Платформа Android має вбудований інструментарій для управління базою даних sqlite3. SQLite - це проект з відкритими початковими кодами, що підтримує стандартні можливості звичайної SQL: синтаксис, транзакції і ін.

Си́нтаксис (дав.-гр. σύνταξις - "побудова, порядок, складання", від σύν - "з, разом" і ταξις - "впорядкування") - розділ граматики, що вивчає граматичну будову словосполучень та речень у мові.

Займає відносно малу кількість пам’яті - близько 250 кб.

В Android існує клас SharedPreferences (загальні настройки), розроблений спеціально для зберігання інформації. Додаток автоматично створює файл у своїй папці і зберігає прості дані у вигляді «ключ - значення». Весь процес створення, відкриття, читання файлу оптимізований.

Загальні налаштування підтримують базові типи boolean, string, float, long і integer, що робить їх ідеальним засобом для швидкого збереження значень за замовчуванням, змінних екземпляра класу, поточного стану UI і налаштувань. Вони найчастіше використовуються для забезпечення сталості даних між користувацькими сесіями і доступу до них компонентів програми.

Для роботи з даними постійного сховища нам знадобиться екземпляр класу SharedPreferences, який можна отримати у будь-якого об'єкта, успадкованого від класу android.content.Context (наприклад, Activity або Service). У об'єктів цих класів (успадкованих від Context) є метод getSharedPreferences, який приймає 2 параметри:


  • name — обраний файл налаштувань. Якщо файл налаштувань з таким ім'ям не існує, він буде створений при виклику методу edit() і фіксуванні змін за допомогою методу commit();

  • mode — встановлює правила доступу до файлу із даними (read, write, reade_and_write), режим роботи для декількох процесів/

Для отримати значення необхідної змінної, використовуються наступні методи об'єкта SharedPreferences: getBoolean (String key, boolean defValue), getFloat (String key, float defValue), getInt (String key, int defValue), getLong (String key, long defValue), getString ( String key, String defValue), getStringSet (String key, Set defValues). Другий параметр — значення, яке повернеться в разі якщо значення по ключу key відсутня в SharedPreferences. Також, методом getAl() можна отримати всі доступні значення [Android].

Для запису значення змінної необхідно отримати об'єкт SharedPreferences.Editor виконавши метод edit() об'єкта класу SharedPreferences, записати значення за допомогою методів доступу та виконати метод commit().

Отже, використовуючи SharedPreferences доцільно зберігати унікальний ідентифікатор користувача, який зареєстрований в додатку, а SQLite database буде використовуватись для зберігання інформації про кімнати (чати) та повідомлення, що їм належать.

Таблиця для збереження такої інформації має наступні поля: room_id (ідентифікатор кімнати), message_owner (ідентифікатор адресанта), message_time (час надсилання повідомлення), message_text (текст повідомлення). Таким чином в базі існує вся інформація, що необхідна для відображення. Схема даних системи відображена у додатку Е.




3.6.2 Інтеграція соціальних мереж

Наразі в додатку можлива взаємодія із такими соціальними мережами як Facebook та Google . Для того, щоб додаток міг користуватись закритою інформацією із профілів необхідно певним чином налаштувати їх спільну роботу.

Інтеграція соціальних мереж досить легко імплементується. Для кожної із них існує консоль розробника, що дає можливість налаштувати свій додаток таким чином, щоб він мав доступ до потрібної інформації в межах даної мережі. Для цього необхідно встановити права доступу (permissions), що буде мати додаток. Права встановлюють межі використання профілю та дії, які будуть виконуватись (користування інформацією, надсилання повідомлення тощо). Існує список прав, що підключені за замовчуванням: інформація про електронну адресу користувача (email), публічна інформація профілю (public_profile), дані про друзів користувача (friends). Для додатку, що розробляється додатково потрібно встановити права на можливість надсилання повідомлення іншим користувачам.

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

Для того, щоб встановити і запустити додаток, він має бути підписаний. Підписувати додаток в більшості випадках потрібно для того, щоб викласти свій продукт на андроїд маркет. По замовчуванню андроїд використовує у якості підпису тимчасовий debug ключ. Зараз термін debug-ключа дорівнює 30 років. Якщо спробувати встановити непідписаний додаток, то андроїд система видасть помилку встановлення. Отже, додаток обов'язково має бути підписаним. Android перевіряє термін дії ключа тільки при встановленні додатку. Тобто якщо у встановленого додатку термін дії ключа закінчився, ним ще можна користуватись. Встановити чи оновити додаток, підписаний ключем, що не вийде.

Також цей ключ використовується для встановлення зв’язку між додатком та різними SDK.

Для створення ключа використовується утиліта keytool. Її можна знайти за адресою <папка з Java> \ bin. Вона створює нові ключі і показує інформацію про вже існуючі. Ключ генерується із файлу debug.keystore [49].

Файл debug.keystore має розширення keystore. Це можна перекласти як сховище ключів. Це дійсно так, один такий файл може містити в собі кілька ключів. Для того щоб звернеться до конкретного ключа всередині сховища використовується alias (можна розглядати його як ім'я ключа). Інформація яку можна змінювати в кожному ключі має наступний зміст:



  • keystore (ім'я файлу сховища);

  • storepass (пароль до сховища);

  • alias (ім'я створюваного ключа);

  • keypass (пароль до ключа);

  • dname (інформація про власника ключа);

  • validity (термін дії ключа в днях).

Отже, при створенні додатку в консолі потрібно хешувати інформацію про ключ за допомогою SHA-1. Саме це і буде слугувати зв’язком додатоку із сервісом. Також цю інформацію можна отримати із середовища розробки програмного забезпечення.

3.6.3 Розробка модуля для обміну повідомленнями

Служби (сервіси) в Android працюють як фонові процеси і представлені класом android.app.Service. Вони не мають інтерфейсу користувача і потрібні в тих випадках, коли не потрібно втручання користувача.

Інтерфе́йс користувача́ (англ. user interface, UI, дружній інтерфейс) - засіб зручної взаємодії користувача з інформаційною системою. Сукупність засобів для обробки та відображення інформації, максимально пристосованих для зручності користувача; у графічних системах інтерфейс користувача реалізовується багатовіконним режимом, змінами кольору, розміру, видимості (прозорість, напівпрозорість, невидимість) вікон, їхнім розташуванням, сортуванням елементів вікон, гнучкими налаштовуваннями як самих вікон, так і окремих їхніх елементів (файли, папки, ярлики, шрифти тощо), доступністю багатокористувацьких налаштувань.

Сервіси працюють у фоновому режимі, виконуючи мережеві запити до WEB - сервера, обробляють інформацію тощо. Служба може бути запущена і буде продовжувати працювати до тих пір, поки хто-небудь не зупинить її або поки вона не зупинить себе сама. Сервіси призначені для тривалого існування, на відміну від активностей, що дає можливість виконувати завдання, що вимагають багато часу [52].

Існува́ння (від екзистенція) - центральне поняття екзистенціалізму, унікальна особистісна сутність людини, що втілює в собі духовну, психоемоційну неповторність особи.

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

Пріоритет (рос. приоритет, англ. priority, нім. Priorität f) -

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

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

Служби ідеально підходять для проведення постійних або регулярних операцій, а також для обробки подій навіть тоді, коли активності додатку невидимі, працюють в пасивному режимі або закриті.

Сервіси запускаються, зупиняються і контролюються з різних компонентів, включаючи інші сервіси, активності і приймачі широкомовних намірів.

Запущені сервіси завжди мають більший пріоритет, ніж непрацюючі або невидимі активності, тому менш імовірно, що їх робота завершиться передчасно при розподілі ресурсів. Єдина причина, чому Android може достроково зупинити сервіс - виділення додаткових ресурсів для компонентів, що працюють на передньому плані (як правило, для активностей).

Ви́ділення (екскреція) - процес виведення кінцевих продуктів, які утворилися в ході обміну речовин в клітинах тіла при розщепленні органічних енерговмісних речовин. Цю функцію виконують як спеціалізовані видільні органи, так і інші органи чи системи, для яких видільна функція може бути побічною, другорядною.

Коли сервіс безпосередньо взаємодіє з користувачем (наприклад, програючи музику), може знадобитися підвищити його пріоритет до рівня активностей, що працюють на передньому плані. Це гарантія того, що сервіс завершиться тільки в крайньому випадку, але при цьому знижується його доступність під час виконання, заважаючи управляти ресурсами, що може зіпсувати загальне враження від програми [54].

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

Доступність (англ. Availability) - властивість інформаційного ресурсу, яка полягає в тому, що користувач та/або процес, який володіє відповідними повноваженнями, може використовувати цей ресурс відповідно до правил, встановлених політикою безпеки не очікуючи довше заданого (прийнятного) інтервалу часу.

Модуль - функціонально завершений фрагмент програми, оформлений у вигляді окремого файлу з сирцевим кодом або його іменованої частини (наприклад, Active Oberon), призначений для використання в інших програмах.

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

Лістинг класу який проводить синхронізацію клієнта із сервером подано у додатку Є.


3.6.4 Використання базових механізмів системи Android

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

Є два основні класи повідомлень, які можуть бути отримані приймачем широкомовних повідомлень:


  • нормальні повідомлення про наміри (Normal broadcasts) - посилаються викликом методу context.sendBroadcast() і які є повністю асинхронними. Всі одержувачі повідомлення виконуються в невизначеному порядку, часто в один і той же час. Це більш ефективно, але означає, що одержувачі не можуть використовувати результат або перервати повідомлення;

  • порядкові повідомлення про наміри (Ordered broadcasts), які надсилаються методом Context.sendOrderedBroadcast(). Ці повідомлення надсилаються одному одержувачу за один раз. Оскільки кожне отримане повідомлення виконується по черзі, він може в разі необхідності повністю перервати повідомлення, щоб його не встигли передати іншим приймачів. Приймачами повідомлень можна керувати за допомогою атрибуту android: priority фільтра повідомлень; приймачі повідомлень, що мають однаковий пріоритет, будуть виконані в довільному порядку [60].

Приймач широкомовних повідомлень - це компонент для отримання зовнішніх подій і реакції на них. Ініціалізувати передавання можуть інші програми або служби. Клас BroadcastReceiver є базовим для класу, в якому повинні відбуватися отримання та обробка повідомлень, що посилаються клієнтським додатком за допомогою виклику методу sendBroadcast(). Ви Потрібно зареєструвати екземпляр класу BroadcastReceiver за допомогою методу Context.registerReceiver() або статично створити його в елементі у файлі маніфесту програми.

Для об'єкта BroadcastReceiver немає жодних можливостей бачити або фіксувати наміри, використовувані в методі startActivity(). Передача широкомовних повідомлень для системи є фоновою роботою, про яку зазвичай не знає користувач і яка, відповідно, має більш низький пріоритет.



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

Часови́й по́яс - частина поверхні земної кулі, на якій прийнятий один стандартний час, який ще часто називають місцевим часом. Для зручності відліку поточного часу вся територія земної кулі поділена на 24 часові пояси шириною в середньому 15°.

Наступний список показує деякі з вбудованих дій, представлених як константи в класі Intent, які використовуються для того, щоб простежити зміни стану пристрою:

  • ACTION_BOOT_COMPLETED (передається один раз, коли пристрій завершило свою завантаження.

    Константа (лат. constans - стала величина, інша назва - стала) - величина, що не змінює свого значення протягом певного процесу (на відміну від змінної, значення якої може змінюватись). Прикладами констант є число пі, коефіцієнти многочленів, температура під час ізотермічного процесу.

    );

  • ACTION_CAMERA_BUTTON (передається при натисканні користувачем клавіші Camera.);

  • ACTION_DATE_CHANGED і ACTION_TIME_CHANGED (запускаються при зміні дати або часу на пристрої вручну користувачем);

  • ACTION_SCREEN_OFF і ACTION_SCREEN_ON (передаються, коли екран вимикається або включається);

  • ACTION_TIMEZONE_CHANGED (передається при зміні поточного часового поясу);

  • ACTION_CONNECTIVITY_CHANGE (зміна стану інтернет з’єднання), який і використовується для моніторингу з’єднання.

При відсутності мережі користувачу за допомогою механізму діалогу пропонується перевірити її стан, а також до моменту наявності мережі блокуються такі функції як:

  • відправка повідомлення;

  • отримання історії з чату;

  • реєстрація та логін.


3.6.5 Інтеграція рекламного сервісу


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

  • Chartboost — дозволяє вставляти рекламу ігор. Дану рекламну мережу рекомендувало використовувати велику кількість розробників мобільних ігор, оскільки забезпечується непогана оплата за установки. SDK виконаний досить якісно, ​​інтеграція швидка, повноекранна реклама виглядає красиво, з'являється з анімацією. Також є можливість інтегрувати кнопку «More games», яка відображає список рекламованих ігор.

    Інформаці́йне напо́внення са́йту (англ. content, вміст) - це та інформація, яку розробник складає самостійно або копіює з дотриманням чинного законодавства.

    Аніма́ція (з лат. anima - душа і похідного фр. animation - оживлення), мультипліка́ція (з лат. multiplicatio - розмноження, збільшення, зростання) - вид кіномистецтва, твори якого створюються шляхом зйомки послідовних фаз руху намальованих (графічна анімація) або об'ємних (об'ємна анімація) об'єктів.

    Інтеграл - центральне поняття інтегрального числення, узагальнення поняття суми для функції, визначеній на континуумі.

    Мінусом є те, що доступність реклами для показу в таких країнах як Росія, Україна та Білорусь не така висока як в США і Європі;

  • Startapp — рекламуються як ігри, так і програми. Привабливим є цікаве оформлення рекламних банерів (деякі відтворюють анімацію) і рекламовані додатки є достатньо популярними. Присутня достатня кількість рекламних форматів - банер, повноекранний банер, слайдер, реклама при завантаженні програми та ін. При інтеграції проблем не виникло, єдиний мінус, що SDK не дозволяє обробити події натиснення на повноекранний банер, що необхідно, якщо самостійно реалізовувати показ вмотивованою реклами. Плата за встановлення;

  • Revmob — реклама ігор. Основні рекламні формати - банер, повноекранний банер, Pop-up та посилання на додаток, яку можна прив'язати до кнопки і назвати, наприклад «More applications». Плата проводиться за кліки або переходи по посиланнях рекламодавця;

  • Tapjoy — реклама додатків та ігор. Головною Особливістю є те, що існує вбудована підтримка вмотивованою реклами за допомогою Offerwall - стіна з пропозиціями, виконуючи які гравець отримує внутрішньоігрову валюту. У SDK зараз відбуваються зміни, вони вводять нову технологію "nGen", так що деякі старі методи показу реклами, наприклад повноекранної, застаріли (deprecated) і рекомендується переходити на nGen. Крім Offerwall можна також інтегрувати банери і повноекранні банери. Пропонується плата за установку, за виконання завдань;

  • Offerwall.Inmobi — реклама додатків та ігор. Основні формати реклами - банер і повноекранний банер. Щоб отримати ID пристрою (в тому числі і емулятора) потрібно в коді вашого додатку включити режим Debug, після цього запустити додаток і в LogCat консолі знайти рядок типу «Publisher device Id» де і буде зазначений ID пристрою. Після додавання ID пристрою і включення тестового режиму довелося чекати кілька днів поки тестовий банер не став відображатися. Платять за кліки по рекламі;

  • AdColony — реклама ігр допомогою показу відеороликів. Забезпечується оплата за перегляд відео до кінця, тривалість якого в середньому 15 с. Інтеграція досить швидка, причому є можливість заборонити або дозволити користувачам закривати, відео додивившись його до кінця. На мою думку, AdColony ефективно використовувати як мотивовану рекламу, щоб не дратувати користувачів показом відео;

  • Vunge — ще одна рекламна мережа з показом відео рекламованих ігор. Головна відмінність від AdColony в тому, що оплата здійснюється за установку ігри, відео якої подивився користувач [61].

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

  • підтримка банерів, міжсторінкових оголошень і спеціальних форматів реклами для планшетних ПК на базі Android;

  • підтримка середовищ на базі HTML5;

  • для оголошень, що показуються в додатку, може бути заданий географічний і демографічний таргетинг;

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

    Демографія (дав.-гр. δήμος - народ та лат. graphe - письмо, описання) - наука, що вивчає склад і рух людності (населення) та закономірності його розвитку.

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

    Геогра́фія або земле́пис (грец. γεωγραφία, опис Землі, походить від двох еллінських слів: γεια - Земля і γραφειν - писати, описувати) - наука, що вивчає географічну оболонку Землі (епігеосферу), її просторову природну і соціально-економічну різноманітність, а також зв'язки між природним середовищем і діяльністю людини.



  • легка імплементація за допомогою AdMob SDK.

    Імплемента́ція (лат. impleo - «наповнюю», «виконую») - здійснення, виконання державою міжнародних правових норм. Кожна держава сама визначає методи і засоби імплементації. У міжнародному договорі також може бути передбачена необхідність видання закону чи іншого акта для його здійснення.



Для додавання реклами здійснені наступні кроки:

  • впровадження бібліотеки сервісів Google Play до свого проекту;

  • додавання тегу meta-data в файл AndroidManifest.xml;

  • додавання оголошення com.google.android.gms.ads.AdActivity до маніфесту.



3.6.7 Використання XEP-протоколу для компресії даних

XEP-протокол (XMPP extension protocol) — розширення протоколу XMPP. Раніше XEP-протоколи називались JEP-протоколами (Jabber Extension Protocol). Вони використовуються для надання серверній частині системи більших можливостей та покривають деякі помилки протоколу XMPP. В даній роботі пропонується використання протоколу XEP-0138 для компресії даних, що передаються алгоритмами lzw і zlib, а також використання компресії в рамках шифрування з'єднання. Це дозволить позбутись надмірності переданої інформації.

Зазвичай, більше 70% міжсерверного трафіку складають повідомлення про присутність, близько 60 відсотків яких є зайвими. XMPP на даний момент створює надлишковий трафік при доставці повідомлень про присутність декільком користувачам.

Цей протокол розроблений за стандартами XMPP і не є окремимою гілкою розвитку протоколу або модифікації самого XMPP, а лише його розширенням [63].

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

Сти́снення да́них (англ. data compression) - це процедура перекодування даних, яка проводиться з метою зменшення їхнього обсягу, розміру, об'єму.

Ініціація стиснення даних відбувається на стороні клієнтського додатку використанням тегів compression та method у параметрах яких передається метод для стиснення інформації. Доступні методи стиснення обовязково мають бути описані в контракті обміну даними між клієнтом та сервером.

Контра́кт - багатозначний термін. Контра́кт в значенні договору: письмова угода, за якою сторони, що його уклали, мають взаємні зобов'язання.




3.6.8 Використання peer-to-peer мережі для передавання файлів

Однією із слабких сторін протоколу XMPP є неефективність передавання бінарних даних: так як запити та відповіді сервера є одним довгим XML – документом. Отже, в такому вигляді неможливо передати немодифіковану двійкову інформацію. Тому, для передавання файлів використовують додаткові протоколи такі як наприклад HTTP. Для передавання ж файлів і іншої бінарної інформації безпосередньо в XMPP потоці використовується кодування base64. В даній роботі пропонується використання peer-to-peer мережі для передавання даних. В такому випадку не потрібно буде використовувати сервер для ретрансляції файлу.

Peer-to-peer (з англійської — рівний до рівного) — варіант архітектури системи, в основі якої стоїть мережа рівноправних вузлів [63].

Комп'ютерні мережі типу peer-to-peer засновані на принципі рівноправності учасників і характеризуються тим, що їх елементи можуть зв'язуватися між собою, на відміну від традиційної архітектури, коли лише окрема категорія учасників, яка називається серверами може надавати певні сервіси іншим.

Тради́ція - досвід, звичаї, погляди, смаки, норми поведінки і т. ін., що склалися історично і передаються з покоління в покоління; звичайна, прийнята норма, манера поведінки, усталені погляди, переконання когось; узвичаєння, узвичаєність, неписаний закон.

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

В peer-to-peer системі автономні вузли взаємодіють з іншими автономними вузлами. Вузли є автономними в тому сенсі, що не існує загальної влади, яка може контролювати їх. В результаті автономії вузлів, вони не можуть довіряти один одному та покладатися на поведінку інших вузлів, тому проблеми масштабування та надмірності стають важливішими ніж у випадку традиційної архітектури [66].

Саме тому пропонується використовувати вже існуючий сервер для сигналізації (налаштування звязку) між користувачами в мережі.

1   ...   8   9   10   11   12   13   14   15   16



  • 3.5 Розробка схеми ресурсів системи
  • 3.6 Розробка програмного забезпечення
  • 3.6.1 Збереження даних на мобільному пристрої
  • 3.6.2 Інтеграція соціальних мереж
  • 3.6.3 Розробка модуля для обміну повідомленнями
  • 3.6.4 Використання базових механізмів системи Android
  • 3.6.5 Інтеграція рекламного сервісу
  • 3.6.7 Використання XEP-протоколу для компресії даних
  • 3.6.8 Використання peer-to-peer мережі для передавання файлів