Приложения, предназначенные для клиентов аптечной сети "Фармация"

Разработка приложений для смартфонов на ОС Android для сети аптек "Фармация". Архитектура операционной системы Android. Архитектура и реализация приложения. Его функциональность. Описание работы мобильного приложения. Расчет затрат на создание продукта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 17.06.2017
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. РАЗРАБОТКА ПРИЛОЖЕНИЙ ДЛЯ СМАРТФОНОВ НА ОС ANDROID ДЛЯ СЕТИ АПТЕК «ФАРМАЦИЯ»

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

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

1.3 Разработка Andrid Приложений1

1.4 Общая характеристика аптечной сети «Фармация»

ГЛАВА 2. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ СЕТИ АПТЕК «ФАРМАЦИЯ»

2.1 Архитектура и реализация приложения

2.2 Функциональность приложения

2.3 Описание работы мобильного приложения

ГЛАВА 3. ТЕХНИКО - ЭКОНОМИЧЕСКАЯ ЭФФЕКТИВНОСТЬ РАБОТЫ ПРИЛОЖЕНИЯ ANDROID СЕТИ АПТЕК «ФАРМАЦИЯ»

3.1 Расчет затрат на создание продукта

3.2 Экономическая эффективность

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЯ

ВВЕДЕНИЕ

В настоящее время Android развивается в геометрической прогрессии: каждый год число пользователей этой операционной системы постоянно растет. Согласно последнему отчету компании Canalys, ведущего аналитика индустрии высоких технологий, операционная система Android занимает 69, 2% мирового рынка мобильных устройств. Конечно, этот факт привлекает внимание многих разработчиков создавать мобильные приложения, специально для Android. Возможно, на сегодняшний день она является самой популярной и интересной системой. Разработчики дают пользователям уникальную возможность - установив набор свободного программного обеспечения, можно создать программы для системы и продавать их в специализированном интернет-магазине.

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

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

Скоро в IT-индустрии, как ожидается, будет быстро увеличиваться в размере и объеме программное обеспечение для мобильных устройств.

Эта новая тенденция открывает доступ к мобильным устройствам для традиционных языков программирования, так что область применения мобильных приложений, и их доля на рынке растут.

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

В данной работе рассматриваются приложения, предназначенные для клиентов аптечной сети «Фармация».

Предмет исследования - аптечная сеть «Фармация» для операционной системы Android.

Объект исследования является аптечная сеть «Фармация».

Цель работы - создание приложения для клиентов аптечной сети «Фармация» на операционной системы Android.

Для достижения этой цели необходимо решить следующие задачи:

1) изучить архитектурные особенности платформы Android для реализации исходных требований;

2) спроектировать приложение;

3) реализовать приложение;

4) протестировать приложение.

ГЛАВА 1. РАЗРАБОТКА ПРИЛОЖЕНИЙ ДЛЯ СМАРТФОНОВ НА ОС ANDROID ДЛЯ СЕТИ АПТЕК «ФАРМАЦИЯ»

смартфон операционный мобильный приложение

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

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

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

Можно выделить четыре типа таких сущностей-компонент. Поговорим о каждой в отдельности.

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

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

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

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

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

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

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

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

«Content providers» данный компонент управляет наборами данных, которые приложения предоставляют другим. Эти данные могут храниться в файловой системе, базах данных SQLite, в сети, или в любом другом постоянном месте, к которому приложение может иметь доступ. Посредством content provider другое приложение может запрашивать данные и, если выставлены соответствующие разрешения, изменять их. Например, система Android содержит content provider, который управляет пользовательской информацией о контактах. Он позволяет любому приложению, обладающему соответствующими правами вызывать составляющие этого компонента для того, чтобы считывать, записывать или изменять информацию о конкретном человеке.

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

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

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

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

C точки зрения программиста, Android - платформа, которая абстрагирует разработчика от ядра, и позволяет ему создать код в Java. Android имеет несколько полезных функций. Во-первых, это основа предлагает большой набор API для создания различных типов приложений, а также обеспечивает возможность повторного использования и замены компонентов, предлагаемых приложениями платформы и сторонних производителей. Во-вторых, наличие виртуальной машины Dalvik, отвечает за запуск приложений на Android. Кроме того, услуги множества разработчиков графических библиотек для 2D и 3D приложений, поддерживают мультимедийные форматы (Ogg Vorbis, MP3, MPEG-4, H.264, PNG), API для доступа к камере, GPS, компас, акселерометр, сенсорный экран, джойстик или клавиатура. Существует даже специальный API для воспроизведения фоновых звуковых эффектов, что полезно для нас в разработке игр. Не все Android-устройства имеют все эти возможности - есть аппаратное подразделение. Конечно, у Android не исчерпывается список возможностей, упомянутых здесь. Тем не менее, для разработки игр они являются наиболее важными. Android-архитектура формируется из множества компонентов. Каждый компонент основан на элементах нижнего уровня. На рис. 1 представлен обзор основных компонентов Android.

Рисунок 1. Обзор архитектуры

В нижней части рисунка 1 показано, что ядро Linux обеспечивает основные драйверы для аппаратных компонентов системы. Кроме того, ядро отвечает за память, управление процессами, сетевую поддержку и т.д.

Среда выполнения Android, построенная вокруг ядра, отвечает за разработку и осуществление Android приложений. Каждая программа работает в своем собственном процессе со своей собственной виртуальной машиной Dalvik.

Dalvik запускает программы в формате байткодом DEX. Java-файлы с классом преобразованы в формат DEX с помощью специального инструмента DX, доступном в SDK. формат DEX занимает гораздо меньше места в памяти, чем классический тип файлов CLASS, что достигается за счет высокой степени сжатия, разделения на таблицы и объединения несколько CLASS-файлов.

Dalvik виртуальная машина взаимодействует с библиотеками ядра, которые предлагают базовые функциональные возможности для Java-программ. Эти библиотеки имеют большой, но не полный перечень классов, доступных через Java SE.

До Android 2.2 (Froyo) весь код был интерпретирован. В Froyo было введено отслеживание JIT-компилятора, который может компилировать части байткода в машинный код на лету. Это значительно повышает производительность приложений, которые требуют большего количества вычислений. JIT-компилятор может использовать возможности процессоров, которые специально разработаны для сложных вычислений, таких как операции с плавающей запятой. Кроме того, он включал свой собственный сборщик мусора Dalvik (Garbage Collector, GC). Он работает по принципу "уведомить и забрать", что иногда ставит разработчиков в тупик. Тем не менее, если его тщательно изучить, то он может быть эффективно использован в разработке игр. Каждое приложение, работающее в экземпляре виртуальной машины Dalvik, имеет в своем распоряжении от 16 до 24Mb RAM. Это необходимо иметь в виду, используя картинки и звуковые ресурсы.

В дополнение к основным библиотекам, которые предлагают некоторые функциональные возможности Java SE, есть также множество собственных библиотек в C / C ++, которые помогают создать основу для применения структуры. Эти системные библиотеки в основном отвечает за комплекс функций (рисование графики, воспроизведение звука, доступ к базе данных), что не очень подходит для виртуальной машины Dalvik. API развернул их с помощью классов Java в рамках приложения, которое используется для написания игр.

Фреймворк связывает системные библиотеки и среды выполнения, создавая тем самым привязку к Android. Структура управляет приложениями и предлагает сложную среду, в которой они работают. Разработчики создают приложения для этой структуры с набором API-интерфейсов в Java, охватывающих такие области, как разработка пользовательского интерфейса, фоновые службы, уведомления, управление ресурсами, доступ к периферийным устройствам и т.д. Все виды ключевых приложений, которые поставляются с операционной системой Android (например, клиент электронной почты), написаны с помощью API. Приложения, интерфейс или фоновые службы могут взаимодействовать с другими приложениями. Это соединение позволяет одному приложению использовать другие компоненты. Простой пример - это программа, которая делает фото-образ, а затем может обработать его. Приложение запрашивает у системы другой компонент приложения, который обеспечивает это действие. Далее, первое приложение может повторно использовать этот компонент (например, от встроенной в приложение камеры или из фотогалереи). Этот алгоритм удаляет значительную часть бремени от программиста, и позволяет настроить поведение многообразия аспектов Android.

Для разработки собственного приложения необходимо изучить инструментарий комплекта для разработки программ Android Software Development Kit (SDK).

1.3 Разработка Andrid Приложений

Для разработки приложений используется высокоуровневый прикладной интерфейс программирования Java для Android, при помощи которого можно создавать приложения для конечных пользователей Android. Рассмотрим особенности эмулятора Android, фундаментальные компоненты Android и пакеты, входящие в состав SDK. Также будут приведены несколько фрагментов кода.

Комплект для разработки программного обеспечения (SDK) для Android поставляется с Android Studio, плагином, который называется набором инструментальных средств для разработки на Android (ADT). Этот инструмент разработки IDE (IDE) для создания, отладки и тестирования приложений на Java. Android SDK может использоваться без ADT; вместо инструментов, можно использовать инструменты командной строки. Эмулятор поддерживает использование обоих подходов, и с его помощью можно запустить, исправить и проверить приложения. 90% разработки приложений может быть завершена, даже без использования реального устройства. Полностью функциональный эмулятор для Android воспроизводит наиболее изученные характеристики устройства. Среди тех функций, которые не могут быть имитированы в эмуляторе, являются USB-подключение, работа камеры и видео, имитация работы наушников, батареи и технологии Bluetooth.

