Что такое Андройд
Материал из 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. Каждый раздел будет описан более подробно ниже.
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 с основными системными службами - безопасность, управление памятью, управление процессами, сетевой стек и модель драйверов. Ядро также выступает в качестве абстракции между "железом" и остальным ПО.
