- Дипломы
- Курсовые
- Рефераты
- Отчеты по практике
- Диссертации
Теоретические основы разработки мобильных приложений
Внимание: Акция! Курсовая работа, Реферат или Отчет по практике за 10 рублей!
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Код работы: | K002356 |
Тема: | Теоретические основы разработки мобильных приложений |
Содержание
Оглавление Введение 2 I. Теоретические основы разработки мобильных приложений 4 1.1 Классификация мобильных приложений 4 1.2 Основные виды Android-приложений 8 1.3 Архитектура приложения, основные компоненты 9 1.4 Ресурсы 20 1.5 Инструменты разработки мобильных приложений 22 1.6 Анализ рынка мобильных приложений 32 Вывод к I главе 32 II. ТЕХНОЛОГИЯ РАЗРАБОТКИ МОБИЛЬНОГО ПРИЛОЖЕНИЯ 33 2.1. Структура мобильного приложения 33 2.2. Технология создания мобильного приложения 33 2.3. Тестирование и установка в мобильное устройство 44 Выводы по II главе 44 ЗАКЛЮЧЕНИЕ 46 Список использованной литературы 48 Введение Смартфоны и планшеты прочно вошли в нашу жизнь, сформировался целый рынок мобильных приложений для этих гаджетов. Многие из владельцев этих устройств уже не могут обойтись без этих приложений буквально ни минуты. Возможности современных мобильных приложений весьма обширны и разнообразны. Чтение новостей, распространение фотографий, всевозможные игры, вызов такси, доставка товаров на дом и прочее сейчас во многом ассоциируется с мобильными устройствами. Эти приложения могут быть предустановлены на устройство в процессе производства, загружены пользователем с помощью различных платформ для распространения веб-приложениями, которые обрабатываются на стороне клиента (JavaScript) или сервера. Благодаря тому, что рынок предлагает огромное многообразие версий мобильных устройств, каждое из них требует определенного вида платформы для работы с приложениями. Сегодня наибольшей популярностью пользуются платформы Android и iOS, а также BlackBerry и Linux – они актуальны для работы с корпоративными приложениями. Мобильные приложения – новый формат обучения, общения, развлечений и служб. На протяжении последних лет показатель, характеризующий уровень спроса на мобильные устройства, постоянно растет. Такая статистика позволяет сделать вывод о том, что разработка мобильных приложений актуальна и целесообразна. Главное грамотно оценить, для кого и зачем создается софт. Только полезная разработка получит достойное признание со стороны пользователей. Этим и определяется актуальность темы нашего исследования. Объектом исследования является процесс разработки мобильного приложения. Предмет исследования - разработка мобильного приложения с помощью объектно-ориентированного языка программирования Java, интегрированной среды разработкимодульныхприложений AndroidStudio. Целью данной выпускной квалификационной работы является разработка мобильного приложения. Гипотезой послужило предположение о том, что мобильное приложение позволит студентам успешно освоить, изучить данную дисциплину, если будут выполнены следующие условия разработки: * Различия в архитектуре компьютеров; * Чтение файлов; * Запись файлов; * Разметка экрана; * Настройка экрана; * Версия мобильной ОС. Новизна определяется тем, что сделана попытка разработки мобильного приложения. Теоретическая значимость: сделана попытка сравнительного анализа и оценки мобильного приложения. Практическая значимость определяется тем, что разработано мобильное приложение, которое предназначено для студентов, обучающихся по направлению «Информатика и вычислительная техника». Методологические основы исследования основаны на трудах Варакина М.В., Соколовой В. В., Бурнет Эд.и др. Задачи исследования: 1. Изучить и проанализировать научно-методическую литературу по теме выполняемой квалификационной работы; 2. Провести сравнительный анализ характеристик мобильных приложений; 3. Проанализировать современные мобильные приложения и выявить их недостатки и достоинства. 4. Разработать мобильное приложение. Для решения поставленных задач применялись следующие методы исследования: 1. методы теоретического исследования; 2. анализ мобильных приложений; 3. изучение характеристик мобильных приложений; 4. обработка и анализ полученных результатов. Этапы исследования: 1. Анализ литературы и подбор материалов по теме выпускной квалификационной работы (01.10.15 - 1.11.15). 2. Изучение теоретической и практической части (01.11.15 -1.12.15). 3. Разработка практической части работы (01.12.15 - 1.03.16). 4. Апробация работы (01.03.16 - 15.04.16). 5. Работа по оформлению выпускной квалификационной работы (01.05.16 - 15.05.16). Структура работы: данная выпускная квалификационная работа состоит из введения, 2 глав, заключения, списка использованной литературы. I. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ 1.1 Классификация мобильных приложений Существует много различных подходов к классификации ЭОР. Универсальную классификацию даже предметных образовательных областей для ЭОР определить однозначно почти невозможно. Это связано, в первуюочередь, с многовариативностью тематических направлений, охватываемых различными ЭОР. Если учесть, что классификация должна отражать не только тематику, но и технологию ресурса, то задача становится почти не разрешима в общем случае. Прежде чем переходить к непосредственной классификации, необходимо выделить основные параметры, характеризующие ЭОР, которые в последствие могли бы лечь в основу критериев классификации. С точки зрения организации учебного процесса основными подобными параметрами являются: * тип электронного издания (ресурса); * предметная образовательная область; * рекомендуемый уровень образования; * рекомендуемая форма образовательного процесса; * специфика аудитории. С одной стороны,повыполняемым функциям ЭОР можно отнести к традиционным учебным изданиям и, соответственно, использовать принципы классификации, используемые для традиционных учебников. С другой стороны, они принадлежат к категории электронных изданий и к ним могут быть применены принципы классификации электронных изданий. С третьей, многие ЭОР представляют собой программные продукты. В силу многообразия ЭОР на практике удобно проводить классификациюпоконкретному определяющему признаку, а именно: * по типу; * по функциональному признаку, определяющему значение и место ЭОР в учебном процессе; * по организации текста ресурса; * по характеру представляемой информации; * по форме изложения; * по целевому назначению; * по наличию печатного эквивалента; * по формату (природе) основной информации; * по технологии распространения; * по характеру взаимодействия с пользователем. По типу можно выделить следующие основные группы ЭОР: * компьютерный учебник (учебное пособие, текст лекций и т.д.); * электронный справочник; * компьютерный задачник; * компьютерный лабораторный практикум (модели, тренажеры и т.д.); * компьютерная тестирующая система. Компьютерный учебник предназначен для самостоятельного изучения теоретического материала и может быть текстографическим, гипертекстовым или мультимедийным. Он содержит структурированный учебный материал, предоставляемый обучаемому. Гипертекстовая структура позволяет обучающемуся определить оптимальную траекторию изучения материала и удобный темп работы, соответствующий особенностям его восприятия. Электронный справочник позволяет обучаемому в любое время получить необходимую справочную информацию. В справочник включаетсяинформация, как дублирующая, так и дополняющая материал учебника. Обычно электронный справочник представляет собой электронныйсписоктерминов, или используемых в курсе слов изучаемого иностранного языка, или имен цитируемых авторов и т.д. Каждая единицасписка гиперактивна - ее активизация позволяет обратиться к гиперссылке, содержащей толкование термина, перевод и грамматические характеристики иностранного слова, энциклопедическое описание и т.д. Обычно в электронный справочник можно войти из любого раздела курса. Компьютерный задачник позволяет отработать приемы решения типовых задач, позволяющих наглядно связать теоретические знания с конкретными проблемами, на решение которых они могут быть направлены. Компьютерные практикумы, модели, конструкторы и тренажеры позволяют закрепить знания и получить навыки их практического применения. Компьютерные модели, как правило, не являются универсальными. Каждая из них рассчитана намоделированиедостаточно узкого круга явлений. Основанные на математических моделях (которые содержат в себеуправляющиепараметры), компьютерные модели могут быть использованы не только для демонстрации трудно воспроизводимых в учебной обстановке явлений, но и для выяснения (в диалоговом режиме) влияния тех или иных параметров на изучаемые процессы и явления. Это позволяет использовать их в качестве имитаторов лабораторных установок, а также для отработки навыков управления моделируемыми процессами. Компьютерный лабораторный практикум позволяет имитировать процессы, протекающие в изучаемых реальных объектах, или смоделировать эксперимент, не осуществимый в реальных условиях. При этом тренажер имитирует не только реальную установку, но и объекты исследования и условия проведения эксперимента. Лабораторные тренажеры позволяют подобрать оптимальные для проведения эксперимента параметры, приобрести первоначальныйопыти навыки на подготовительном этапе, облегчить и ускорить работу с реальными экспериментальными установками и объектами. Компьютерная тестирующая система может представлять собой как отдельную программу, не допускающую модификации, так и универсальную программную оболочку. Как правило, такие системы обеспечиваются подсистемой подготовки тестов, облегчающей процесс их создания и модификацию. Эффективность использования тестирующей системы существенно выше, если она позволяет накапливать и анализировать результаты тестирования. Компьютерные системы контроля и измерения уровня знаний, обучающихся нашли широкое применение ввиду относительной легкости их создания. Существуетцелыйряд инструментальных систем-оболочек, с помощью которых преподаватель, даже не знакомый с основами программирования, в состоянии скомпоновать перечни вопросов и возможных ответовпотой или иной учебной теме. Такие программы позволяют разгрузить преподавателя от рутинной работы по выдаче индивидуальных контрольных заданий и проверке правильности их выполнения, что особенно актуально в условиях массового образования. Появляется возможность многократного и более частого контроля знаний, в том числе и самоконтроля, что стимулирует повторение и, соответственно, закрепление учебного материала. Примером классификациипофункциональному признаку, определяющемузначениеиместоЭОР в учебном процессе может являться типологическая модель системы учебных изданий для вузов, которая включает следующие группы ЭОР: * программно-методические (учебные планы и учебные программы); * учебно-методические (методические указания, руководства, содержащие материалы по методике преподавания учебной дисциплины, изучения курса, выполнению курсовых и дипломных работ); * обучающие (учебники, учебные пособия, тексты лекций, конспекты лекций); * вспомогательные (компьютерные практикумы, сборники задач и упражнений, хрестоматии, книги для чтения); * компьютерные (тестирующие) системы и базы данных тестов. В среднем образовании на практике широко используется классификация, построеннаяпотематическим направлениям общего среднего образования (предметам, дисциплинам). Кроме того, по организации текста они подразделяются на моноиздания и сборники. Моноиздание включает однопроизведение, а сборник - несколько произведений учебной литературы. Учебник, учебное пособие, курс и конспект лекций могут выходить в свет только в виде моноизданий, а практикум, хрестоматия, книга для чтения - в виде сборников. Учебные планы, учебные программы, методические указания (руководства) и задания для практических занятий выпускают преимущественно в виде моноизданий. Похарактеру представляемой информации можно выделить следующие виды учебных изданий: учебный план, учебнаяпрограмма, методические указания, методические руководства, программы практик, задания для практических занятий, учебник, учебное пособие, конспект лекций, курс лекций, практикум, хрестоматия и др. Поформе изложения материала учебные издания могут быть разделены на следующие группы: * конвекционные учебные издания, которые реализует информационную функцию обучения; * программированные учебные издания, которые по существу и представляют собой в этой классификации электронные издания; * проблемные учебные издания, которые базируются на теории проблемного обучения и направлено на развитие логического мышления; * комбинированные, или универсальные учебные издания, которые содержат отдельные элементы перечисленных моделей. Поцелевому назначению электронных средств учебного назначения могут быть разделены на группы по уровню образования: * общее среднее; * среднее специальное; * высшее (с разделением по уровням - бакалавр, специалист, магистр); * специалисты (для дополнительного образования). Различияпоцелевому назначению вызваны различными дидактическими задачами, которые решаются при подготовке специалистов различного уровня. Поналичию печатного эквивалента выделяются две группы электронных средств учебного назначения: * электронный аналог печатного учебного издания - электронное средство учебного назначения, в основном воспроизводящее соответствующее печатное издание (расположение текста на страницах, иллюстрации, ссылки, примечания и т.п.); * самостоятельное электронное средство учебного назначения - электронное издание, не имеющее печатных аналогов. Поформату основной информации выделяются следующие типы ЭОР: * текстовой - электронное издание, содержащее преимущественно текстовую информацию, представленную в форме, допускающей посимвольную обработку; * графический - электронное издание, содержащее преимущественно графические сущности, представленные в форме, допускающей просмотр и печатное воспроизведение, но не допускающей посимвольной обработки; * звуковой - электронное издание, содержащее цифровое представление звуковой информации в форме, допускающей ее прослушивание, но не предназначенной для печатного воспроизведения; * программный - автономный программный продукт, представляющий собой публикацию текста в некоторой автономной программной среде; * мультимедийный - электронное издание, в котором информация различной природы присутствует взаимосвязанно для достижения заданных разработчиком дидактических целей. Потехнологии распространения можно выделить: * локальный ЭОР - электронное издание, предназначенное для локального использования и выпускающееся в виде определенного количества идентичных экземпляров (тиража) на переносимых машиночитаемых носителях; * cетевой ЭОР - электронное издание, доступное потенциально неограниченному кругу пользователей через Интернет или локальную сеть; * ЭОР комбинированного распространения - электронное издание, которое может использоваться как в качестве локального, так и в качестве сетевого. Похарактеру взаимодействия пользователя и ЭОР можно выделить две группы: * детерминированный тип - электронное издание, параметры, содержание и способ взаимодействия с которым определены издателем и не могут быть изменяемы пользователем; * недетерминированный тип - электронное издание, параметры, содержание и способ взаимодействия с которым прямо или косвенно устанавливаются пользователем в соответствии с его интересами и целями использования на основе информации и с помощью алгоритмов, определенных создателем (разработчиком). ПРИМЕР классификации ЭОР. Учитывая все сказанное, один и тот жересурсможет быть классифицирован следующим образом: * по типу – компьютерный учебник * по формату информации – мультимедийный * по наличию печатного аналога - самостоятельное средство (нет печатного аналога) * по технологии распространения – сетевой * по характеру взаимодействия пользователя – детерминированный * по уровню образования (аудитории) – среднее специальное * по форме изложения материала – универсальное учебное издание * по организации текста – моноиздание * по тематике – история. Следует обратить внимание, что в различных классификаторах позиции могут быть взаимоисключающие или взаимопоглащающие. Например, отнесение ЭОРпоформату к мультимедийному типу допускает использование в нем графики и звука, в то время как отнесение ЭОР к высшему образованию исключает его использованиепоумолчанию в среднем. Все представленные выше виды и принципы классификации позволяют учесть те или иные характеристики и параметры ЭОР. На практике можно использовать и другие критерии классификации, однако, вне зависимости от назначения, методики использования или технологии реализации, основой любого дидактического средства является учебный материал изучаемойпредметной области. 1.2 Основные виды Android-приложений Приступая к разработке мобильных приложений хорошо бы иметьпредставлениео том, какие виды приложений существуют. Дело в том, что если удастся определить к какому типу относитсяприложение, то становится понятнее на какие моменты в процессе его разработки необходимо обращать основное внимание. Можно выделить следующие виды приложений: Приложения переднего плана выполняют свои функции только, когда видимы на экране, в противном же случае их выполнение приостанавливается. Такими приложениями являются, например, игры, текстовые редакторы, видеопроигрыватели. При разработке таких приложений необходимо очень внимательно изучить жизненный цикл активности, чтобы переключения в фоновый режим и обратно проходили гладко (бесшовно), т. е. при возвращении приложения на передний план было незаметно, что оно вообще куда-то пропадало. Для достижения этой гладкости необходимо следить за тем, чтобы при входе в фоновый режим приложение сохраняло свое состояние, а при выходе на передний план восстанавливало его. Еще один важный момент, на который обязательно надо обратить внимание при разработке приложений переднего плана, удобный и интуитивно понятный интерфейс. Фоновые приложения после настройки не предполагают взаимодействия с пользователем, большую часть времени находятся и работают в скрытом состоянии. Примерами таких приложений могут служить, службы экранирования звонков, SMS-автоответчики. В большинстве своем фоновые приложения нацелены на отслеживание событий, порождаемых аппаратным обеспечением, системой или другими приложениями, работают незаметно. Можно создавать совершенно невидимые сервисы, но тогда они будут неуправляемыми. Минимум действий, которые необходимо позволить пользователю: санкционирование запуска сервиса, настройка, приостановка и прерывание его работы при необходимости. Смешанные приложения большую часть времени работают в фоновом режиме, однако допускают взаимодействие с пользователем и после настройки. Обычно взаимодействие с пользователем сводится к уведомлению о каких-либо событиях. Примерами таких приложений могут служить мультимедиа-проигрыватели, программы для обмена текстовыми сообщениями (чаты), почтовые клиенты. Возможность реагировать на пользовательский ввод и при этом не терять работоспособности в фоновом режиме является характерной особенностью смешанных приложений. Такие приложения обычно содержат как видимые активности, так и скрытые (фоновые) сервисы, и при взаимодействии с пользователем должны учитывать свое текущее состояние. Возможно потребуется обновлять графический интерфейс, если приложение находится на переднем плане, или же посылать пользователю уведомления из фонового режима, чтобы держать его в курсе происходящего. И эти особенности необходимо учитывать при разработке подобных приложений. Виджеты- небольшие приложения, отображаемые в виде графического объекта на рабочем столе. Примерами могут служить, приложения для отображения динамической информации, такой как заряд батареи, прогноз погоды, дата и время. Разумеется, сложные приложения могут содержать элементы каждого из рассмотренных видов. Планируя разработку приложения, необходимо определить способ его использования, только после этого приступать к проектированию и непосредственно разработке. 1.3 Архитектура приложения, основные компоненты АрхитектураAndroidприложений основана на идее многократного использования компонентов, которые являются основными строительными блоками. Каждыйкомпонентявляется отдельной сущностью и помогает определить общееповедение приложения. СистемаAndroidвыстроена таким образом, что любоеприложениеможет запускать необходимыйкомпонентдругого приложения. Например, если приложение предполагает использование камеры для создания фотографий, совершенно необязательно создавать в этом приложенииактивностьдля работы с камерой. Наверняка на устройстве уже естьприложениедля получения фотографий с камеры, достаточно запустить соответствующуюактивность, сделать фотографию и вернуть ее вприложение, так чтопользовательбудет считать, что камера часть приложения, с которым он работает. Когда система запускаеткомпонент, она запускает процесс приложения, которому принадлежиткомпонент, если он еще не запущен, и создает экземпляры классов, необходимых компоненту. Поэтому в отличие от большинства других систем, в системеAndroidприложения не имеют единой точки входа (нет методаmain(), например). В силу запуска каждого приложения в отдельном процессе и ограничений надоступк файлам,приложениене может напрямую активироватькомпонентдругого приложения. Таким образом для активации компонента другого приложения необходимо послать системе сообщение о намерении запустить определенныйкомпонент, система активирует его. Можно выделить четыре различных типа компонентов, каждый тип служит для достижения определенной цели и имеет свой особыйжизненный цикл, который определяет способы создания и разрушения соответствующего компонента. Рассмотрим основные компонентыAndroid-приложений. Активности (Activities).Активность- это видимая часть приложения (экран, окно, форма), отвечает за отображение графического интерфейса пользователя. При этом приложение может иметь несколько активностей, например, в приложении, предназначенном для работы с электронной почтой, одна активность может использоваться для отображения списка новых писем, другая активность - для написания, и еще одна - для чтения писем. Несмотря на то, что для пользователя приложение представляется единым целым, все активности приложения не зависят друг от друга. В связи с этим любая из этих активностей может быть запущена из другого приложения, имеющего доступ к активностям данного приложения. Например, приложение камеры может запустить активность, создающую новые письма, чтобы отправить только что сделанную фотографию адресату, указанному пользователем. Сервисы (Services). Сервис - компонент, который работает в фоновом режиме, выполняет длительные по времени операции или работу для удаленных процессов. Сервис не предоставляет пользовательского интерфейса. Например, сервис может проигрывать музыку в фоновом режиме, пока пользователь использует другое приложение, может загружать данные из сети, не блокируя взаимодействие пользователя с активностью. Сервис может быть запущен другим компонентом и после этого работать самостоятельно, а может остаться связанным с этим компонентом и взаимодействовать с ним. Контент-провайдеры (Contentproviders). Контент-провайдер управляет распределенным множеством данных приложения. Данные могут храниться в файловой системе, в базе данных SQLite, в сети, в любом другом доступном для приложения месте. Контент-провайдер позволяет другим приложениям при наличии у них соответствующих прав делать запросы или даже менять данные. Например, в системе Android есть контент-провайдер, который управляет информацией о контактах пользователя. В связи с этим, любое приложение с соответствующими правами может сделать запрос на чтение и запись информации какого-либо контакта. Контент-провайдер может быть также полезен для чтения и записи приватных данных приложения, не предназначенных для доступа извне. Приемники широковещательных сообщений (BroadcastReceivers). Приемник - компонент, который реагирует на широковещательные извещения. Большинство таких извещений порождаются системой, например, извещение о том, что экран отключился или низкий заряд батареи. Приложения также могут инициировать широковещание, например, разослать другим приложениям сообщение о том, что некоторые данные загружены и доступны для использования. Хотя приемники не отображают пользовательского интерфейса, они могут создавать уведомление на панели состояний, чтобы предупредить пользователя о появлении сообщения. Такой приемник служит проводником к другим компонентам и предназначен для выполнения небольшого объема работ, например, он может запустить соответствующий событию сервис. Все рассмотренные компоненты являются наследниками классов, определенных в Android SDK. Рис. 1.1. Иерархия классов Android SDK (На рис. 1.1 показана иерархия основных классов Android SDK, с которыми обычно имеет дело разработчик. На самом деле классов намного больше, желтым цветом выделены классы, с которыми разработчик работает непосредственно, наследует от них свои классы. Остальные классы не менее важны, но они реже используются напрямую. Для начала рассмотрим классы Intent и View. Класс View является основным строительным блоком для компонентов пользовательского интерфейса (UI), он определяет прямоугольную область экрана и отвечает за прорисовку и обработку событий. Является базовым классом для виджетов (GUI widgets), которые используются для создания интерактивных компонентов пользовательского интерфейса: кнопок, текстовых полей и т. д. А также является базовым классом для класса ViewGroup, который является невидимым контейнером для других контейнеров и виджетов, определяет свойства расположения компонентов пользовательского интерфейса. Интерфейс Android-приложения представляет собой иерархию UI компонентов (см. рис. 1.2), можно описать эту иерархию программно, но более простым и эффективным способом задать расположение элементов интерфейса являетсяXML файл, который предоставляет удобную для восприятия структуру компоновки (layout file). Во время исполнения XML файл автоматически превращается в дерево соответствующих объектов. Рис. 1.2. Иерархия компонентов, определяющая компоновку интерфейса пользователя Объекты-экземпляры класса Intent используются для передачи сообщений между основными компонентами приложений. Известно, что три из четырех основных компонентов: активности, сервисы и приемники широковещательных сообщений, могут быть активированы с помощью сообщений, которые называются намерениями. Такие сообщения являются инструментом позднего связывания компонентов одного или нескольких приложений. Экземпляр класса Intent представляет собой структуру данных, содержащую описание операции, которая должна быть выполнена, и обычно используется для запуска активности или сервиса. В случае с приемниками широковещательных сообщений объектIntent содержит описание события, которое произошло или было объявлено. Для каждого типа компонентов существуют свои механизмы передачи намерений. Чтобы запустить активность или вызвать у работающей активности новое действие, необходимо передать объект-намерение в методContext.startActivity() или Activity.startActivityForResult(). Чтобы запустить сервис или доставить новые инструкции работающему сервису, необходимо передать объект-намерение в методContext.startService(). Также объект-намерение может быть передан в метод Context.bindService(), чтобы связать между собой вызывающий компонент и сервис. Чтобы доставить объект-намерение всем заинтересованным приемникам широковещательных сообщений, необходимо передать его в любой из широковещательных методов: Context.sendOrderedBroadcast(), Context.sendStickyBroadcast(),Context.sendBroadcast(). В каждом случае система Android в ответ на намерение находит соответствующий компонент: активность, сервис или множество широковещательных приемников и запускает его если необходимо. В этой системе сообщений не случается накладок: сообщение-намерение, отправленное определенному компоненту, будет получено именно этим компонентом и никем другим. Рис. 1.3. Передача намерений (Intent) На рис. 1.3можно увидеть как происходит передача намерений (Intent), в данном случае однаактивностьзапускает другую. АктивностьА создает намерение (Intent) с описанием действия и передает его в метод startActivity().Система Android проверяет все приложения на совпадение с намерением, когда совпадение найдено, система запускает соответствующую активность, для чего вызывает методonCreate() и передает в него объект-намерение Intent. Пришло время более серьезно рассмотреть основные компоненты: активности, сервисы, контент-провайдеры, приемники широковещательных сообщений. В первую очередь нас будет интересовать жизненный цикл этих компонентов. Что же такое этот жизненный цикл? Жизненный циклможно рассматривать, как процесс функционирования компонента: начиная с момента создания и запуска, включая активный и неактивный периоды работы, и, заканчивая уничтожением и освобождением ресурсов. Активность - окно, несущее графический интерфейс пользователя. Окно активности обычно занимает весь экран устройства, однако вполне возможно создавать полупрозрачные или плавающие диалоговые окна. Мобильные приложения обычно являются многооконными, т. е. содержат несколько активностей, по одной на каждое окно. Одна из активностей определяется как "главная", и именно ее пользователь видит при первом запуске приложения. Каждый экран приложения является наследником классаActivity. Для создания активности необходимо создать класс-наследник классаActivity напрямую или через любого его потомка. В этом классе необходимо реализовать все методы, вызываемые системой для управления жизненным циклом активности. Таких методов семь: onCreate() - метод, вызываемый системой при создании активности. В реализации метода необходимо инициализировать основные компоненты активности и в большинстве случаев вызвать методsetContentView()для подключения соответствующего XML-файла компоновки (layoutfile). После методаonCreate() всегда вызывается методonStart(). onRestart() - метод, вызываемый системой при необходимости запустить приостановленную активность. После этого метода всегда вызывается методonStart(). onStart() - метод, вызываемый системой непосредственно перед тем, как активность станет видимой для пользователя. После этого метода вызываетсяonResume(). onResume() - метод, вызываемый системой непосредственно перед тем, как активность начнет взаимодействовать с пользователем. После этого метода всегда вызываетсяonPause(). onPause() - метод, вызываемый системой при потере активностью фокуса. В этом методе необходимо фиксировать все изменения, которые должны быть сохранены за пределами текущей сессии. После этого метода вызываетсяonResume(), если активность вернется на передний план, илиonStop(), если активность будет скрыта от пользователя. onStop() - метод, вызываемый системой, когда активность становится невидимой для пользователя. После этого метода вызывается либоonRestart(), если активность возвращается к взаимодействию с пользователем, либоonDestroy(), если активность уничтожается. onDestroy() - метод, вызываемый системой перед уничтожением активности. Этот метод вызывается либо, когда активность завершается, либо когда система уничтожает активность, чтобы освободить ресурсы. Можно различать эти два сценария с помощью методаisFinishing(). Это последний вызов, который может принять активность. Рис. 1.4.Жизненный цикл активности При реализации вышеперечисленных методов первым делом всегда необходимо вызывать соответствующий метод предка. Рассмотренные методы определяют жизненный цикл активности. Нарис. 1.4можно увидеть пути, по которым активность может переходить из одного состояния в другое. В прямоугольниках указаны методы, которые вызываются при смене состояний активности. Фактически активность может существовать в одном из трех состояний: Выполняется (running).Активность находится на переднем плане и удерживает фокус ввода. Если внимательно рассмотретьрис. 1.4можно заметить, что в это состояние активность попадает после вызова методаonResume(). Пока активность находится в этом состоянии ее процесс не может быть уничтожен системой. Приостановлена. Активность частично видима, однако фокус ввода потерян. В это состояние активность попадает после вызова методаonPause()(рис. 1.4). В этом состоянии активность поддерживается в "боевой готовности", т.е. в любой момент может получить фокус ввода и стать активной. Однако в этом состоянии процесс активности может быть уничтожен системой, в случае экстремальной нехватки памяти. Остановлена.Активность полностью невидима. В это состояние активность попадает после вызова методаonStop()(рис. 1.4.). В этом состоянии активность может быть "вызвана к жизни", она сохраняет все состояния и необходимую для восстановления информацию, однако процесс активности может быть уничтожен, если память понадобится для других целей. 1.4.2 Сервисы (Services) Сервис (Service) является компонентом приложения, предназначенным для выполнения длительных операций в фоновом режиме. Существует два способа существования сервисов: первый заключается в том, что сервис запущен (started) и работает самостоятельно в фоновом режиме, так он может работать неопределенно долго, пока не выполнит свою задачу; второй заключается в том, что сервис привязан (bound) к некоторому компоненту или нескольким компонентам, в этом случае сервис предлагает интерфейс для взаимодействия с компонентом и работает пока привязан хотя бы к одному компоненту, как только связь со всеми компонентами разрывается сервис завершает свою работу. Для создания сервиса необходимо создать класс-наследник класса Service напрямую или через любого его потомка. При этом в реализации класса необходимо переопределить (т. е. написать свою реализацию) некоторые методы, управляющие ключевыми аспектами жизненного цикла сервиса и обеспечивающие механизм связывания компонентов с сервисом, в соответствующем случае. Рассмотрим наиболее важные методы требующие реализации при создании сервиса. onStartCommand() - метод, вызываемый системой, когда некоторый компонент, например активность, вызывает метод startService(). В этом случае сервис запускается и может работать в фоновом режиме неопределенно дол....................... |
Для получения полной версии работы нажмите на кнопку "Узнать цену"
Узнать цену | Каталог работ |
Похожие работы: