Что такое андроид и зачем он нужен. Что такое платформа Android и для чего она нужна Операционная система android основана

  • 26.12.2021

Статьи и Лайфхаки

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

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

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

  • Андроид – это операционная система, которая может управлять мобильным устройством (телефоном, планшетным компьютером, смартфоном). Платформа андроид была разработана на основе ядра Linux.
  • Появилась же она благодаря тому, что в 2005 году компания Google купила компанию Android Inc, сделав ее своим дочерним предприятием, и начала выпускать одноименные платформы для мобильных устройств. С тех пор платформа только развивается.
  • Андроид очень часто выпускает новые версии своей программы. Примечательным является тот факт, что первые буквы названия каждой новой версии соответствуют буквам латинского алфавита.
  • Сегодня платформа андроид занимает второе место по популярности в мире, уступая лишь в операционной системе iOS, которая была разработана для iPhone.

Для чего нужен Андроид

  • Как известно, операционная система – это «мозг» любого электронного устройства, который нужен для того, чтоб оно выполняло все команды человека.
  • Соответственно, андроид – это виртуальный робот, сидящий внутри мобильного устройства, который отвечает за выполнение всех процессов, происходящих внутри этого устройства.
  • Преимущество данной платформы состоит в том, что андроид имеет удобный и очень понятный интерфейс, а также гибкую и мультизадачную систему, которая позволяет запускать несколько приложений сразу и экспериментировать с настройками.
  • Кроме всего прочего, многочисленные приложения, созданные специально для платформы андроид, дают счастливым пользователям этой системы поистине безграничные возможности.
  • Ведь с помощью этих приложений можно расплачиваться за покупки, делать фотографии, смотреть фильмы или читать книги.
  • Разобравшись с тем, что такое андроид, можно сделать вывод о том, что эта платформа создана для творческих людей, ведь два одинаковых мобильных устройства могут выглядеть совершенно по-разному.
  • Андроид позволяет всегда иметь при себе все – личного фитнесс-тренера, доктора, игрушку или телевизор, делая человеческую жизнь максимально комфортной.

Мобильные устройства на платформе Android довольно популярны на рынке телефонии. ОС "Андроид" идеально подходит для телефонов и планшетов. Благодаря большому объему памяти и высоким техническим характеристикам работа с данной операционной системой становится намного проще.

ОС "Андроид": описание

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

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

Как синхронизировать систему с Google?

Система "Андроид" открывает море возможностей: использование карт Google Maps, электронной почты и т.д. Чтобы пользоваться всеми сервисами через одно устройство Android, достаточно синхронизировать систему с Google. Для этого необходимо просто ввести свои данные (логин и пароль), после чего ОС самостоятельно подключится ко всем приложениям.

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

Секреты "Андроид" для начинающих

Чтобы работа с устройством на данной платформе была еще проще, продвинутые пользователи нашли несколько полезных функций. Секреты "Андроид" помогут по максимуму оптимизировать систему и настроить ее под себя.

Первой довольно полезной функцией считается быстрый набор. Всем известно, что система "Андроид" имеет несколько рабочих столов, на которых размещаются ярлыки различных приложений. Так вот, чтобы упростить набор контактов, достаточно нажать на свободном месте экрана, выбрать меню «Ярлык» и «Контакты», а после этого отметить самый популярный номер и поместить его на рабочий стол. Теперь набор этого контакта будет осуществляться одним нажатием на ярлык.

Мало кому известно о том, что на Android-клавиатуре присутствуют специальные символы. Чтобы открыть их, необходимо только долгое нажатие на точку или запятую. Точно так же открывается и набор цифр.

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

Если после случайного нажатия не на ту кнопку открытое приложение куда-то делось, то, скорее всего, оно просто свернулось. Чтобы вернуть свернутое приложение на экран, достаточно зажать кнопку с изображением небольшого домика и выбрать из списка то, которое вам необходимо.

И это только несколько советов. На самом деле скрытых возможностей существует намного больше. Небольшие секреты "Андроид" помогут наладить работу операционной системы и максимально настроить ее под пользователя.

Как узнать больше об установленной системе?

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

Вариант 1. Узнать некоторые системные данные можно с помощью стандартных настроек. Достаточно открыть настроечное меню, далее необходимо выбрать пункт «О телефоне». В некоторых устройствах после этого открывается список информации о системе. Если же на экране появилась не вся информация, нужно нажать на пункт «Версия ПО». Здесь можно будет найти основные данные об операционной системе устройства.

