Document 122771

advertisement
Министерство образования и науки Российской Федерации
Государственное образовательное учреждение высшего профессионального образования
"ЮЖНО-УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ"
Факультет Вычислительной Математики и Информатики
Кафедра системного программирования
Рецензент
ДОПУСТИТЬ К ЗАЩИТЕ
Программист лаборатории супер-
Зав. кафедрой СП
компьютерного моделирования
__________ Л.Б. Соколинский
__________ К.С. Пан
“___”___________ 2016 г.
“___”___________ 2016 г.
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
на соискание академической степени бакалавра информационных
технологий по направлению 010400.62 "Информационные технологии"
Разработка мобильного приложения для ОС Android
для ведения ведомостей успеваемости и посещаемости
студентов
Ученый секретарь
_____________ М.Л. Цымблер
“___”___________ 2016 г.
Научный руководитель
Кандидат физ.-мат. наук
__________ П.С. Костенецкий
Автор работы,
студент группы ВМИ-426
__________К.И. Овчаренко
Челябинск-2016
Министерство образования и науки Российской Федерации
Государственное образовательное учреждение высшего профессионального образования
"ЮЖНО-УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ"
Механико-математический факультет
Кафедра системного программирования
УТВЕРЖДАЮ
Зав. кафедрой СП
__________ Л.Б. Соколинский
08.02.2016
ЗАДАНИЕ
на выполнение выпускной квалификационной работы бакалавра
студенту группы ММ-426 Овчаренко Кириллу Игоревичу,
обучающемуся по направлению 010400.62 "Информационные технологии"
1. Тема работы (утверждена приказом ректора 18 мая 2011 г. № 1016)
Разработка приложения для ОС Android для ведения ведомостей успеваемости и посещаемости студентов.
2. Срок сдачи студентом законченной работы: 17.06.2016.
3. Исходные данные к работе
3.1. ОС для мобильных устройств Google Android OS 2.3
3.2. Набор средств для разработки ПО Android SDK
3.3. Документация разработчика (http://developer.android.com/guide)
4. Перечень подлежащих разработке вопросов
4.1.
4.2.
4.3.
4.4.
Технология и методы разработки ПО для ОС Android.
Разработка базы данных.
Разработка мобильного приложения
Синхронизация данных с Google Docs.
5. Дата выдачи задания: 08.02.2016.
Научный руководитель
Доцент кафедры СП ЮУрГУ,
директор СКЦ,
кандидат физ.-мат. наук,
Задание принял к исполнению
П.С. Костенецкий
К.И. Овчаренко
2
Оглавление
Введение
4
1.
Обзор мобильной операционной системы Android
6
1.1.
Архитектура ОС Android
7
1.2.
Обзор существующих программ для ведения ведомостей
успеваемости и посещаемости студентов
10
2.
Разработка мобильного приложения
13
2.1.
Требования к мобильному приложению.
13
2.2.
Подготовка среды разработки
20
2.3.
Создание приложения в Android SDK
21
2.4.
Разработка базы данных
24
2.5.
Реализация приложения
27
2.6.
Тестирование системы
29
Заключение
30
Литература
31
Приложение 1. Тестовые данные
33
Приложение 2. Интерфейс программы
35
3
Введение
АКТУАЛЬНОСТЬ ТЕМЫ
В настоящее время одной из наиболее популярных операционных
систем для мобильных устройств является ОС Android компании Google.
Актуальной будет разработка на этой платформе программы, которая
позволит вести ведомости посещаемости и успеваемости студентов.
ЦЕЛИ И ЗАДАЧИ
Целью данной работы является разработка приложение для ОС
Android, назначением которого будет ведение ведомости посещаемости и
успеваемости студентов. Пользователями данного приложения будут преподаватели университета. Средствами Android SDK будет реализовано само приложение и база данных в СУБД SQLite. Приложение будет поддерживать синхронизацию данных базы данных с сервисом Google Docs.
Для достижения цели требуется решить следующие задачи:
 изучить архитектуру, инструменты и особенности разработки
приложений для ОС Android;
 разработать базу данных в СУБД SQLite;
 разработать приложение, работающее с данной базой данных;
 разработать интерфейс пользователя;
 разработать подсистему синхронизации с Google;
 провести тестирование разработанного приложения.
СТРУКТУРА И ОБЪЕМ РАБОТЫ
Работа состоит из введения, двух глав, заключения и библиографии.
Объем работы составляет 38 страниц, объем библиографии – 19 источников.
СОДЕРЖАНИЕ РАБОТЫ
Первая глава, «Обзор ОС Android», содержит основную информацию
об ОС Android и общие сведения о разработке приложений для этой операционной системы.
4
Вторая глава, «Разработка мобильного приложения», содержит подробную информацию об этапах разработки системы, включая описание
инструментов разработки приложения, разработку базы данных, реализацию алгоритмов и интерфейса программы, а также информацию о результатах тестирования.
В заключении приводятся основные результаты работы.
Приложение содержит тестовые данные и интерфейс системы.
5
1. Обзор мобильной операционной системы Android
ОС Android – операционная система для мобильных телефонов,
планшетных компьютеров и нетбуков, основанная на ядре Linux [2, 3]. Изначально разрабатывалась компанией Android Inc., которую затем купила
компания Google. Впоследствии, компания Google инициировала создание
альянса компаний Open Handset Alliance (OHA), занимающегося поддержкой и дальнейшим развитием платформы. Первая версия ОС Google
Android вышла в сентябре 2008 года. В конце 2010 года ОС Android стала
самой продаваемой ОС для смартфонов [1].
ОС Android – это набор открытого программного обеспечения для
мобильных устройств от компании Google, в состав которого входит операционная система и комплект базовых межплатформенных приложений [2]. Приложения для ОС Android являются программами в байт-коде
для виртуальной машины Dalvik Virtual Machine, которая является частью
мобильной платформы Android.
Для разработки приложений под платформу Android используется
набор инструментов и библиотек API - Android SDK [5] предназначенный
для компьютеров с архитектурой процессора x86 под операционными системами Windows XP, Windows Vista, Windows 7, Mac OS X (10.4.8 или
выше) и Linux. Для разработки требуется среда исполнения Java Runtime
Environment (JRE), комплект разработчика Java Development Kit (JDK) [12],
среда разработки Eclipse [10] и Android SDK [5].
Разработку приложений для ОС Android можно вести на языке Java.
Для этой цели существует плагин для среды разработки Eclipse —
«Android Development Tools» (ADT). Кроме того, существуют плагины,
облегчающие разработку Android-приложений в средах разработки IntelliJ
IDEA и NetBeans IDE. MonoDroid SDK позволяет писать для ОС Android
на C# и других языках.
6
1.1. Архитектура ОС Android
На Рис. 1 представлена диаграмма основных компонентов операционной системы Android [2,7].
Приложения
Контакты
Рабочий стол
Телефон
Браузер
…
Каркас Приложения (Application Framework)
Менеджер
действий
Менеджер
пакетов
Менеджер
окон
Менеджер
телефонии
Контентпровайдеры
Менеджер
ресурсов
Система
представлений
Менеджер
местоположения
Библиотеки
Менеджер
извещений
Среда исполнения Android
libc
Media
Framework
WebKit
Менеджер
Поверхностей
Библиотеки
ядра
SGL
OpenGL | ES
FreeType
SQLite
SSL
Виртуальная
машина Dalvik
Ядро Linux
Драйвер
дисплея
Драйвер
камеры
Драйвер
флеш-памяти
Драйвер
компоновщика
Драйвер
клавиатуры
Драйвер
WiFi
Драйвер
аудио
Управление
питанием
Рис. 1. Основные компоненты ОС Android
1.1.1. Уровень приложений
В состав ОС Android входит комплект базовых приложений: клиенты
электронной почты и SMS, календарь, различные карты, браузер, программа для управления контактами и многое другое. Все приложения, запускаемые на платформе Android, написаны на языке Java.
1.1.2. Уровень каркаса приложений
ОС Android позволяет полностью использовать API, используемый в
приложениях ядра. Архитектура построена таким образом, что любое приложение может использовать уже реализованные возможности другого
приложения при условии, что последнее откроет доступ на использование
7
своей функциональности. Таким образом, архитектура реализует принцип
многократного использования компонентов ОС и приложений.
Основой всех приложений является набор систем и служб:
1. Менеджер действий (Activity Manager) управляет жизненным циклом приложений и предоставляет систему навигации по истории работы с
действиями.
2. Контент-Провайдеры (Content Providers) – это службы, которые
позволяют приложениям получать доступ к данным других приложений, а
также предоставлять доступ к своим данным.
3. Система представлений (View System) – это богатый набор представлений с расширяемой функциональностью, который служит для построения внешнего вида приложений, включающий такие компоненты, как
списки, таблицы, поля ввода, кнопки и т.п.
4. Менеджер ресурсов (Resource Manager) предназначен для доступа
к строковым, графическим и другим типам ресурсов.
5. Менеджер извещений (Notification Manager) позволяет любому
приложению отображать пользовательские уведомления в строке статуса.
1.1.3. Уровень библиотек
Платформа Android включает набор C/C++ библиотек, используемых
различными компонентами ОС. Для разработчиков доступ к функциям
этих библиотек реализован через использование Application Framework.
Ниже представлены некоторые из них:
1. System C library - BSD-реализация стандартной системной библиотеки C (libc) для встраиваемых устройств, основанных на Linux.
2. Media Libraries – библиотеки, основанные на PacketVideo‘s OpenCORE, предназначенные для поддержки проигрывания и записи популярных аудио- и видео- форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG
и т.п.).
3. LibWebCore – ядро встроенного web-браузера.
8
4. Surface Manager – менеджер поверхностей управляет доступом к
подсистеме отображения 2D- и 3D- графических слоев.
5. SGL (Scalable Graphics Library) – библиотека для работы с 2Dграфикой, основанная на библиотеке SDL (Simple DirectMedia Layer).
6. 3D libraries – библиотеки для работы с 3D-графикой, основанные
на OpenGL ES 1.0 API.
7. FreeType – библиотека, предназначенная для работы со шрифтами.
8. SQLite – легковесная реляционная система управления базами
данных.
1.1.4. Уровень среды исполнения
В состав ОС Android входит набор библиотек ядра, которые предоставляют большую часть функциональности библиотек ядра языка Java.
Платформа
использует
оптимизированную,
ориентированную виртуальную машину Dalvik, в отличии от
регистркоторой
стандартная виртуальная машина Java – стек-ориентированная. Каждое
приложение запускается в своем собственном процессе, со своим собственным экземпляром виртуальной машины. Виртуальная машина Dalvik
использует формат Dalvik Executable (*.dex), оптимизированный для минимального использования памяти приложением. Это обеспечивается такими базовыми функциями ядра Linux, как организация поточной обработки и низкоуровневое управление памятью. Байт-код Java, на котором
написаны ваши приложения, компилируются в dex-формат при помощи
утилиты dx, входящей в состав SDK.
1.1.5. Уровень ядра Linux
ОС Android основана на ОС Linux версии 2.6, тем самым платформе
доступны системные службы ядра, такие как управление памятью и процессами, обеспечение безопасности, работа с сетью и драйверами. Также
ядро служит слоем абстракции между аппаратным и программным обеспечением.
9
1.2. Обзор существующих программ для ведения ведомостей
успеваемости и посещаемости студентов
На данный момент существует несколько аналогов программы разработанной в рамках дипломной работы. Наиболее функциональной из них
является программа Educate, которая существует только для операционной
системы Apple iOS. Программа позволяет хранить и редактировать расписание занятий, информацию о студентах, их посещаемость и успеваемость.
В программе есть функция синхронизации с Google Docs и возможность
отправлять письма и звонить студентам. Скриншот приложения представлен на Рис. 2.
Рис. 2. Приложение «Educate»
Наиболее популярные из подобных приложений для ОС Android это
«Grade Book for Professors», «Attendance» и «GradeA».
Приложения «Grade Book for Professors» и «Attendance» разработаны
компанией Academy Geeks Inc. И позволяют вести ведомость успеваемости
и посещаемости студентов соответственно, а также поддерживают синхронизацию с Google Docs. Скриншоты приложений представлены на Рис. 3 и
Рис. 4.
10
Рис. 3. Приложение «Grade Book for Professors»
Рис. 4. Приложение «Attendance»
Приложение «GradeA» позволяет создавать группы студентов и отмечать их успеваемость и посещаемость. Скриншот приложения представлен на Рис. 5.
11
Рис. 5. Приложение «GradeA»
Существуют
подобные
программы
для
студентов, например,
«Grades» и «Class Buddy», которые хранят расписание и успеваемость отдельного студента.
Приложения «Grade Book for Professors», «Attendance» и «GradeA» в
отличие от приложения «Educate» менее удобны в использовании и не позволяют создавать и хранить расписание предметов, и в них вместо таблиц
используются списки. Также, в них используется американская система
оценок. Программа, разработанная в рамках дипломной работы по функциональности более близка к программе «Educate» и позволяет хранить и
редактировать расписание занятий, информацию о студентах, их посещаемость и успеваемость, но в ней, в отличие от приложения «Educate», расписание занятий связано с группами студентов и ведомостями.
12
2. Разработка мобильного приложения
В данном разделе описывается разработка мобильного приложения
«Виртуальная ведомость». Разработка велась на языке Java в среде разработки Eclipse. В разделе 2.1 рассматриваются требования к разрабатываемому мобильному приложению. В разделе 2.2 рассматриваются инструменты, необходимые для разработки, в разделе 2.3 рассматривается создание проекта и его свойства, в разделе 2.4 рассматривается разработка базы
данных, в разделе 2.5 рассматривается реализация алгоритмов и интерфейса программы, в разделе 2.6 описывается тестирование разработанного
приложения.
2.1. Требования к мобильному приложению.
Мобильное приложение «Виртуальная ведомость» должно выполнять следующие функции:
 просмотр списка групп студентов;
 добавление, удаление групп;
 просмотр списков студентов в группах;
 добавление, удаление студентов;
 создание таблицы расписания (кол-во занятий и время);
 просмотр и редактирование таблицы расписания;
 добавление предметов в расписание;
 проставление оценок и посещаемости;
 создание ведомостей посещаемости и успеваемости;
 просмотр и изменение ведомостей посещаемости и успеваемости;
 возможность выбора типа оценки для разных занятий;
 просмотр информации о студенте, о группе, о занятии;
 напоминания о ближайших занятиях;
 синхронизация информации через Интернет.
