Что такое Андройд

Материал из AndroidFan

Перейти к: навигация, поиск
Руководство разработчика
Основы Андройд
Что такое Андройд?
Описание фреймворка
Основы приложения
Пользовательский интерфейс
Ресурсы приложения new!
Intent'ы и Intent фильтры
Хранение данных new!
Контент провайдеры
Безопастность и права доступа
Файл AndroidManifest.xml
Графика
Аудио и видео
Позиционирование и карты
Виджеты
Bluetooth
Поиск new!
Тестирование и наладка new!
Разработка
В Eclipse с ADT плагином
В других IDE
На устройстве
Отладка
Тестирование new!
Инструментарий
Публикация
Подписывание приложения
Управление версиями приложения
Подготовка к публикации
Публикация приложения
Лучшие приёмы
Совместимость new!
Поддержка множества экранов
Рекомендации по UI
Проектирование для повышения производительности
Проектирование для улучшения отзывчивости
Проектирование для достижения цельности
Приложения
Уровни Android API
Фильтрация в Android Merket new!
Место установки приложения new!
Поддерживаемые форматы медиа
Список Intent'ов: Google Apps
Словарь терминов

Что такое Android?

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

Особенности

  • Application framework технология, позволяет использовать и заменять отдельные компоненты
  • Виртуальная машина 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. Каждый раздел будет описан более подробно ниже.

Diagramma1.jpg


Applications

Android поставляется с набором основных приложений, включающий mail-клиент, SMS мессенджер, календарь, карты(GoogleMaps), браузер, менеджер контактов и др. Все приложения написанные на Java.


Application Framework

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

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

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

  • "Vievs" - богатый и расширяемый набор, который может быть использован для создания приложений с использованием сеток, текстовых полей, кнопок. Так же есть возможность встроить в программу веб-браузер
  • "Content Providers" - позволет приложениям получать доступ к данным из других приложений (например, Контакты), или поделиться своими данными
  • "Resource manager" - обеспечивает доступ к ресурсам приложения (локализованные строки, графика, расположение файлов и тд.)
  • "Notification Manager" - позволяет всем приложениям отображать пользовательские уведомления в строке состояния
  • "Activity Manager" - управляет жизненным циклом приложений и предоставляет общий backstack навигации


Libraries

Android включает в себя набор C / C + + библиотек, используемых различными компонентами системы Android. Эти возможности доступны разработчикам в контексте применения Android Aplication Framework. Некоторые основные библиотеки, перечислены ниже:

  • Система библиотек Си - BSD-реализация библиотек, полученная из стандартных Cи библиотеки (libc) и настроенная для мобильных устройств на основе Linux
  • Mедиа библиотеки - на базе PacketVideo`s OpenCORE; эти библиотеки предоставляют поддержку воспроизведения и записи многих популярных аудио, видео форматов и форматов изображений, в том числе MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и тд.
  • Surface Manager - управляет доступом к подсистеме отображения 2D и 3D графических слоев для multiple приложений
  • LibWebCore - современный веб движок, на котором построен браузер Android и браузер который можно вставлять в приложения
  • SGL - основной графический движок 2D
  • 3D библиотеки - реализация на основе OpenGL ES 1.0 API; библиотеки используют либо аппаратное 3D ускорение (при его наличии), либо включены программно, посредством оптимизированного 3D растеризатора программного обеспечения (highly optimized 3D software rasterizer)
  • FreeType - поддержка растровых и векторных шрифтов
  • SQLite - мощный и легкий механизм реляционной базы данных, доступной для всех приложений


Android Runtime

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

Каждое приложение Android работает в своем собственном процессе, со своим собственным экземпляром виртуальной машины Dalvik. Dalvik была написана так, что устройство может работать эффективно с несколькими виртуальными машинами одновременно. Виртуальная машина Dalvik использует файлы dalvik executable (.DEX), это формат, который оптимизирован для минимального потребления оперативной памяти. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.

Dalvik виртуальная машина опирается на ядро Linux с использованием основных функций, таких как threading и low-level memory management.


Linux Kernel

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