Разработка приложения под Android-платформу "Расписание городского транспорта г. Гомеля"
Городские информационные системы и мобильные интерфейсы, их значение для развития туризма. Основные концепции информационной визуализации, используемые в ГИС. Средства разработки и описание проекта приложения для операционной системы Google Android.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 08.06.2013 |
Размер файла | 3,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Республики Беларусь
Учреждение образования "Гомельский государственный университет имени Франциска Скорины"
Математический факультет
Кафедра вычислительной математики и программирования
Дипломная работа
Разработка приложения под Android-платформу "Расписание городского транспорта г. Гомеля"
Исполнитель: студент группы ПО-51
А.Н. Чемезов
Научный руководитель: ассистент
В.О. Родченко
Рецензент: к.ф.-м.н., доцент
В.Л. Мережа
Гомель 2013
Содержание
- Введение
- 1. Городские информационные системы и мобильные интерфейсы
- 1.1 Введение в ГИС
- 1.2 Организация данных в ГИС
- 1.3 Что ГИС могут сделать для туризма
- 1.4 Предметно ориентированные ГИС
- 1.5 Основные концепции информационной визуализации, используемые в ГИС
- 1.6 ГИС и мобильные интерфейсы
- 2. Инструментальные средства разработки
- 2.1 Операционная система Google Android
- 3. Описание проекта приложения
- 3.1 Структура программы
- 3.2 Описание компонентов программы
- 3.3 Программная реализация
- Заключение
- Список использованных источников
- Приложение
Введение
Главное направление совершенствования мобильных телефонов можно определить одним понятием: конвергенция технологий. Мобильные телефоны объединили в себе едва ли не всё, что можно и разумно объединять под корпусом одного устройства.
Глядя на сегодняшний мобильный телефон, на какую-нибудь до предела функциональную и модную модель, можно подумать, что это - предел совершенства, но вспомните, как мы смотрели, например, на "кирпич" от ericsson году так в 1999-м и думали то же самое. Наверное, глядя на телефон в 2020-м, мы с улыбкой будем вспоминать "совершенные" аппараты 2013-го.
Основные задачи телефона прошлого - совершать и принимать звонки, писать sms. Сегодня эти задачи дополнилась работой с интернет-ресурсами, прослушиванием музыки, фотосъемкой, использованием игр и приложений. Мобильный будущего, скорее всего, добавит к списку основных задач просмотр телепрограмм, управление различной техникой, функции контроля состояния здоровья своего владельца и возможно многое другое.
Некоторые из перечисленных функций уже существуют в современных телефонах, но пока они относятся к разряду экзотических, а прогресс в области их создания, скорее всего, переведёт наиболее нужные из них в область обыденных. Скорее всего, у аппаратов будущего могут появиться такие возможности, о которых мы сегодня даже не подозреваем.
В будущем поменяются технологии изготовления телефонов. Изменения технологий могут быть настолько существенными, что, увидев сотовый телефон 2016 года, не сразу поймешь, что это такое. Причём особая прелесть ожидания перемен заключается в том, что, благодаря научно-техническим революциям могут появиться такие устройства, которые сейчас не то что кажутся невозможными, а просто не рассматриваются нами, находясь "за горизонтом" нашего воображения.
Сегодня на территории нашей страны активно эксплуатируется больше 10 млн. номеров мобильных операторов, о чем еще десять лет назад отечественные провайдеры могли только мечтать. Рынок мобильных технологий развивается настолько быстро, что за его изменениями поспевают не все, даже очень крупные компании. Последние пять лет показали, что современный оператор связи должен быть максимально гибким, держать руку на пульсе мировых новинок и изобретений. Тот, кто исповедует консервативный подход к развитию, достаточно быстро начнет терять рыночные позиции, будучи вынужденным измениться или уступить место другим компаниям.
Эксперты обращают внимание потребителей на тот факт, что сейчас на рынке доступно несколько мобильных платформ, стремительную популярность среди которых в последнее время приобретает iOS и Android. На рынке США компания Apple уже давно заняла пальму первенства в сегменте дорогих и презентабельных мобильных устройств, постоянно удивляя клиента интересными новинками. На примере Apple, видно как кардинально может измениться тот или иной рынок с появлением новых "девайсов".
Перспективы развития рынка мобильных технологий весьма благоприятны, поскольку изменяется не столько сам рынок, сколько потребитель. Если вчера мечтой многих был безлимитный тариф, то сегодня с широким распространением мобильного интернета прерогативы существенно изменились. С появлением на отечественном рынке 3G решений, произошло заметное перераспределение клиентов в пользу тех компаний, которые были готовы к запуску данной услуги. Современному владельцу мобильного устройства уже недостаточно просто общаться, ему нужен круглосуточный доступ в глобальную сеть, посредством которой можно не только находить нужную информацию, но и общаться с друзьями, сообщать о своем местонахождении и многое другое.
Что бы ни говорили, а мобильность сегодня - явление глобальное, проникающее во многие сферы нашей жизни. Ныне потребитель ищет не просто мобильный телефон, он внимательно изучает условия, соотнося их с требованиями современного рынка. Именно поэтому можно утверждать, что развитие мобильных технологий будет только ускоряться.
Ниже в дипломной работе проводится исследование в области городских информационных систем на базе мобильных интерфейсов. Будут изучены подходы к реализации подобных систем, основные методики геокодирования в информационных системах ориентированных на определенную группу пользователей. Результатом дипломной работы станет прототипная реализация приложения (Расписание городского транспорта г. Гомеля) для мобильных устройств на платформе Android. В заключении рассматриваются перспективы данного исследования.
1. Городские информационные системы и мобильные интерфейсы
Материал для данного раздела основан на [1], [2], [3],[4].
1.1 Введение в ГИС
Географическая информационная система (ГИС, геоинформационная система) - программно-аппаратный комплекс, предназначенный для сбора, управления, анализа и отображения пространственно распределенной информации. ГИС - не только и не столько информационные системы для географии, сколько информационные системы с географически организованной информацией. В простейшем варианте географические информационные системы - сочетание обычных баз данных (атрибутивной информации) с электронными картами, то есть мощными графическими средствами.
Основная идея ГИС - связь данных на карте и в базе данных. ГИС - это и аналитические средства для работы с любой координатно-привязанной информацией. В принципе, ГИС можно рассматривать как некое расширение концепции баз данных. В этом смысле ГИС фактически представляет собой новый уровень и способ интеграции и структурирования информации. ГИС предлагает совершенно новый путь развития картографии. Преодолеваются основные недостатки обычных карт - их статичность и ограниченная емкость как носителя информации. В последние десятилетия бумажные карты из-за перегруженности информацией становятся нечитабельными. ГИС же обеспечивает управление визуализацией информации. Появляется возможность выводить (на экран, на твердую копию) только те объекты или их множества, которые интересуют нас в данный момент. Фактически осуществляется переход от сложных комплексных карт к серии взаимосвязанных частных карт. При этом улучшается структурированность информации, а, следовательно, повышается эффективность ее обработки и анализа. В ГИС карта оживает и становится действительно динамическим объектом в смысле:
* изменяемости масштаба;
* преобразования картографических проекций;
* варьирования объектным составом карты;
* возможности опрашивать через карту в режиме реального времени многочисленные базы данных;
* изменения способа отображения объектов (цвет, тип линии и т.п.), в том числе и определения символогии через значения атрибутов, то есть синхронизации визуализации с изменениями в базах данных;
* легкости внесения любых изменений.
ГИС являются классом информационных систем, имеющим свои особенности. Они построены с учетом закономерностей геоинформатики и методов, применяемых в этой науке. ГИС как интегрированные информационные системы предназначены для решения различных задач науки и производства на основе использования пространственно - локализованных данных об объектах и явлениях природы и общества. Неразрывно с ГИС связаны геоинформационные технологии. Геоинформационные технологии можно определить как совокупность программно-технологических средств получения новых видов информации об окружающем мире. Геоинформационные технологии предназначены для повышения эффективности: процессов управления, хранения и представления информации, обработки и поддержки принятия решений.
ГИС имеет ряд особенностей, которые необходимо учитывать при изучении этих систем. Одна из особенностей ГИС и геоинформационных технологий состоит в том, что они являются элементами информатизации общества. Это заключается во внедрении ГИС и геоинформационных технологий в науку, производство, образование и применение в практической деятельности получаемой информации об окружающей реальности. Геоинформационные технологии являются новыми информационными технологиями, направленными на достижение различных целей, включая информатизацию производственно-управленческих процессов. Другой особенностью ГИС является то, что как информационные системы они являются результатом эволюции этих систем и поэтому включают в себя основы построения и функционирования информационных систем. ГИС как система включает множество взаимосвязанных элементов, каждый из которых связан прямо или косвенно с каждым другим элементом, а два любые подмножества этого множества не могут быть независимыми не нарушая целостность, единство системы.
Автоматизированной информационной системой (АИС) называют организационно-техническую систему, использующую автоматизированные информационные технологии в целях обучения, информационно-аналитического обеспечения научно-инженерных работ и процессов управления. В соответствии с данным определением ГИС попадает в класс автоматизированных информационных систем.
Также особенностью ГИС является то, что она является интегрированной информационной системой. Интегрированные системы построены на принципах интеграции технологий различных систем. Они зачастую применяются настолько в разных областях, что их название часто не определяет все их возможности и функции. По этой причине не следует связывать ГИС с решением задач только геодезии или географии. "ГЕО" в названии геоинформационных систем и технологий определяет объект исследований, а не предметную область использования этих систем. Необходимо рассмотреть место ГИС среди других автоматизированных систем, что требует дать краткую классификацию этих систем. Выбирая различные аспекты рассмотрения автоматизированных информационных систем можно дать различные их различные классификации.
По принадлежности к конкретной предметной области можно подразделить информационные системы на три класса: технические, экономические, информационно-аналитические. К техническим относят автоматизированные системы научных исследований (АСНИ), системы автоматизированного проектирования (САПР), гибкие производственные системы (ГПС), робототехнические комплексы (РТК) и др. Информационно-аналитические автоматизированные системы включают: автоматизированные справочно-информационные системы (АСИС), базы данных (БД), экспертные системы (ЭС), статистические информационные системы (СТИС) и т.п. Примером экономических систем могут служить автоматизированные системы управления (АСУ), бухгалтерские информационные системы (БУ-ИС), банковские информационные системы (БИС), биржевые информационные системы (БИС), маркетинговые информационные системы (МИС) и др.
Особенностью ГИС как интегрированной системы является то, что она интегрирует технологии трех перечисленных выше классов систем: технических, информационно-аналитических и экономических. Следовательно, ГИС могут быть использованы как любая из этих систем.
1.2 Организация данных в ГИС
гис android мобильный приложение
Тематические данные хранятся в ГИС в виде таблиц, поэтому проблем с их хранением и организацией в базах данных не возникает. Наибольшие проблемы представляет хранение и визуализация графических данных. Основой визуального представления данных при помощи ГИС-технологий служат специальные графические модели. Они подразделяются на векторные и растровые модели. В общем случае модели пространственных (координатных) данных могут иметь векторное или растровое (ячеистое) представление, содержать или не содержать топологические характеристики. Этот подход позволяет классифицировать модели по трем типам: растровая модель; векторная нетопологическая модель; векторная топологическая модель. Все эти модели взаимно преобразуемы. Тем не менее, при получении каждой из них необходимо учитывать их особенности. В ГИС форме представления координатных данных соответствуют два основных подкласса моделей - векторные и растровые (ячеистые или мозаичные). Возможен класс моделей, которые содержат характеристики, как векторов, так и мозаик. Они называются гибридными моделями. Между векторными и растровыми изображениями имеется различие, характерное именно для ГИС. Растровые изображения отображают поля данных, т.е. носят полевой характер. Векторные изображения в ГИС, как правило, отображают геоинформационные объекты, т.е. носят объектный характер.
Если векторная модель дает информацию о том, где расположен тот или иной объект, то растровая - информацию о том, что расположено в той или иной точке территории. Это определяет основное назначение растровых моделей - непрерывное отображение поверхности.
Растровые модели
В растровых моделях дискретизация осуществляется наиболее простым способом - весь объект (исследуемая территория) отображается в пространственные ячейки, образующие регулярную сеть. При этом каждой ячейке растровой модели соответствует одинаковый по размерам, но разный по характеристикам (цвет, плотность) участок поверхности объекта. В ячейке модели содержится одно значение, усредняющее характеристику участка поверхности объекта. В теории обработки изображений эта процедура известна под названием пикселизация.
Основное назначение растровых моделей - непрерывное отображение поверхности. В растровых моделях в качестве атомарной модели используют двухмерный элемент пространства - пиксель (ячейка). Упорядоченная совокупность атомарных моделей образует растр, который, в свою очередь, является моделью карты или геообьекта. Растровые модели позволяют отображать полутона и цветовые оттенки. Как правило, каждый элемент растра или каждая ячейка должны иметь лишь одно значение плотности или цвета. Это применимо не для всех случаев. Например, когда граница двух типов покрытий может проходить через центр элемента растра, элементу дается значение, характеризующее большую часть ячейки или ее центральную точку. Ряд систем позволяет иметь несколько значений для одного элемента растра.
Для растровых моделей существует ряд характеристик: разрешение, ориентация, зоны, значение, положение. Разрешение - минимальный линейный размер наименьшего участка отображаемого пространства (поверхности), отображаемый одним пикселем. Пиксели обычно представляют собой прямоугольники или квадраты, реже используются треугольники и шестиугольники. Более высоким разрешением обладает растр с меньшим размером ячеек. Высокое разрешение подразумевает обилие деталей, множество ячеек, минимальный размер ячеек. Значение - элемент информации, хранящийся в элементе растра (пикселе) или легенде. Положение обычно задается упорядоченной парой координат (номер строки и номер столбца), которые однозначно определяют положение каждого элемента отображаемого пространства в растре.
Проводя сравнение векторных и растровых моделей, отметим удобство векторных для организации и работы со взаимосвязями объектов. Тем не менее, используя простые приемы, например, включая взаимосвязи в таблицы атрибутов, можно организовать взаимосвязи и в растровых системах. Необходимо остановиться на вопросах точности отображения в растровых моделях. В растровых форматах в большинстве случаев неясно, относятся ли координаты к центральной точке пикселя или к одному из его углов. Поэтому точность привязки элемента растра определяют как 1/2 ширины и высоты ячейки.
Растровые модели имеют следующие достоинства:
· Растр не требует предварительного знакомства с явлениями, данные собираются с равномерно расположенной сети точек, что позволяет в дальнейшем на основе статистических методов обработки получать объективные характеристики исследуемых объектов. Благодаря этому растровые модели могут использоваться для изучения новых явлений, о которых не накоплен материал. В силу простоты этот способ получил наибольшее распространение;
· Растровые данные проще для обработки по параллельным алгоритмам и этим обеспечивают более высокое быстродействие по сравнению с векторными;
· Некоторые задачи, например создание буферной зоны, много проще решать в растровом виде;
· Многие растровые модели позволяют вводить векторные данные, в то время как обратная процедура весьма затруднительна для векторных моделей;
· Процессы растеризации много проще алгоритмически, чем процессы векторизации, которые зачастую требуют экспертных решений.
Векторные модели
Векторные модели строятся на векторах, занимающих часть пространства в отличие от занимающих все пространство растровых моделей. Это определяет их основное преимущество - требование на порядки меньшей памяти для хранения и меньших затрат времени на обработку и представление, а главное более высокая точность позиционирования и представления данных.
При построении векторных моделей объекты создаются путем соединения точек прямыми линиями, дугами окружностей, полилиниями. Площадные объекты - ареалы задаются наборами линий. Векторные модели используются преимущественно в транспортных, коммунальных, маркетинговых приложениях ГИС.
Системы ГИС, работающие в основном с векторными моделями, получили название векторных ГИС. В реальных ГИС имеют дело не с абстрактными линиями и точками, а с объектами, содержащими линии и ареалы, занимающими пространственное положение, а также со сложными взаимосвязями между ними. Поэтому полная векторная модель данных ГИС отображает пространственные данные как совокупность следующих основных частей: геометрические (метрические) объекты (точки, линии и полигоны); атрибуты - признаки, связанные с объектами; связи между объектами.
Векторные модели (объектов) используют в качестве элементарной модели последовательность координат, образующих линию. Линией называют границу, сегмент, цепь или дугу. Основные типы координатных данных в классе векторных моделей определяются через базовый элемент линия следующим образом. Точка определяется как выродившаяся линия нулевой длины, линия - как линия конечной длины, а площадь представляется последовательностью связанных между собой отрезков. Каждый участок линии может являться границей для двух ареалов либо двух пересечений (узлов). Отрезок общей границы между двумя пересечениями (узлами) имеет разные названия, которые являются синонимами в предметной области ГИС. Специалисты по теории графов предпочитают слову линия термин ребро, а для обозначения пересечения употребляют термин вершина. Национальным стандартом США официально санкционирован термин цепь. В некоторых системах (arclnfo, geodraw) используется термин дуга. В отличие от обычных векторов в геометрии дуги имеют свои атрибуты. Атрибуты дуг обозначают полигоны по обе стороны от них. По отношению к последовательному кодированию дуги эти полигоны именуются левый и правый. Понятие дуги {цепи, ребра) является фундаментальным для векторных ГИС векторные модели получают разными способами. Один из наиболее распространенных - векторизация сканированных (растровых) изображений. Векторизация - процедура выделения векторных объектов с растрового изображения и получение их в векторном формате. Для векторизации необходимо высокое качество (отчетливые линии и контуры) растровых образов. Чтобы обеспечить требуемую четкость линий иногда приходится заниматься улучшением качества изображения.
При векторизации возможны ошибки, исправление которых осуществляется в два этапа:
1) корректировка растрового изображения до его векторизации;
2) корректировка векторных объектов.
В векторных форматах набор данных определен объектами базы данных. Векторная модель может организовывать пространство в любой последовательности и дает "произвольный доступ" к данным. В векторной форме легче осуществляются операции с линейными и точечными объектами, например, анализ сети - разработка маршрутов движения по сети дорог, замена условных обозначений. В растровых форматах точечный объект должен занимать целую ячейку. Это создает ряд трудностей, связанных с соотношением размеров растра и размера объекта. Что касается точности векторных данных, то здесь можно говорить о преимуществе векторных моделей перед растровыми, так векторные данные могут кодироваться с любой мыслимой степенью точности, которая ограничивается лишь возможностями метода внутреннего представления координат. Обычно для представления векторных данных используется 8 или 16 десятичных знаков (одинарная или двойная точность).
1.3 Что ГИС могут сделать для туризма
Пожалуй, главным козырем ГИС является наиболее "естественное" (для человека) представление как собственно пространственной информации, так и любой другой информации, имеющей отношение к объектам, расположенным в пространстве (т.н. атрибутивной информации). Способы представления атрибутивной информации различны: это может быть числовое значение с датчика, таблица из базы данных (как локальной, так и удаленной) о характеристиках объекта, его фотография, или реальное видеоизображение, наконец, звуковая запись.
Таким образом, ГИС могут помочь везде, где используется пространственная информация и информация об объектах, находящихся в определенных местах пространства.
Если же посмотреть на некоторые области и экономический эффект применения ГИС, то они могут делать пространственные запросы и проводить анализ. Способность ГИС проводить поиск в базах данных и осуществлять пространственные запросы позволила многим компаниях заработать миллионы долларов.
Так, например, на создание туристско-ориентированной геоинформационной системы города пинава (pinawa) и окружающих его территорий (канада) было затрачено $82,500 за 3 года, а за один год система приносит $5 000 000.
Гис помогает сократить время получения ответов на запросы клиентов; выявлять территории подходящие для требуемых мероприятий; выявлять взаимосвязи между различными параметрами (например, почвами, климатом и урожайностью с/х культур);
1.4 Предметно ориентированные ГИС
Зачастую имеющие статус государственных, региональные ГИС (regional gis), субрегиональные ГИС и локальные, или местные ГИС (local gis).
Гис различаются предметной областью информационного моделирования, к примеру, городские ГИС, или муниципальные ГИС, МГИС (urban gis), природоохранные ГИС (environmental gis), туристические т.п.
Среди них особое наименование, как особо широко распространенные, получили земельные информационные системы. Проблемная ориентация ГИС определяется решаемыми в ней задачами (научными и прикладными), среди них инвентаризация ресурсов (в том числе кадастр), анализ, оценка, мониторинг, управление и планирование, поддержка принятия решений. Интегрированные ГИС, ИГИС (integrated gis, igis) совмещают функциональные возможности ГИС и систем цифровой обработки изображений (данных дистанционного зондирования) в единой интегрированной среде.
Научные, технические, технологические и прикладные аспекты проектирования, создания и использования ГИС изучаются геоинформатикой.
1.5 Основные концепции информационной визуализации, используемые в ГИС
Информационная визуализация - это процесс формирования ментальной модели данных, посредством чего обеспечивается представление об их внутренней структуре. Задача информационной визуализации представление и выявление (возможно скрытых) взаимоотношений, структур и отдельных характеристик изучаемых данных.
В связи с этим можно рассмотреть набор операций информационной визуализации, состоящий из следующих пунктов:
общий обзор;
изменение размера фрагмента (зуминг);
фильтрация;
детализация по запросу;
установление зависимостей по определенному признаку;
извлечение данных по заданному признаку;
сохранение истории (то есть запись последовательности операций).
Общий обзор дает краткий обзор всей совокупности данных. Он также позволяет видеть полную совокупность плюс подробное представление интересующего фрагмента. За счет зуминга можно увеличить или уменьшить масштаб фрагмента изображения, выбранного в общем обзоре. Фильтрация отбрасывает неинтересные элементы, позволяя пользователям управлять содержанием экрана. При детализации пользователь выбирает элемент или группу элементов и получает детальную информацию о них. Для установления зависимости по признаку пользователь назначает некий признак (атрибут), который позволяет отобрать нужные элементы. Упорядочение элементов массива также строится на основе установления связи с некоторыми признаками (дата записи, алфавитный порядок). Извлечение данных по признаку позволяет извлекать подмножество элементов, удовлетворяющих назначенному признаку (возраст, пол, хобби) и работать с ними. И, наконец, сохранение истории позволяет в случае необходимости последовательно отменить ряд предыдущих команд и вернуться к первоначальному состоянию, например, к первичному тексту документа.
1.6 ГИС и мобильные интерфейсы
Мобильные ГИС являются важным компонентом развитых геоинформационных систем и предназначены для применения непосредственно вне помещения. Они объединяют gps-приемник, мобильный компьютер и программное обеспечение, позволяющие определять местоположение на местности, визуализировать пространственные данные, обращаться к географическим базам данных в реальном времени, осуществлять сбор и анализ данных непосредственно на изучаемых в поле объектах. Эти системы быстро развиваются и применяются в широком спектре задач, связанных с работами на местности.
В настоящий период отчетливо наметилась тенденция интеграции спутниковых систем позиционирования с мобильными компьютерами. На базе объединения gps-приемника в одном корпусе с мощным карманным компьютером, работающим под управлением специализированного программного обеспечения, создаются высокоэффективные мобильные ГИС.
2. Инструментальные средства разработки
Во время проведения исследований было решено разрабатывать наше приложение для мобильных устройств работающих под управлением платформы android, т.к. данная платформа по мнению аналитиков и экспертов захватывает рынок мобильных устройств постепенно вытесняя с него общепризнанных лидеров.
Материал взят из [5], [6], [7], [8].
2.1 Операционная система Google Android
Система Android - это программный стек для мобильных устройств, который включает операционную систему, программное обеспечение промежуточного слоя (middleware), а также основные пользовательские приложения (e-mail-клиент, календарь, карты, браузер, контакты и др.).
Уровень ядра
Ядро является слоем абстракции между оборудованием и остальной частью программного стека. На этом уровне располагаются основные службы типа управления процессами, распределения памяти и управления файловой системой. Ядро android основано на ядре Linux 2.6, но сама система Android не является Linux-системой в чистом виде, имеет некоторые отличия и содержит дополнительные расширения ядра, специфичные для Android, - свои механизмы распределения памяти, взаимодействие между процессами и др. Основные компоненты уровня ядра:
· Драйвер межпроцессорного взаимодействия (ipc driver);
· Драйвер управления питанием (android power management);
· Набор драйверов для оборудования, входящего в состав мобильного устройства.
Рисунок 2.1 - Архитектура системы Android
Рассмотрим теперь кратко основные компоненты ядра android:
Драйвер IPC
Приложения и службы могут работать в защищенных отдельных процессах, которые должны общаться между собой и иметь доступ к общим данным. Платформа android обеспечивает механизм ipc (inter-process communication), который является основным механизмом взаимодействия между процессами.
Драйвер IPC обеспечивает следующую функциональность:
· Взаимодействие процессов;
· Создание и обработку пулов потоков в процессах;
· Подсчет и отображение ссылок на объекты в других процессах;
· Синхронные запросы между процессами.
Управление энергопотреблением
Система управления энергопотреблением (android power management) разработана на основе стандартного драйвера управления питанием linux, но оптимизирована для мобильных устройств с учетом их специфических особенностей.
Основная функция системы управления энергопотреблением - экономное использование батареи мобильного устройства. Драйвер переводит системы в "спящий режим" с минимальным потреблением мощности процессором, если приложения и службы не используются.
Драйверы оборудования
Программный стек android разработан с учетом необходимой гибкости, включая работу со многими дополнительными компонентами, имеющимися в мобильных устройствах. Эти компоненты в значительной степени полагаются на доступность определенных аппаратных средств на данном устройстве. Они предоставляют дополнительную фунциональность для мобильных устройств (сенсорный экран, камера, gps, акселерометр и т.д.).
Уровень библиотек
Следующий уровень над ядром Linux является набором библиотек c/c++ типа openGL, webkit, freetype, ssl, библиотеки поддержки libc, базы данных SQLite и мультимедиабиблиотек (media framework). Системная библиотека базируется на berkeley software distribution (bsd) и разработана для мобильных устройств на основе Linux.
Следующий уровень над ядром Linux включает набор библиотек c/c++, используемых различными компонентами ос. Для разработчиков доступ к функциям этих библиотек реализован через использование application framework - каркаса приложений. Библиотеки этого уровня по своему функциональному назначению можно разделить на следующие группы:
· Системная библиотека с;
· Менеджер поверхностей;
· Функциональные библиотеки с/с++.
Системная библиотека libc
Компания Google разработала собственную с-библиотеку (libc) - bionic. Это было необходимо по следующим причинам:
· Библиотека будет загружаться в каждый процесс и, следовательно, должна иметь маленький размер. Библиотека bionic имеет размер около 200 кбайт, что в два раза меньше размера glibc;
· Ограниченная мощность центрального процессора мобильного устройства. Это означает, что библиотека должна быть оптимизирована для максимального быстродействия.
Библиотека bionic имеет встроенную поддержку важных для android системных служб и регистрацию системных событий. Библиотека bionic не поддерживает определенные функциональности, например исключения с++, и несовместима с gnu libc и стандартом posix.
Менеджер поверхностей
Система android использует композитный менеджер поверхностей, похожий на compiz (композитный менеджер для x window system, использующий для ускорения 3d-графику opengl). Вместо того чтобы рисовать непосредственно в буфер экрана, команды рисунка входят за кадром в битовые массивы, которые потом объединяются с другими битовыми массивам, чтобы сформировать изображение, которое видит пользователь. Это позволяет системе создавать все виды интересных эффектов, например прозрачные окна и причудливые переходы.
Менеджер поверхностей обрабатывает весь рендеринг поверхностей на фреймовый буфер. Менеджер может объединить 2d- и 3d-поверхности и поверхности от нескольких приложений. Поверхности передаются как буферы компоновкой ipc-запросов. Менеджер поверхностей использует двойную буферизацию, используя транспонирования страницы. Системные интеграторы могут подключать аппаратное 2d-ускорение, используя плагины khronos. Обработка графической информации менеджером поверхностей представлена на рисунке 2.2
Рисунок 2.2 - Обработка графической информации менеджером поверхностей
Функциональные библиотеки
Android включает ряд библиотек с/с++, используемых различными компонентами системы. Далее приводятся основные функциональные библиотеки системы.
· Мультимедиа (media framework). Эти библиотеки ответственны за регистрацию и воспроизведение аудио- и видеоформатов. Основаны на packetvideo opencore и предназначены для поддержки популярных аудио- и видеоформатов (mpeg4, h.264, mp3 и др.).
· SQLite - процессор баз данных, доступный всем приложениям. SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а представляет библиотеку, с которой программа компонуется, и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (api) библиотеки sqlite. Такой подход уменьшает накладные расходы, время отклика и упрощает разработку приложений для работы с данными. Sqlite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа.
· OpenGL es - движок для работы с 3d-графикой, основанный на api-версии openGL es 1.0. OpenGL es - это упрощенная версия спецификации openGL, позволяющая мобильным устройствам работать с тяжеловесными в графическом отношении приложениями. Библиотека использует аппаратный 3d-акселератор (если он доступен на этом устройстве) или встроенное высоко оптимизированное трехмерное программное обеспечение для работы с растровой графикой.
· Freetype - библиотека шрифтов, предназначенная для работы с растровыми и векторными шрифтами.
· Webkit - библиотека, предназначенная для функционирования встроенного в android web-браузера. Webkit поддерживает css, javascript, dom, ajax.
· SGL - движок для работы с 2d-графикой. Android также поддерживает собственную графическую 2d-библиотеку skia, которая написана на языке c и с++ (skia также формирует ядро популярного браузера google chrome).
· SSL - библиотека предназначена для работы с сокетами, основанная на протоколе ssl: sslv3.0 или tslv1.2.
Среда выполнения
Среда выполнения обеспечивает библиотеки ядра dalvik virtual machine (виртуальная машина dalvik), которые предоставляют требуемую функциональность для java-приложений.
Dalvik virtual machine
Прикладное программное обеспечение, запускаемое на мобильном устройстве, исполняет виртуальная машина dalvik, которая хоть и является аналогом виртуальной машины java, существенно от нее отличается. Dalvik относится к классу регистровых машин (регистры процессора используются как первичные модули хранения данных), идеально подходящих для работы на процессорах risc-архитектуры, к которым относятся и процессоры arm, применяемые в мобильных устройствах, тогда как стандартная виртуальная машина java компании sun microsystems - стековая. В результате использования регистровой виртуальной машины Google надеется на 30 процентов уменьшить количество команд по сравнению со стековыми машинами.
Созданные с помощью стандартного java-компилятора class-файлы и преобразуются в байт-код dalvik (*.dex) транслятором dx, входящим в состав sdk. Изнутри работающий Android выглядит как набор виртуальных машин dalvik, в каждой из которых исполняется прикладная задача.
Виртуальная машина dalvik, на которой построена вся операционная система Google Android, дает разработчикам приложений удобный механизм для написаний приложений, которым не принципиален объем используемой памяти и мощность процессора.
Core libraries. Включает набор основных библиотек, которые предоставляют функциональность для java. Библиотеки ядра обеспечивают слой API и являются основной платформой разработки java-приложений для Android.
Уровень каркаса приложений
Уровень каркаса приложений находится на вершине системных библиотек, функциональных библиотек и dalvik vm. На этом уровне находятся основные службы Android для управления жизненным циклом приложений, пакетами, ресурсами и т.д.
Программист имеет полный доступ к тем же API, которые используются основными приложениями. Архитектура этих приложений разработана с целью упрощения многократного использования компонентов. Любое разрабатываемое приложение может использовать возможности базовых приложений и, соответственно, любое стороннее приложение может использовать возможности вашего приложения (с учетом установленных разрешений). Этот же самый механизм позволяет многократно использовать уже разработанные компоненты.
Службы Android - это службы, которые являются основными для всех приложений, работающих на устройстве. К ним относятся:
· Менеджер деятельностей (activity manager) - управляет жизненным циклом приложений и предоставляет систему навигации по истории работы с деятельностями (стеку деятельностей);
· Менеджер пакетов (package manager) - управляет установкой и развертыванием пакетов прикладных программ, которые находятся на устройстве;
· Менеджер окон (window manager) - сохраняет окна приложения. Если разработчик предусмотрел вывод экрана, а затем переключение на другой экран, первый будет сохранен операционной системой и поставлен в режим ожидания. Это, в свою очередь, позволяет с помощью клавиши <back> мобильного устройства просматривать уже использовавшиеся экраны подобно тому, как это делается в web-браузере;
· Менеджер ресурсов (resource manager) - предназначен для доступа к строковым, графическим и другим типам ресурсов;
· Контент-провайдеры (content providers) - службы, которые позволяют приложениям получать доступ к данным других приложений, а также предоставлять сторонним приложениям доступ к своим данным;
· Система представлений (view system) - система с расширяемой функциональностью, которая служит для создания внешнего вида приложений, включающего такие компоненты, как списки, таблицы, поля ввода, кнопки, встроенный web-браузер и многое другое;
· Телефонный менеджер - обеспечивает слой api, контролирующий основную телефонную информацию, такую как сетевой тип и статус подключения, а также предоставляет различные утилиты для управления телефонными номерами;
· Менеджер местоположения - навигационные службы, которые позволяют приложениям получать периодические обновления географического местоположения устройства или запускать определенное приложение;
· Менеджер уведомлений - позволяет любому приложению отображать пользовательские уведомления в строке состояния.
Уровень приложений
Мобильное устройство Android поставляется с набором основных приложений, включая почтового клиента, программу для работы с sms, календарь, навигационные карты, браузер, контакты и др.
Что интересно, платформа Android не делает разницы между основными приложениями телефона сторонним программным обеспечением - таким образом, ключевые приложения, входящие в стандартный набор программного обеспечения, можно заменить при желании альтернативными приложениями. Программы для Android пишутся на языке java.
При разработке приложений программисты имеют полный доступ ко всей функциональности операционной системы. Архитектура приложений построена так, чтобы было легко использовать основные компоненты предоставляемые системой. Также есть возможность создавать свои компоненты и предоставлять их в открытое использование.
3. Описание проекта приложения
3.1 Структура программы
Одним из компонентов android-приложения является деятельность (activity). Деятельность представляет собой визуальный пользовательский интерфейс для приложения - окно. Как правило, окно полностью заполняет экран мобильного устройства, но может иметь размеры меньше чем у экрана. Деятельность может также использовать дополнительные окна, например всплывающее диалоговое окно, которое запрашивает пользовательский ответ для основной деятельности, или окно уведомления о каком-либо событии в приложении или системе. Приложение может содержать несколько деятельностей. Каждая деятельность независима от других. При открытии новой деятельности работа предыдущей приостанавливается, а сама она вносится и сохраняется в стек деятельностей.
Деятельности могут взаимодействовать между собой. Как правило, одна из деятельностей приложения (окно которое открывается при запуске приложения) помечено как главное. Также из текущей деятельности можно запустить любую другую деятельность, даже если она определена в другом приложении.
На рисунке 3.1 показано дерево взаимодействия activities (деятельностей) программы.
Рисунок 3.1 - Дерево взаимодействия activities (деятельностей) программы
3.2 Описание компонентов программы
На платформе android необходимо определить пользовательский интерфейс для каждой деятельности, используя иерархии узлов view и viewgroup, как показано на рисунке 3.2.
Объекты view - основные модули отображения интерфейса пользователя на платформе android. Объект view - структура данных свойства которой сохраняют параметры разметки и содержание для определенной прямоугольной области экрана. Как объект в интерфейсе пользователя, объект view является точкой взаимодействия пользователя и программы.
Класс viewgroup служит ядром для подклассов, называемых разметками (layouts), которые формируют расположение элементов пользовательского интерфейса на форме, использую различные виды архитектуры разметки - фреймовый, линейный, табличный и относительный.
Рисунок 3.2 - Пример дерева представлений для деятельностей
Главная деятельность (Main Menu)
Рассмотрим структуру главной деятельности. Внешний вид окна представлен на рисунке 3.3.
Рисунок 3.3 - Главное окно программы
Рисунок 3.4 отображает иерархию разметки главного окна программы и её свойства.
Рисунок 3.4 - Иерархия разметки главного окна.
Как видно из рисунка 3.5 конечными элементами разметки, которые видит пользователь, являются следующие элементы: текстовое поле (title), 3 кнопки (button_map, button_poi, button_exit).
Рисунок 3.5 - Элементы разметки
При нажатии на кнопку <map> открывается активити содержащую карту Google map.
При нажатии на кнопку <poi> открывается активити содержащее список команд приложения.
При нажатии на кнопку <exit> программа закрывается.
Деятельность map
Рассмотрим структуру деятельности map. Внешний вид окна представлен на рисунке 3.6.
Рисунок 3.6 - Окно map
Рисунок 3.7 отображает иерархию разметки окна map.
Рисунок 3.7 - Иерархия разметки окна map
При нажатии на кнопку <poi> мобильного устройства, на экране появляется меню из трех пунктов poi, search, exit.
При выборе пункта poi открывается активити, содержащее команду Stage (Остановки).
На рисунке 3.8 можно увидеть, что при выборе пункта Search открывается всплывающее окно с кнопкой <search by stage>
Рисунок 3.8 - Всплывающее меню search
При нажатии на кнопку <Search by Stage> открывается форма, содержащая поле (stage) и две кнопки (Ok и Cancel) . При нажатии на кнопку Ok на карте отображается маркер, соответствующей остановке, это можно увидеть на рисунке 3.9.
Рисунок 3.9 Поиск по остановке на карте
При выборе пункта меню exit программа закрывается.
Деятельность poi
Рассмотрим структуру деятельности poi. Внешний вид окна представлен на рисунке 3.10.
Рисунок 3.10 - Окно poi
Рисунок 3.11 отображает иерархию разметки окна poi.
Рисунок 3.11 - Иерархия разметки окна poi
Как видно из рисунка конечными элементами разметки, которые видит пользователь, является список listview содержащий текстовое поле с названием объекта.
При выборе элемента Stage открывается активити stageviewactivity, содержащее список всех объектов выбранной группы.
Деятельность StageViewActivity
Рассмотрим структуру деятельности StageViewActivity. Внешний вид окна представлен на рисунке 3.12.
Рисунок 3.12 - Окно StageViewActivity
Рисунок 3.13 отображает иерархию разметки окна StageViewActivity.
Рисунок 3.13 - Иерархия разметки окна StageViewActivity
Как видно из рисунка конечными элементами разметки, которые видит пользователь, является список listview содержащий текстовые поля с расписанием транспорта. Это мы можем увидеть на рисунке 3.14.
Рисунок 3.14 - Расписание транспорта StageViewActivity
На рисунке 3.15 мы видим, что при нажатии на кнопку <View on MAP> мы переходим на карту, где обозначена наша остановка.
Рисунок 3.15 - Подсказка с местонахождением остановки
3.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_stage.xml,, search_menu.xml, search.xml устроены аналогичным образом.
При запуске деятельности система должна получить ссылку на корневой узел дерева разметки, который будет использоваться для прорисовки графического интерфейса на экране мобильного устройства. Для этого разметка для активити загружается следующим образом
Public void onCreate(Bundle savedinstancestate) {
super.onCreate(savedinstancestate);
SetContentView(R.layout.main);
Подкаталог res/drawable/
Подобные документы
Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.
курсовая работа [167,8 K], добавлен 18.01.2017Характеристика работы операционной системы Android, используемой для мобильных телефонов. Создание Android проекта в среда разработки Eclipse. Общая структура и функции файла манифест. Компоненты Android приложения. Способы осуществления разметки.
курсовая работа [1,0 M], добавлен 15.11.2012Структура и архитектура платформы Android. Основные достоинства и недостатки операционной системы Android. Среда разработки Eclipse, платформа Java. Подготовка среды разработки. Вкладка "Погода", "Курс валют", "Новости". Просмотр полной новости.
дипломная работа [1,0 M], добавлен 11.07.2014Средства разработки развивающих и обучающих игр и используемой программы. Среда выполнения и Dalvik. Разработка приложения для платформы Android. Графический интерфейс и обработка касаний экрана. Разработка экранов приложения и их взаимодействия.
дипломная работа [2,1 M], добавлен 18.01.2016Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.
дипломная работа [2,6 M], добавлен 10.07.2017Общая схема работы приложения Android. Разработка обучающего приложения для операционной системы Android, назначение которого - развитие речи посредством произнесения скороговорок. Описание компонентов разработанного приложения, его тестирование.
дипломная работа [1,2 M], добавлен 04.02.2016Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.
дипломная работа [2,7 M], добавлен 03.04.2015Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.
дипломная работа [1,6 M], добавлен 08.07.2015Разработка программного обеспечения для платформы Android версии 2.3: информационное приложения для поклонников футбольной команды, с возможностью просмотра событий, статистики и иной информации о команде и ее успехах. Листинг JsonDataManager.java.
дипломная работа [4,1 M], добавлен 24.04.2013Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.
курсовая работа [987,1 K], добавлен 27.06.2019