Вариант 2. Этот способ подойдет тем, кому требуются расширенные данные об ОС. Чтобы получить эту информацию, необходимо скачать специальную программу с Play Market, после чего открыть ее. Вся системная информация появится на экране.

Перепрошивка "Андроид" системы

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

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

Лучшие программы для синхронизации устройства с ПК

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

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

Задачи, заметки и календарь, а также устанавливает драйвера на мобильный гаджет.

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


Android – это одна из популярнейших и наиболее перспективных операционных систем для различных мобильных устройств. Система предлагает очень удобный инструментарий и максимальную гибкость настроек, что позволяет каждому пользователю смартфона или планшета на Андроиде настроить его полностью под свои нужды. Разработка данной операционной системы стартовала в далеком 2003-м году, но по-настоящему известной она стала лишь через 2 года – после приобретения компанией Google. Переломный момент в истории Android произошел осенью 2008-го года. Тогда компания Google продемонстрировала T-Mobile G1, ставший первым смартфоном под управлением Андроид. Именно в тот момент многие мировые производители обратили внимание на перспективную операционную систему.

(самая первая версия)

Основные возможности операционной системы Android

Рассматриваемая ОС всегда позиционировалась своими разработчиками как система с открытым кодом. Это позволяет любому желающему создавать свои приложения, игры и прочие дополнения для расширения возможностей Андроид-гаджетов. Разработчики изначально продумали все так, чтобы операционная система работала максимально быстро даже на самом «бюджетном» железе. Это является несомненным плюсом, т.к. теперь даже люди с самыми скромными финансовыми возможностями могут наслаждаться всеми основными преимуществами современных смартфонов.


(Android 5.0)

Открытостью системы охотно пользуются и производители мобильной электроники, выпуская собственные пользовательские интерфейсы, к примеру, Sense от компании HTC. Это делает гаджеты на Андроиде от разных производителей непохожими друг на друга. Любителям классического и «чистого» Android следует обратить свое внимание на устройства Nexus. Именно они традиционно первыми получают обновления.

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

Главным источником игр и приложений является Play Маркет. В каталогах данного магазина доступен огромный выбор бесплатного и платного контента, ассортимент которого активно расширяется. Качество «андроидных» игр и приложений постоянно растет. Периодически различные приложения выпускает и сам Google.

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

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

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

На основании приведенной информации можно выделить ключевые преимущества и недостатки рассматриваемой операционной системы. Так, несомненными преимуществами Андроида является:
1. Открытость программного кода, что дает возможности для разработки практически любых приложений и игр.
2. Нетребовательность к «железу» устройства.
3. Огромный ассортимент приложений и увлекательных игр на любой вкус.
4. Полное соответствие современным представлениям о функционале смартфона.
5. Свобода действий для пользователя. При желании система и ее интерфейс с легкостью настраиваются под нужды владельца.
6. Популярность операционной системы среди подавляющего большинства современных производителей. Это позволяет пользователю с практически любым бюджетом купить функциональный и современный смартфон.

Есть и свои недостатки. Ключевыми являются:

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

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

На сегодняшний день последняя версия Android имеет порядковый номер 5 и кодовое название Lollipop. Система получила значительные обновления в дизайне, функциональности, в общем, это практически заново созданный продукт. Сейчас уже смартфоны Google Nexus 5 начали обновляться до этой версии ОС, а скоро и все современные смартфоны получат актуальное обновление. Однако про новый 5.0 мы расскажем отдельно, а начать хочется всё же ещё с тех времён, когда проект Android даже не принадлежал Google…

Android: Начало

Многие считают, что история Android началась в 2008 году, когда была выпущена первая версия Android 1.0. Но на самом деле всё закрутилось на 5 лет раньше, в 2003 году, когда Энди Рубин с товарищами (Ник Сирс, Крис Уайт и Рич Майнер) решил создать мобильную операционную систему и зарегистрировал компанию Android Inc. Разработчики сначала сосредоточились на устройствах, которые могли бы постоянно находиться у пользователей, определять местоположение по GPS и автоматически подстраиваться под нужды человека.

Энди Рубин, создатель Android Источник: technobuffalo.com

Для инвесторов того времени вряд ли вообще было что-то понятно. Ну а кто захочет вкладывать деньги в непонятный стартап, который пока что никаких денег не приносит… Так и случилось, что к 2005 году Энди и друзья потратили все средства, но по счастливой случайности к ним присмотрелись из Google и 17 августа 2005 года корпорация стала полноправным владельцем маленькой Android Inc. Стоит отметить, что Google на тот момент не имела каких-то особых планов на гаджеты, а была больше сосредоточена на улучшении собственного ПО и алгоритмов поиска. Страшно сказать, но на тот момент у Google не было никакого Adsense и даже YouTube (его приобрели только в 2007 году).

Логотип Google в 2005 году

В этом же году на фоне судебных разбирательств Oracle и Google решается, что Android будет свободной операционной системой и, конечно же, в первую очередь ориентироваться на внедрение сервисов Google. Так как Энди Рубин изначально занимался проектом, связанным с GPS, а у корпорации уже были Карты, предполагалось внедрение карт в телефоны. Причём тогда ещё не было никаких смартфонов, поэтому карты могли появиться на обычной раскладушке с кнопками. Первые изображения также указывают на то, что Google ориентировался на опыт RIM с их Blackberry, так что если бы не стечение обстоятельств, то сенсорные телефоны могли бы и не появиться. Но, к сожалению или к счастью, в 2007 выходит iPhone и в Google резко пересматривают стратегию. Тем не менее, к выпуску в 2008 готовится первая сборка Android 1.0. Однако в начале 2007 года у Google нет партнёра, который выпустил бы телефон на новой ОС. Nokia - слишком крупная компания, с которой будет конфликт интересов, Motorola ещё не отошла от взлёта продаж моделей Razr. В Google выбирают между LG и HTC. Корейской LG интересен рынок США, однако она боится сотрудничества с неизвестным партнёром и использует договорённости с Google только для того, чтобы заключить контракты с Microsoft по созданию смартфонов с Windows Mobile. А вот HTC была готова к совместной работе, да к тому же тайваньская компания могла быстро создавать рабочие образцы. Первым известным прототипом стал Google Sooner. Тут, правда, пришлось отказаться от сенсорного экрана, эта модель создана по первоначальным спецификациям, когда Google опиралась на опыт Blackberry.

Возможно первый прототип телефона на Android - Google Sooner

Источники сообщают, что первая рабочая версия датируется 15.05.2007 и называлась она тогда M3. Операционка очень напоминает интерфейс Blackberry, главную позицию занимает поисковая строка Google. В общем, если бы не появление iPhone и курса на сенсорные экраны, возможно, мы бы сейчас видели Android вот таким.

Скриншот Android M3, возможно первой рабочей версии ОС Источник: 9to5google.com

Android: официальный старт

В Google отчетливо понимали, что с релизом Apple iPhone наличие сенсорного экрана просто необходимость, и поэтому ранние разработки пришлось отложить. Этому способствовало и общение с операторами, летом 2007 года их мнение о будущем Android были пессимистичны. В августе 2007 года в WSJ появляется статья, в которой говорится об усилиях Google относительно своего телефона и платформы. В этом материале упоминается, что у компании два прототипа – один похож на Palm Treo с QWERTY-клавиатурой под экраном, а второй чем-то напоминает вариант Nokia. Внутри команды Android идет соревнование со временем, так как все предыдущее планы никуда не годятся и от них решили отказаться. Команда меняет сроки, и во вторую половину 2007 года выпускается М3. В версии М5, она появляется в начале 2008 года, в ней появляется статусная строка, хотя эксперименты с UI заметны невооруженным взглядом. Посмотрите видео, чтобы понять различие между этими версиями.

И только к августу 2008 года в Google разработали версию 0.9, чтобы представить версию ОС 1.0 в сентябре 2008 года. С 22 октября 2008 года, оператор T-Mobile в США начинает продажи HTC Dream (T-Mobile G1), первого Android-смартфона, в котором присутствовал сенсорный экран и ОС полностью интегрирована под его использование. Но переработать ОС в Google смогли только к версии 1.6, избавившись от старых представлений, которые заложили изначально при ее создании. Пожалуй, что именно с этого момента и начинается взлет Android. Интерес к HTC Dream в США был огромен, оператор продал к 23 апреля 2009 года 1 миллион устройств. Такой спрос на столь обыденное и простое устройство еще раз доказал, что идеи выигрывают, в данном аспекте это была идея сенсорных телефонов, которая завладела умами потребителей.

Естественно, первые же тесты на реальных пользователях выявили множество недоработок платформы и уже в первый год существования Android Google выпустила следующие обновления: 1.1. Banana Bread, 1.5 Cupcake (появилась загрузка видео и фото на YouTube и Picasa, автоматическая ориентация дисплея, предикативный ввод и т.д.), и 1.6 Donut (преобразование речи в текст с мультиязычным произношением, поддержка WVGA, оптимизированная работа с жестами и т.д.)

Android: вторая попытка

Android 2.0

После усовершенствования 1-й версии, Android получил уже расширенную функциональность и хороший внешний вид к версии 2.0, а затем и в 2.1 с одинаковым кодовым именем Eclair. Стало возможным использовать несколько аккаунтов Google, а стандартный веб-браузер получил поддержку HTML5. Одновременно с этим в продажу поступили новые модели Android-смартфонов: НТС Magic и Hero, Motorola Droid и Samsung Galaxy.

Тогда же, в 2010 году начинается выпуск мобильных процессоров с тактовой частотой 1 ГГц. И появляется первый фирменный смартфон Google Nexus One с 1 ГГц процессором. Разумеется, партнером Google становится компания HTC. А процессоры с аналогичной частотой получили НТС Desire, Motorola Droid 2 и Samsung Galaxy S. Кстати, HTC больше не будет делать устройства Google до 2014 года, когда выйдет Nexus 9. В том же 2010 году Google выпустила ещё одну версию Android, новую 2.2 Froyo, в которой выросло быстродействие приложений, использующих JIT-компиляцию, и появилась поддержка Adobe Flash. Ну а обновление до Froyo получили все вышеупомянутые смартфоны с 1 ГГц процессором. Помимо этого, сборка получила такие обновления, как движок Chrome V8 JS для web-обозревателя, передачу контактов и поддержку док-станций по BlueTooth, облачную синхронизацию и т.д.

Google Nexus One и Android 2.2 Froyo

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

Android Gingerbread и Honeycomb

Шёл третий год существования Android на рынке. Это уже была популярная ОС, но проблем оставалось ещё много. И вот, появляется обновление 2.3 Gingerbread, которое до 2013 года было установлено на огромном количестве устройств. Действительно, в данной версии ОС было реализовано много функций, которые обозначили перспективы развития платформы как таковой - поддержка SIP-телефонии, Near Field Communication и Google Talk, работа с экранами более высокого разрешения, новый менеджер загрузок и многое другое.

Вместе с Gingerbread компания Google выпусткает свой второй брендовый смартфон – Nexus S. На этот раз производителем становится Samsung, а Nexus S представлял собой, по сути, слегка видоизмененный Galaxy S. Правда, вышел Google Nexus S явно поздновато: в день начала его продаж компания LG анонсировала первый двухъядерный смартфон Optimus 2Х. Теперь производители меряются не гигагерцами, а многоядерностью. В результате двухъядерные чипы получил не только LG Optimus 2Х, но и Samsung Galaxy S II , НТС Sensation и Motorola Droid X2.

А компания Samsung, тем временем, выпускает вслед за смартфоном Galaxy S другое устройство - планшет Galaxy Tab. Компактная и легкая семидюймовая «таблетка» стала хорошей альтернативой для тех, кому не нравился громоздкий Apple iPad . Но вот беда, Android-то пока что существует только для смартфонов. Не проблема, подумали в Google, и в начале 2011 года появляется первая спроектированная специально для планшетных ПК версия Android – 3.0 Honeycomb. Смотрелась на планшетах Honeycomb и правда лучше, чем растянутый смартфонный интерфейс Gingerbread. Так, на базе ОС Android заработали уже и смартфоны, и планшеты. Бизнес начинал расширяться, причём стремительно. Носителями Honeycomb становятся практически все Android-планшеты - Motorola Xoom, Acer Iconia Tab, Samsung Galaxy Tab 10.1, Lenovo ThinkPad Tablet и т.д.

В этом же 2011 году на технологической выставке IFA 2011 в Берлине Samsung представиляет свой первый 5-дюймовый фаблет Glaxy Note, который стал весьма востребованным устройством, несмотря на мнение скептиков. Тогда это было, по сути, первое устройство такого класса, да ещё и на Android. Apple до этого потребовалось ещё 3 года, в 2014 году компания выпустила фаблет iPhone 6 Plus.

Android 4: от Ice Cream Sandwich до KitKat

В Google понимают, что иметь две раздельные системы для смартфонов и планшетов - это не очень выгодно. Тратится больше времени на разработку и поддержку. И осенью 2011 года Google выпускает версию Android 4.0 Ice Cream Sandwich, которая становится первой кроссплатформенной версией для смартфонов и планшетов. В сборке также появляется доступ к приложениям прямо с «локскрина», а AndroidMarket переименовывается в Google Play. По словам многих специалистов, именно с версии 4.0 Android начал приобретать привычные очертания и нормальную функциональность. Теперь устройствами на «зелёном роботе» тоже можно было просто пользоваться, они перестали быть гаджетами для гиков.

Следом за новой операционкой Google презентовала и новый смартфон - Galaxy Nexus, который, очевидно, также был разработан при сотрудничестве с Samsung. И снова после релиза смартфона производители комплектующих начинают борьбу за железо. Qualcomm представляет мощные процессоры Krait, а Nvidia анонсирует 4-ядерные чипы Tegra 3. Ну а бесспорным лидером Android-смартфонов в 2012 году становится Samsung Galaxy S III, составивший компанию бюджетному бестселлеру ASUS Nexus 7 на базе новой ОС Android 4.1 Jelly Bean.

В 2012-2013 годах ничего особого с Android не произошло после глобальных изменений с объединением планшетной и смартфонной версии. Тем не менее, в 2012 году Google делает еще 2 фирменных устройства - смартфон LG Nexus 4 и планшет Samsung Nexus 10. Параллельно с новинками была представлена обновленная сборка Android 4.2 Jelly Bean, которая дополнила предыдущую версию. Теперь пользователи смогли сполна ощутить преимущества от использования GoogleNow, Cloud Messaging, Android Beam, тройной буферизации, многоканального USB audio и т.д. Затем представлен смартфон Google Moto X и планшет Google Nexus 7 2-го поколения, которые в нашей стране не пользовались особой популярностью по причине того, что Motorola ушла с российского рынка ещё в 2010 году.

В 2013 году на рынке появляется Nexus 5, опять же, в результате сотрудничества с LG. И для него и других устройств выходит новая версия Android 4.4 KitKat. Да, это первый случай, когда индикатором версии становится название коммерческого продукта, но не будем об этом. Изменения коснулись не только интерфейса отдельных системных приложений и элементов. Появилась в KitKat обещанная прозрачность верхней панели уведомлений вместе с новым утонченным шрифтом и поддержкой полноэкранного интерфейса со стороны отдельных приложений. С выходом KitKat упростился доступ к сервису Google Now. Теперь его вызов унифицирован – достаточно лишь провести по экрану пальцем слева направо. Ранее способы доступа к Google Now варьировались в зависимости от модели смартфона (нажатие на кнопку Home, потряхивание и т. д.). Дополнительно сервис активируется фразой «OK Google» при открытом стартовом экране. Не обошли вниманием разработчики и программу Hangouts. Теперь она позволяет отправлять не только чат-сообщения, но и SMS/MMS. Наконец, отметим встроенный в KitKat шагомер, который работает даже в фоновом режиме, а также расширенную совместимость с принтерами через облачную технологию Google Print. Последняя позволяет безо всяких проводов отправлять на печать документы, меняя предварительно размер бумаги и указывая требуемое количество страниц.

Тебя никогда не интересовало, как работают fastboot или ADB? Или почему смартфон под управлением Android практически невозможно превратить в кирпич? Или, может быть, ты давно хотел узнать, где кроется магия фреймворка Xposed и зачем нужны загрузочные скрипты /system/etc/init.d? А как насчет консоли восстановления (recovery)? Это часть Android или вещь в себе и почему для установки сторонней прошивки обычный рекавери не подходит? Ответы на все эти и многие другие вопросы ты найдешь в данной статье.

Как работает Android

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

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

Шаг первый. ABOOT и таблица разделов

Все начинается с первичного загрузчика. После включения питания система исполняет код загрузчика, записанного в постоянную память устройства. Затем он передает управление загрузчику aboot со встроенной поддержкой протокола fastboot, но производитель мобильного чипа или смартфона/планшета имеет право выбрать и любой другой загрузчик на его вкус. Например, компания Rockchip использует собственный, несовместимый с fastboot загрузчик, для перепрограммирования и управления которым приходится использовать проприетарные инструменты.

Протокол fastboot, в свою очередь, представляет собой систему управления загрузчиком с ПК, которая позволяет выполнять такие действия, как разлочка загрузчика, прошивка нового ядра и recovery, установка прошивки и многие другие. Смысл существования fastboot в том, чтобы иметь возможность восстановить смартфон в начальное состояние в ситуации, когда все остальные средства не работают. Fastboot останется на месте, даже если в результате экспериментов ты сотрешь со смартфона все разделы NAND-памяти, содержащие Android и recovery.