13
Требования к эмулятору задаются при помощи модели вариантов использования [13], построенной на основе унифицированного языка моделирования UML.
Приложение «Виртуальная Ведомость»
Просмотреть расписание
«extend»
Редактировать расписание
Просмотреть ведомости посещаемости
группы«extend»
Заполнить посещаемость
Просмотреть ведомости успеваемости
группы
«extend»
Выставить оценки
Пользователь
Просмотреть группы студентов
«extend»
«extend»
«extend»
«extend»
Синхронизировать
через Интернет
«extend»
Создать группу
Удалить группу
Добавить студента
Удалить студента
Импортировать группу
Рис. 6. Диаграмма вариантов использования UML
На Рис. 6 приведены варианты использования эмулятора. Далее приводится детальное описание каждого варианта использования. Вариант использования описывается в соответствии со следующей схемой. Вопервых, приводится краткое описание варианта использования и предварительные условия, необходимые для начала его выполнения. Во-вторых,
приводится описание основных шагов, составляющих поток событий варианта использования и дальнейших возможных действиях этого варианта
использования.
Пользователь представляет собой человека, взаимодействующего с
приложением на мобильном устройстве. В частном случае пользователем
является преподаватель университета.
14
Вариант использования «Просмотреть расписание». На экран выводится расписание занятий в виде таблицы. Таблица расписания заполняется данными из базы данных.
Вариант использования начинается, когда пользователь нажимает на
кнопку «Расписание» в главном меню приложения.
Основной поток событий состоит из следующих шагов:
 На форме приложения создается элемент GridView для отображения таблицы
 Из базы данных с помощью SQL запросов выбирается требуемый
