Архитектура операционной системы android ppt. Где хранятся данные приложений android. Структура и назначение папок и файлов в Android. Как устроена операционная система Андроид

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

Перечислим некоторые из низкоуровневых библиотек:

  1. Surface Manager - в ОС Android используется композитный менеджер окон, наподобие Compiz (Linux), но более примитивный. Вместо того, чтобы производить рисование графики напрямую в буфер дисплея, система посылает поступающие команды рисования в закадровый буфер, где они накапливаются вместе с другими, составляя некую композицию, а потом выводятся пользователю на экран. Это позволяет системе создавать интересные бесшовные эффекты, реализовать прозрачность окон и плавные переходы.
  2. Media Framework - библиотеки, реализованные на базе PacketVideo OpenCORE. С их помощью система может осуществлять запись и воспроизведение аудио и видео данных, а также вывод статических изображений. Поддерживаются многие популярные форматы, включая MPEG4, H.264, MP3, AAC, AMR, JPG и PNG. В будущем на смену OpenCORE должен придти более простой фреймворк Stagefright.
  3. SQLite - легковесная и производительная реляционная СУБД, используемая в Android в качестве основного движка для работы с базами данных.
  4. 3D библиотеки - используются для высокооптимизированного рисования 3D-графики, при возможности используют аппаратное ускорение. Их реализации строятся на основе API OpenGL ES 1.0.
  5. FreeType - библиотека для работы с битовыми картами, а также для растеризации шрифтов и осуществления операций над ними. Это высококачественный движок для шрифтов и отображения текста.
  6. LibWebCore - библиотеки известного браузерного движка WebKit, используемого также в десктопных браузерах Google Chrome и Apple Safari.
  7. SGL (Skia Graphics Engine) - открытый движок для работы с 2D-графикой. Графическая библиотека является продуктом Google и часто используется в других их программах.
  8. SSL - библиотеки для поддержки одноименного криптографического протокола на базе OpenSSL.
  9. libc - библиотека стандартных вызовов языка C, аналог glibc (GNU libc из Linux) для маленьких устройств. Носит название Bionic.


Рис. 1.5.

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

Уровнем выше располагается Application Framework, иногда называемый уровнем каркаса приложений. Именно через каркасы приложений разработчики получают доступ к API , предоставляемым компонентами системы, лежащими ниже уровнем. Кроме того, благодаря архитектуре фреймворка, любому приложению предоставляются уже реализованные возможности других приложений, к которым разрешено получать доступ . В базовый набор сервисов и систем, лежащих в основе каждого приложения и являющихся частями фреймворка, входят:

  1. Богатый и расширяемый набор представлений (Views), который может быть использован для создания визуальных компонентов приложений, например, списков, текстовых полей, таблиц, кнопок или даже встроенного web-браузера.
  2. Контент-провайдеры (Content Providers), управляющие данными, которые одни приложения открывают для других, чтобы те могли их использовать для своей работы.
  3. Менеджер ресурсов (Resource Manager), обеспечивающий доступ к ресурсам, не несущим кода, например, к строковым данным, графике, файлам и другим.
  4. Менеджер оповещений (Notification Manager), благодаря которому все приложения могут отображать собственные уведомления для пользователя в строке состояния.
  5. Менеджер действий (Activity Manager), который управляет жизненными циклами приложений, сохраняет данные об истории работы с действиями, а также предоставляет систему навигации по ним.
  6. Менеджер местоположения (Location Manager), позволяющие приложениям периодически получать обновленные данные о текущем географическом положении устройства.

На вершине программного стека Android лежит уровень приложений (Applications). Сюда относится набор базовых приложений, который предустановлен на ОС Android . Например, в него входят браузер , почтовый клиент , программа для отправки SMS , карты, календарь, менеджер контактов и многие другие. Список интегрированных приложений может меняться в зависимости от модели устройства и версии Android . И помимо этого базового набора к уровню приложений относятся все прикладные приложения под платформу Android , в том числе и установленные пользователем.