Android Emulator базируется на технологии с открытым исходным кодом "имитация" процессора под названием QEMU, который был разработан Беллар. Та же самая технология может эмулировать одну операционную систему на другой, независимо от того, какая используется процессором. QEMU обеспечивает эмуляцию уровня процессора.

При использовании эмулятор Android имитирует процессор, который функционирует на базе ARM (Advanced RISC Machine, Advanced RISC-машина). ARM - 32-разрядная архитектура микропроцессоров на базе RISC (Reduced Instruction Set Computer, компьютер с сокращенным набором команд команд), которая за счет сокращения количества команд достигает простоты конструкции и повышение производительности. Эмулятор использует процессор в такой моделируемой версии Linux, которая используется в Android.

ARM широко используется в мобильных устройствах и встроенных электронных устройствах, где важно распределить небольшое количество энергии. Многие имеющиеся в продаже мобильные устройства имеют процессоры с этой архитектурой. Например, Apple Newton на базе процессора ARM6. Игровые автоматы, Nintendo DS и Game Boy Advance работают на архитектуре ARM версии 4, которая использует около 30 000 транзисторов. Классический Pentium содержит 3, 2 миллиона транзисторов.

Компоненты пользовательского интерфейса ANDROID.

Пользовательский интерфейс используемый в рамках ОС Android, сравним с другими полнофункциональными UI-структурами, применяемыми на локальных компьютерах. Это более современный и асинхронный характер. На самом деле, UI- фреймворк Android принадлежит к четвертому поколению, если считать первое поколение традиционного прикладного программирования интерфейса Microsoft Windows, основанный на C и MFC (классов Microsoft Foundation, Microsoft библиотеки базовых классов, основанных на C ++ ) - второй. В этом случае, Swing UI- фреймворк, основанный на Java, будет третьим поколением, и, как было предложено в его конструктивных возможностях, намного превосходит MFC по гибкости. Android UI, JavaFX, Microsoft Silverlight и язык Mozilla XML (XUL) пользовательские интерфейсы включают новый тип UI-фреймворк четвертого поколения, который является декларативным UI и поддерживает независимую тематизацию.

При программировании в пользовательском интерфейсе Android используется объявление интерфейса в файлах XML. Тогда определение представления XML загружаются в приложение с пользовательским интерфейсом, как в Windows. Даже меню приложения загружаются из файла XML. Экраны (окна) Android часто называют деятельностью, которые включают в себя несколько типов, и пользователи должны выполнить логический элемент процесса. Виды (представления) являются основными элементами, которые находятся в пользовательском интерфейсе Android. Формы могут быть объединены в группы (группы Видов). Для внутренней организации этого вида, они используют в течение длительного времени известную в программировании концепцию холста и взаимодействие пользователя с системой.

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

Одним из ключевых понятий базы является управление Android- Power жизненным циклом окон событий (окна деятельности). Протоколы системы используются, так что Android может управлять ситуацией пока пользователь, выполняет действия чтобы скрыть, восстановить, остановить и закрыть окно явления.

«Основные компоненты Android». Фреймворк для пользовательского интерфейса Android, вместе с другими компонентами Android основан на новой сущности, называется намерение. Намерение - это сложный феномен, который сочетает в себе идеи, такие как сообщения, отображаемые в окне, действия модель «публикации и подписки», обмен межпроцессной информацией и регистрами приложений. Ниже приведен пример использования класса Intent для активации или запуска веб-браузера:

public static void invokeWebBrowser (Activity activity)

{

Intent intent = new Intent (Intent. ACTION_VIEW):

intent. setData (Uri. parse ("http://www.google.com"));

activity. startActivity (intent);

}

В этом примере, используя намерение, мы говорим Android открыть окно, подходящее для отображения содержимого веб-сайта. В зависимости от того, какой браузер установлен на мобильном устройстве, Android будет выбрать наиболее подходящее для отображения сайта.

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

public final class R {

public static final class attr { }

public static final class drawable {

public static final int myanimation=0x7f020001;

public static final int numbersl9=0x7f02000e:

}

public static final class id {

public static final int textViewIdl=Ox7f080003;

}

public static final class layout {

public static final int frame_animations_layout=0x7f030001;

public static final int main=0x7f030002;

}

public static final class string {

public static final int hello=0x7f070000;

}

}

