Разработка мобильного приложения на платформе Android для работы с сервисами облачных хранилищ

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,17 Мб
  • Опубликовано:
    2016-07-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка мобильного приложения на платформе Android для работы с сервисами облачных хранилищ

Введение

На сегодняшний день технологии облачных сервисов достигли огромной популярности. Они позволяют получить удаленный доступ к своим файлам имея соответствующее ПО и выход в интернет. Но и здесь есть свои подводные камни, например большое количество сервисов, которое может использоваться одним пользователем. Это осложняет работу пользователя по поиску и использованию своей информации. Именно такую проблему призвано решить разрабатываемое приложение - создать удобное приложение для комфортной навигации по файлам облачного хранилища в одном файловом менеджере.В тоже время, сейчас активно используются мобильные устройства такие как планшеты и смартфоны на платформе Android. В результате чего было принято решение написать приложение на платформе Android.

. Постановка задачи

Главная цель данного приложения обеспечить доступ к популярным на российском рынке облачным услугам в одном приложении.

Чтобы достичь данной цели необходимо решить следующие поставленные задачи:

проанализировать аналоги;

выбрать подходящую версию ОС;

выбрать среду разработки;

выбрать вспомогательный инструмент для работы с HTTPзапросами;

разработать приложение с использованием выбранных средств разработки;

протестировать приложение;

разработать документацию приложения.

2. Анализ аналогов

.1 Primadesk (Web, iOS, Android)

 (рисунок 1)представляет собой огромный список сервисов, с которыми приложение способно взаимодействовать. Оно кроссплатформенное, и имеет в своем арсенале возможность подключать почтовые сервисы,фотохостинги что делает его удобным сервисом для управления всеми данными пользователя в облаках. Однако в бесплатном версии для конечного пользователя доступны для подключения лишь 5 сервисов[1].

Рис.1.Интерфейс Primadesk

Плюсы данного приложения:

сервисов, доступных для управления;

поддержка нескольких учетных записей от одного сервиса;

перемещение файлов между сервисами простым перетаскиванием;

единый почтовый ящик для всех аккаунтов;

расширенные возможности поиска позволяют вам искать по ключевым словам, диапазону дат и типу содержимого.

2.2 ZeroPC (Web,iOS,Android)

Данное приложение (рисунок 2) интересно тем, что является примером Web-приложений.

Данный сервис представляет собой аналог ОСWindowsXPв самом облаке , что является довольно удобным на компьютере , но не в смартфоне. В качестве приложения для телефона представляет собой “Навигатор” по файлам в облачных хранилищах, которое так же ограниченно в функциях в силу коммерческой составляющей и поддержкой не всех необходимых облаков [2].

Рис.2. Интерфейс ZeroPC

Плюсы:

единый интерфейс для контроля всех записей электронной почты;

перемещение файлов и папок между сервисами методом drag-and-drop;

быстрый поиск по ключевым словам, типу файла, диапазону дат;

Гб бесплатного места для хранения файлов.

2.3 Astro File Manager

ASTROFileManager (рисунок 3)имеет множество полезных функций в своем арсенале: умеет работать в качестве файлового менеджера и может подключиться почти ко всем популярным облачным дискам. Что позволяет без проблем перебрасывать файлы с локальных дисков на облачные ресурсы или перемещать их между хранилищами [3].И обладает отличительной особенностью - поддержка резервного копирования.

Рис. 3. Интерфейс ASTROFileManager

Но в тоже время имеются и негативные аспекты данного приложения:

ошибки в переводе на русский язык;

медленная работа;

отсутствует поддержка российских облаков.

.4 ES Проводник

ES Проводник (File Manager) (рисунок 4) - это бесплатный и поддерживающий все виды файлов (приложения, музыка, фото и т.д.) менеджер файлов для локального и сетевого использования[4].

Рис. 4. Интерфейс ES Проводника

Особенности ES Проводника:

многофункциональный файловый менеджер;

доступно 32 языка, включая русский;

управление установленными приложениями;

встроен анализатор SD-карты. Показывает общий объем, используемой и свободной памяти.

.5 Вывод

В результате анализа было выявлено два существенных недостатка,а именно:

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

Отсутствие поддержки российских облаков, либо поддержка одного - Яндекс.Диск.

Отсюда можно выделить основные критерии для разрабатываемого приложения:

Наличие популярных для российского потребителя облаков таких как :

DropBox.

GoogleDrive.

Яндекс.Диск.

Облако.Mail

Наличие основных функций таких как :

Удаление.

Создание.

Изменение названия.

Удобство использования

. Актуальность

Актуальность работы обусловлена статистическими данными, которые отражают следующие графики (рисунки 5,6), отображающие на сколько необходимы такие приложения. Как видно из рисунка 5 , наблюдается бешеный темп роста использования облачных услуг, от сюда вывод - людям необходимы все больше места , либо самих облачных хранилищ [5].

Рис.5. Рынок облачных услуг


Так же необходимо обратить внимание на использование облаков в России, здесь наиболее популярны 4 сервиса: GoogleDrive, DropBox, Яндекс.диск,Облако Mail (рисунки 7,8,9,10) [6].

Рис.7. GoogleDrive тарифы

Рис.8. DropBox тарифы

Рис.9. Яндекс.диск тарифы

Рис.10. Облако@Mail.ru тарифы

Простому пользователю не нужно много места в одном облаке, поэтому чаще всего пользуется самыми популярными и теми, которые предоставляет большего всего бесплатного свободного места, от сюда и такой набор облаков. Именно поэтому стояла задача обеспечить пользователей поддержкой популярных для российского рынка облачных услуг.

4. Выбор средств разработки

.1 Выбор операционной системы

Android («Андроид») - операционная система для мобильных устройств основанная на ядре Linuxи собственной реализации виртуальной машины Javaот Google. Эта операционная система дает возможность создавать Java-приложения , взаимодействуя и управляя устройством посредством разработанных библиотек от Google [7].

Данная операционная система имеет множество версий (рисунки 11.1 и 11.2) , часть из которых являются уже устаревшими , а другая часть - актуальными .С момента выхода первой версии в сентябре 2008 года произошло 40 обновлений системы. Каждое обновление , обычно , затрагивают исправления обнаруженных ошибок и добавление новой функциональности в систему [8].

Рис.11.1 Обновление версий Android

Рис.11.2Обновление версий Android

На данный момент актуальными версиями являются 4.4 и выше , соответственно , поэтому само приложение нацелено на версию 5.0.0 (LollyPop) что позволит использовать современные стандарты в дизайнеот Google, но при этом, минимальным доступной версией будет 4.4, в которой используется более упрощенный дизайн с отсутствием анимации из MaterialDesign, что никак не повлияет на основной функционал программы.

.2 Выбор интегрированной среды разработки

.2.1 Eclipse

Eclipse - интегрированная среда разработки модульных кроссплатформенных приложений(рисунок 12) [9].

В первую очередь Eclipseслужит хорошей платформой для разработки расширений, и этим он завоевал свою популярность. Для любого разработчика найдется необходимое для его целей и задач расширение.Например,JDT (JavaDevelopmentTools) илиCDT (С/C++ Development Tools) идр.

JDT - наиболее распространенный модуль , среда интегрирована с системами управления версиями - CVS (ConcurrentVersionsSystem),GIT. А в случае использования других систем имеются соответствующие плагины. Также в базовой версии среды имеется поддержка связи между самой средой и системой управления ошибками. Представителем которого является Bugzilla, но и для других терекеров имеются свои расширения и плагины.

Рис. 12. Интерфейс Eclipse

Но такая модульная структура делает процесс разработки более затруднительным, так как приходиться вникать в эту среду, чтобы произвести необходимые настройки.

.2.2Android Studio

AndroidStudio- интегрированная среда разработки софта для устройств на платформе Android (рисунок 13), таких как смартфоны, планшеты, телевизоры, часы и многое другое, предоставляющая не только максимально удобное пространство для программиста,но и обеспечивающая быстрый запуск рабочего процесса [10].

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

Рис. 23. Интерфейс AndroidStudio

Так как среда создана для разработки приложений для устройств на платформе Android, в ней имеются эмуляторы для разных типов устройств (рисунок 14), и несколько режимов работы такие как debug,run,test.

