Программные средства для мобильных устройств



Дата19.01.2021
Размер1,41 Mb.
ТипПояснительная записка

МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ

ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАН

ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛ-ХОРЕЗМИ

ФАКУЛЬТЕТ ПРОГРАММНЫЙ ИНЖИНИРИНГ

КАФЕДРА «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ»

РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ПСИХОДИАГНОСТИКИ ПОЛЬЗОВАТЕЛЕЙ

Пояснительная записка к курсовой работе

по курсу «Программные средства для мобильных устройств»

Выполнила:

Студент гр.315-17

Назарова К.У

Проверила:

Дошанова М.Ю.

Ташкент 2020

Содержание


Введение

Раздел I. Принцип работы Android OS и Android приложений

.1 Компоненты приложений в Android

.2 Архитектура операционной системы Android

Раздел II. Разработка Android Приложений

.1 Инструменты Android-разработчика

.2 Установка Android SDK

Раздел III. Мобильные приложения

.1 Программа

.2 Исходный код

Заключение

Список использованной литературы


Введение

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

Раздел I

Принцип работы Android OS и Android приложений

Приложения под операционную систему Android разрабатываются в основном с использованием Java. Скомпилированный программный код (вместе со всеми файлами ресурсов и прочей необходимой информацией) упаковывается в специальный файл-архив, Android Package. Этот файл имеет расширение *.apk и упаковывается специальной утилитой aapt tool. Именно он в дальнейшем распространяется как программа и инсталлируется на мобильные устройства. Один такой файл связан с кодом одного приложения. И каждое приложение в Android живет в своем собственном мире - в такой машине. По умолчанию, каждая программа выполняется в своем собственном процессе, управлением которого занимается ядро Linux, которое также осуществляет менеджмент памяти. Таким образом, чаще всего код приложения выполняется в изоляции от всех других приложений. Android стартует процесс, когда возникает необходимость выполнить какой-нибудь программный код и завершает его, когда в нем больше нет необходимости и системные ресурсы требуются другим приложениям. По умолчанию, каждому приложению присваивается свой уникальный ID Linux-пользователя. Права доступа устанавливаются таким образом, чтобы файлы приложения были видны только этому пользователю и данному приложению. Хотя, есть способы, позволяющие экспортировать их в другие приложения. Например, существует возможность «разделения» одного и того же пользовательского ID между двумя приложениями. В таком случае, они смогут видеть файлы друг друга. Для того, чтобы экономить системные ресурсы, приложения с одинаковым ID можно также договориться запускать в одном и том же Linux-процессе, разделяя одну и ту же виртуальную машину.

1. Компоненты приложений в Android

android программа приложение

Интересной чертой операционной системы Android является тот факт, что приложение в ней может использовать для своего функционала элементы других приложений, если, конечно, они предоставляют такой доступ. Например, если нашему приложению требуется отобразить прокручиваемый список изображений, а другое приложение уже имеет реализованный подходящий скроллер, открытый для других приложений, то можно просто вызвать его для осуществления этого действия и не разрабатывать свой собственный. При этом код нашего приложения не смешивается с кодом другого и не компонуется с ним. Скорее, он просто запускает некоторый кусок другого файла, когда возникает такая необходимость. Для обеспечения такого принципа работы, система должна быть способна запускать процесс приложения тогда, когда потребуется любая его часть и создавать экземпляры java-объектов именно для этой части. Поэтому приложения Android не имеют единой точки входа, как это принято в большинстве систем. Вместо этого их код представляет собой набор некоторых отдельных целостных сущностей, компонент, из которых система по мере необходимости может создавать экземпляры и использовать их.

Можно выделить четыре типа таких сущностей-компонент. Поговорим о каждой в отдельности.представляет собой внешний пользовательский интерфейс для одной операции, которую может совершить пользователь. Если упростить, то это просто один текущий экран как некоторая единица активности, своего рода кадр с одним пользовательским действием. Здесь и далее будет использоваться термин activity без перевода, как некоторое имя собственное. Хотя дословный перевод, «активность» или «действие», хорошо передает общий смысл компонента.

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

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

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

Каждое activity предоставляет окно по умолчанию. Обычно окно создается в полноэкранном виде, но оно также может и не занимать весь экран и находиться поверх других окон. Activity также может задействовать дополнительные окна - например, всплывающее диалоговое для взаимодействия с пользователем в процессе работы activity, или окно для предоставления текущей информации при выборе какой-нибудь важной опции.

Визуальное содержание окна строится с помощью иерархии визуальных компонентов (или представлений) - объектов, производных от базового класса View. Каждый компонент представляет собой просто прямоугольное пространство внутри окна. Родительские компоненты содержат дочерние и организуют их расположение. Иерархию компонент можно представить в виде дерева, а те элементы, которые находятся в самой нижней его части (“листья”) и не имеют дочерних компонент, отрисовывают прямоугольные области и ожидают действий пользователя на этом участке. Таким образом осуществляется интерактивное взаимодействие с пользователем. К примеру, такое представление может отображать на экране маленькую иконку и инициировать какое-нибудь действие, когда пользователь на неё нажмет. В операционной системе Android уже есть набор готовых визуальных компонент, которые доступны для использования разработчиками. Набор включает в себя кнопки, текстовые поля, полосы прокрутки, меню, флажки-переключатели и многое другое.

Для того чтобы поместить в окно такую иерархию, нужно вызвать метод Activity.setContentView(). Параметром метода является экземпляр класса View, лежащий в корне иерархии.(сервисы) представляют из себя компоненты, которые работают в фоновом режиме. Он, как правило, требуется для длительных операций или для обеспечения работы удаленных процессов, но в общем случае это просто режим, который функционирует, когда приложение не в фокусе. Примером такого процесса может стать прослушивание музыки в то время, когда пользователь делает что-то другое или получение данных по сети без блокирования текущей активности. Сервис сам по себе не предоставляет пользовательского интерфейса, то есть с пользователем не взаимодействует, а запускается, управляется и связан с другими компонентами, например, activity. Также может запускаться вместе с системой.providers Данный компонент управляет наборами данных, которые приложения предоставляют другим. Эти данные могут храниться в файловой системе, базах данных SQLite, в сети, или в любом другом постоянном месте, к которому приложение может иметь доступ. Посредством content provider другое приложение может запрашивать данные и, если выставлены соответствующие разрешения, изменять их. Например, система Android содержит content provider, который управляет пользовательской информацией о контактах. Он позволяет любому приложению, обладающему соответствующими правами вызывать составляющие этого компонента для того, чтобы считывать, записывать или изменять информацию о конкретном человеке.

В более общем случае, content provider можно использовать для чтения и записи данных, которые используются приложением и не являются открытыми для других. Например, приложение Note Pad использует такой компонент для сохранения сделанных записей.

Данные компоненты реализуются как подкласс ContentProvider. И для того, чтобы другие приложения могли совершить операции с данными, им необходимо предоставить стандартный набор API.receivers. Этот компонент отвечает за распространение общесистемных сообщений, отслеживание и реагирование на действия. Многие оповещения идут от системы, например, сообщения о том что заряд батареи мал или экран выключен. Приложения также могут инициировать такие оповещения, например, сигнализировать о том, что информация загружена на устройство и доступна к использованию. Как и сервисы, broadcast receiver не предоставляет пользовательского интерфейса, однако, он способен создавать уведомления в строке состояния, чтобы предупреждать пользователя о том, что произошло какое-то событие. Однако чаще broadcast receiver взаимодействует с другими компонентами для того, чтобы самому выполнять минимальный объем работы. Так, он может инициировать сервисы для выполнения действий, привязанных к какому-то событию.

1.2 Архитектура операционной системы Android



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

Как известно, Андроид основан на несколько урезанном ядре ОС Linux и поэтому на этом уровне мы можем видеть именно его (версии 2.6.x). Оно обеспечивает функционирование системы и отвечает за безопасность, управление памятью, энергосистемой и процессами, а также предоставляет сетевой стек и модель драйверов.Ядро также действует как уровень абстракции между аппаратным обеспечением и программным стеком.

«Выше» ядра, как программное обеспечение промежуточного слоя, лежит набор библиотек (Libraries), предназначенный для обеспечения важнейшего базового функционала для приложений. То есть именно этот уровень отвечает за предоставление реализованных алгоритмов для вышележащих уровней, поддержку файловых форматов, осуществление кодирования и декодирования информации (в пример можно привести мультимедийные кодеки), отрисовку графики и многое другое. Библиотеки реализованы на C/C++ и скомпилированы под конкретное аппаратное обеспечение устройства, вместе с которым они и поставляются производителем в предустановленном виде.

Перечислим некоторые из них:Manager - в ОС Android используется композитный менеджер окон, наподобие Compiz (Linux), но более упрощенный. Вместо того чтобы производить отрисовку графики напрямую в буфер дисплея, система посылает поступающие команды отрисовки в закадровый буфер, где они накапливаются вместе с другими, составляя некую композицию, а потом выводятся пользователю на экран. Это позволяет системе создавать интересные бесшовные эффекты, прозрачность окон и плавные переходы.Framework - библиотеки, реализованные на базе PacketVideo OpenCORE. С их помощью система может осуществлять запись и воспроизведение аудио и видео контента, а также вывод статических изображений. Поддерживаются многие популярные форматы, включая MPEG4, H.264, MP3, AAC, AMR, JPG и PNG.- легковесная и производительная реляционная СУБД, используемая в Android в качестве основного движка для работы с базами данных, используемыми приложениями для хранения информации.

D библиотеки - используются для высокооптимизированной отрисовки 3D-графики, при возможности используют аппаратное ускорение. Их реализации строятся на основе API OpenGL ES 1.0. O OpenGL ES (OpenGL for Embedded Systems) - подмножество графического программного интерфейса OpenGL, адаптированное для работы на встраиваемых системах.- библиотека для работы с битовыми картами, а также для растеризации шрифтов и осуществления операций над ними. Это высококачественный движок для шрифтов и отображения текста.- библиотеки известного шустрого браузерного движка WebKit, используемого также в десктопных браузерах Google Chrome и Apple Safari.(Skia Graphics Engine) - открытый движок для работы с 2D-графикой. Графическая библиотека является продуктом Google и часто используется в других их программах. SSL - библиотеки для поддержки одноименного криптографического протокола.- стандартная библиотека языка C, а именно её BSD реализация, настроенная для работы на устройствах на базе Linux. Носит название Bionic.

На этом же уровне располагается Android Runtime - среда выполнения. Ключевыми её составляющими являются набор библиотек ядра и виртуальная машина Dalvik. Библиотеки обеспечивают большую часть низкоуровневой функциональности, доступной библиотекам ядра языка Java.

Каждое приложение в ОС Android запускается в собственном экземпляре виртуальной машины Dalvik. Таким образом, все работающие процессы изолированы от операционной системы и друг от друга. И вообще, архитектура Android Runtime такова, что работа программ осуществляется строго в рамках окружения виртуальной машины. Благодаря этому осуществляется защита ядра операционной системы от возможного вреда со стороны других её составляющих. Поэтому код с ошибками или вредоносное ПО не смогут испортить Android и устройство на его базе, когда сработают. Такая защитная функция, наряду с выполнением программного кода, является одной из ключевых для надстройки Android Runtime. Уровнем выше располагается Application Framework, иногда называемый уровнем каркаса приложений. Именно через каркасы приложений разработчики получают доступ к API, предоставляемым компонентами системы, лежащими ниже уровнем. Кроме того, благодаря архитектуре фреймворка, любому приложению предоставляются уже реализованные возможности других приложений, к которым разрешено получать доступ.

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

Богатый и расширяемый набор представлений (Views), который может быть использован для создания визуальных компонентов приложений, например, списков, текстовых полей, таблиц, кнопок или даже встроенного web-браузера.

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

Менеджер ресурсов (Resource Manager), обеспечивающий доступ к ресурсам без функциональности (не несущими кода), например, к строковым данным, графике, файлам и другим.

Менеджер оповещений (Notification Manager), благодаря которому все приложения могут отображать собственные уведомления для пользователя в строке состояния.