Как правило, приложения под Android пишутся на языке Java , но существует возможность разрабатывать программы и на C/C++ (с помощью Native Development Kit ). Экзотикой можно назвать использования Basic (с помощью Simple) и других языков. Также можно создавать собственные программы с помощью конструкторов приложений, таких как App Inventor.

1.6. Особенности ядра

Ядро является самой важной частью ОС Linux, и в отличие от других его частей, было перенесено в ОС Android почти полностью. Тем не менее, в процессе переноса на ядро было наложено около 250 патчей.

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

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

Большие изменения коснулись работы с памятью. Традиционная разделяемая память Linux shmem была заменена на ashmem. Та же задача, но на уровне физической памяти, решается с помощью драйвера pmem. Добавлен специальный обработчик нехватки памяти (out of memory ), названный Viking Killer , в простейшем случае он просто убивает процесс, но могут быть заданы более сложные правила.

В сетевой стек добавлены новые настройки безопасности, поддержка файловой системы для флеш-носителей YAFFS2 включена в ядро .

1.7. Java-машина Dalvik

Dalvik Virtual Machine является частью мобильной платформы Android . Это виртуальная машина , автором которой является Дэн Бронштейн. Она распространяется как свободное программное обеспечение под BSD -совместимой лицензией Apache 2.0. Во многом именно этот факт сыграл свою роль в решении Google отказаться от JME ( Java Micro Edition ), на которую необходимо было бы получить лицензию от Sun . Поэтому корпорация , целью которой было создание открытой операционной системы, разработало свою собственную виртуальную машину.

В отличие от большинства виртуальных машин (той же Java Virtual Machine ), которые являются стек -ориентированными, Dalvik является регистр-ориентированной, что нельзя назвать стандартным решением. С другой стороны, оно очень хорошо подходит для работы на процессорах RISC-архитектуры, к которым относятся и процессоры ARM , очень широко применяемые в мобильных устройствах.

Dalvik проектировалась специально под платформу Android . Учитывался тот факт, что платформа строит все процессы как изолированные, выполняющиеся каждый в своём адресном пространстве. Виртуальная машина оптимизирована для низкого потребления памяти и работы на мобильном аппаратном обеспечении. Начиная с версии Android 2.2., Dalvik использует JIT (Just-in-Time) компиляцию. В результате этих особенностей, получилась быстрая и производительная виртуальная машина , что не может не сказываться на работе приложений в целом.

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

Кроме того, Dalvik способна переводить байт-коды Java в коды собственного формата и также исполнять их в своей виртуальной среде. Программный код пишется на языке Java , а после компиляции все. class файлы конвертируются в формат.dex (пригодный для интерпретации в Dalvik) с помощью специальной утилиты dx, входящей в состав Android SDK .

1.8. Bionic

Bionic - библиотека стандартных вызовов языка C, распространяемая под лицензией BSD (Berkeley Software Distribution ? система распространения программного обеспечения в исходных кодах, созданная для обмена опытом между учебными заведениями) и разработанная Google для Android . В bionic отсутствуют некоторые не используемые в Android функции POSIX , доступные в полной реализации glibc.

Основные отличия bionic :

  1. BSD лицензии: Android использует Linux ядро, которое находится под GNU General Public License (GPL), но Google пожелал изолировать приложения для Android от последствий GPL. GNU libc, который обычно используется с ядром Linux находится под лицензией GNU LGPL, как альтернативный uClibc.
  2. малые размеры: объектный код bionic намного меньше (примерно в 2 раза), чем glibc и несколько меньше, чем uclibc.
  3. bionic предназначена для процессоров c относительно низкими тактовыми частот.
  4. усеченная, но эффективная реализация нитей POSIX.

1.9. Обзор Java-интерфейсов прикладного программиста

Для прикладного программиста Android - набор интерфейсов на языке Java . Рассмотрим, как он организован. В основе набора - пакеты, входящие в стандарт языка Java , такие как java.util, java.lang, java.io . Они есть на любой платформе, где могут быть запущены java -приложения, и неспецифичны для Android . К ним примыкают расширения, которые в стандарт языка не входят, но де-факто давно являются стандартными - пакеты javax.net , javax.xml .

