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

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

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

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»








Контрольная работа

по дисциплине Портативные вычислительные системы

Тема: "Разработка приложения для вывода актуальных маршрутов движения пригородных транспортов владимирской области"

Выполнил: Кузин Ю.С.

Принял: Касьянов А.А.




Владимир, 2015

Содержание

Введение

. Анализ задания

.1 Задание

.2 Анализ задания

. Описание структуры приложения

.1 Параметры совместимости приложения с различными версиями Android

.2 Схема взаимодействия между классами

.3 Службы, используемые при установке приложения

.4 Схема взаимодействия компонентов проекта в виде UML - диаграмм

. Описание внешнего вида интерфейса приложения

. Описание диаграммы классов Java, используемых в приложении

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

.1 Galaxy Nexus 5 - 6.0 - API 23 - 1080x1920

.2 Google Galaxy Nexus - 4.2.2 - API 19 - 720x1280

.3 Google Nexus 4 - 5.0.0 API 21 - 720x1280

Вывод

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

Приложения

 

Введение


Данная работа направлена на создание приложения для получения информации о расписании движения междугороднего транспорта Владимирской области для операционной системы Andriod и закрепления навыков программирования для этой системы.

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

Для разработки приложения использовалась версия Android Studio.

 


1. Анализ задания


1.1 Задание


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

1.2 Анализ задания


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

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

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

2. Описание структуры приложения


2.1 Параметры совместимости приложения с различными версиями Android


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

Данное приложение разработано и протестировано на SDK версии 20. Однако система Android обеспечивает совместимость для ранних версий. Таким образом, минимальная версия SDK для запуска приложения - 15.

2.2 Схема взаимодействия между классами


Схема взаимодействия между классами приложения представлена на рисунке 2.1.

Рис. 2.1 - Схема взаимодействия между классами.

2.3 Службы, используемые при установке приложения

 

Для ввода значений пунктов отправления и назначения используется экранная клавиатура Android.

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

Приложение при установке требует разрешение, прописанное в файле AndroidManifest.xml: <uses-permission android:name="android.permission.INTERNET"/> - позволяет приложению , открывать сетевые сокеты.

2.4 Схема взаимодействия компонентов проекта в виде UML - диаграмм


Рис 2.2 - Взаимодействие компонентов приложения.

Основу приложения составляют два класса:

1)      Класс MyActivity - класс главной активити. Содержит в себе средства ввода и отображения информации.

)        Класс YandexSchedule - класс, осуществляющий формирование запроса и обработку ответа сервера. Выполняется в отдельном потоке и осуществляет подключение к сети.

3. Описание внешнего вида интерфейса приложения


Первоначальный интерфейс предлагает пользователю заполнить поля ввода «Откуда» и «Куда», определяющие пункты отправления и прибытия соответственно, а также выбрать дату отправления нажав на кнопку с изображением календаря. В открывшемся диалоговом окне пользователю доступен ввод даты с помощью стандартного для приложений Android интерфейса выбора даты.

По нажатию на кнопку «Поменять местами» с изображенными стрелками пользователь может поменять местами пункты отправления и прибытия.

Рис. 3.1 - Главный экран приложения.

При нажатии по кнопке «Поиск» приложение отображает для пользователя список всех рейсов, следующих через указанные пункты. Если поля не заполнены или во Владимирской области нет введенных местоположений, пользователь получит соответствующее сообщение.

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

Рис. 3.2 - Отображение расписания.

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

Рис. 3.3 - Подробная информация о рейсе.

 

Выход из приложения осуществляется стандартными средствами Android.

4. Описание диаграммы классов Java, используемых в приложении


Общая диаграмма классов представлена на рисунке 4.1.

Рис. 4.1 - Диаграмма классов приложения

Класс Rout используется для формирования, хранения и передачи информации о маршруте внутри приложения. Содержит поля, соответствующие параметрам рейсов, а также методы получения и установки значений для каждого из полей. Также описан конструктор, позволяющий сформировать экземпляр класса напрямую из объекта, принадлежащему классу org.json.JSONObject.

