Разработка информационных систем на базе мобильных интерфейсов

Автор работы: Пользователь скрыл имя, 30 Ноября 2013 в 20:08, дипломная работа

Описание работы

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

Содержание работы

ВВЕДЕНИЕ 5
1. ГОРОДСКИЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ И МОБИЛЬНЫЕ ИНТЕРФЕЙСЫ 8
1.1 Введение в ГИС 8
1.2 Организация данных в ГИС 11
1.3 ГИС среди информационных технологий 17
1.4 Что ГИС могут сделать для туризма 24
1.5 Предметно ориентированные ГИС 25
1.6 Основные концепции информационной визуализации, используемые в ГИС 25
1.7 ГИС и мобильные интерфейсы 27
2. ГЕОКОДИРОВАНИЕ В ИС 28
2.1 Понятие геокодирования. 28
2.2 Назначение геокодирования 28
2.3 Методы геокодирования 29
3. ОСНОВНЫЕ ТРЕБОВАНИЯ К ТУРИСТИЧЕСКОЙ КАРТЕ 33
4. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА РАЗРАБОТКИ 34
4.1 Операционная система Google Android 34
5. ОПИСАНИЕ ПРОЕКТА ПРИЛОЖЕНИЯ 44
5.1 Структура программы. 44
5.2 Описание компонентов программы 45
5.3 Программная реализация. 58
ЗАКЛЮЧЕНИЕ 68
ЛИТЕРАТУРА 69

Файлы: 1 файл

Diplom__Ba_va__FINAL.doc

— 2.78 Мб (Скачать файл)

 

Уровень приложений

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

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

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

 

 

    1. ОПИСАНИЕ ПРОЕКТА ПРИЛОЖЕНИЯ

5.1 Структура программы.

Одним из компонентов android-приложения является деятельность (activity). Деятельность представляет собой визуальный пользовательский интерфейс для приложения – окно. Как правило, окно полностью заполняет экран мобильного устройства, но может иметь размеры меньше чем у экрана. Деятельность может также использовать дополнительные окна, например всплывающее диалоговое окно, которое запрашивает пользовательский ответ для основной деятельности, или окно уведомления о каком-либо событии в приложении или системе. Приложение может содержать несколько деятельностей. Каждая деятельность независима от других. При открытии новой деятельности работа предыдущей приостанавливается, а сама она вносится и сохраняется в стек деятельностей.

Деятельности могут взаимодействовать между собой. Как правило, одна из деятельностей приложения (окно которое открывается при запуске приложения) помечено как главное. Также из текущей деятельности можно запустить любую другую деятельность, даже если она определена в другом приложении.

На рисунке 3 показано дерево взаимодействия activities (деятельностей) программы.

Рис. 3 Дерево взаимодействия activities (деятельностей) программы.

5.2 Описание компонентов программы

На платформе android необходимо определить пользовательский интерфейс для каждой деятельности, используя иерархии узлов view и viewgroup, как показано на рисунке 4.

Объекты view – основные модули отображения интерфейса пользователя на платформе android. Объект view – структура данных свойства которой сохраняют параметры разметки и содержание для определенной прямоугольной области экрана. Как объект в интерфейсе пользователя, объект view является точкой взаимодействия пользователя и программы.

Класс viewgroup служит ядром для подклассов, называемых разметками (layouts), которые формируют расположение элементов пользовательского интерфейса на форме, использую различные виды архитектуры разметки – фреймовый, линейный, табличный и относительный.

Рис. 4 пример дерева представлений для деятельностей

 

Главная деятельность (Main Menu)

Рассмотрим структуру главной деятельности. Внешний вид окна представлен на рисунке 5.

Рис. 5 Главное окно программы

Рисунок 6 отображает иерархию разметки главного окна программы и её свойства.

Рис. 6 Иерархия разметки главного окна.

Как видно из рисунка конечными элементами разметки, которые видит пользователь, являются следующие элементы: текстовое поле (title), 3 кнопки (button_map, button_poi, button_exit) (рисунок 7).

Рис.7 Элементы разметки

При нажатии на кнопку <map> открывается активити содержащую карту Google map.

