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

Операционная система 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 от аналогичных продуктов:

 

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

 

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

 

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

 

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

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

 

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

 

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


 


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

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

 

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

 

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

 

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

 

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

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

 

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).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: