Платформа андроид что это за программа

Обновлено: 06.07.2024


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

Немного фактов

Android — самая популярная операционная система и платформа для приложений, насчитывающая больше двух миллиардов активных пользователей. На ней работают совершенно разные устройства, от «интернета вещей» и умных часов до телевизоров, ноутбуков и автомобилей, но чаще всего Android используют на смартфонах и планшетах.

Компания Android Inc. была основана в 2003 году и в 2005 году куплена Google. Публичная бета Android вышла в 2007 году, а первая стабильная версия — в 2008, с тех пор мажорные релизы выходят примерно раз в год. Последняя на момент написания стабильная версия Android — 7.1.2 Nougat.


Android is Linux

По поводу такой формулировки было много споров, так что сразу поясню, что именно я имею в виду под этой фразой: Android основан на ядре Linux, но значительно отличается от большинства других Linux-систем.

Среди исходной команды разработчиков Android был Robert Love, один из самых известных разработчиков ядра Linux, да и сейчас компания Google остаётся одним из самых активных контрибьюторов в ядро, поэтому неудивительно, что Android построен на основе Linux.

Другая причина того, что в Android не используется софт от GNU — известная политика «no GPL in userspace»:

We are sometimes asked why Apache Software License 2.0 is the preferred license for Android. For userspace (that is, non-kernel) software, we do in fact prefer ASL 2.0 (and similar licenses like BSD, MIT, etc.) over other licenses such as LGPL.

Android is about freedom and choice. The purpose of Android is promote openness in the mobile world, and we don’t believe it’s possible to predict or dictate all the uses to which people will want to put our software. So, while we encourage everyone to make devices that are open and modifiable, we don’t believe it is our place to force them to do so. Using LGPL libraries would often force them to do just that.

Само ядро Linux в Android тоже немного модифицировано: было добавлено несколько небольших компонентов, в том числе ashmem (anonymous shared memory), Binder driver (часть большого и важного фреймворка Binder, о котором я расскажу ниже), wakelocks (управление спящим режимом) и low memory killer. Исходно они представляли собой патчи к ядру, но их код был довольно быстро добавлен назад в upstream-ядро. Тем не менее, вы не найдёте их в «обычном линуксе»: большинство других дистрибутивов отключают эти компоненты при сборке.

В качестве libc (стандартной библиотеки языка C) в Android используется не GNU C library (glibc), а собственная минималистичная реализация под названием bionic, оптимизированная для встраиваемых (embedded) систем — она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.

В Android есть оболочка командной строки (shell) и множество стандартных для Unix-подобных систем команд/программ. Во встраиваемых системах для этого обычно используется пакет Busybox, реализующий функциональность многих команд в одном исполняемом файле; в Android используется его аналог под названием Toybox. Как и в «обычных» дистрибутивах Linux (и в отличие от встраиваемых систем), основным способом взаимодействия с системой является графический интерфейс, а не командная строка. Тем не менее, «добраться» до командной строки очень просто — достаточно запустить приложение-эмулятор терминала. По умолчанию он обычно не установлен, но его легко, например, скачать из Play Store (Terminal Emulator for Android, Material Terminal, Termux). Во многих «продвинутых» дистрибутивах Android — таких, как LineageOS (бывший CyanogenMod) — эмулятор терминала предустановлен.

Эмулятор терминала на Android

Второй вариант — подключиться к Android-устройству с компьютера через Android Debug Bridge (adb). Это очень похоже на подключение через SSH:

Из других знакомых компонентов в Android используются библиотека FreeType (для отображения текста), графические API OpenGL ES, EGL и Vulkan, а также легковесная СУБД SQLite.

Кроме того, раньше для реализации WebView использовался браузерный движок WebKit, но начиная с версии 7.0 вместо этого используется установленное приложение Chrome (или другое; список приложений, которым разрешено выступать в качестве WebView provider, конфигурируется на этапе компиляции системы). Внутри себя Chrome тоже использует основанный на WebKit движок Blink, но в отличие от системной библиотеки, Chrome обновляется через Play Store — таким образом, все приложения, использующие WebView, автоматически получают последние улучшения и исправления уязвимостей.

Стек технологий Android

It’s all about apps

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

Основная единица в Unix-подобных системах — процесс. И низкоуровневые системные сервисы, и отдельные команды в shell’е, и графические приложения — это процессы. В большинстве случаев процесс представляет собой чёрный ящик для остальной системы — другие компоненты системы не знают и не заботятся о его состоянии. Процесс начинает выполняться с вызова функции main() (на самом деле _start ), и дальше реализует какую-то свою логику, взаимодействуя с остальной системой через системные вызовы и простейшее межпроцессное общение (IPC).

Поскольку Android тоже Unix-подобен, всё это верно и для него, но в то время как низкоуровневые части — на уровне Unix — оперируют понятием процесса, на более высоком уровне — уровне Android Framework — основной единицей является приложение. Приложение — не чёрный ящик: оно состоит из отдельных компонентов, хорошо известных остальной системе.

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

In Android, however, we explicitly decided we were not going to have a main() function, because we needed to give the platform more control over how an app runs. In particular, we wanted to build a system where the user never needed to think about starting and stopping apps, but rather the system took care of this for them… so the system had to have some more information about what is going on inside of each app, and be able to launch apps in various well-defined ways whenever it is needed even if it currently isn’t running.

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

Этот механизм — Binder.

Binder

Binder — это платформа для быстрого, удобного и объектно-ориентированного межпроцессного взаимодействия.

Разработка Binder началась в Be Inc. (для BeOS), затем он был портирован на Linux и открыт. Основной разработчик Binder, Dianne Hackborn, была и остаётся одним из основных разработчиков Android. За время разработки Android Binder был полностью переписан.

Binder работает не поверх System V IPC (которое даже не поддерживается в bionic), а использует свой небольшой модуль ядра, взаимодействие с которым из userspace происходит через системные вызовы (в основном ioctl ) на «виртуальном устройстве» /dev/binder . Со стороны userspace низкоуровневая работа с Binder, в том числе взаимодействие с /dev/binder и marshalling/unmarshalling данных, реализована в библиотеке libbinder.

Низкоуровневые части Binder оперируют в терминах объектов, которые могут пересылаться между процессами. При этом используется подсчёт ссылок (reference-counting) для автоматического освобождения неиспользуемых общих ресурсов и уведомление о завершении удалённого процесса (link-to-death) для освобождения ресурсов внутри процесса.

Высокоуровневые части Binder работают в терминах интерфейсов, сервисов и прокси-объектов. Описание интерфейса, предоставляемого программой другим программам, записывается на специальном языке AIDL (Android Interface Definition Language), внешне очень похожем на объявление интерфейсов в Java. По этому описанию автоматически генерируется настоящий Java-интерфейс, который потом может использоваться и клиентами, и самим сервисом. Кроме того, по .aidl -файлу автоматически генерируются два специальных класса: Proxy (для использования со стороны клиента) и Stub (со стороны сервиса), реализующие этот интерфейс.

Для Java-кода в процессе-клиенте прокси-объект выглядит как обычный Java-объект, который реализует наш интерфейс, и этот код может просто вызывать его методы. При этом сгенерированная реализация прокси-объекта автоматически сериализует переданные аргументы, общается с процессом-сервисом через libbinder, десериализует переданный назад результат вызова и возвращает его из Java-метода.

Stub работает наоборот: он принимает входящие вызовы через libbinder, десериализует аргументы, вызывает абстрактную реализацию метода, сериализует возвращаемое значение и передаёт его процессу-клиенту. Соответственно, для реализации сервиса программисту достаточно реализовать абстрактные методы в унаследованном от Stub классе.

Такая реализация Binder на уровне Java позволяет большинству кода использовать прокси-объект, вообще не задумываясь о том, что его функциональность реализована в другом процессе. Для обеспечения полной прозрачности Binder поддерживает вложенные и рекурсивные межпроцессные вызовы. Более того, использование Binder со стороны клиента выглядит совершенно одинаково, независимо от того, расположена ли реализация используемого сервиса в том же или в отдельном процессе.

Для того, чтобы разные процессы могли «найти» сервисы друг друга, в Android есть специальный сервис ServiceManager, который хранит, регистрирует и выдаёт токены всех остальных сервисов.

Binder широко используется в Android для реализации системных сервисов (например, пакетного менеджера и буфера обмена), но детали этого скрыты от разработчика приложений высокоуровневыми классами в Android Framework, такими как Activity, Intent и Context. Приложения могут также использовать Binder для предоставления друг другу собственных сервисов — например, приложение Google Play Services вообще не имеет собственного графического интерфейса для пользователя, но предоставляет разработчикам других приложений возможность пользоваться сервисами Google Play.

Подробнее про Binder можно узнать по этим ссылкам:

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

Илья Дергунов

Платформа Android