При нажатии на кнопку <poi> открывается активити содержащее список групп туристических объектов города Екатеринбурга.

При нажатии на кнопку <exit> программа закрывается.

 

Деятельность map

Рассмотрим структуру деятельности map. Внешний вид окна представлен на рисунке 8.

Рис.8 Окно map

Рисунок 9 отображает иерархию разметки окна map.

Рис.9 Иерархия разметки окна map

При нажатии на кнопку <menu> мобильного устройства, на экране появляется меню из четырех пунктов poi, add objects, search, exit.

При выборе пункта poi открывается активити, содержащее список групп туристических объектов города Екатеринбурга.

При выборе пункта add objects открывается всплывающее окно содержащее список групп объектов, которые можно отобразить на карте при активации чекбокса (рисунок 10).

При нажатии на маркер объекта появляется всплывающее окно с краткой информацией об объекте.

Рис. 10 Выбор и отображение групп объектов на карте.

При выборе пункта search появляется всплывающее меню с двумя кнопками (search by address, search by coordinates) (рисунок 11).

Рис. 11 Всплывающее меню search

При нажатии на кнопку <Search by address> открывается форма, содержащая два поля (street и house)  и две кнопки (Ok и Cancel) . При нажатии на кнопку Ok на карте отображается маркер, соответствующий введенному адресу (рисунок 12).

Рис. 12 Поиск по адресу

 

При нажатии на кнопку <Search by coordinates> открывается форма, содержащая два поля (Latitude и Longitude)  и две кнопки (Ok и Cancel) . При нажатии на кнопку Ok на карте отображается маркер, соответствующий введенным координатам (рисунок 13).

Рис. 13 Поиск по координатам

 

При выборе пункта меню exit программа закрывается.

 

Деятельность poi

Рассмотрим структуру деятельности poi. Внешний вид окна представлен на рисунке 14.

Рис. 14 Окно poi

Рисунок 15 отображает иерархию разметки окна poi.

Рис. 15 Иерархия разметки окна poi

Как видно из рисунка конечными элементами разметки, которые видит пользователь, является список listview содержащий 6 текстовых полей с названиями групп объектов.

При нажатии на какой-либо элемент списка открывается активити, содержащее список всех объектов выбранной группы. Например, при выборе элемента theaters открывается активити theatersviewactivity.

 

Деятельность TheatersViewActivity

Рассмотрим структуру деятельности TheatersViewActivity. Внешний вид окна представлен на рисунке 16.

Рис. 16 Окно TheatersViewActivity

Рисунок 17 отображает иерархию разметки окна TheatersViewActivity.

Рис. 17 Иерархия разметки окна TheatersViewActivity.

Как видно из рисунка конечными элементами разметки, которые видит пользователь, является список listview содержащий текстовые поля с названиями и адресами объектов.

При нажатии на какой-либо элемент списка открывается всплывающее окно с двумя кнопками (add on map, information) (рисунок 18).

Рис. 18 Всплывающее окно TheatersViewActivity

При нажатии на кнопку < add on map > объект отображается на карте (рисунок 19).

Рис. 19 Отображение объекта на карте

При нажатии на кнопку <information> открывается всплывающее окно с краткой информацией (название, адрес, время работы, описание объекта)

Деятельности MuseamViewActivity, ArhitectureViewActivity, InterestViewActivity, TemplesViewActivity, HostelViewActivity устроены аналогичным образом (рисунок 20)

Рис. 20 Деятельности MuseamViewActivity, ArhitectureViewActivity, InterestViewActivity, TemplesViewActivity, HostelViewActivity

 

5.3 Программная реализация.

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

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

Структура файла  AndroidManifest.xml

Элемент <manifest> является корневым элементом файла.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.touristmap" android:versioncode="1" android:versionname="1.0.">

Элемент <uses-sdk> позволяет объявлять совместимость приложения с указанной версией (или более новыми версиями API) платформы Android. Уровень api, объявленный приложением, сравнивается с уровнем API системы мобильного устройства, на который инсталлируется данное приложение.

<uses-sdk android:minsdkversion="8" />

8 версия sdk означает, что приложение будет откомпилировано с использованием библиотек android 2.2.