Эти классы соответствуют автоматически сгенерированному ID или XML-файлом элемента или множества. Если нужно использовать такие определения XML, вместо того, чтобы использовать их идентификационные данные. Такое посредничество очень полезно в локализации. Еще одна инновационная концепция в Android - это контент- провайдер (поставщик контента). Поставщик контента относится к абстракции источника данных, который может быть представлен в качестве эмиттера и REST обслуживания (репрезентативная State Transfer). В основе этой базы данных лежитабстракция SQLite и делает это свойство контент- провайдеров мощным инструментом для разработки приложений. Было отмечено, что XML играет важную роль в описании пользовательских интерфейсов для Android.

Ниже показано, как объявить меню в XML-файле:

<menu xmlns: android="http://schemes. android.com/apk/res/android">

<! - B этой группе используется категория, заданная по умолчанию. - ->

<group android: id="@+id/menuGroup_Main">

<item android: id="@+id/menu_clear"

android: orderInCategory="10"

android: title="clear" />

<item android: id="@+id/menu_show_browser"

android: orderInCategory="5"

android: title="show browser" />

</group>

</menu>

Хотя Android поддерживает и диалоговые окна, все они являются асинхронными. Работа с такими асинхронными диалогами особенно трудна для разработчиков, которые привыкли работать с синхронными модальными диалоговыми окнами, которые используются в некоторых оконных фреймворках.

Android также поддерживает анимацию - эта функция включена совместно со стеком пользовательского интерфейса, который основан на видах объектов. В Android используется анимация двух видов: с построением промежуточных кадров (tweening animation) и покадровая (frame-by-frame animation). Промежуточной анимацией называют картинки, которые отображаются между основными. На компьютере эти картинки создают изменения средних значений в определенные промежутки времени и перерисовки фона. Кадровая анимация состоит из последовательности кадров, которые нарисованы один за другим через равные промежутки времени. На Android используются обе версии анимации, используя функцию обратного вызова анимации, интерполяторов и матрицу преобразования. Кроме того, Android может идентифицировать эти типы анимации в файле XML-ресурсов.

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

В Android доступна и трехмерная графика. Это связано с тем, что введен стандарт OpenGL ES 1.0. Как и OpenGL, он основан на плоском языке API C.

Так как интерфейс прикладного программирования Android SDK основан на Java, OpenGL для доступа к нему должен использовать Java-связывание. В Java ME является обязательным для OpenGL ES и уже определено с помощью запроса на спецификации Java QSR 239 и для Android OpenGL ES использует тот же тип Java-связывания.

На Android, используются новые подходы, связанные с идеей информации на кончиках пальцев (information at your fingertips), доступ к которой осуществляется через домашнюю страницу. Первая из этих идей называется живые каталоги (живые папки). Используя живые каталоги, могут быть опубликованы коллекция элементов в папке, расположенной на главной странице сайта. Содержание этой коллекции меняется от базового изменения в его базе данных. Новые данные могут быть отправлены на устройство или со съемных носителей, или из Интернета.

Вторая идея связана с домашней страницей - это домашний виджет (home screen widget). Главные виджеты используются для отрисовывания с помощью пользовательского интерфейса виджета информации на домашней странице. Эта информация может быть изменена через регулярные промежутки времени. Примером таких данных может быть несколько сообщений электронной почты, которые хранятся на устройстве.

Встроенный поиск Android (Integrated Android Search) - это третья идея, связанная с использованием домашней страницы. Этот тип поиска позволяет искать информацию как на устройстве и в Интернете. В Android эта функция не ограничивается только одним поиском и может давать команды с помощью элемента управления поиска.

Кроме того, так называемые Поддерживаемые жесты Android, то есть интерпретация движений пальцев пользователя работы с устройством. Android позволяет записывать любую последовательность движений пальцев на экране и сохранять их в виде жестов. Затем такие жесты могут использоваться приложениями для определения конкретных действий.

Кроме инструментов Android SDK, есть и другие независимые инновации, которые делают процесс разработки интересной и простой. Некоторые примеры таких явлений - XML / VM, PhoneGap и титана. Titanium позволяет использовать HTML технологию в программировании для браузера на основе WebKit Android.

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

Компоненты дисплея и компоненты, связанные с телефонией

Интерфейсы Android API предназначены для работы с аудио-, видео - и телефонными компонентами.

До версии 1.5 на Android можно было только записывать аудио, а видео - нет. Версия 1.5 дала возможность записывать аудио и видео. Это было сделано с помощью MediaRecorder. В версиях Android 2.0 и выше применяется Pico двигатель для преобразования текста в речь (TTS). Интерфейс, используемый в работе Android при преобразования текста в речь, очень проста, а также имеет соответствующий код:

TextToSpeech mTTS;

mTTS. speak (sometextString, TextToSpeech. QUEUE_ADD);

mTTS. setOnUtteranceCompletedListener (this);

mTTS. stop ();

mTTS. shutdown ();

mTTS. synthesizeToFile (…);

Еще несколько методов, относящихся к этой сфере:

