Мобильное приложение на android

 

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ ………………………………………………………………….

3

Глава 1   АНАЛИЗ ИНФОРМАЦИИ И ПОСТАНОВКА ЗАДАЧИ ……...

6

 

1.1

Мобильные приложения……………………………………..

6

 

1.2

Обзор существующих мобильных платформ………………

7

 

1.3

Описание предметной области……...……………………….

10

Глава 2   ОПЕРАЦИОННАЯ СИСТЕМА ANDROID………………...........

13

 

2.1

Архитектура Android…….…………………………………...

13

 

2.2

Эмулятор для разработки приложений Android SDK………

16

 

2.3

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

18

 

2.4

Пакеты, которые являются частью Android SDK…………..

25

Глава 3   Анализ исходных данных. Разработка, тестирование и валидация программного продукта …………………………………...........

31

 

3.1

Анализ исходных данных ……………………………………

31

 

3.2

Разработка программного продукта ….…………………….

39

 

3.3

Тестирование и валидация программного продукта ..…….

46

ЗАКЛЮЧЕНИЕ ………………………………………………………...........

52

СПИСОК ЛИТЕРАТУРЫ …………………………………………………..

53

ПРИЛОЖЕНИЕ 1.

Презентация дипломного проекта ………………….

55


 

 

 

ВВЕДЕНИЕ

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

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

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

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

Компьютеры становятся все более "личными" с возможностью доступа к ним в любое время и из любого места. На переднем крае этого процесса стоят мобильные устройства, которые трансформируются в вычислительных платформы. Мобильные телефоны уже давно используются не только для разговоров они могут быть использованы в течение определенного периода времени для передачи данных и видео. Мобильные устройства стали выполнять широкий спектр вычислительных общих задач, эти устройства могут стать новым поколением персональных компьютеров (ПК). Кроме того, даже ожидалось, что некоторые производители традиционных моделей ПК в частности, ASUS, HP и Dell сделают устройства, многие конструктивные параметры которых будут базироваться на OS Android.

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

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

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

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

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

Объект исследования приложение для операционной системы Android.

Цель работы – создание приложения, позволяющего отслеживать в реальном времени информацию об элементах гардероба в магазинах города Казани, для операционной системы Android.

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

  1. изучить область приложений, связанных с покупками, для мобильных устройств;
  2. рассмотреть вопрос о разработке программ для операционной системы Android и использовать их для реализации приложения;
  3. рассмотреть приложения конкуренты;
  4. разработать приложение для шопинга;
  5. произвести тестирование и валидацию программного продукта.

Работа состоит из введения, трех глав, заключения и изложена на 55 страницах. Библиографический список содержит 27 наименований источников. 

  1. АНАЛИЗ ИНФОРМАЦИИ И ПОСТАНОВКА ЗАДАЧИ

    1. Мобильные приложения

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

Теперь у каждого из нас есть возможность в любой точке мира общаться с людьми, проверять Mail, окунуться в мир игр и всего прочего. Мобильное приложение - это программное обеспечение, которое было создано для работы на планшетах и смартфонах. Домашний компьютер или ноутбук не очень удобны, так как их перемещение занимает очень много времени. Чтобы облегчить жизнь людям, они создали так называемые «умные» телефоны - смартфоны, а также многие другие мобильные устройства.

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

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

Кроме того, мобильные приложения можно разделить на развлекательные (мультимедийные), коммуникационные, навигационные, справочные и прикладные. К интересному мобильному программному обеспечению могут относиться игровые аудио- и видеофайлы, изображения зрителей и электронные книги, игры. Коммуникационные приложения несут ответственность за общение пользователя по телефону и SMS, его контакты в электронной почте, ICQ, социальных сетях. Навигационные программы включают приложения, которые работают с системой GPS, электронные карты и географические координаты. К эталонному программному обеспечению могут относиться различные словари и энциклопедии, базы данных с возможностью поиска. Прикладные приложения включают ноутбуки, органайзеры, калькуляторы, программы для работы с графикой и текстом.

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

Мобильные приложения имеют такие преимущества:

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

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

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

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

    1. Обзор существующих мобильных платформ

Наличие операционной системы (ОС) главная особенность, которая отличает смартфон от обычного мобильного телефона. При выборе конкретной модели телефона или устройства, операционная система часто является определяющим фактором [9; 92].

Наиболее распространенные операционные системы для смартфонов и платформ:

  1. Symbian OS ОС занимала большую часть рынка смартфонов до конца 2010 г. В начале 2010 года на базе ОС остается только 1 Платформа: Series 60, которая используется в основном в устройствах Nokia, а также некоторые моделях Samsung;
  2. BlackBerry OS (RIM) система широко используется в устройствах в первую очередь в Соединенных Штатах, так как спецслужбы некоторых стран не заинтересованы в использовании смартфонов в стране из-за того, что все входящие и исходящие данные зашифрованы с использованием алгоритма шифрования AES;
  3. Windows Mobile и Windows CE компактная операционная система Microsoft, выпущенные с 1996 года и занимала самый большой сегмент рынка ОС для смартфонов к 2010 году, в настоящее время проходит поэтапный отказ от поддержки и развития;
  4. Windows Phone 7 разработка от Microsoft, радикально отличается от Windows Mobile;
  5. Palm OS одна из популярных платформ, хотяв настоящее время мобильные телефоны на базе Palm OS малораспространены. Последний смартфон под управлением операционной системы была выпущен в конце 2007 года (Palm Centro);
  6. Linux широкого распространения эта операционная система на мобильных устройствах не получила, однако ее развитие традиционно считается перспективным направлением. Смартфоны на базе Linux распространяются главным образом в Азии;
  7. Bada новейшая мобильная платформа, разработанная компанией Samsung. Первым телефоном на новой платформе стал S8500 Wave;
  8. Android портативная (сетевая) операционная система для смартфонов, планшетных ПК, электронные книг, цифровых плееров, часов и нетбуков на базе ядра Linux. Первоначально разработанная Android Inc., которую затем купил Google. Впоследствии Google инициировала создание альянса Open Handset Alliance (OHA), который сейчас занимается поддержкой и дальнейшим развитием платформы. Android позволяет создавать приложения на основе Java, который управляют устройством через разработанные Google библиотеки. Android Native Development Kit позволяет системе использовать библиотеки и компоненты приложений, написанных на C и других языках;
  9. ОС IOS (до 24 июня 2010 года iPhone OS) это мобильная операционная система, разработанная и изготовленная американской компанией Apple. Она была выпущена в 2007 году; первоначально для iPhone и IPod Touch, а позже для таких устройств, как IPad и Apple TV. В отличие от Windows Phone и Google Android, доступна только для устройств, производимых Apple;
  10. Windows Phone 8 второе поколение телефонной операционной системы от Microsoft Windows. Выход произошел 29 октября и является прототипом интерфейса, известного как Metro (или Modern UI). Windows Phone 8 использует новую архитектуру Windows NT, которая используется в операционных системах Microsoft. Устройства, работающие под управлением Windows Phone 7. х не может выполнить обновление до Windows Phone 8, а новые приложения, созданные для Windows Phone 8 не могут работать на Windows Phone 7. х.

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

    1. Описание предметной области

Операционная система Android основана на платформе Linux для мобильных устройств, разработанных Open Handset Alliance (OHA), инициированной Google. Она позволяет создавать приложения на основе Java, которые управляют устройством через библиотеки, разработанные Google. Кроме того, можно писать приложения на C и других языках программирования с помощью Android Native Development Kit.1.5 (Cupcake), выпущеной 30 апреля 2009 г. Среди основных улучшений появилась поддержка записи и просмотра видео в режиме камеры; поддержка Bluetooth A2DP; возможность автоматического подключения к Bluetooth-гарнитуре.

Первое устройство, которое работало под управлением Android, стал разработанный HTC смартфон T-Mobile G1, который был запущен 23 сентября 2008. Вскоре последовали многочисленные анонсы других производителей смартфонов, планирующих выпустить устройства с Android.

Имеется несколько основных преимуществ Google, которые отличают устройств на базе платформы Android от аналогичных продуктов [13; 152]:

  1. Открытость Android позволяет получить доступ к основным функциям мобильного устройства, используя стандартный API вызов.
  2. Разрушение границ можно объединять информацию из Интернета с данными телефона, например, контактную информацию или географических данных о местоположении, чтобы получить новые возможности.
  3. Равенство приложений для Android нет никакой разницы между основными телефонными приложениями и программным обеспечением сторонних производителей вы можете даже изменить программу для набора номера или заставку.
  4. Быстро и легко разрабатывать приложения в SDK есть все необходимое для создания и запуска Android-приложений, в том числе имитатор настоящего прибора и передовые инструменты отладки.

Гибкость Android имеет цену: компании, предпочитая разрабатывать свои собственные пользовательские интерфейсы, постоянно стремятся к выпускам новых версий ОС. Устройства, что выпустили несколько месяцев назад, становятся устаревшими, поскольку операторы и производители не хотят создавать обновления программного обеспечения, так что пользователи могут использовать новые функции Android. Например, многие эксперты отмечают, что платформа основана на Java, поэтому преимущества и возможности операционной системы Linux на Android не используются в полной мере. Она также не использует в платформе любые из популярных графических инструментов (Toolkit) и библиотек (например, Ot или GTK), что делает маловероятным появление большого числа приложений, перенесенных на Linux с полной версии для домашнего компьютера на мобильную платформу из-за отсутствия общего сервера и библиотеке изображений. Кроме того, сообщалось, что Google будет по своему усмотрению удалять приложение на телефонах пользователя, если нарушаются условия их использования.

Аналитики и эксперты предсказывают для ИТ-рынка Google Android хорошие коммерческие перспективы, в принципе, для продуктов на базе программного обеспечения с открытым исходным кодом, что уже не является сенсацией [15; 127]. Они постепенно занимают ИТ пространство, вытесняя из него признанных лидеров, создавая конкуренцию, что само по себе может только оказать положительное влияние на восстановление рынка.

Большая часть кода лицензируется в соответствии с лицензией Apache 2, открытая и неограниченная лицензия позволяет свободное использование исходного кода для создания своих собственных систем. Тем не менее, система, чтобы быть совместимым с Android, должна начать идти по совместимости с программами для Android процесс сертификации базовой совместимости со сторонними приложениями, которые создаются сторонними разработчиками. Совместимые системы могут вливаться в экосистему Android, включая Android Market.

 

  1. ОПЕРАЦИОННАЯ СИСТЕМА ANDROID

    1. Архитектура 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 [14; 351].

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

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

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

 

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

 

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. Эмулятор для разработки приложений Android SDK

Для разработки приложений используется высокоуровневый прикладной интерфейс программирования 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 обеспечивает эмуляцию уровня процессора[12; 425].

При использовании эмулятор 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 миллиона транзисторов.

 

    1. Компоненты пользовательского интерфейса 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 и поддерживает независимую тематизацию[11; 278].

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

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

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

Основные компоненты Android

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

 

Мобильное приложение на android