набор данных о расписании.
 Элемент GridView связывается с полученным набором данных
 Выводится таблица расписания.
В таблице расписания строки соответствуют парам с указанием номера пары и времени, а столбцы соответствуют дням недели.
После выполнения этого варианта использования пользователь может взаимодействовать с таблицей путем нажатия на ячейки таблицы. При
нажатии на заполненную ячейку выводится информация о занятии, записанном в этой ячейке. При нажатии на пустую ячейку пользователь переходит к варианту использования «Редактировать расписание».
У варианта использования имеется одна точка расширения: «Редактировать расписание».
Вариант использования «Редактировать расписание». Позволяет
пользователю добавлять или удалять занятия.
Вариант использования начинается, когда пользователь нажимает на
ячейку в таблице расписания.
Основной поток событий состоит из следующих шагов:
 Если ячейка таблицы расписания не пуста, то пользователь может
удалить данное занятие из расписания. Если ячейка пустая то создается форма добавления нового занятия, где пользователь мо15
жет ввести параметры занятия, такие как дисциплина, группа,
аудитория.
 Изменения расписания заносятся в базу данных
После выполнения этого варианта использования пользователь вернется к таблице расписания, где увидит отредактированную ячейку и сможет отредактировать другие ячейки расписания.
Вариант использования «Просмотреть группы студентов». Служит
для отображения списков групп и студентов, хранящихся в базе данных, а
также информацию о них.
Вариант использования начинается, когда пользователь нажимает на
кнопку «Группы» в главном меню приложения.
Основной поток событий состоит из следующих шагов:
 На форме приложения выводится список существующих групп,