Android — это платформа для мобильных техноло­гий, обеспечивающая мобильные телефоны, планшеты и другие карманные и мобиль­ные устройства (даже нетбуки) мощью и мобильностью операционной системы Linux, надежностью и мобильностью стандартного языка высокого уровня и интерфейса прикладного программирования, а также обширным набором полезных приложе­ний. Приложения для платформы Android написаны в основном на языке Java (с ис­пользованием таких инструментов, как Eclipse и Android Studio), скомпилированы с помощью Android API и переведены в байт-код для виртуальной машины Android.

Таким образом, платформа Android связана с семейством операционных сис­тем, предназначенных для других проектов сотовых телефонов на базе Linux. Язык программирования связывает платформу Android с платформой Java ME для ста­рых телефонов от BlackBerry, а также с более широкой сферой приложения языка Java и платформы Java Enterprise. Не говоря уже о том, что все текущие устройства BlackBerry могут запускать приложения для Android, и, по существу, до того, как компания продала остатки бизнеса, связанного со смартфонами, последние устройс­тва BlackBerry могли выполнять только приложения на платформе Android.

В настоящее время считается, что платформа Android занимает почти три чет­верти мирового рынка смартфонов, хотя она не вытеснила iPad Apple на рынке планшетов. Объемы продаж меняются все время, но ясно, что Android надолго останется одним из доминирующих игроков в мобильном пространстве.

Система Android также доступна в виде нескольких специализированных плат­форм. Платформа Android Wear реализу­ет модель программирования Android в интеллектуальных наручных часах и других аксессуарах для таких приложений, как браслеты для спортивных занятий. Плат­форма Android Auto предназначена для управления развлекательными устройствами в автомобилях. Платформа Android TV работает в интеллектуальных телевизорах и контроллерах менее сложных телевизоров. Наконец, платформа Android Things спроектирована для рынка встроен­ных систем, который теперь известен как Интернет вещей (Internet of Things — IoT). Каждая из этих платформ весьма интересна, но, чтобы книга имела разумный объем, мы ориентируемся в основном на обычную платформу Android, предназначенную для смартфонов и планшетных приложений.

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

Особенности простого телефона

Простые телефоны к моменту появления Андроид были оснащены возможностями голосовых вызовов, SMS и MMS переписок, выходом в интернет с помощью стандартного, встроенного браузера и общением через mail-почту. Поскольку перечисленные функции являются встроенными, их невозможно улучшить или расширить способности. К примеру, если хочется посмотреть видеофайл в более высоком разрешении, скачать новую версию программу уже не получится.

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

Что представляет собой Android

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

Основные достоинства Android OS:

  • Режим приема/осуществления голосовых вызовов;
  • Работа с mailами;
  • Поддержка множества беспроводных модулей, которые обеспечивают круглосуточный, непрерывный выход в сеть и не только (3G, 4G, GPS/ГЛОНАСС, Wi-Fi, NFC и т. д.);
  • Легкость в использовании благодаря многообразию сенсорных поверхностей, чувствительных тачпадов, электронных клавиатур и т.д.;
  • Поддержка видеозвонков для общения с близкими на расстоянии;
  • Съемка видео в высоком разрешении, а также способность создавать качественные, практически профессиональные фотоснимки;
  • Широкая база возможностей защиты и сохранения конфиденциальности личных данных (например, верификация по отпечатку пальца или голосу);
  • Удобная работа с внешними устройствами и накопителями.

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

Возможности Андроид

Кроме того, в PlayMarket можно скачать следующие вещи:

  • Приложения для доступа в социальные сети;
  • Мессенджеры, работающие от интернет-трафика;
  • Платежные системы;
  • Почтовые программы;
  • WebMoney и похожие онлайн-кошельки;
  • Игры, требующие подключения к интернету и независимые от него;
  • “Женские” и “мужские” приложения и многое другое.

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

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

Что же такое Андроид, и зачем он нужен? Многие новички, покупая современный гаджет, будь то планшет или смартфон, задаются подобным вопросом. Стоит прояснить ситуацию и выделить некоторые преимущества этой платформы.

История появления

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

История создания ОС началась еще в 2003 году. В то время была основана небольшая организация под названием Android inc. Её учредителями были Рич Майнер, Крис Уайт, Энди Рубин и Ник Сирс. Уже тогда велись некоторые разработки, которые планировалось реализовать в новой операционной системе. Компания осуществляла свою деятельность в условиях строжайшей секретности.

Что такое Андроид и его функции

Вскоре у организации закончились деньги, а значительных достижений в разработках ОС так и не было. Из-за отсутствия результатов инвесторов привлечь не удалось. Через время разработками заинтересовался Google. В 2005 году компания стала собственностью поискового гиганта.