Получив управление, aboot проверяет таблицу разделов и передает управление ядру, прошитому в раздел с именем boot, после чего ядро извлекает в память RAM-образ из того же раздела и начинает загрузку либо Android, либо консоли восстановления. NAND-память в Android-устройствах поделена на шесть условно обязательных разделов:

  • boot - содержит ядро и RAM-диск, обычно имеет размер в районе 16 Мб;
  • recovery - консоль восстановления, состоит из ядра, набора консольных приложений и файла настроек, размер 16 Мб;
  • system - содержит Android, в современных девайсах имеет размер не менее 1 Гб;
  • cache - предназначен для хранения кешированных данных, также используется для сохранения прошивки в ходе OTA-обновления и поэтому имеет размер, сходный с размерами раздела system;
  • userdata - содержит настройки, приложения и данные пользователя, ему отводится все оставшееся пространство NAND-памяти;
  • misc - содержит флаг, определяющий, в каком режиме должна грузиться система: Android или recovery.
Кроме них, также могут существовать и другие разделы, однако общая разметка определяется еще на этапе проектирования смартфона и в случае aboot зашивается в код загрузчика. Это значит, что: 1) таблицу разделов нельзя убить, так как ее всегда можно восстановить с помощью команды fastboot oem format; 2) для изменения таблицы разделов придется разлочить и перепрошить загрузчик с новыми параметрами. Из этого правила, однако, бывают исключения. Например, загрузчик того же Rockchip хранит информацию о разделах в первом блоке NAND-памяти, так что для ее изменения перепрошивка загрузчика не нужна.

Часть кода загрузчика, определяющая таблицу разделов


Особенно интересен раздел misc. Существует предположение, что изначально он был создан для хранения различных настроек независимо от основной системы, но в данный момент используется только для одной цели: указать загрузчику, из какого раздела нужно грузить систему - boot или recovery. Эту возможность, в частности, использует приложение ROM Manager для автоматической перезагрузки системы в recovery с автоматической же установкой прошивки. На ее же основе построен механизм двойной загрузки Ubuntu Touch, которая прошивает загрузчик Ubuntu в recovery и позволяет управлять тем, какую систему грузить в следующий раз. Стер раздел misc - загружается Android, заполнил данными - загружается recovery… то есть Ubuntu Touch.

Шаг второй. Раздел boot

Если в разделе misc не стоит флаг загрузки в recovery, aboot передает управление коду, расположенному в разделе boot. Это не что иное, как ядро Linux; оно находится в начале раздела, а сразу за ним следует упакованный с помощью архиваторов cpio и gzip образ RAM-диска, содержащий необходимые для работы Android каталоги, систему инициализации init и другие инструменты. Никакой файловой системы на разделе boot нет, ядро и RAM-диск просто следуют друг за другом. Содержимое RAM-диска такое:

  • data - каталог для монтирования одноименного раздела;
  • dev - файлы устройств;
  • proc - сюда монтируется procfs;
  • res - набор изображений для charger (см. ниже);
  • sbin - набор подсобных утилит и демонов (adbd, например);
  • sys - сюда монтируется sysfs;
  • system - каталог для монтирования системного раздела;
  • charger - приложение для отображения процесса зарядки;
  • build.prop - системные настройки;
  • init - система инициализации;
  • init.rc - настройки системы инициализации;
  • ueventd.rc - настройки демона uventd, входящего в состав init.
Это, если можно так выразиться, скелет системы: набор каталогов для подключения файловых систем из разделов NAND-памяти и система инициализации, которая займется всей остальной работой по загрузке системы. Центральный элемент здесь - приложение init и его конфиг init.rc, о которых во всех подробностях я расскажу позже. А пока хочу обратить внимание на файлы charger и ueventd.rc, а также каталоги sbin, proc и sys.

Файл charger - это небольшое приложение, единственная задача которого - вывести на экран значок батареи. Он не имеет никакого отношения к Android и используется тогда, когда устройство подключается к заряднику в выключенном состоянии. В этом случае загрузки Android не происходит, а система просто загружает ядро, подключает RAM-диск и запускает charger. Последний выводит на экран иконку батареи, изображение которой во всех возможных состояниях хранится в обычных PNG-файлах внутри каталога res.

Файл ueventd.rc представляет собой конфиг, определяющий, какие файлы устройств в каталоге sys должны быть созданы на этапе загрузки системы. В основанных на ядре Linux системах доступ к железу осуществляется через специальные файлы внутри каталога dev, а за их создание в Android отвечает демон ueventd, являющийся частью init. В нормальной ситуации он работает в автоматическом режиме, принимая команды на создание файлов от ядра, но некоторые файлы необходимо создавать самостоятельно. Они перечислены в ueventd.rc.

