Содержание
Введение
Главное направление совершенствования мобильных телефонов можно определить одним понятием: конвергенция технологий. Мобильные телефоны объединили в себе едва ли не всё, что можно и разумно объединять под корпусом одного устройства.
Основные задачи телефона прошлого - совершать и принимать звонки, писать SMS. Сегодня эти задачи дополнилась работой с интернет - ресурсами, прослушиванием музыки, фотосъемкой, использованием игр и приложений. Мобильный будущего, скорее всего, добавит к списку основных задач просмотр телепрограмм, управление различной техникой, функции контроля и возможно многое другое.
Эксперты обращают внимание потребителей на тот факт, что сейчас на рынке доступно несколько мобильных платформ, стремительную популярность среди которых в последнее время приобретает iOS и Android. Программная платформа Android на мировом рынке смартфонов достигла рекордных 87,5 %. Иными словами, примерно девять из десяти аппаратов используют именно эту ОС.
Что бы ни говорили, а мобильность сегодня - явление глобальное, проникающее во многие сферы нашей жизни. Ныне потребитель ищет не просто мобильный телефон, он внимательно изучает условия, соотнося их с требованиями современного рынка. Именно поэтому можно утверждать, что развитие мобильных технологий будет только ускоряться.
Целью данной работы является разработка приложение для ОС Android, назначением которого будет доступ к информации университета[A1]. Пользователями данного приложения будут студенты университета.
Для достижения поставленной цели требуется решить следующие задачи:
1) Изучить архитектуру, инструменты и особенности разработки приложений для ОС Android;
|
2) Создать макет - прототип будущей программы;
3) Разработать приложение согласно макету;
4) Разработать интерфейс пользователя;
5) Протестировать разработанное приложение.
Практическая значимость данной работы состоит в том, что результат достижения поставленной цели имеет возможность применения в деятельности конкретного учебного заведения.
Android Studio — это интегрированная среда разработки (IDE) для работы с платформой Android.
Android Studio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, официальное средство разработки Android приложений. Данная среда разработки доступна для Windows, OS X и Linux.
Раздел I
Принцип работы Android OS и Android приложений
Приложения под операционную систему Android разрабатываются в основном с использованием Java. Скомпилированный программный код (вместе со всеми файлами ресурсов и прочей необходимой информацией) упаковывается в специальный файл-архив, Android Package. Этот файл имеет расширение *.apk и упаковывается специальной утилитой aapt tool. Именно он в дальнейшем распространяется как программа и инсталлируется на мобильные устройства. Один такой файл связан с кодом одного приложения. И каждое приложение в Android живет в своем собственном мире – в такой машине. По умолчанию, каждая программа выполняется в своем собственном процессе, управлением которого занимается ядро Linux, которое также осуществляет менеджмент памяти. Таким образом, чаще всего код приложения выполняется в изоляции от всех других приложений. Android стартует процесс, когда возникает необходимость выполнить какой-нибудь программный код и завершает его, когда в нем больше нет необходимости и системные ресурсы требуются другим приложениям. По умолчанию, каждому приложению присваивается свой уникальный ID Linux-пользователя. Права доступа устанавливаются таким образом, чтобы файлы приложения были видны только этому пользователю и данному приложению. Хотя, есть способы, позволяющие экспортировать их в другие приложения. Например, существует возможность «разделения» одного и того же пользовательского ID между двумя приложениями. В таком случае, они смогут видеть файлы друг друга. Для того, чтобы экономить системные ресурсы, приложения с одинаковым ID можно также договориться запускать в одном и том же Linux-процессе, разделяя одну и ту же виртуальную машину.
|
Компоненты приложений в Androidграмма приложение
Интересной чертой операционной системы Android является тот факт, что приложение в ней может использовать для своего функционала элементы других приложений, если, конечно, они предоставляют такой доступ. Например, если нашему приложению требуется отобразить прокручиваемый список изображений, а другое приложение уже имеет реализованный подходящий скроллер, открытый для других приложений, то можно просто вызвать его для осуществления этого действия и не разрабатывать свой собственный. При этом код нашего приложения не смешивается с кодом другого и не компонуется с ним. Скорее, он просто запускает некоторый кусок другого файла, когда возникает такая необходимость. Для обеспечения такого принципа работы, система должна быть способна запускать процесс приложения тогда, когда потребуется любая его часть и создавать экземпляры java-объектов именно для этой части. Поэтому приложения Android не имеют единой точки входа, как это принято в большинстве систем. Вместо этого их код представляет собой набор некоторых отдельных целостных сущностей, компонент, из которых система по мере необходимости может создавать экземпляры и использовать их.
|
Можно выделить четыре типа таких сущностей-компонент. Поговорим о каждой в отдельности.
Activities
Activity представляет собой внешний пользовательский интерфейс для одной операции, которую может совершить пользователь. Если упростить, то это просто один текущий экран как некоторая единица активности, своего рода кадр с одним пользовательским действием. Здесь и далее будет использоваться термин activity без перевода, как некоторое имя собственное. Хотя дословный перевод, «активность» или «действие», хорошо передает общий смысл компонента.
Например, activity может предоставить список пунктов меню, которые может выбрать пользователь или отобразить фотографии с их подписями. Или другой пример – приложение для мгновенного обмена сообщениями может использовать одно activity для того чтобы отобразить лист контактов, другое – чтобы создать сообщение для выбранного контакта, третье – чтобы посмотреть историю сообщений или выполнить настройки и так далее.
Приложение может состоять из всего одного activity или сразу из нескольких, как упомянутый ранее в качестве примера мессенджер. Какими именно будут activity и сколько их будет, зависит от конкретного приложения и его дизайна. Как правило, одно из activity помечается как первое, это означает, что оно будет предоставлено пользователю при запуске приложения. Одно activity может запускать другое. Таким образом, переход от одного activity к другому осуществляется тогда, когда текущее activity вызывает следующее.
Каждое activity предоставляет окно по умолчанию. Обычно окно создается в полноэкранном виде, но оно также может и не занимать весь экран и находиться поверх других окон. Activity также может задействовать дополнительные окна – например, всплывающее диалоговое для взаимодействия с пользователем в процессе работы activity, или окно для предоставления текущей информации при выборе какой-нибудь важной опции.
Визуальное содержание окна строится с помощью иерархии визуальных компонентов (или представлений) – объектов, производных от базового класса View. Каждый компонент представляет собой просто прямоугольное пространство внутри окна. Родительские компоненты содержат дочерние и организуют их расположение. Иерархию компонент можно представить в виде дерева, а те элементы, которые находятся в самой нижней его части (“листья”) и не имеют дочерних компонент, отрисовывают прямоугольные области и ожидают действий пользователя на этом участке. Для того чтобы поместить в окно такую иерархию, нужно вызвать метод Activity.setContentView(). Параметром метода является экземпляр класса View, лежащий в корне иерархии.
Services (сервисы) представляют из себя компоненты, которые работают в фоновом режиме. Он, как правило, требуется для длительных операций или для обеспечения работы удаленных процессов, но в общем случае это просто режим, который функционирует, когда приложение не в фокусе. Примером такого процесса может стать прослушивание музыки в то время, когда пользователь делает что-то другое или получение данных по сети без блокирования текущей активности. Сервис сам по себе не предоставляет пользовательского интерфейса, то есть с пользователем не взаимодействует, а запускается, управляется и связан с другими компонентами, например, activity. Также может запускаться вместе с системой.
Content providers Данный компонент управляет наборами данных, которые приложения предоставляют другим. Эти данные могут храниться в файловой системе, базах данных SQLite, в сети, или в любом другом постоянном месте, к которому приложение может иметь доступ. Посредством content provider другое приложение может запрашивать данные и, если выставлены соответствующие разрешения, изменять их. Например, система Android содержит content provider, который управляет пользовательской информацией о контактах. Он позволяет любому приложению, обладающему соответствующими правами вызывать составляющие этого компонента для того, чтобы считывать, записывать или изменять информацию о конкретном человеке.
Broadcast receivers. Этот компонент отвечает за распространение общесистемных сообщений, отслеживание и реагирование на действия. Многие оповещения идут от системы, например, сообщения о том, что заряд батареи мал или экран выключен. Приложения также могут инициировать такие оповещения, например, сигнализировать о том, что информация загружена на устройство и доступна к использованию. Как и сервисы, broadcast receiver не предоставляет пользовательского интерфейса, однако, он способен создавать уведомления в строке состояния, чтобы предупреждать пользователя о том, что произошло какое-то событие.
Внешний вид приложения.
«По сравнению с другими ОС, Android — одна из наиболее простых и одновременно комплексных платформ, вся система скачивается за один раз».
Большинство студентов используют телефоны с операционной системой Android, что позволяет сделать разрабатываемое приложение более доступным и тем самым обеспечивает студентам доступ к расписанию вне института.
Задачи, подлежащие автоматизации:
1. Информирование об изменениях в расписании;
2. Информирование о текущих предметах.
Данное приложение может работать как в режиме online, так и в offline. В режиме offline приложение выполняет функцию предоставления материалов с возможностью просматривать ранее сохраненные данные (предмет, время, аудитория и т. п.). В режиме online появляется возможность полного информирования.
В его основе лежит система баз данных SQLite. «SQLite» - мощная и легковесная, отличается от многих обычных движков баз данных отсутствием типизации каждого столбца.
Когда приложение использует SQLite, их связь производится с помощью функциональных и прямых вызовов файлов, содержащих данные, а не кого-то интерфейса, что повышает скорость и производительность.
Приложение с интуитивно понятным интерфейсом быстро и без особого труда позволит студентам учебного заведения получать:
1. актуальное расписание занятий учебной группы на неделю либо на отдельно взятый день;
2. расписание экзаменов, зачетов;
3. расписание лабораторных работ и практических занятий;
4. получить быстрый, простой и оперативный доступ к информации, касающейся учебного процесса - расписание занятий, экзаменов, преподавателя, аудитория, время.
В результате данное приложение упрощает повседневную жизнь студентов. Простой интерфейс делает процесс обучения более комфортным, информативным и более доступным.
При входе в приложение пользователю показывается окно (рис. 1):
Рис. 1. Главное окно приложения
Главное окно приложения включает в себя элементы: «Расписание», «Дни недели», «Группа», кнопка «Подтвердить». При нажатии на каждую из них происходит переход на соответствующую вкладку программы. При каждом выборе определенной группы происходит обновления расписания путем Ajax-запроса на сервер. Обмен данными с сервером происходит в формате JSON.
Вкладка «Расписание» содержит элемент «List View», с элементами с каждой из которых представляет собой вкладку с расписанием на конкретный день недели. При нажатии на вкладку происходит показ ее содержимого, которое представляет собой набор вкладок, разбитых по учебным планам (рис. 2):
Виджет ListView представляет собой прокручиваемый список элементов. Очень популярен на мобильных устройствах из-за своего удобства.
При большом количестве информации, которую надо поместить на экране необходимо использовать полосы прокрутки. В Android существуют специальные компоненты ScrolView и HorisontalView, которые считаются контейнерными элементами и наследуются от ViewGroup.
При большом количестве информации, которую нужно поместить на экране приходится использовать полосы прокрутки. В Android существуют специальные компоненты ScrollView и HorizontalScrollView, которые являются контейнерными элементами и наследуются от ViewGroup. Их использование с TextView способен улучшить вид приложения и повышает удобство работы для пользования
На панели инструментов компоненты можно найти в разделе Containers.
Виджет ScrollView, поддерживает только вертикальную прокрутку, поэтому для создания вертикальной и горизонтальной прокрутки необходимо использовать ScrollView в сочетании с HorizontalScrollView.
Рис. 2. Кнопка Подтверждения и вкладка с расписанием.
Структура навигации в приложении выглядит следующим образом (рис.3):
Рис. 3. Схема навигации мобильного приложения