playSilence

setLanguage

setPitch

setSpeechRate

isSpeaking

Важно отметить, что во всех этих концепциях Android, объединенных в единый файл XML, который определяето пакет приложений. Этот файл представляет собой файл описания (файл манифеста) (AndroidManifest. Xml). Пример этого файла:

<? xml version="1.0" encoding="utf-8"? >

<manifest xmlns: android=http://schemas. android.com/apk/res/android

package="com. ai. android. HelloWorid">

android: versionCode="l"

android: versionName="1.0.0">

<application android: icon="@drawab1e/icon"

android: label="@string/app_name">

<activity android: name="HelloWorid"

android: label="@string/app_name">

<intent-filter>

<action android: name="android. intent. action. MAIN"

<category

android: name="android. intent. category. LAUNCHER"

</intent-filter>

</activity

</application>

<-/manifest>

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

Пакеты, которые являются частью Android SDK. Чтобы получить представление о платформе Android, необходимо рассмотреть структуру пакетов Java. Поскольку Android SDK отличается от стандартного распределения, важно знать, какие пакеты поддерживаются, а какие - нет. Ниже приводится краткое описание важных пакетов, составляющих Android SDK:

* Android.app - реализует модель приложения для Android. Среди основных классов - приложение, которое описывает начальную и конечную семантику, а также целый ряд классов, связанных с явлениями, элементы управления, диалоговых окон, окон предупреждений и уведомлений;

* Android.Bluetooth - содержит классы для работы с технологией Bluetooth. Основные классы VluetoothAdapter, BluetoothDevise, BluetoothSocket, BluetoothServerSocket и BluetoothClass. BluetoothAdapter класс может быть использован для управления Bluetooth-адаптером, установленным на локальном компьютере. Этот адаптер может включить, отключить или запустить процесс обнаружения. Класс BluetoothDevise является удаленным устройством Bluetooth, к которому можно подключиться. Для связи Bluetooth имеет два сокета, используемых между устройствами. Bluetooth Class представляет собой тип устройства Bluetooth, к которому вы подключены;

* Android.content - реализует концепции, связанные с поставщиками контента. Поставщик контента позволяет суммировать обмен и хранение данных. Кроме того, этот пакет реализует основные идеи относительно намерений и равномерного идентификаторов ресурсов (URI) в Android;

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

* Android. content. res - предоставляет доступ к файлам ресурсов, как структурированными неструктурированным. Основные классы AssetManager (для неструктурированных ресурсов) и материальных ресурсов;

* Android.database - реализует идею абстрагирования базы данных. Основной интерфейс называется Cursor;

* Android.database.sqlite - реализует концепцию пакета базы данных Android, с использованием в качестве физической базы данных SQLite. Основные классы SQLiteCursor, SQLiteDatabase, SQLiteQuery, SQLiteQueryBuilder и SQLiteStatement. Тем не менее, в основном приходится работать с классами абстрактного пакета базы данных Android;

* Android.gesture - в этом пакете располагаются все классы и интерфейсы, необходимые для работы с определенными пользователем жестами. Основные классы Gesture, GestureLibrary, GestureOverlayView, GestureStore, GestureStroke, GesturePoint. Класс Gesture является подборкой GestureStrokes и GesturePoints. Жесты собраны в библиотеке GestureLibrary. Библиотеки жестов хранятся в GestureStore. Имена жест таковы, что система может идентифицировать их как действия;

* Android. graphics - содержит класс Canvas, Camera, Color, Matrix, Movie, Paint, Path, Rasterizer, Shader, SweepGradient nTypeFace;

* Android.graphics.drawable - предназначен для работы с протоколами ри-сования и фоновых изображений, обеспечивает эффекты анимации при работе с рисованными объектами;

* Android.graphics.drawable. shapes - предназначены для работы с контурами, в том числе ArcShape, OvalShape, PathShape, RectShape и RoundRectShape;

* Android. hardware - позволяет использовать так называемые естественные классы, предназначенные для работы с камерой. Класс камеры является распространенным устройством - камерой, а класс android.graphics.Camera - графическая концепция, не имеющая никакого отношения к реальной физической камере;

* Android.location - содержит классы Address, GeoCoder, Location, LocationManager и LocationProvider. Класс Address является упрощением-замещением Language XAL (расширяемый язык адреса). Geocoder позволяет узнать адрес координат объекта (широта и долгота), и наоборот. В Location представлена информация о широте и долготе;

* Android.media - содержит классы MediaPlayer, MediaRecorder, Ringtone, AudioManager и FaceDetector. Класс MediaPlayer предназначен для потоковой поддержки аудио и видео. Класс Ringtone используется для воспроизведения коротких аудиоотсчетов, которые могут быть использованы в мелодии или уведомлений. AudioManager отвечает за регулировку громкости. FaceDetector может быть использован для обнаружения человеческих лиц на точке (растровые) рисунки;

* android.net - реализует базовую сеть на уровне сокетов API. Основные классы включают Uri, ConnectivityManager, локальный сокет и местный ServerSocket. Следует также отметить, что Android поддерживает уровень HTTPS-браузера и сетевой уровень. Кроме того, Android поддерживает JavaScript в браузере;

* android.net.WiFi - управляет подключением Wi-Fi. Основные классы WifiManager и WifiConfiguration. Класс WifiManager отвечает за составление списка настроенных сетей и работает с текущей активной сетью Wi-Fi;

* Android. OpenGL - содержит вспомогательные классы, которые используются при выполнении операций OpenGL ES. Классы Basic OpenGL ES являются частью другого набора пакетов, взятых из JSR 239.

* Android. os - служба операционной системы, доступ к которой осуществляется с помощью языка Java. Некоторые важные классы - BatteryManager, Биндер, FileObserver, Хэндлер, Looper и PowerManager. Binder класс обеспечивают обмен информацией между процессами. FileObserver ведет учет изменений в файлах. Класс Handler используется для выполнения задач в потоке сообщений, и Looper начинается само сообщение потока;

* Android.preference - позволяет приложениям предоставить пользователям возможность управлять своими настройками для этого приложения в единой форме. Основные классы PreferenceActivity, PreferenceScreen;

* Android.provider - включает в себя набор готовых контент-провайдеров, связанных с android. content. ContentProvider. Среди поставщиков контента - Контакты, MediaStore, браузер и настройки. Этот набор интерфейсов и классов содержит метаданные для описания базовой структуры данных;

* Android. sax - обеспечивает эффективный набор простых API для XML (SAX), вспомогательные классы, предназначенные для синтаксического анализа. Основные классы Element, RootElement некоторые ElementListener интерфейсы;

* Android. speech - содержит константы для распознавания речи. Этот пакет входит только в версии 1.6 и выше;

* Android.speech.tts - обеспечивает поддержку для преобразования текста в речь. Основной класс - TextToSpeech. В Android имеется механизм PICO TTS (преобразования текста в речь, синтезатор речи) производства SVOX;

* andmid. tekphony - содержит классы CellLocation, PhoneNumberUtils и TelephonyManager. TelephonyManager класс для определения местоположения, из которого был сделан вызов, номер телефона, имя поставщика услуг, тип сети, тип телефона и серийный номер модуля идентификации абонента (Subscriber Identity Module, SIM);

* Android. телефонии. GSM - позволяет собирать информацию об адресах ячеек, основанных на местоположении данных вышек сотовой связи, но также содержит классы, ответственные за работу с SMS-сообщениями. определяет глобальную систему мобильной связи во имя этого пакета называется GSM, как оригинальные коротких стандартов обмена сообщениями (SMS) (Глобальная система мобильной связи);

* Android.telephony. CDMA - поддерживает CDMA-телефонию;

* Android. text - содержит классы для обработки текста;

* Android. text. method - предоставляет классы для ввода текста в различные элементы управления;

* Android. text. style - обеспечивает разнообразие методов обработки текста;

* Android.Utils - содержит классы, DebugUtils, TimeUtils и Xml;

* Android.view - содержит классы, меню View, ViewGroup, а также некоторые из процессов слушателей и обратных вызовов;

* Android.view.animation - обеспечивает поддержку анимации в структуре промежуточных кадров;

* Android.view.InputMethod - реализует ввод-вывод системной архитектуры. В этом пакете содержится только в версиях 1.5 и выше;

* Android.WebKit - содержит классы, связанные с веб- браузером. Среди основных классов WebView, CacheManager и CookieManager;

* Android.widget - содержит все классы элементов управления пользовательского интерфейса, которые получены главным образом с точки зрения класса. Основные виджеты - Кнопка, Галочка, хронометр, AnalogClock, DatePicker, EditText, ListView, FrameLayout, GridView, ImageButton, MediaController, ProgressBar, RadioButton, RadioGroup, RatingButton, скроллер, Scrollview, Spinner, TabWidget, TextView, TimePicker, VideoViewn ZoomButton;

* com. google. android. maps - содержит класс MapView, MapController и MapActivity, необходимые для работы с Google Maps.

Вышеуказанные пакеты очень важны при работе с Android. Исходя из этого списка, можно получить представление о глубинном строении платформы Android.

В целом, Android Java API включает в себя более 40 пакетов и более 700 классов. Тем не менее, все эти многочисленные пакеты составляют богатую вычислительную платформу, предназначенную для написания программ для мобильных устройств.