Каталог sbin в стоковом Android обычно не содержит ничего, кроме adbd, то есть демона ADB, который отвечает за отладку системы с ПК. Он запускается на раннем этапе загрузки ОС и позволяет выявить возможные проблемы на этапе инициализации ОС. В кастомных прошивках в этом каталоге можно найти кучу других файлов, например mke2fs, которая может потребоваться, если разделы необходимо переформатировать в ext3/4. Также модеры часто помещают туда BusyBox, с помощью которого можно вызвать сотни Linux-команд.

Каталог proc для Linux стандартен, на следующих этапах загрузки init подключит к нему procfs, виртуальную файловую систему, которая предоставляет доступ к информации обо всех процессах системы. К каталогу sys система подключит sysfs, открывающую доступ к информации о железе и его настройкам. С помощью sysfs можно, например, отправить устройство в сон или изменить используемый алгоритм энергосбережения.

Файл build.prop предназначен для хранения низкоуровневых настроек Android. Позже система обнулит эти настройки и перезапишет их значениями из недоступного пока файла system/build.prop.


Корневой раздел ТВ-приставки OUYA


Шаг второй, альтернативный. Раздел recovery

В том случае, если флаг загрузки recovery в разделе misc установлен или пользователь включил смартфон с зажатой клавишей уменьшения громкости, aboot передаст управление коду, расположенному в начале раздела recovery. Как и раздел boot, он содержит ядро и RAM-диск, который распаковывается в память и становится корнем файловой системы. Однако содержимое RAM-диска здесь несколько другое.

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

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

С помощью скриптов, например, можно сделать так, чтобы после загрузки recovery автоматически нашел на карте памяти нужные прошивки, установил их и перезагрузился в Android. Эта возможность используется инструментами ROM Manager, auto-flasher, а также механизмом автоматического обновления CyanogenMod и других прошивок.

Кастомные рекавери также поддерживают скрипты бэкапа, располагающиеся в каталоге /system/addon.d/. Перед прошивкой recovery проверяет наличие скриптов и выполняет их перед тем, как произвести прошивку. Благодаря таким скриптам gapps не исчезают после установки новой версии прошивки.

Шаг третий. Инициализация

Итак, получив управление, ядро подключает RAM-диск и по окончании инициализации всех своих подсистем и драйверов запускает процесс init, с которого начинается инициализация Android. Как я уже говорил, у init есть конфигурационный файл init.rc, из которого процесс узнает о том, что конкретно он должен сделать, чтобы поднять систему. В современных смартфонах этот конфиг имеет внушительную длину в несколько сот строк и к тому же снабжен прицепом из нескольких дочерних конфигов, которые подключаются к основному с помощью директивы import. Тем не менее его формат достаточно простой и по сути представляет собой набор команд, разделенных на блоки.

Каждый блок определяет стадию загрузки или, выражаясь языком разработчиков Android, действие. Блоки отделены друг от друга директивой on, за которой следует имя действия, например on early-init или on post-fs. Блок команд будет выполнен только в том случае, если сработает одноименный триггер. По мере загрузки init будет по очереди активировать триггеры early-init, init, early-fs, fs, post-fs, early-boot и boot, запуская таким образом соответствующие блоки команд.


Часть конфига init.rc из CyanogenMod


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

Наиболее примечательный из дополнительных конфигов носит имя initrc.имя_устройства.rc, где имя устройства определяется автоматически на основе содержимого системной переменной ro.hardware. Это платформенно-зависимый конфигурационный файл, который содержит блоки команд, специфичные для конкретного устройства. Кроме команд, отвечающих за тюнинг ядра, он также содержит примерно такую команду:

Код:

Mount_all ./fstab.имя_устройства

Она означает, что теперь init должен подключить все файловые системы, перечисленные в файле./fstab.имя_устройства, который имеет следующую структуру:

Код:

Имя_устройства_(раздела) точка_монтирования файловая_система опции_фс прочие опции

Обычно в нем содержатся инструкции по подключению файловых систем из внутренних NAND-разделов к каталогам /system (ОС), /data (настройки приложений) и /cache (кешированные данные). Однако слегка изменив этот файл, мы можем заставить init загрузить систему с карты памяти. Для этого достаточно разбить карту памяти на три 4 раздела: 1 Гб / ext4, 2 Гб / ext4, 1 Гб / ext4 и оставшееся пространство fat32. Далее необходимо определить имена разделов карты памяти в каталоге /dev (для разных устройств они отличаются) и заменить ими оригинальные имена устройств в файле fstab.


Типичное содержимое файла fstab


В конце блока boot init, скорее всего, встретит команду class_start default, которая сообщит, что далее следует запустить все перечисленные в конфиге службы, имеющие отношение к классу default. Описание служб начинается с директивы service, за которой следует имя службы и команда, которая должна быть выполнена для ее запуска. В отличие от команд, перечисленных в блоках, службы должны работать все время, поэтому на протяжении всей жизни смартфона init будет висеть в фоне и следить за этим.

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

Шаг четвертый. Zygote и app_process

На определенном этапе загрузки init встретит в конце конфига примерно такой блок:

Код:

Service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class default socket zygote stream 660 root system onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on onrestart restart media onrestart restart netd

Это описание службы Zygote, ключевого компонента любой Android-системы, который ответственен за инициализацию, старт системных служб, запуск и остановку пользовательских приложений и многие другие задачи. Zygote запускается с помощью небольшого приложения /system/bin/app_process, что очень хорошо видно на приведенном выше куске конфига. Задача app_proccess - запустить виртуальную машину Dalvik, код которой располагается в разделяемой библиотеке /system/lib/libandroid_runtime.so, а затем поверх нее запустить Zygote.

Когда все это будет сделано и Zygote получит управление, он начинает формирование среды исполнения Java-приложений с помощью загрузки всех Java-классов фреймворка (сейчас их более 2000). Затем он запускает system_server, включающий в себя большинство высокоуровневых (написанных на Java) системных сервисов, в том числе Window Manager, Status Bar, Package Manager и, что самое важное, Activity Manager, который в будущем будет ответственен за получение сигналов о старте и завершении приложений.

После этого Zygote открывает сокет /dev/socket/zygote и уходит в сон, ожидая данные. В это время запущенный ранее Activity Manager посылает широковещательный интент Intent.CATEGORY_HOME, чтобы найти приложение, отвечающее за формирование рабочего стола, и отдает его имя Zygote через сокет. Последний, в свою очередь, форкается и запускает приложение поверх виртуальной машины. Вуаля, у нас на экране появляется рабочий стол, найденный Activity Manager и запущенный Zygote, и статусная строка, запущенная system_server в рамках службы Status Bar. После тапа по иконке рабочий стол пошлет интент с именем этого приложения, его примет Activity Manager и передаст команду на старт приложения демону Zygote

Все это может выглядеть несколько непонятно, но самое главное - запомнить три простые вещи:

  • Процесс запуска Android делится на две ключевые стадии: до Zygote и после. До старта Zygote система инициализирует низкоуровневые компоненты ОС. Это такие операции, как подключение (монтирование) файловых систем, запуск низкоуровневых служб (например rild, отвечающий за работу с GSM-модемом, SurfaceFlinger, управляющий тем, что изображено на экране, vold, управляющий подключенными файловыми системами). После запуска Zygote начинается инициализация исключительно Java-компонентов, которые составляют 80% операционной системы. Этим, в частности, пользуется известный фреймворк Xposed, который при установке подменяет app_process на собственную модифицированную версию, которая способна перехватывать вызовы любых Java-классов, подменяя их на любые другие. Именно поэтому у модулей Xposed такие широкие возможности по модификации внешнего вида и поведения Android. На самом деле они ничего не изменяют в системе, а просто заставляют ее использовать сторонние компоненты вместо своих.
  • Java-приложения никогда не запускаются «с нуля». Когда Zygote получает запрос на старт приложения от Activity Manager, он не запускает новую виртуальную машину, а просто форкается, то есть копирует самого себя и затем запускает поверх полученной копии виртуальной машины нужное приложение. Такой принцип работы позволяет, во-первых, свести расход памяти к минимуму, так как Linux при форке копирует память в режиме copy-on-write (новый процесс ссылается на память старого), а во-вторых, существенно ускорить запуск приложения: форк процесса происходит намного быстрее запуска новой виртуальной машины и загрузки нужных приложению Java-классов.
  • В Android повсеместно используются интенты. Для общения между собой компоненты Android никогда не применяют прямой вызов процедур и классов. Вместо этого используется система сообщений (интентов), которая, кроме высокого уровня безопасности, дает также множество других вкусностей, таких как, например, возможность вызвать приложение, ничего о нем не зная. Выше я уже писал, что для запуска рабочего стола системе достаточно послать интент Intent.CATEGORY_HOME, на который откликнется любое приложение, способное выполнять функцию лончера. Таким же образом работает кнопка «Поделиться», а также множество других компонентов системы.