Также в Android включены менее распространенные расширения Java - пакет org.apache.http , самая солидная реализация протокола HTTP . Пакет org.json отвечает за сериализацию объектов JavaScript и поддержку технологии AJAX . Пакет org.w3c.dom обеспечивает объектную модель документа

Реферат

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

Введение

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

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

Эта платформа является самой популярной на рынке: она установлена на 68% устройств. Число программ в магазине приложений Google Play превышает 600 000 единиц. За всё время работы магазина было выполнено 20 млрд установок приложений. Согласно заявлениям Энди Рубина - руководителя разработки Android в Google - ежедневно в мире активируется 1.3 млн Android-устройств.

Эти данные и побудили меня исследовать вопрос об архитектуре платформы.

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

Рисунок 1. Структура платформы Google Android

Архитектура Google Android состоит из четырех уровней (нумерация обозначает порядок уровней снизу вверх).

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

)Программное обеспечение промежуточного слоя - набор библиотек (Libraries), предназначенный для обеспечения важнейшего функционала для приложений.

Вот некоторые из них:

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

·Media Framework - библиотеки, реализованные на базе PacketVideo OpenCORE. С их помощью система осуществляет запись / воспроизведение аудио- и видео - контента, а также вывод статических изображений. Поддерживаются форматы MPEG4, H.264, MP3, AAC, AMR, JPG и PNG и др.

·SQLite - реляционная СУБД, используемая в Android в качестве основного движка для работы с базами данных, используемыми приложениями для хранения информации.

·3D библиотеки - используются для отрисовки 3D-графики, при возможности используют аппаратное ускорение. Реализуются на основе API OpenGL ES 1.0.

·FreeType - библиотека для работы для растеризации шрифтов и осуществления операций над ними.

·LibWebCore - библиотеки браузерного движка WebKit.

·Libc - стандартная библиотека языка C, настроенная для работы на устройствах на базе Linux.

Все библиотеки написаны на языке C++ и скомпилированы под конкретное аппаратное обеспечение устройства.

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

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

3)Следующий уровень - Application Framework, или каркас приложений. Именно через каркасы приложений разработчики получают доступ к API, предоставляемым компонентами системы, лежащими ниже уровнем. Кроме того, благодаря архитектуре фреймворка, любому приложению предоставляются уже реализованные возможности других приложений, к которым разрешено получать доступ.

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

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

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

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

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

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

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

Таким образом, приложения в ОС Android могут получать в своё распоряжение вспомогательные инструменты.

Отличия фреймворка от библиотеки

·Фреймворк только выполняет код, написанный для него, библиотеки исполняются сами.

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

4)Уровень Applications. Сюда относятся базовые программы, предустановленные на Android. Это браузер, почтовый клиент, программа для отправки SMS, карты, календарь, менеджер контактов. Список интегрированных приложений может меняться в зависимости от модели устройства и версии Android. Также на этом уровне располагается стороннее ПО. Система позволяет устанавливать его без ограничений, поэтому все стандартные приложения могут быть заменены аналогами. Приложения для Android пишутся на языке Java.

Заключение

android программа пользовательский операционный

Особенности архитектуры платформы Google Android позволили ей выйти на первое место среди других платформ. Главные из них:

)Регистр-ориентированная виртуальная машина Dalvik для выполнения приложений.

)Инновационные библиотеки, значительно расширяющие функционал устройств.

)«Легковесная» СУБД SQLite для хранения данных.

)Возможность поддержки 3D и 2D графики, и даже комбинирования их в одном приложении.

)Многозадачность и изолированность процессов друг от друга.

)Универсальность архитектуры наряду с высоким качеством.

Список источников

1.Голощапов А.Л. Google Android: системные компоненты и сетевые коммуникации. - СПб.: БХВ-Петербург, 2012. - 384 c.

2.Фелкер Д. Android: разработка приложений для чайников. - М.: Диалектика, 2012. - 336 с.

3.Хашими С., Коматинени С., Маклин Д. Разработка приложений для Android. - СПб.: Питер, 2011. - 736 с.

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

Первое, что нужно знать: Android есть вариант ОС Linux, и хоть здесь эта система нашла свою родную нишу. Внутри системы, на самом базовом ее уровне, находится модифицированное ядро Linux, которое, как в больших системах, нужно часто обновлять. Намного чаще, чем в других мобильных ОС, иначе вы лишитесь возможности использовать новые фишки, датчики, приложения и прочие полезные штуки. Ядро работает с приложениями и драйверами через API системы, и только на этом уровне драйверов и системных приложений можно писать программы на языке С++. Среднюю часть машины занимает платформа, которую можно сравнить с.NET от Майкрософт. Она управляется языком Java. Каждое приложение пользователя порождает процесс, когда платформа формирует для него виртуальную среду исполнения. В этот момент Java приложения в виде кода классов и библиотек автоматически переводятся в универсальный байт-код, исполняемый на байт-машине Delvik. Эта машина имеет много общего с Java-машиной JVM.

Приложения работают в изолированной друг от друга среде, захватывая только те ресурсы, которые им необходимы. В этом коренное отличие, например, от программ на ПК, где любая программа может захватить все ресурсы. Хотя приложения оптимизированы по качеству кода и изолированы друг от друга, у них есть не только приоритеты вытесняющей многозадачности, но и способы обмена данными и файлами путем присвоения им одинаковых идентификаторов. Таким образом, можно сделать так, что родственные программы будут тратить минимум лишних ресурсов, обращаясь к API через платформу, а также общим файлам профилей, спискам контактов и т.д. Здесь интересно то, что Delvik можно подсунуть и другой код на Java, который виртуальная машина примет как родной. Это позволяет реализовывать многочисленные виртуальные системы разработки, применять новые языки программирования и даже менять фреймворк приложений на альтернативные варианты – лишь бы он умел генерировать байт-код и соответствовать вызовам API.

Платформа, или фреймворк, работает с данными унифицированным образом, переводя их в формат баз данных SQLite – с таким же форматом работает, к примеру, Mozilla на ПК. Доступом в Сеть заведует оптимизированный для мобильных устройств браузер Chrome. Для создания безупречной графики API поддерживает технологию OpenGL ES v.3.0, а также целый набор жадных графических и видеоформатов и контейнеров для их хранения, включая h.264, mkv, MP4 и т.д.

Связь с другими устройствами – проводная (USB, карты памяти) и беспроводная (BT, IR, Wi-Fi, EDGE/3G/LTE). Множество датчиков завязаны на получение сигналов извне системы: GPS, акселерометр, компас, фотосъемка, датчик темноты, фитнес-датчики.

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

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

Для разработки приложений под платформу Android потребуется набор инструментов и библиотек API - Android SDK, последнюю версию которого вы можете найти .

На представленном ниже рисунке показана архитектура ОС Android.


Уровень приложений (Applications)

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

Уровень каркаса приложений (Application Framework)

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

Основой всех приложений является набор систем и служб:
1. Система представлений (View System ) – это богатый набор представлений с расширяемой функциональностью, который служит для построения внешнего вида приложений, включающий такие компоненты, как списки, таблицы, поля ввода, кнопки и т.п.
2. Контент-провайдеры (Content Providers ) – это службы, которые позволяют приложениям получать доступ к данным других приложений, а также предоставлять доступ к своим данным.
3. Менеджер ресурсов (Resource Manager ) предназначен для доступа к строковым, графическим и другим типам ресурсов.
4. Менеджер извещений (Notification Manager ) позволяет любому приложению отображать пользовательские уведомления в строке статуса.
5. Менеджер действий (Activity Manager ) управляет жизненным циклом приложений и предоставляет систему навигации по истории работы с действиями.

Уровень библиотек (Libraries)