который извлекается из базы данных с помощью SQL запроса.
 Пользователь по нажатию на группы может перейти в каждую из
групп и просмотреть список студентов выбранной группы.
После выполнения этого варианта использования пользователь может взаимодействовать со списками студентов и групп и редактировать их.
У варианта использования имеются четыре точки расширения: «Создать группу», «Удалить группу», «Добавить студента», «Удалить студента».
Вариант использования «Создать группу».
Вариант использования начинается, когда пользователь нажимает на
кнопку «Создать» на форме со списком групп.
Основной поток событий состоит из следующих шагов:
 Открывается форма добавления новой группы, где пользователь
может ввести параметры добавляемой группы, такие как номер,
факультет, кафедра.
 Группа с указанными параметрами добавляется в базу данных
приложения.
16
 После выполнения этого варианта использования пользователь
вернется к списку групп, где увидит добавленную группу.
Вариант использования «Удалить группу».
Вариант использования начинается, когда пользователь после выделения группы выбирает пункт «Удалить» в контекстном меню.
Основной поток событий состоит из следующих шагов:
 Выбранная группа и студенты этой группы удаляются из базы
данных приложения
 Список групп обновляется.
Вариант использования «Добавить студента».
Вариант использования начинается, когда пользователь нажимает на
кнопку «Создать» на форме со списком студентов выбранной группы.
Основной поток событий состоит из следующих шагов:
 Открывается форма добавления нового студента в группу, где
пользователь может ввести параметры добавляемого студента,
такие как имя, телефон, адрес электронной почты.
 Студент с указанными параметрами добавляется в базу данных
приложения.
 После выполнения этого варианта использования пользователь
вернется к списку студентов, где увидит добавленного студента.
Вариант использования «Удалить студента».
Вариант использования начинается, когда пользователь после выделения студента выбирает пункт «Удалить» в контекстном меню.
Основной поток событий состоит из следующих шагов:
 Выбранный студент и все записи о нем удаляются из базы данных приложения
 Список студентов обновляется.
Вариант использования «Просмотреть ведомости успеваемости» и
Вариант использования «Просмотреть ведомости посещаемости». В них
17
пользователь может просматривать и редактировать существующие ведомости успеваемости и посещаемости.
Вариант использования начинается, когда пользователь нажимает на
кнопку «Ведомости» в главном меню приложения или при нажатии на
кнопку «Успеваемость» или «Посещаемость» в форме просмотра информации о занятии в варианте использования «Просмотреть расписание».
Основной поток событий состоит из следующих шагов:
 На форме приложения выводится список существующих ведомостей с указанием группы и дисциплины, которые извлекается из