После этого была основана корпорация Open Handset Alliance. В её состав вошли передовые изготовители мобильных устройств. В 2007 году была впервые представлена платформа Андроид. Как известно в её основе лежит ядро Linux. Первая версия данной операционной системы вышла в 2008 году.

Что это такое

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

Что такое Андроид и его функции

Всё необходимое программное обеспечение можно скачать с Play Market. На данном сайте собранно более 700 тысяч программ. Широкий ассортимент позволит отыскать любое нужное приложение. С помощью операционной системы можно с легкостью получить доступ к интернету, смотреть видеофайлы, общаться в социальных сетях, слушать музыку, делать фотографии и тут же размещать их на своем аккаунте или читать электронные книги.

Что такое Андроид и его функции

Стоит отметить, что ОС является совершенно бесплатной. Кроме того, она очень проста в использовании. Чтобы разобраться в интерфейсе не понадобится много времени. Благодаря всем своим достоинствам она стала самой распространенной в мире. За 2014 год было продано более 86% устройств, функционирующих на данной платформе.

Видео: телефон на Андроид

Применение ОС

С момента появления операционной системы Андроид и до нашего времени, разработчики не сидят, сложа руки. Платформа постоянно дорабатывается. При этом её функциональность расширяется, путем внедрения новых возможностей.

Что такое Андроид и его функции

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

Пользоваться Андроидом не так и сложно как кажется. С её помощью на устройстве можно выполнять практически те же действия, что и на компьютере.

Система предусматривает несколько стандартных приложений. Среди них есть:

Все приложения от компании Гугл.

Что такое Андроид и его функции

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

Что такое Андроид и его функции

Чем хороша

Данная ОС обладает рядом достоинств. Главными из них являются:

Этапы развития Android

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

В 2009 году было представлено пять обновленных версий:

2010 год ознаменовался выходом еще двух версий. Ими стали:

Следующей разработкой производителей стала платформа 3.0, которая была презентована в 2011 году. Новая ОС была специально предназначена для планшетов.
Данная система отличается от предыдущих:

Разработчики на этом не остановились и создали Андроид 4.0, который получил название «Ice Cream Sandwich». Эта платформа стала более универсальной. Она может использоваться как в телефоне, так и в планшете.

Что такое Андроид и его функции

В ОС присутствует масса новых функций и доработок:

На протяжении 2012 и 2013 годов производители трудились над разработкой ОС «Jelly Bean».

Что такое Андроид и его функции

Следующими версиями стали 4.1, 4.2, 4.3. Новые изменения, главным образом, коснулись быстроты работы интерфейса. Благодаря новым наработкам была увеличена производительность. Теперь параллельно работают графический процессор и центральный.

В обновленной версии платформы появились:

В конце 2013 была анонсирована еще одна версия Android 4.4 «Kitkat». Новая платформа была оптимизирована для работы на более дешевых устройствах, которые имеют оперативную память 512 МБ.

Что такое Андроид и его функции

Здесь также присутствуют некоторые изменения:

Последней разработкой компании стала версия 5. Новая ОС имеет название «Lollipop». Главной изюминкой стал дизайн Material design, который отличается своей многофункциональностью.

Что такое Андроид и его функции

Конкуренты

Главные конкуренты, с которыми платформе Android приходится бороться за пальму первенства это:

На сегодня Андроид стал наиболее распространенной мобильной платформой в мире, нежели iOS. Однако в скором времени планируется презентация новой ОС Ubuntu Phone. Возможно, она станет еще одним серьезным конкурентом Андроида.

Устройства на Андроид

В 2008 году было выпущено первое устройство, которое работало на базе Андроид. Девайс был разработан компанией HTC. Им стал смартфон под названием HTC Dream. После этого еще несколько производителей телефонов изъявили желание выпускать мобильные устройства с поддержкой этой операционной системы.

Что такое Андроид и его функции

Вскоре был анонсирован планшет на платформе Android. В 2009 году на рынке появилась фоторамка, работающая на этой ОС. Кроме того, через 2 года организация Blue Sky разработала новые наручные часы, которые получили название i’m Watch. Они также поддерживают данную систему.

Производители фотоаппаратов также решили не отставать и представили первую фотокамеру в мире, которая работает на Андроиде. Новинка была выпущена компанией Nikon. Кроме того, на данной платформе функционируют игровые приставки, электронные книги и медиаплееры. Предполагается, что в скором времени появятся еще некоторые девайсы.

Что такое Андроид и его функции

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

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

Читайте также: