Архитектура платформы Google Android

advertisement
РЕФЕРАТ
ПО ДИСЦИПЛИНЕ
«Операционные системы, среды и оболочки»
НА ТЕМУ
«Архитектура платформы Google Android»
Студента 1 курса
группы № 1.1
Фамилия
Имя
Отчество
_____________________ Подпись студента
Преподаватель
Оценка _____________
Подпись преподавателя ____________
МОСКВА
2013
2
Содержание
Архитектура Android ............................................................................................ 4
Заключение ............................................................................................................ 9
Список источников ............................................................................................. 10
3
Введение
Google Android - это программный стек1 для мобильных устройств, который
включает
операционную
промежуточного
слоя
систему,
(middleware)
программное
и
основные
обеспечение
пользовательские
приложения (e-mail-клиент, календарь, карты, браузер, контакты и др.).
Вопреки распространенному мнению, Android установлен не только на
планшетах и смартфонах, но и на электронных книгах, цифровых
проигрывателях, наручных часах, нетбуках и даже очках Google.
Эта платформа является самой популярной на рынке: она установлена на
68% устройств2. Число программ в магазине приложений Google Play
превышает 600 000 единиц. За всё время работы магазина было выполнено
20 млрд установок приложений. Согласно заявлениям Энди Рубина —
руководителя разработки Android в Google — ежедневно в мире
активируется 1.3 млн Android-устройств.
Эти данные и побудили меня исследовать вопрос об архитектуре
платформы.
Программный стек, или компонентная модель - набор программных продуктов, которые
работают вместе для получения итогового результата. Действия в модели выполняются
последовательно, и уровни иерархии также последовательно взаимодействуют между собой.
1
2
Эти и другие данные взяты с сайта habrahabr.ru
4
Архитектура Android
Рисунок 1. Структура платформы Google Android
Архитектура Google Android состоит из четырех уровней (нумерация
обозначает порядок уровней снизу вверх).
1)
Ядро OS Linux версии 2.6 обеспечивает функционирование системы.
Оно отвечает за безопасность, управление памятью, энергосистемой и
процессами, а также предоставляет сетевой стек3 и модель драйверов.
Кроме того, оно играет связующую роль между аппаратным обеспечением и
остальной частью программного стека.
2)
Программное обеспечение промежуточного слоя - набор библиотек
(Libraries), предназначенный для обеспечения важнейшего функционала для
приложений.
Сетевой стек (соединение сетевых коммутаторов в стек) - соединение двух или более
коммутаторов, предназначенное для увеличения числа портов, при этом полученная группа
идентифицируется остальными сетевыми устройствами как один коммутатор.
3
5
Вот некоторые из них:

Surface Manager – композитный менеджер окон. Вместо того, чтобы
отрисовывать графику в буфер дисплея, система посылает поступающие
команды отрисовки в закадровый буфер, где они накапливаются вместе с
другими, составляя некую композицию, а потом выводятся пользователю на
экран.
Это
позволяет
создавать
интересные
бесшовные
эффекты,
прозрачность окон и плавные переходы.

Media Framework – библиотеки, реализованные на базе PacketVideo
OpenCORE. С их помощью система осуществляет запись/воспроизведение
аудио- и видео- контента, а также вывод статических изображений.
Поддерживаются форматы MPEG4, H.264, MP3, AAC, AMR, JPG и PNG и
др.

SQLite – реляционная СУБД, используемая в Android в качестве
основного
движка
для
работы
с
базами
данных,
используемыми
приложениями для хранения информации.

3D библиотеки — используются для отрисовки 3D-графики, при
возможности используют аппаратное ускорение. Реализуются на основе API
OpenGL ES 1.04.

FreeType – библиотека для работы для растеризации шрифтов и
осуществления операций над ними.

LibWebCore – библиотеки браузерного движка WebKit.

SGL (Skia Graphics Engine) – библиотека для работы с 2D-графикой.

Libc – стандартная библиотека языка C, настроенная для работы на
устройствах на базе Linux.
Все библиотеки написаны на языке C++ и скомпилированы под
конкретное аппаратное обеспечение устройства.
OpenGL ES (OpenGL for Embedded Systems) – подмножество графического программного
интерфейса OpenGL, адаптированное для работы на встраиваемых системах.
4
6
На этом же уровне располагается среда выполнения Android Runtime. Она
состоит из виртуальной Java-машины Dalvik и библиотек ядра. Dalvik
поддерживает
одновременную
работу
нескольких
приложений
и
выполняет файлы в специальном формате .dex, оптимизированном для
устройств с малым количеством памяти. Библиотеки ядра написаны на
языке
Java
и
поддерживают
широкий
диапазон
функциональных
возможностей.
Каждое приложение в Android Runtime запускается в собственном
экземпляре виртуальной машины Dalvik. То есть, все работающие
процессы изолированы от операционной системы и друг от друга.
Особенность структуры Android Runtime позволяет осуществлять работу
программ строго в рамках виртуальной машины. Благодаря этому ядро
операционной системы защищено от влияния со стороны других
компонентов. Код с ошибками или вредоносное ПО не смогут испортить
систему или само устройство. Функция защиты, кроме непосредственного
выполнения программного кода, является одной из ключевых для этого
уровня.
3)
Следующий уровень - Application Framework, или каркас приложений.
Именно через каркасы приложений разработчики получают доступ к API5,
предоставляемым компонентами системы, лежащими ниже уровнем.
Кроме того, благодаря архитектуре фреймворка, любому приложению
предоставляются уже реализованные возможности других приложений, к
которым разрешено получать доступ.
В базовый набор сервисов и систем, лежащих в основе каждого
приложения и являющихся частями фреймворка, входят:
API (application programming interface) - это интерфейс прикладного программирования,
набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением
(библиотекой, сервисом) для использования во внешних программных продуктах.
5
7

Богатый и расширяемый набор представлений (Views), который может
быть использован для создания визуальных компонентов приложений,
например, списков, текстовых полей, таблиц, кнопок или даже встроенного
web-браузера.

Контент-провайдеры (Content Providers), управляющие данными,
которые одни приложения открывают для других, чтобы те могли их
использовать для своей работы.

Менеджер ресурсов (Resource Manager), обеспечивающий доступ к
ресурсам без функциональности (не несущими кода), например, к
строковым данным, графике, файлам и другим.

Менеджер оповещений (Notification Manager), благодаря которому
все приложения могут отображать собственные уведомления для
пользователя в строке состояния.

Менеджер
действий
(Activity
Manager),
который
управляет
жизненными циклами приложений, сохраняет данные об истории работы с
действиями, а также предоставляет систему навигации по ним.

Менеджер
приложениям
местоположения
периодически
(Location
получать
Manager),
обновленные
позволяющий
данные
о
географическом положении устройства.
Таким образом, приложения в ОС Android могут получать в своё
распоряжение вспомогательные инструменты.
Отличия фреймворка от библиотеки
 Фреймворк только выполняет код, написанный для него, библиотеки
исполняются сами.
 Фреймворк состоит из библиотек с разной функциональностью и
назначением, а библиотеки объединяют наборы функций, близких по
логике.
8
4)
Уровень
Applications.
Сюда
относятся
базовые
программы,
предустановленные на Android. Это браузер, почтовый клиент, программа
для отправки SMS, карты, календарь, менеджер контактов. Список
интегрированных приложений может меняться в зависимости от модели
устройства и версии Android. Также на этом уровне располагается
стороннее ПО. Система позволяет устанавливать его без ограничений,
поэтому все стандартные приложения могут быть заменены аналогами.
Приложения для Android пишутся на языке Java.
9
Заключение
Особенности архитектуры платформы Google Android позволили ей выйти
на первое место среди других платформ. Главные из них:
1) Грамотно разработанное ядро, заимствованное у системы Linux.
2) Регистр-ориентированная виртуальная машина Dalvik для выполнения
приложений.
3) Инновационные библиотеки, значительно расширяющие функционал
устройств.
4) «Легковесная» СУБД SQLite для хранения данных.
5) Возможность поддержки 3D и 2D графики, и даже комбинирования их в
одном приложении.
6) Многозадачность и изолированность процессов друг от друга.
7) Универсальность архитектуры наряду с высоким качеством.
10
Список источников
Литература:
1. Голощапов А.Л. Google Android: системные компоненты и сетевые
коммуникации. – СПб.: БХВ-Петербург, 2012. – 384 c.
2. Фелкер Д. Android: разработка приложений для чайников. – М.:
Диалектика, 2012. – 336 с.
3. Хашими С., Коматинени С., Маклин Д. Разработка приложений для
Android. – СПб.: Питер, 2011. – 736 с.
Интернет-ресурсы:
1) http://androidmarket.ru/?page_id=6402
2) http://android-shark.ru/arhitektura-operatsionnoy-sistemyi-android/
3) http://developer.android.com/guide/components/fundamentals.html
4) http://developers-android.narod.ru/guide/topics/fundamentals.html
5) http://habrahabr.ru/post/124484/
6) http://ru.wikipedia.org
7) http://www.3dnews.ru/phone/google-android
8) http://www.androidx.ru/content/development/dokumentatsiya/komponenty-androidprilozheniya
9) http://www.ixbt.com/soft/google-android-sdk.shtml
10) http://www.pcweek.ru/mobile/article/detail.php?ID=116280
Download