базы данных с помощью SQL запроса.
 Пользователь по нажатию на ведомость в списке ведомостей может перейти в каждую из ведомостей
 Для выбранной ведомости на новой форме приложения создаются две таблицы «Успеваемость» и «Посещаемость» с данными,
извлекаемыми из базы данных.
Каждая таблица находится в отдельной вкладке, и пользователь может переключаться между ними. В каждой из таблиц строки соответствуют
студентам, а столбцы соответствуют занятиям с указание даты проведения
занятия.
После выполнения этого варианта использования пользователь может взаимодействовать с таблицей ведомости путем нажатия на ячейки
таблицы.
У варианта использования имеются две точки расширения: «Заполнить посещаемость», «Выставить оценки».
Вариант использования «Заполнить посещаемость».
Вариант использования начинается, когда пользователь нажимает на
ячейку в таблице «Ведомость посещаемости».
Основной поток событий состоит из следующих шагов:
 Отображается диалоговое окно с выбором значения ячейки из
двух возможных.
18
 Пользователь выбирает одно из двух значений, в зависимости от
того присутствует или отсутствует студент на занятии.
 Выбранное значение заносится в базу данных и выводится в таблице посещаемости.
Вариант использования «Выставить оценки».
Вариант использования начинается, когда пользователь нажимает на
ячейку в таблице «Ведомость успеваемости».
Основной поток событий состоит из следующих шагов:
 Отображается диалоговое окно с выбором значения оценки из нескольких возможных, в зависимости от выбранного типа оценки
для занятия.
 Пользователь выбирает одно из значений оценки для студента.
 Выбранное значение заносится в базу данных и выводится в таблице успеваемости.
При выставлении оценки пользователь может использовать для каждого занятия один из типов оценки. Приложение содержит следующие типы оценки: зачет-незачет, пятибалльная система, десятибалльная система,
стобалльная система.
Пользователь может добавить подпись к каждому из занятий, например: «Лекция», «Практика», «Лабораторная работа», «Контрольная работа», «Семинар».
Вариант использования «Синхронизировать через интернет».
В данном варианте использования пользователь может выбрать
дальнейшее действие: импорт или экспорт данных.
Вариант использования начинается, когда пользователь нажимает на
кнопку «Синхронизация» в главном меню приложения.
Синхронизация осуществляется с сервисом Google Docs.
У варианта использования имеются три точки расширения: «Импортировать группу студентов», «Экспортировать группу студентов»,
«Экспортировать расписание».
19
Вариант использования «Импортировать группу студентов». Пользователь может импортировать группу со студентами из таблицы в сервисе
Google Docs в базу данных мобильного приложения.
Вариант использования «Экспортировать группу студентов».
Пользователь может экспортировать группу со студентами из базы данных
мобильного приложения в таблицу в сервисе Google Docs.
Вариант использования «Экспортировать расписание». Пользователь может экспортировать таблицу расписания из базы данных мобильного приложения в таблицу в сервисе Google Docs.
2.2. Подготовка среды разработки
Для разработки приложений для ОС Android требуется установить
Eclipse [10, 6]. Для данной задачи подходит версия Classic.
Установка Android SDK. Инструменты для разработки Android SDK
можно загрузить на сайте для разработчиков [5]. При установке можно выбрать требующиеся для разработки платформы и элементы SDK.
Установка плагина ADT к Eclipse. Плагин ADT дает доступ к инструментам Android SDK в среде разработки Eclipse. Для установки плагина ADT нужно открыть диалог установки плагина Eclipse через меню
«Help → Install new software» и в поле «Work with» вписать адрес загрузки
плагина «dl-ssl.google.com/android/eclipse/». Далее в таблице ниже отметить пункт «Developer Tools» и нажать «Next». Плагин также можно загрузить
и
установить
вручную
по
ссылке:
http://developer.android.com/sdk/eclipse-adt.html.
Установка JDK и JRE. Для разработки требуется среда исполнения
Java Runtime Environment (JRE), комплект разработчика Java Development
Kit (JDK), которые можно загрузить с официального сайта Oracle [12].
Создание виртуального устройства Android. Android tools включает
в себя эмулятор «Android Virtual Device» (AVD). Эмулятор AVD позволяет
тестировать приложения на виртуальном мобильном устройстве с
20
ОС Android. Эмулятор позволяет создавать несколько виртуальных
устройств с разными конфигурациями. Чтобы создать виртуальное устройство Android необходимо в меню «Window → Android SDK and AVD Manager» нажать «New», вписать имя виртуального устройства и его характеристики.
2.3. Создание приложения в Android SDK
Свойства проекта. При создании проекта нужно указать его свойства: Project Name (название проекта), Build Target (версия сборки), Application Name (название приложения), Package Name (название пакета), Create Activity (форма), и Min SDK Version (минимально допустимая версия
SDK).
В поле «версия сборки» указывается, какой API будет использоваться в проекте. От выбора зависит набор поддерживаемых функций и версии
ОС, на которых приложение сможет работать.
Название пакета определяет уникальное название проекта среди всех
программ в ОС Android. Название пакета обычно состоит из стандартного
названия
компании
и
названия
приложения.
Например
«com.mycompany.appname».
Форма (Activity) представляет собой отдельное окно с элементами
пользовательского интерфейса. Данное окно реализует некоторую функциональность приложения и может обрабатывать различные события системы. Управление формами в системе осуществляется при помощи стека
форм. Запущенная форма помещается в вершину стека, предыдущая открытая форма автоматически смещается на один уровень стека ниже, при
этом вся информация о предыдущей форме сохраняется. Каждая форма
имеет четыре состояния функционирования:
1) запущенное или активное - форма отображается на переднем
плане, т.е. активна;
21
2) приостановленное - форма не имеет фокуса, но при этом видна на
экране, т.е. частично перекрывается другой формой;
3) остановленное - форма полностью перекрыта другой формой, т.е.
не видна пользователю;
4) завершенное - форма, если она находилась в состоянии «приостановленное» или «остановленное», может быть выгружена из
памяти, или может быть завершен процесс, создавший форму.
При повторном запуске формы, ее предыдущее состояние восстановится.
Для формы существует три вида циклов:
 полный цикл – форма проходит через все этапы своей жизни от