Менеджер действий (Activity Manager), который управляет жизненными циклами приложений, сохраняет данные об истории работы с действиями, а также предоставляет систему навигации по ним.

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

Таким образом, благодаря Application Framework, приложения в ОС Android могут получать в своё распоряжение вспомогательный функционал, благодаря чему реализуется принцип многократного использования компонентов приложений и операционной системы. Естественно, в рамках политики безопасности.

Раздел II

Разработка Android приложений

.1 Инструменты Android-разработчика

Непосредственно переход к практике программирования под любую платформу начинается с рассмотрения имеющегося арсенала инструментов разработки. Уже после того, как инструменты выбраны (руководствуясь какими-то соображениями и предпочтениями), настроены для работы и опробованы в написании каких-нибудь простых инструкций, начинается «большое» программирование и совершенствование навыков.

Прежде чем рассматривать инструменты для Android, необходимо ввести некоторые общие понятия, с которыми предстоит столкнуться на данном этапе. Первое базовое понятие - это SDK или Software Development Kit («devkit»). Под ним понимают набор средств разработки, позволяющий программистам создавать приложения под некоторую архитектуру - для определенного пакета программ, аппаратной или программной платформы, операционной или компьютерной систем. SDK, как правило, предоставляет разработчику широкий набор инструментов, который может включать в себя средства отладки и справочные материалы (примеры кода, заметки и т.д.). SDK часто предоставляется непосредственно разработчиком целевой платформы и в нем учитываются её особенности. Распространятся (как и в случае с Android) такой инструментарий может бесплатно. Это помогает платформе обзаводиться разнообразными приложениями за счет сторонних разработчиков.

Ещё одним понятием, которое часто можно встретить, когда речь идет об инструментах разработки, является IDE (Integrated development environment) - интегрированная среда разработки. Она представляет собой набор программных средств, призванный максимизировать производительность программиста за счет построения для него удобной и дружелюбной среды для процесса программирования. Этот сложный программный комплекс может включать в себя текстовый редактор (чаще всего с подсветкой синтаксиса и подсказками), компилятор или интерпретатор (иногда поддерживаются несколько языков), интегрированный отладчик и средства для автоматизации сборки. Часто поддерживаются возможности интеграции со сторонним программным обеспечением, например, средствами проектирования или контроля версий. Также чаще всего в IDE есть инструменты для быстрого построения и визуального редактирования графического интерфейса будущей программы, а также инструменты вроде диаграмм иерархии классов, браузера классов, инспектора объектов или менеджера ресурсов. Таким образом, интегрированная среда разработки призвана объединить различные инструменты в один программный комплекс для обеспечения удобства и повышения скорости разработки ПО. Хотя на деле можно и не использовать для программирования какую-либо IDE, предпочтя несвязные между собой инструменты.

Разработка приложений для платформы Android связана с группой инструментов, которые предоставляются набором Android SDK. Также понадобятся инструментарий для разработки приложений в Java SE (JDK) и интегрированная среда разработки. В качестве последней принято использовать Eclipse IDE, что будем делать и мы, хотя стоит отметить, что разработку приложений можно вести и с помощью простейшего текстового редактора или других IDE, а также вызывать инструменты с помощью скриптов или использования командной строки. Однако разработка в Eclipse является предпочтительным методом, потому что, во-первых, эта среда может напрямую обращаться к необходимым инструментам, а во-вторых, для неё существует специальный плагин, Android Development Toolkit (ADT), который обеспечивает переход к созданию приложений под Android с помощью Eclipse IDE ещё более удобным образом.

В заключении отметим, что Android SDK требует JDK версии 5 или выше, а также Eclipse версии 3.3 или выше. На сайтах разработчиков доступны версии SDK, Java и Eclipse для операционных систем Windows, Linux и Mac OS, а в SDK входит эмулятор для каждой из них. Вообще говоря, приложения под Android выполняются в виртуальной машине, и выбор любой из существующих операционных систем не дает никаких преимуществ перед другими, так что можно работать с той, которая более удобна. Наши дальнейшие примеры будут рассмотрены для ОС Windows, но, если будет необходимость, мы рассмотрим и работу с Linux.

2. Установка Android SDK

Для разработки приложений для платформы Android нам понадобится установить на компьютер Android SDK. Помимо прочих инструментов разработчика в него входит эмулятор нашей мобильной операционной системы, так что для программирования и отладки даже необязательно иметь под рукой устройство на базе Android. SDK имеется в свободном доступе, и скачать его можно с официального сайта - http://developer.android.com/sdk/index.html. Отсюда нужно загрузить версию SDK для своей операционной системы.

Например, для Windows предлагаются версии в виде архива zip и исполняемого файла exe. И в том, и в другом случае Android SDK представляет собой просто сжатую папку с файлами, содержимое которой будет распаковано в удобное нам место. Если вдруг во время распаковки архива (в случае с exe-файлом) появляются уведомления об отсутствии в системе установленного JDK (а он при этом установлен), то достаточно нажать кнопку Back (Назад) и снова попробовать, тогда всё станет корректно.

После проделанных действий мы пойдем в папку с распакованным контентом и почитаем “SDK Readme.txt”, в котором говорится о том, что данный архив содержит в себе только базовые инструментальные средства. Для полноценной разработки нам предстоит воспользоваться утилитой “SDK Manager”, которая позволяет устанавливать и модифицировать компоненты SDK, пользуясь репозиторием на сервере Google (да-да, понадобится соединение с Интернет).

Запустим исполняемый файл с названием SDK Manager. Здесь может возникнуть проблема с его работой. Если выдаются ошибки и приложение не запускается, то тут дело в переменной среды PATH, которая хранит в себе пути поиска для исполняемых файлов и используется различными программами и скриптами. Для корректной работы в этой переменной должен быть указан путь до каталога инструментов Android SDK, а также до каталога bin для JDK (в дальнейшем он нам понадобится). Поэтому надо записать эти пути в переменную PATH. На примере Windows XP - щелкаем правой клавишей мыши на значке «Мой компьютер», выбираем вкладку «Дополнительно», «Переменные среды», отыскиваем среди переменных PATH, «Изменить». В поле «Значение переменной» в конце ставим «;», затем пишем путь до каталога tools в Android SDK, по умолчанию это «C:\Program Files\Android\android-sdk\tools\», «;», а затем путь до bin, который лучше прописать так - «%JAVA_HOME%\bin\», в результате переменная PATH примет примерно такой вид:

C:\Program Files\Android\android-sdk\tools\;%JAVA_HOME%\bin\



Подтверждаем внесенные изменения. Теперь SDK Manager должен запуститься без проблем. После запуска программа соединится с репозиторием и в окне менеджера отобразится список доступных пакетов. В окошке Available Packages (доступные пакеты) выберем нужные пакеты, после чего нужно нажать Install Selected (установить выбранное). После успешной установки мы будем иметь на компьютере полноценный боевой Android SDK и можем перейти к установке и настройке плагина для Eclipse. Если во время запуска установщика возникает ошибка, то нужно зайти в меню SDK Manager на вкладку Settings и там снять отметку с пункта Force https://… sources to fetched using http://….

В дальнейшем этот процесс можно будет вызывать прямо из IDE Eclipse или с помощью командной строки Windows, давая команду tools\android.bat_update_sdk

Раздел III

Приложение содержит различные мини-игры для детей с заболеванием аутизма. Одним из самых значительных частей является прохождение мини-тестов по различным предметам. В приложение имеется меню

Категории тестов



Активити теста



Активити результатов



А также имеется мини-игра паззл



Запуск приложение с помощью эмулятора









Заключение

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

Список использованной литературы

1. Google Android программирование для мобильных устройств (Голощапов А.Л., 2011, BHV Санкт-Петербург)

2. Разработка приложений для Android (С. Хашими, С. Коматинени, Д. Маклинr, 2011)

. Android 2. Программирование приложений для планшетных компьютеров и смартфонов (Рето Майер, Эксмо, 2011)

4. Больше книг об Android -



. Блог посвященный Android - :// android-zone.info

. Блог разработчика Android -

Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©psihdocs.ru 2019
обратиться к администрации

    Главная страница