1.4 Общая характеристика аптечной сети «Фармация»

Республиканское государственное унитарное предприятие "Фармация" Минздрава Чувашской республики является правопреемником Государственного объединения "Фармация" Министерства здравоохранения Чувашской республики, зарегистрированного Постановлением Главы Московской районной администрации города Чебоксары № 620 от 18.05.1994 г.

Имущество Предприятия относится к государственной собственности Чувашской республики, закреплено за ним на праве хозяйственного ведения собственником, в лице Министерства имущественных отношений Чувашской Республики.

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

Закрепленные за предприятием основные средства образуют его уставной капитал, который в настоящее время составляет 20 000 000, 00 руб.

Виды деятельности предприятия:

-Розничная торговля лекарственными средствами и изделиями медицинского назначения;

-Деятельность, связанная с оборотом наркотических средств и психотропных веществ;

-Внутриаптечное изготовление лекарственных форм;

-Оптовая торговля лекарственными средствами и изделиями медицинского назначения;

-Лекарственное обеспечение льготных категорий граждан

Предприятие имеет дочернее предприятие, в лице государственного унитарного предприятия "Оптика" (расположенного по адресу г. Чебоксары, ул. Гагарина, 15), и его инвестиции в дочернее общество по балансу составляют 83, 0 тыс. руб.

ГУП "Фармация" имеет в своем составе несколько филиалов: 45 аптек и аптечную базу. Предприятие имеет лицензию на фармацевтическую деятельность. Местонахождение предприятия (юридический адрес): 428018, Чувашская республика, г. Чебоксары, ул. Бондарева, 13.

Так как ГУП Чувашской Республики «Фармация» министерства здравоохранения и социального развития Чувашии имеет в своём составе большую аптечную базу и широкую аптечную сеть в городах, районных центрах и небольших населённых пунктах Чувашской Республики, для оптимизации обеспечения населения лекарственными препаратами, изделиями медицинского назначения, а также другими товарами аптечного ассортимента необходимо создание мобильного приложения.

ГЛАВА 2. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ СЕТИ АПТЕК «ФАРМАЦИЯ»

2.1 Архитектура и реализация приложения

Взаимодействие с сервером

Рисунок 2. Диаграмма развертывания системы

На рисунке 2 представлена диаграмма развёртывания системы приложений.

Как видно, система состоит из двух частей:

1. приложение для клиента;

2. веб- сервер.

В данной работе сервер не рассматривается, так как он реализован другим разработчиком.

Как видно из диаграммы, взаимодействие между Android-приложениями для курьера и для клиента осуществляется только через веб-сервер посредством http- запросов.

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

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

На рисунке 3 изображены поля для ввода данных, размеры которых должны изменяться в зависимости от размера экрана. В зависимости от размера экрана они должны увеличиваться или уменьшаться, становиться шире и т.п.

Рисунок 3. Поля для ввода данных

Это возможно благодаря использованию nine-patch изображений (т. е., изображений в формате *.9.png).

Взаимодействие с картами

GoogleMaps - это сервис от Google, который позволяет:

1) отображать карту местности в разных вариантах (со спутника, схематично);

2) отображать текущее местоположение;

3) отображать местоположение какого-либо объекта, получать текущие координаты объекта с адресом (полный адрес);

4) отображать маршрут между двумя точками.

Данный сервис используется при реализации следующих ВИ:

* Клиент:

1) создать заказ;

2) выбрать доставку;

3) проследить выполнение заказа (просмотреть адреса точек отправления и прибытия, маршрут, а так же текущее местоположения заказа).

Для работы с картой используется класс GoogleMap:

googleMap=((MapFragment)getFragmentManager().findFragmentById(R.id.mapView)).getMap();

Определение текущего местоположения

Для определения текущего местоположения используется класс GoogleApiClient из библиотеки google-play-services_lib

Location currentLocation =

LocationServices.FusedLocationApi.getLastLocation( mGoogleApiClient);

if (currentLocation != null) {

LatLng centralPoint = new

LatLng(currentLocation.getLatitude(),

currentLocation.getLongitude());

googleMap.getCameraPosition();

CameraPosition cameraPosition = new

CameraPosition.Builder().target(centralPoint)

.zoom(15)

.bearing(0)

.tilt(0)

.build();

googleMap.animateCamera(

CameraUpdateFactory.newCameraPosition(cameraPosition));

googleMap.addMarker(

new MarkerOptions().position(centralPoint).icon(

BitmapDescriptorFactory.defaultMarker(

BitmapDescriptorFactory.HUE_GREEN))); }

Получение адреса по координатам

Нажатие на карту обрабатывается в событиях setOnMapLongClickListener и setOnMapClickListener. Параметром, который передается событию, является LatLng, что позволяет получить координаты выбранной точки.

Для того, чтобы получить адрес по координатам, необходимо отправить запрос по адресу maps.googleapis.com/maps/api/geocode в формате json:

http://maps.googleapis.com/maps/api/geocode/json?latlng=, &language=ru;

где point - необходимая точка, а language - язык, на котором нам нужен ответ на запрос, в данном случае это русский (ru).

Результат возвращается в формате json. Пример запроса для точки с координатами (56.469556, 84.947551):

http://maps.googleapis.com/maps/api/geocode/json?

latlng=56.469556, 84.947551&sensor=false&language=ru

Ответ от сервера на пример запроса приведён в примере кода 10.

{ "results": [

{

"formatted_address": "ул. Ленина, 36, Екатеринбург, Свердловская обл., Россия",

"geometry": {

"location": {

"lat": 56.4695,

"lng": 84.947513

},

},

},

],

"status": "OK"

}

Поле status позволяет определить, правильно ли был выполнен запрос. Ответ от сервера на неверно сформированный запрос http://maps.googleapis.com/maps/api/geocode/json?latlng:

{

"results": [],

"status": "ZERO_RESULTS"

}

2.2 Функциональность приложения

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

Функциональные требования

Общее:

1. система должна позволять регистрировать пользователя;

2. система должна позволять редактировать информацию о пользователях.

3. система должна предоставлять возможность создавать заказ;

4. система должна позволять выбирать на карте адреса аптек;

5. в том случае, если приложение закрыто, система должна оповещать пользователя о текущем состоянии заказа;

6. система должна предоставлять возможность оценить выполнение заказа, а также оставить отзыв.

Диаграммы вариантов использования

На рисунках представлены диаграммы вариантов использования приложения.

Рисунок 4. Контекстная диаграмма вариантов использования

Рисунок 5. Диаграмма варианта использования «Отправить заказ»

Функционал клиента

Использование функции «Отправить заказ»

Создать заказ: предварительное условие - пользователь находится в окне для создания заказа. При этом пользователь вводит наименование лекарственного препарата, дозировку, количество, номер телефона для связи, адрес аптеки, в которой удобно забрать заказ или другой адрес доставки товара. Система проверяет данные, переводит пользователя в окно оплаты.

Использование функции «Оплатить заказ»

Пользователь - выбирает способ оплаты и оплачивает заказ. Система- предоставляет пользователю окно для оплаты, выводит сообщение об успешной оплате, переводит пользователя в окно просмотра информации о заказе.

Использование функции «Проследить выполнение заказа»

Система - отображает местоположение заказа, предоставляет информацию о текущем состоянии заказа.

Использование функции «Подтвердить получение заказа»

Система:

1. Выводит информацию о выполненном заказе и код подтверждения получения заказа

2. Сохраняет изменения и переводит заказ в состояние «выполнен»

3. Переводит пользователя в окно «личный кабинет пользователя».

Использование функции «Оценить выполненный заказ».

Пользователь: создает комментарий, нажимает на кнопку «оценить заказ».

Система: выводит информацию о выполненном заказе, предоставляет пользователю возможность создать комментарий о выполнении заказа, сохраняет комментарий, сохраняет оценку.

Диаграммы деятельности

В данном разделе представлены диаграммы деятельности приложения для клиента (рисунок 6). Приведённая диаграмма описывает основные варианты использования разработанных приложений: вариант использования «Отправить заказ» и вариант использования «Доставить заказ». Из диаграмм видна основная особенность разработанных приложений: клиент может иметь только один текущий заказ.


Подобные документы

  • Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.

    курсовая работа [167,8 K], добавлен 18.01.2017

  • Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.

    дипломная работа [1,6 M], добавлен 08.07.2015

  • Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.

    курсовая работа [987,1 K], добавлен 27.06.2019

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

    дипломная работа [2,7 M], добавлен 03.04.2015

  • Структура и архитектура платформы Android. Основные достоинства и недостатки операционной системы Android. Среда разработки Eclipse, платформа Java. Подготовка среды разработки. Вкладка "Погода", "Курс валют", "Новости". Просмотр полной новости.

    дипломная работа [1,0 M], добавлен 11.07.2014

  • Разработка программного обеспечения для платформы Android версии 2.3: информационное приложения для поклонников футбольной команды, с возможностью просмотра событий, статистики и иной информации о команде и ее успехах. Листинг JsonDataManager.java.

    дипломная работа [4,1 M], добавлен 24.04.2013

  • Общая схема работы приложения Android. Разработка обучающего приложения для операционной системы Android, назначение которого - развитие речи посредством произнесения скороговорок. Описание компонентов разработанного приложения, его тестирование.

    дипломная работа [1,2 M], добавлен 04.02.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.