запуска до завершения;
 цикл видимости – форма видна пользователю на экране, но не активна, то есть пользователь не может взаимодействовать с ней;
 цикл активности – форма является активной, и пользователь может взаимодействовать с ней.
Структура файлов проекта. На Рис. 7 показана структура файлов
проекта тестовой программы для работы с базой данных. Основными файлами проекта при разработке являются:
 Файл «/gen/R.java» – это специальный сгенерированный класс,
посредством которого осуществляется доступ к ресурсам приложения.
 Папка «/res/drawable-dpi/» содержит все графические файлы, используемые в приложении, для разных разрешений экрана.
 Папка «/res/layout/» содержит файлы, в которых в формате XML
описывается внешний вид форм.
 Файл «/res/layout/main.xml» содержит макет главной формы приложения, включая текстовые окна, метки, кнопки и другие элементы интерфейса.
22
 Папка «/res/values/» содержит файлы, содержащие общие константы для всего приложения.
 Файл «/res/values/strings.xml» – содержит все строковые константы, используемые в приложении.
 Папка «/src/» содержит файлы, содержащие исходный код программы на языке Java.
 Файл «/src/Hello.java» –содержит главные функции управления
приложением и функции запуска XML-файлов.
 Файл «/src/DBAdapter.java» – модуль данной программы, который содержит функции для работы с базой данных.
 Файл «AndroidManifest.xml», в котором перечисляются общие
свойства проекта, а также все формы (Activities), входящие в проект.
Рис. 7. Структура файлов проекта
23
2.4. Разработка базы данных
На Рис. 7 представлена схема базы данных приложения «Виртуальная ведомость». База данных состоит из восьми таблиц: «Students»,
«Groups», «Periods», «Courses»,
«Timetable», «GradeReport», «GTypes»,
«Reports».
База данных была реализована на основе встроенной СУБД SQLite.
Рис. 8. Схема базы данных приложения
2.4.1. Описание таблиц баз данных
Таблица «Students» содержит информацию о студентах: идентификатор студента в БД (student_ID), номер группы (group_ID), ФИО (student_name), телефон (phone), адрес электронной почты (email), и примечания (notes).
Таблица «Groups» содержит информацию о группе: идентификатор
группы (group_ID), название группы (group_name), факультет (department),
кафедра (subdepartment).
Таблица «Courses» содержит информацию о предметах: идентификатор
предмета
(course_ID),
название
предмета
(course_name)
и
примечания (notes).
24
Таблица «Periods» содержит данные о парах: номер пары (period_ID),
время ее начала (time_start), и время ее конца (time_end).
Таблица «Timetable» содержит еженедельное расписание: идентификатор ячейки в расписании (time_ID), номер недели (week), день недели
(dow), номер пары (period_ID), предмет (course_ID), группа (group_ID),
аудитория (room).
Таблица «GTypes» содержит пользовательские типы оценок: идентификатор типа (gradetype_ID), название (type_name), минимальная оценка
(min_grade), и максимальная оценка (max_grade).
Таблица «GradeReport» содержит информацию о ведомостях: идентификатор ведомости (gradereport_ID), метка (label), дата (day_date), идентификатор группы (group_ID), идентификатор предмета (course_ID), идентификатор типа оценки (gradetype_ID).
Таблица «Reports» содержит записи о посещаемости и успеваемости
студентов: идентификатор записи (report_ID), идентификатор студента
(student_ID), идентификатор ведомости (gradereport_ID), посещаемость
(attendance), оценка (grade).
25
2.4.2. SQL-запросы
Для создания таблиц базы данных, описанных в разделе 2.4.1, в программе использовались следующие запросы:
CREATE TABLE Students (
student_ID integer primary key autoincrement,
group_ID integer,
student_name text,
cellphone integer,
email text,
notes text,
foreign key (group_ID) references Groups (group_ID));
CREATE TABLE Groups (
group_ID integer primary key autoincrement,
group_name text,
department text,
subdepartment text);
CREATE TABLE Timetable (
time_ID integer primary key,
week integer,
dow integer,
period_ID integer,
group_ID integer,
course_ID integer,
room text,
foreign key (group_ID) references Groups (group_ID),
foreign key (period_ID) references Periods (period_ID),
foreign key (course_ID) references Courses (course_ID));
CREATE TABLE Periods (
period_ID integer primary key,
time_start text,
time_end text);
CREATE TABLE Courses (
course_ID integer primary key autoincrement,
course_name text,
notes text);
CREATE TABLE Gtypes (
gradetype_ID integer primary key autoincrement,
type_name text,
min_grade integer,
max_grade integer);
CREATE TABLE GradeReport (
gradereport_ID integer primary key autoincrement,
label text,
day_date text,
group_ID integer,
course_ID integer,
gradetype_ID integer,
foreign key (course_ID) references Courses (course_ID),
foreign key (group_ID) references Groups (group_ID),
foreign key (gradetype_ID) references Gtypes (gradetype_ID));
CREATE TABLE Reports (
report_ID integer primary key autoincrement,
student_ID integer,
gradereport_ID integer,
attendance integer,
grade integer,
foreign key (student_ID) references Students (student_ID),
foreign key (gradereport_ID) references GradeReport (gradereport_ID)
);
26
2.5. Реализация приложения
Программа была реализована на языке Java [8, 14] в среде разработки
Eclipse с помощью инструментов для разработки Android SDK. Разработка
программы производилась на основе изученных методов разработки приложений для ОС Android [4, 6, 9, 11, 16, 17, 18]. Разработанный проект содержит файлы с исходным кодом на языке Java , представленные на Рис. 9,
и файлы с описанием интерфейса программы на языке XML, представленные на Рис. 10.
Рис. 9. Файлы с исходным кодом
Рис. 10. Файлы с описанием интерфейса
27
Каждый файл с исходным кодом содержит реализацию отдельного
класса программы. Названия классов соответствуют названиям файлов, в
которых они расположены.
Классы
«AddGroup»,
«AddGrReportTabs»,
«AddLesson»,
«AddReport», «AddStudent», «EditGroup», «EditLesson», «EditStudent»,
«GradeReport», «GradeReportTabs», «Groups», «MainActivity», «Reports»,
«Students», «TimeTable», «TimeTableTabs» и «ViewStudent» наследуются от
базового класса Activity, входящего в комплект средств разработки Android SDK, и реализуют формы приложения. В них реализуются алгоритмы
взаимодействия пользователя с элементами интерфейса приложения. Вид
интерфейса каждой формы описан в соответствующем ей XML файле из
файлов, представленных на Рис. 10.
Классы «DBAdapter», «TimeTableAdapter», «FillAttAdapter», «FillGrAdapter» реализуют адаптеры, которые используются в других классах
приложения. Адаптеры являются объектами, которые соединяют элементы
интерфейса и данные для этих элементов. Класс «DBAdapter» наследуется
от базового класса «SQLiteOpenHelper» и реализует взаимодействие с базой данных приложения, включая инициализацию базы данных, подключение к базе данных, создание таблиц, выполнение запросов к базе данных.
Класс «TimeTableAdapter» наследуется от базового класса «BaseAdapter» и
реализует
наполнение
данными
таблицы
расписания,
Класс
«FillAttAdapter» наследуется от базового класса «BaseAdapter» и реализует
наполнение
данными
таблицы
посещаемости,
Класс «FillGrAdapter»
наследуется от базового класса «BaseAdapter» и реализует наполнение
данными таблицы успеваемости. В реализации классов программы также
используется стандартный адаптер «SimpleAdapter» для наполнения списков данными.
Интерфейс разработанной программы представлен в приложении 2.
28
Запуск и отладка приложения производилась на эмуляторе, входящем в состав комплект средств разработки Android SDK, а также на реальном мобильном устройстве HTC HD2 c ОС Android версии 2.3.
Установочный файл приложения и исходный код размещены на сайте в интернете. Загрузить мобильное приложение можно по URL-адресу
http://ok.susu.ru/diploma/GradeReport.apk или используя QR код, представленный на Рис. 11. Загрузить исходный код программы можно по адресу
http://ok.susu.ru/diploma/GradeReport.rar
Рис. 11. QR код для загрузки приложения
2.6. Тестирование системы
Для тестирования разработанного приложения были проведены следующие тесты c тестовыми данными, указанными в приложении 1:
1)
создание группы
2)
удаление группы
3)
добавление студентов в группу
4)
удаление студента
5)
редактирование информации о студенте
6)
добавление занятий в расписание
7)
удаление занятий из расписания
8)
создание ведомости посещаемости и успеваемости для группы
9)
проставление оценок и присутствия
10) просмотр созданных ведомостей посещаемости и успеваемости
На всех проведенных тестах полученные результаты совпали
с ожидаемыми.
29
Заключение
В рамках дипломной работы было разработано мобильное приложение «Виртуальная ведомость» для ОС Android для ведения ведомостей
успеваемости и посещаемости студентов. В ходе работы были изучены методы разработки мобильных приложений для ОС Android, а также методы
использования Google Docs API.
ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ
1. Изучена технология программирования и архитектура ОС Android.
2. Разработано мобильное приложение для ОС Android.
3. Разработана база данных приложения для SQLite.
4. Проведено тестирование разработанного мобильного приложения.
5. Установочный файл приложения и исходный код размещены на сайте в Интернете и доступны для загрузки.
30
Литература
1. Alto P. Google’s Android becomes the world’s leading smart phone platform.
URL: http://www.canalys.com/pr/2011/r2011013.html (дата обращения:
23.03.2011).
2. Android Developer Guide. Официальный сайт для разработчиков
Android. URL: http://developer.android.com/guide/basics/what-isandroid.html (дата обращения: 23.03.2011).
3. Android Overview. URL:
http://www.openhandsetalliance.com/android_overview.html (дата
обращения: 23.03.2011).
4. Android Patterns - Interaction Design & Usability. URL:
http://www.androidpatterns.com/ (дата обращения: 01.05.2011)
5. Android SDK. Официальный сайт для разработчиков Android. URL:
http://developer.android.com/sdk/index.html (дата обращения: 23.03.2011).
6. Beckley A. Android design guidelines, version 1. URL:
http://www.mutualmobile.com/wpcontent/uploads/2011/03/MM_Android_Design_Guidelines.pdf (дата
обращения: 01.05.2011)
7. Burnette E. Hello, Android. Introducing Google’s Mobile Development Platform. - Pragmatic Programmers, LLC, 2008.
8. Conder S., Darcey L. Learn Java for Android Development. URL:
http://mobile.tutsplus.com/series/learn-java-android-development/ (дата
обращения: 20.04.2011).
9. DiMarzio J. Android, A Programmers Guide. - The McGraw-Hill. 2008
10.Официальный сайт Eclipse. URL: http://www.eclipse.org/ (дата
обращения: 23.03.2011).
31
11.Gramlich N. andbook. Android Programming. URL:
http://andbook.anddev.org/files/andbook.pdf
12.Java. Официальный сайт Oracle. URL:
http://www.oracle.com/technetwork/java/javase/downloads/index.html (дата
обращения: 23.03.2011).
13.Rumbaugh J. Getting Started – Using Use Cases to Capture Requirements. //
Journal of Object Oriented Programming. - 1994. Vol. 7, № 5. P. 8–12.
14.Vogel L. Android Development Tutorial. URL:
http://www.vogella.de/android.html (дата обращения: 20.04.2011)
15.Буч Г., Рамбо Д., Якобсон И. Язык UML. Руководство пользователя. 2-е
изд. - М.: ДМК Пресс, 2007.
16.Голощапов А.Л. Google Android: Программирование для мобильных
устройств. - СПб.: БХВ-Петербург, 2011.
17.Хашими С., Коматинени С., Маклин Д. Разработка приложений для Android. - Питер, 2011.
18.Эйблсон Ф. Введение в разработку для платформы Android. Техническая библиотека IBM developerWorks URL:
http://www.ibm.com/developerworks/ru/library/os-android-devel/index.html
(дата обращения: 10.04.2011)
19.Эйблсон Ф. Разработка приложений для платформы Android в среде
Eclipse . Техническая библиотека IBM developerWorks URL:
http://www.ibm.com/developerworks/ru/edu/os-eclipse-android/index.html
(дата обращения: 10.04.2011)
32
Приложение 1. Тестовые данные
Далее представлены тестовые данные, которые будут заноситься в
таблицы базы данных при тестировании приложения.
Табл. 1. Таблица «Группы»
ID группы
Название
Факультет
Кафедра
1
ВМИ426
ВМИ
СП
2
ММ123
Механико-Математический
3
ММ555
ММ
Табл. 2. Таблица «Студенты»
ID студента
Имя студента
ID группы
Телефон
1
Овчаренко Кирилл
1
81234567890
2
Матвеев Михаил
1
123456
3
Морозов Александр
1
4815162342
4
Рогов Дмитрий
1
111555
5
Свирихин Алексей
1
6
Иванов Иван
2
Табл. 3. Таблица «Предметы»
ID предмета
Название предмета
1
Математика
2
Физика
3
Архитектура ЭВМ
Табл. 4. Таблица «Расписание»
Номер недели День недели
Номер пары
ID предмета
ID группы
аудитория
1
1
2
1
1
770
2
1
2
3
1
240
1
3
1
2
1
450
0
2
3
1
1
770
33
Табл. 5. Таблица «Ведомость»
ID ведомости
Дата
ID группы
ID предмета
Тип оценки
1
06-06-2011
1
1
Пятибальн.
2
07-06-2011
1
2
Зачет.
Табл. 6. Таблица «Записи ведомости»
ID студента
ID ведомости
Посещение
Оценка
1
1
1
5
2
1
1
4
3
1
0
-
4
1
1
5
5
1
0
-
1
2
1
1
2
2
1
1
3
2
1
0
4
2
1
0
5
2
1
1
34
Приложение 2. Интерфейс программы
Рис. 12. Главное меню приложения
Рис. 13. Список групп
Рис. 14. Форма добавления группы
35
Рис. 15. Форма добавления студента
Рис. 16. Список студентов группы
Рис. 17. Контекстное меню
36
Рис. 18. Форма добавления занятия
Рис. 19. Таблица расписания
Рис. 20. Форма добавления ведомости
37
Рис. 21. Просмотр и проставление посещаемости
Рис. 22. Просмотр и проставление оценок
Рис. 23. Список Ведомостей
38
Download