Платформа Android включает набор C/C++ библиотек, используемых различными компонентами ОС. Для разработчиков доступ к функциям этих библиотек реализован через использование Application Framework. Ниже представлены некоторые из них:
1. System C library - BSD-реализация стандартной системной библиотеки C (libc) для встраиваемых устройств, основанных на Linux.
2. Media Libraries – библиотеки, основанные на PacketVideo‘s OpenCORE, предназначенные для поддержки проигрывания и записи популярных аудио- и видео- форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и т.п.).
3. Surface Manager – менеджер поверхностей управляет доступом к подсистеме отображения 2D- и 3D- графических слоев.
4. LibWebCore – современный движок web-браузера, который предоставляет всю мощь встроенного Android-браузера.
5. SGL – движок для работы с 2D-графикой.
6. 3D libraries – движок для работы с 3D-графикой, основанный на OpenGL ES 1.0 API.
7. FreeType – библиотека, предназначенная для работы со шрифтами.
8. SQLite – мощный легковесный движок для работы с реляционными БД.

Уровень среды исполнения (Android Runtime)

В состав Android входит набор библиотек ядра, которые предоставляют большую часть функциональности библиотек ядра языка Java.

Платформа использует оптимизированную, регистр-ориентированную виртуальную машину Dalvik, в отличии от нее стандартная виртуальная машина Java – стек-ориентированная. Каждое приложение запускается в своем собственном процессе, со своим собственным экземпляром виртуальной машины. Dalvik использует формат Dalvik Executable (*.dex), оптимизированный для минимального использования памяти приложением. Это обеспечивается такими базовыми функциями ядра Linux, как организация поточной обработки и низкоуровневое управление памятью. Байт-код Java, на котором написаны ваши приложения, компилируются в dex-формат при помощи утилиты dx, входящей в состав SDK.

Уровень ядра Linux (Linux Kernel)

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

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

Рисунок 2.1 - Основные компоненты ОС Android

Уровень приложений

В состав ОС Android входит комплект базовых приложений: клиенты электронной почты и SMS, календарь, различные карты, браузер, программа для управления контактами и многое другое. Все приложения, запускаемые на платформе Android, написаны на языке Java.

Уровень каркаса приложений

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

Основой всех приложений является набор систем и служб:

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

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

    система представлений (View System ) – это богатый набор представлений с расширяемой функциональностью, который служит для построения внешнего вида приложений, включающий такие компоненты, как списки, таблицы, поля ввода, кнопки и т.п.;

    менеджер ресурсов (Resource Manager ) предназначен для доступа к строковым, графическим и другим типам ресурсов;

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

Уровень библиотек

Платформа Android включает набор C/C++ библиотек, используемых различными компонентами ОС. Для разработчиков доступ к функциям этих библиотек реализован через использование ApplicationFramework. Ниже представлены некоторые из них:

    System C library - BSD-реализация стандартной системной библиотеки C (libc) для встраиваемых устройств, основанных на Linux;

    Media Libraries – библиотеки, основанные наPacketVideo‘sOpenCORE, предназначенные для поддержки проигрывания и записи популярных аудио- и видео- форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и т.п.);

    LibWebCore – ядро встроенного web-браузера;

    Surface Manager – менеджер поверхностей управляет доступом к подсистеме отображения 2D- и 3D- графических слоев;

    SGL (ScalableGraphicsLibrary) – библиотека для работы с 2D-графикой, основанная на библиотеке SDL (SimpleDirectMediaLayer);

    3D libraries – библиотеки для работы с 3D-графикой, основанные наOpenGLES 1.0 API;

    FreeType – библиотека, предназначенная для работы со шрифтами.

    SQLite – легковесная реляционная система управления базами данных.

Уровень среды исполнения

В состав ОС Android входит набор библиотек ядра, которые предоставляют большую часть функциональности библиотек ядра языка Java.

Платформа использует оптимизированную, регистр-ориентированную виртуальную машину Dalvik, в отличии от которой стандартная виртуальная машина Java– стек-ориентированная. Каждое приложение запускается в своем собственном процессе, со своим собственным экземпляром виртуальной машины. Виртуальная машина Dalvik использует формат DalvikExecutable(*.dex), оптимизированный для минимального использования памяти приложением. Это обеспечивается такими базовыми функциями ядра Linux, как организация поточной обработки и низкоуровневое управление памятью. Байт-кодJava, на котором написаны ваши приложения, компилируются в dex-формат при помощи утилиты dx, входящей в состав SDK.

Уровень ядра Linux

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