Рис. 34. Выбор типа устройства для эмулятора

.2.3IntellijIDE

IntellijIDE - является еще одной интеллектуальной интегрированной средой разработки, для программирования на нескольких языках (рисунок 15), в частности: Java, JavaScript, Python и др. [11].

Рис. 45. Интерфейс InteligIDE

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

4.2.4 Вывод

В итоге была выбрана среда разработки приложения на платформе Andoid - AndroidStudio.Так как она является наиболее приспособленной, удобной и быстрой ,в плане работы и отладки.

.3 Выбор инструментов для визуализации приложения

В качестве визуализаторов приложения используются разные программы не считая уже встроенного в среду. Наиболее популярными среди них являются Genymotion [12], Androidx86 [13], AndroidSDKЭмулятор [14].

.3.1 Genymotion

Плюсы:

кроссплатформенное решение;

быстрый;

многодополнительных опций (контрользаряда, акселерометра, APIдлятестовит.д.);

плагин для Eclipse, легкий доступ через adb.

Минусы:

платный для компаний;

не ARM;

достаточно долгий выход актуальных версий Android.

.3.2 Android x86

Плюсы:

кроссплатформенное решение (везде, где есть VirtualBox);

быстрый.

Минусы:

неудобный доступ к adb;

минусы, связанные с использованием VM - привязка мыши, например;

не ARM;

очень долгий выход актуальных версий.

.3.3 SDK Эмулятор

Плюсы:

Кроссплатформенное решение;

Входит в состав SDK, не нужны сторонние тулы;

Конфигурируемый (размер памяти, подключение камеры и т.д);

Доступ по telnet для настройки параметров сети, батареи и т.д.;

Плагин для Eclipse, легкий доступ через adb;

Минусы:

Медленный, если не использовать HAXM;

Не ARM, если использовать HAXM;

Нет эмуляции Bluetooth, OTG.

.3.4 Вывод

В результате анализа и тестирования наиболее подходящим оказался эмулятор предоставляемый Genymotion, как самый быстрый (скорость запуска меньше 1 минуты) и отзывчивый среди аналогов.

приложение навигация облачный хранилище

4.4 Выбор средств отслеживания HTTPзапросов

Приложение взаимодействует с серверами облачных хранилищами с помощьюGETи POSTзапросов. Эти запросы необходимо «отлавливать» , чтобы потом использовать их составляющие. Для данной задачи есть несколько средств такие как Fiddler,WireShark или окно разработчика браузера (например GoogleChrome).

.4.1 Fiddler

Fiddler - отладочный прокси между клиентом и сервером, который имеет возможность обрабатывать пересылаемый трафик в обе стороны (рисунок 16). Расширяемый с помощью скриптов на языке JavaScript [15].

.4.1.1 Правила (Rules)

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

.4.1.2Брейкпойнт на запросе

Если выставить соответствующую метку , то выполнение такого запроса зависнет и при выборе появится возможность управления. Например .Изменить сам запрос и ответ.

Рис. 56. ИнтерфейсFiddler

.4.2 Консольразработчика Google Chrome

Расширение браузера GoogleChromeкоторое разработчик может открыть без каких либо лишних утилит на своем компьютере, просто открыв браузер и нажав клавишу F12 (рисунок 17). После чего во вкладке браузера откроется небольшое окно позволяющие увидеть необходимые настройки данных текущей страницы. Для отслеживания посылаемых запросов необходимо перейти во вкладку Network, и здесь уже смотреть список обрабатываемых запросов [16].

Рис. 67. Интерфейс окна разработчика GoogleChrome

Данное расширение имеет ряд достоинств и недостатков.

Плюсы:

для использования нет необходимости скачивать лишние инструменты;

информативный для простых задач.

Минусы:

тяжело фильтровать поток запросов для нахождения необходимого;

не подходит для корректировки;

не позволяет отправлять свои запросы.

.4.3 WireShark

WireShark - программа-анализатор трафика для сетей (рисунок 18). Имеет удобный пользовательский интерфейс. Приложение способно разобрать сетевой пакет, так как знает структуру различных сетевых протоколов.Обрабатывать запросы посылаемые клиентом и сервером в ней тоже можно , но острой необходимости и удобства в этом нет [17].

Рис. 78. Интерфейс WireShark

.4.4 Вывод

В итоге была выбрана программа Fiddlerкак наиболее оптимизированный и удобный способ работы с HTTPзапросами.

. Разработка приложения

.1 Требования к разрабатываемому приложению

В процессе исследования аналогов , выбора ОС и средств для достижения желаемого результата к функциональному набору приложения:

авторизация пользователя на сервисе;

сохранение данных об аккаунте;

добавление необходимого облака из списка имеющихся;

вывод списка имеющихся на облаке данных;

обработка файлов.

Так как объем данных может очень большим должна сохраняться простота пользования приложением.

.2 Входные и выходные данные

Входные данные: Логин и пароль пользователя, а также домен (опционально).

Выходные данные: Список файлов, находящихся в облаке в случае успешной авторизации. Либо сообщение о неверно введенных данных (проверяется на сервере облачного хранилища).

.3 Общая схема системы

Общая схема системы приложения представлена на рисунке 89.

Класс MainActivityсодержит в себе основные функции взаимодействие с интерфейсом . Класс ListItemParcelотвечает за обработку ответов от сервера на посылаемые ему запросы и возвращает строки в интерфейс. Классы yandAuthи mailAuthотвечают за авторизацию, они открывают необходимые окна и выводят сообщения об ошибке если такие имеются , а потом передают данные обратно MainActivity.

Рис. 89. Общая схема системы

В приложении имеются несколько классов. Самым главным классом является MainActivityздесь происходит основной вывод информации, а также обработка действий пользователя. При запуске приложения создается класс включающий в себя слой навигации и слой списка файлов. Далее в зависимости от выбора необходимого облака создается объект класса выбранного облака и запускается форма для заполнения данных об аккаунте, если таковой не был зарегистрирован раннее (опционально), либо открывается окно браузера для подтверждения доступа и ввода логина и пароля (опционально). В зависимости от выбора облака доступ к ним реализован по разному. После этого происходит соединение с сервером облака и получение необходимой информации. В этом случае процесс взаимодействия с сервером у всех облаков одинаков - приложение отправляет HTTPзапрос и получает на него ответ, далее приложение обрабатывает ответ специальным парсером и выводит результат в нормальном виде, списком на экран.

.4 Описание модулей системы

Система содержит в себе следующие модули:

модуль обработки ответа от сервера представлен на рисунке 20;

модуль авторизации представлен на рисунке 21;

модуль взаимодействия с сервером облачного сервиса представлен на рисунке 22. Данный модуль действует с использованием HTTPзапросов на сервер , как GETтак и POST [18], а затем полученный ответ отправляет в модуль обработки.

Рис. 20. Схема работы модуля обработки ответа от сервера

Рис. 21. Схема работы модуля авторизации

Рис. 22. Схема работы модуля взаимодействие с сервером облачных хранилищ

.5 Структура приложения

Разработанное приложение имеет три основных окна:

окно списка файлов с навигацией (рисунки 23,24,26);

окно для отображения webстраниц (рисунки 25.1, 25.2);

окно вывода опций для обработки файла (рисунок 27).


Рис. 24. Окно с открытой навигацией

Рис. 25.1.Окно авторизации

Рис. 25.2.Окно авторизации

Рис. 26. Окно со списком файлов

Рис. 27. Сообщение с выбранным файлом и возможными опциями для обработки файла

6. Оценка эффективности приложения

Чтобы определить востребованность и эффективность данного приложения , сравним созданное приложение с приложениями аналогами по выделенным критериям в табл. 1.

Таблица 1

Сравнение разработанного приложения с аналогами по критериям

Название

Поддержка Облака.Mail

Поддержка популярных облаков

Основные функции

Удобство

Приложение

+

+

+

+

ZeroPC

-

+

+

-

ES Проводник

-

+

+

+

ASTROManager

-

+

+

-

Primadesk

-

+

+

-


На основе выведенной таблицы можно сделать вывод что все требования к приложению были реализованы, а на основании того , что приложение поддерживает Облако.Mail, оно уже выигрывает по сравнению с аналогами.

. Тестирование приложения

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