Класс YandexSchedule наследует класс AsyncTask<String, Void, List<Rout>> и является примером реализации фоновой задачи Android. Содержит два поля: префикс URL-адреса для запроса и exception класса Exception, служащий для корректного оповещения о произошедший исключительных ситуациях. Унаследованный метод doInBackground(String... strings) определяет, что будет выполнять объект класса в фоновом режиме. Метод getSchedule осуществляет конкатенацию строки для запроса и вызов метода parse(String address). В свою очередь, этот метод осуществляет GET-запрос сервису Яндекс Расписания и обрабатывает ответ сервера. В случае удачного завершения метод возвращает список объектов типа Rout. Иначе - определяет поле класса exception, по которому позже можно будет судить о произошедшей исключительной ситуации.

Класс MyActivity наследует класс Activity. В этом классе определена логика отображения данных. Среди прочих полей класса присутствуют поле типа YandexSchedule и поле, содержащее список объектов типа Rout.

Унаследованный метод void onCreate(Bundle savedInstanceState) определяет, что произойдет при создании MyActivity. Здесь же назначаются слушатели на все кнопки, а также происходит инициация диалоговых окон с помощью метода initInfoDialogBuilder() и определения обработчиков событий.

Логика получения данных и их корректного отображения описана в методе boolean getSchedule(). Объекта класса YandexSchedule получает список маршрутов, который отображается с помощью класса ListView.

Метод String getCodeByPlaceName(String placeName) позволяет определить, находится ли выбранное местоположение в пределах Владимирской области путем сверения со списком имеющихся станций, а также получить их коды для составления запроса сервису Яндекс Расписания.

5. Результаты отладки и тестирования приложения на различных устройствах


5.1 Galaxy Nexus 5 -6.0 - API 23 - 1080x1920

 

Рис. 5.1 Тестирование на устройстве Galaxy Nexus 5

Лог файл

-22 19:33:58.363 1264-1264/com.example.schedule D/dalvikvm﹕ GC_FOR_ALLOC freed 77K, 10% free 4246K/4700K, paused 59ms, total 59ms

-22 19:33:58.387 1264-1264/com.example.schedule I/dalvikvm-heap﹕ Grow heap (frag case) to 12.423MB for 8294412-byte allocation

-22 19:33:58.411 1264-1273/com.example.schedule D/dalvikvm﹕ GC_FOR_ALLOC freed 1K, 4% free 12345K/12804K, paused 23ms, total 23ms

-22 19:33:58.647 1264-1264/com.example.schedule D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 4% free 12345K/12804K, paused 28ms, total 28ms

-22 19:33:58.727 1264-1264/com.example.schedule I/dalvikvm-heap﹕ Grow heap (frag case) to 15.938MB for 3686412-byte allocation

-22 19:33:58.739 1264-1273/com.example.schedule D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 3% free 15945K/16408K, paused 11ms, total 11ms

-22 19:33:58.899 1264-1264/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libEGL_genymotion.so

-22 19:33:58.903 1264-1264/com.example.schedule D/﹕ HostConnection::get() New Host Connection established 0xb7fa6278, tid 1264

-22 19:33:58.915 1264-1264/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_genymotion.so

-22 19:33:58.915 1264-1264/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libGLESv2_genymotion.so

-22 19:33:59.047 1264-1264/com.example.schedule W/EGL_genymotion﹕ eglSurfaceAttrib not implemented

-22 19:33:59.051 1264-1264/com.example.schedule E/OpenGLRenderer﹕ Getting MAX_TEXTURE_SIZE from GradienCache

-22 19:33:59.055 1264-1264/com.example.schedule E/OpenGLRenderer﹕ Getting MAX_TEXTURE_SIZE from Caches::initConstraints()

-22 19:33:59.055 1264-1264/com.example.schedule D/OpenGLRenderer﹕ Enabling debug mode 0

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

5.2 Google Galaxy Nexus - 4.2.2 - API 19 - 720x1280


Рис. 5.2 Тестирование на устройстве Google Galaxy Nexus

Лог-файл

-22 19:50:07.479 1110-1110/com.example.schedule D/dalvikvm﹕ GC_FOR_ALLOC freed 1K, 5% free 12205K/12828K, paused 6ms, total 6ms

-22 19:50:07.487 1110-1110/com.example.schedule I/dalvikvm-heap﹕ Grow heap (frag case) to 15.971MB for 3686412-byte allocation

-22 19:50:07.499 1110-1118/com.example.schedule D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 4% free 15804K/16432K, paused 12ms, total 12ms

-22 19:50:07.507 1110-1113/com.example.schedule D/dalvikvm﹕ GC_CONCURRENT freed 0K, 4% free 15805K/16432K, paused 1ms+2ms, total 6ms

-22 19:50:07.631 1110-1110/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libEGL_genymotion.so

-22 19:50:07.631 1110-1110/com.example.schedule D/﹕ HostConnection::get() New Host Connection established 0xb7b999b0, tid 1110

-22 19:50:07.643 1110-1110/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_genymotion.so

-22 19:50:07.643 1110-1110/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libGLESv2_genymotion.so

-22 19:50:07.779 1110-1110/com.example.schedule W/EGL_genymotion﹕ eglSurfaceAttrib not implemented

-22 19:50:07.799 1110-1110/com.example.schedule D/OpenGLRenderer﹕ Enabling debug mode 0

-22 19:50:46.359 1110-1110/com.example.schedule W/EGL_genymotion﹕ eglSurfaceAttrib not implemented

Ошибок не обнаружено.

5.3 Google Nexus 4 - 5.0.0 API 21 - 720x1280


Рис. 10 Тестирование на устройстве ASUS TF101G(Главный экран)

Лог-файл

-23 12:58:57.916 2159-2174/com.example.schedule W/art﹕ Suspending all threads took: 5.680ms

-23 12:58:57.922 2159-2174/com.example.schedule I/art﹕ Background partial concurrent mark sweep GC freed 217(31KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 5MB/9MB, paused 8.395ms total 32.555ms

-23 12:58:58.428 2159-2178/com.example.schedule D/OpenGLRenderer﹕ Render dirty regions requested: true

-23 12:58:58.434 2159-2159/com.example.schedule D/﹕ HostConnection::get() New Host Connection established 0xacf1d7c0, tid 2159

-23 12:58:59.182 2159-2159/com.example.schedule D/Atlas﹕ Validating map...

-23 12:59:00.142 2159-2178/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libEGL_emulation.so

-23 12:59:00.142 2159-2178/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libGLESv1_CM_emulation.so

-23 12:59:00.158 2159-2178/com.example.schedule D/libEGL﹕ loaded /system/lib/egl/libGLESv2_emulation.so

-23 12:59:00.166 2159-2178/com.example.schedule D/﹕ HostConnection::get() New Host Connection established 0xa4516120, tid 2178

-23 12:59:00.190 2159-2178/com.example.schedule I/OpenGLRenderer﹕ Initialized EGL, version 1.4

-23 12:59:00.337 2159-2178/com.example.schedule D/OpenGLRenderer﹕ Enabling debug mode 0

-23 12:59:00.352 2159-2178/com.example.schedule W/EGL_emulation﹕ eglSurfaceAttrib not implemented

Ошибок не обнаружено.

В ходе тестирования данного приложения было проведено тестирование программы на различных версиях ОС Android:

·        Android Google 4.2.2

·        Android Google 5.0.0

·        Android Google 6.0.0

А так же для различных разрешений:

·        1080x1920

·        720x1280

Тестирование проводилось при помощи эмулятора встроенного эмулятора Android Studio. Данный вид тестирования эквивалентен отладке приложения через интерфейс USB на реальном устройстве.

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

интерфейс приложение движение транспорт

Вывод


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

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

В качестве предложений по модернизации и развитию данного приложения есть несколько направлений:

·        Опубликовать приложение в магазине «Google Play»

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

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

·        Добавить выбор различных цветовых схем оформления приложения

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


1.      Android Developers [Электронный ресурс]. - Режим доступа: #"868728.files/image010.jpg">

Жизненный цикл приложения

Похожие работы на - Разработка приложения для вывода актуальных маршрутов движения пригородного транспорта Владимирской области

 

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