Android Developers Guide: What Is Android

Translations of this material:

into Russian: Перевод "Android Developers Guide: What Is Android". Translation is not started yet.
Submitted for translation by oleeq2 25.01.2012

Text

Что такое Android?

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

Android SDK(Software Development Kit) включает инструменты и API(Application Programing Interface) необходимых для старта разработки на Android, используя язык программирования Java.

Особенности

Фрэймворк позволяет многократное использование и замену компонентов

Виртуальная машина Dalvik оптимизированая для мобильных устройств

Встроенный браузер основанный на движке WebKit, с открытым кодом.

Оптимизированная графика со специально написаноой библиотекой 2D графики;

3D графика основана на OpenGL ES 1.0 спецификации (аппаратное ускорение опционально)

SQLite для структурированного хранения данных

Поддержка аудио, видео и некотороых форматов изображений (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

GSM телефония (зависит от аппаратного обеспечения)

Bluetooth, EDGE, 3G и WiFi (зависит от аппаратного обеспечения)

Камера, GPS, компас, и акселерометр (зависит от аппаратного обеспечения)

Богатое окружение разработки включает в себя эмулятор устройства, инструменты для отладки, профилирование памяти и выполнения, а также плагин для Eclipse IDE.

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

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

Applications

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

Application Framework

Путём открытости платформы для разработки, Android предлагает разработчикам возможность сборки очень клёвых программ ;)

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

Разработчики имеют полный доступ к API фрэймворка, используемых стандартными приложениями Архитектура приложений создана таким образом, чтобы упростить повторное использование компонентов; любое приложение an publish its capabilities и любое другое приложение может использовать эти возможности (объекты охраняются принудительно фрэймворком). Этот простой механизм позволяет пользователям заменять компоненты.

В основе всех приложений лежит набор сервисов и систем, включающий:

Богатый и расширяемый набор видов (views), который используется для сборки приложения, включает списки(lists), grids, текстовые поля(text boxes), кнопки(buttons), и даже встраевыемый веб-браузер.

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

Resource Manager, обеспечивает доступ к не встроенным в код ресурсам, например локализованные строки, графика, и файлы макетов (layout files)

Notification Manager, который позволяет приложениям выводить свои оповещения в status bar(трей).

Activity Manager, который управляет жизненным циклом приложений и обеспечивает common navigaiton backstack.

За деталями и пошаговым руководством к приложениям, смотри Notepad Tutorial.

Библиотеки

Android включает в себя набор С/С++ библиотек, используемых разными компонентами OS Android. Эти возможности могут быть использованы разработчиками через фрэймворки.

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

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

Surface manager – управляет доступом к подсистеме экрана и “чистому” композиту 2D и 3D графических раскладок (layouts) из многих приложений

LibWebCore – современный движок для веб-браузера, который обладает полномочиями Android браузера и встраивает веб в ваше приложение.(web view)

SGL – 2D движок

3D libraries – реализация основанная на OpenGL ES 1.0 API; библиотека использует аппаратное ускорение ( там, где это доступно), высокооптимизированный программный 3D растеризатор.

FreeType – рендеринг шрифтов с использованием битовых карт и векторов.

SQLite – полноценный и лёгкий движок реляционных баз данных, доступен для всех приложений

Среда выполнения Android (Android Runtime)

Android включает в себя библиотеки ядра реализующие основные возможности, для библиотек ядра Java.

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

Dalvik VM(Виртуальная машина) работает на ядре linux, которое обеспечивает функциональность в области низкоуровневого управления памятью и многопоточностью.

Ядро Linux

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