Также необходимо протестировать основные функциональные возможности приложения .Для демонстрации работы приложения произведем авторизацию на облаке Яндек.Диск и выведем список документов, попробуем изменить, а затем удалить выбранные файлы. Проверим изменения на сайте.

.1 Тестирование авторизации

Как видно из рисунков 28.1 и 28.2 при нажатии на соответствующий элемент навигации с обозначением имени облака , навигация сворачивается и открывается окно авторизации.

Рис. 28.1.Окно с открытой навигациейй

Рис. 28.2. Окно авторизации

После нажатия на кнопку войти возможно два варианта: либо авторизация прошла успешно и окно закрывается и выводится список элементов (рисунки 29, 30) , либо появляется сообщение с информацией о том , что логин и пароль введены неверно (рисунки 31.1, 31.2).

Рис. 29. Заполненное окно авторизации

Рис. 30. Список элементов

Рис. 31.1.Неверно введенные логин и пароль

Рис. 31.2. Интерфейс Eclipse

.2 Тестирование функциональных возможностей

.2.1 Функция переименования

Рис. 32.1.Список файлов

Рис. 32.2. Сообщение с выбранным файлом

Вводим новое название рисунок 33

Рис. 33. Новое название файла

Проверяем на диске изменения до (рисунок 34.1) и после (рисунок 34.2), а так же изменения в самом приложении (рисунок 35)

Рис. 34.1. Файлы на Яндекс.Диск ДО

Рис. 34.2. Файлы на Яндекс.Диск ПОСЛЕ

Рис. 35.Файлы в приложении после переименования

.2.2 Функция удаления

Процесс выполнения этой функции аналогичен удалению, сначала выбираем файл,затем нажимаем удалить.

Рис. 36.Файлы на Яндекс.Диск ДО

Рис. 37. Выбор файла

Рис. 38. Файлы на Яндекс.Диск ПОСЛЕ

Рис. 39. Список файлов после удаления

Заключение

В ходе выполнения дипломной работы были решены следующие задачи:

проведен анализ аналогов , в результате которого были выделены основные требования для разрабатываемого приложения, для достижения желаемой цели;

по данным об актуальности версий ОС была выбрана наиболее подходящая и широко используемая версия;

после ознакомления со средами для разработки приложений под Androidбыла выбрана AndroidStudioIDE;

изучив средства для детальной работы с HTTPзапросами была выбрана утилита Fiddler;

разработанное с помощью AndroidStudioприложение удовлетворяет всем поставленный требованиям;

проведено тестирование приложение на выполнение всех заявленных функций;

была написана документация для приложения.

Исходя из того, что все предъявленные требования были выполнены, следует что поставленная цель - обеспечить конечного пользователя возможностью удобной навигации по облакам, в том числе и российским - достигнута.

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

Разработанную программу можно будет вследствие дополнять другими облаками создавая обширную навигацию, либо дополнять новые функциональные возможности такие как передача файлов с одного облака на другой , либо синхронизация устройства с облаком(ми).

На следующей стадии развития приложения может стать создание других версий для других операционных систем , таких как iOS,WindowsPhone.

Список использованной литературы

1.Unifile product Overview [ Электронный ресурс ] // unifyle.co: сайт разработчика URL: https://www.unifyle.co/product-overview.html (дата обращения: 10.04.2016)

.ZeroPC [ Электронный ресурс ] // zeropc.com: сайт разработчика URL: https://www.zeropc.com (дата обращения: 10.04.2016)

.ASTRO File Manager [ Электронный ресурс ] // play.google.com: магазин приложений URL: https://play.google.com/store/apps/details?id=com.metago.astro&hl=ru (дата обращения: 10.04.2016)

.ES Проводник [ Электронный ресурс ] // play.google.com: магазин приложений URL: https://play.google.com/store/apps/details?id=com.estrongs.android.pop&hl=ru (дата обращения: 10.04.2016)

5. Рынок облачных услуг [ Электронный ресурс ] // osp.ru : МИР ЦОД 2016 URL: #"877866.files/image046.jpg">



MainActivity.java



yandAuth.java


mainAuth.java


Похожие работы на - Разработка мобильного приложения на платформе Android для работы с сервисами облачных хранилищ

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!