Элемент <uses-permission> запрашивает разрешения, которые приложению должны быть предоставлены системой для его нормального функционирования.

Использование доступа к интернету:

<uses-permission android:name="android.permission.internet" />

Разрешение приложению доступа к данным о местоположении, предоставляемым сетью wi-fi или сотовой сетью, которые получаются через класс geolocation: 

<uses-permission android:name="android.permission.access_coarse_location" />

 

Разрешает приложению доступ к данным gps через класс geolocation.

<uses-permission android:name="android.permission.access_fine_location" />

 

Элемент <application> - это элемент манифеста, содержащий описание компонентов приложения, доступных в пакете. Этот элемент содержит дочерние элементы, которые объявляют каждый из компонентов, входящих в состав приложения.

Элемент <activity> объявляет деятельность. Все деятельности должны быть явно представлены отдельными элементами <activity> в файле манифеста.

Пример задания деятельности:

<activity android:name=".activities.mapsactivity"

android:label="map" />

 

<activity android:name=".activities.objectseditoractivity"

android:label="objects">

</activity>

 элемент <provider> объявляет контент-провайдера.

Пример задания контент-провайдера:

<provider android:name=".providers.objectviewprovider"

Android:authorities="com.touristmap.objectviewprovider">

</provider>

Элемент <uses-library> определяет общедоступную библиотеку, с которой должно быть связано приложение.

<uses-library android:name="com.google.android.maps" />

 

Каталог ресурсов

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

Подкаталог res/layout/

В эту папку помещаются файлы разметки.

Файлы разметки.

Разметка – это архитектура расположения элементов интерфейса пользователя для конкретного окна, представляющего деятельность. Самый общий способ определять разметку и создавать иерархию представления – в xml-файле разметки. Преимущество объявления пользовательского интерфейса в xml-файле состоит в том, что это дает возможность определить представление приложения от программного кода, который управляет поведением приложения. Общая структура xml-файла – это дерево xml элементов, где каждый узел представляет имя класса view.

Файл main.xml

Файл main.xml является файлом разметки для главного активити MainActivity. Корневым элементом данного файла является <tablelayout>

 

<tablelayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">

 

У данного элемента существует 3 дочерних элемента <button>

    <button

     android:id="@+id/button_map"

     android:text="map"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content/>

 

Каждый из этих элементов имеет атрибуты, определяющие свойства данного элемента. Например:

Android:id="@+id/button_map" – определяет идентификатор объекта, по которому связывается объект из файла разметки с объектом view в коде программы. Символ + (@+id) означает, что это новое имя ресурса, которое должно быть создано и добавлено к ресурсам в файл r.java, который среда android автоматически генерирует для проекта.

Файлы map.xml, object_info.xml, object_menu.xml, object_view.xml, objects.xml, search_address.xml, search_coord.xml, search_menu.xml, search.xml устроены аналогичным образом.

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

Public void onCreate(Bundle savedinstancestate) {

        super.onCreate(savedinstancestate);

        SetContentView(R.layout.main);

 

Подкаталог res/drawable/

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

Подкаталог res/values/

В данной папке хранятся общие константы для всего приложения: текст используемый элементами управления. Например:

<string name="app_name">TouristMap</string>

 

Файлы деятельностей

Каждый файл деятельности содержит класс, в который добавляется код, реализующий логику работы приложения в данной деятельности. В каждом из таких классов обязательно определяется метод обратного вызова onCreate(), который вызывается системой для прорисовывания окна деятельности на экране устройства.

В файле MainActivity.java задается функциональность главного окна программы: определяются действия, происходящие по нажатию кнопок, а именно запуск активити, соответствующих кнопкам.

final Button button_map = (Button) findViewById (R.id.button_map);

        button_map.setOnClickListener(new View.OnClickListener() {

 

@Override

public void onClick(View v) {

Intent mapsActivity = new Intent(MainActivity.this,MapsActivity.class);

     startActivity(mapsActivity);

 

}

});

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

Файл MapsActivity.java описывает функционал для работы с картой:

Информация о работе Разработка информационных систем на базе мобильных интерфейсов