Что такое андроид и как он работает. Что такое андроид и зачем он нужен

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

Что такое ОС Android

Android – это операционная система на базе ядра Linux, которую выкупила в 2005 году компания Google. В 2008 году вышла первая версия операционной системы. Данная ОС предназначена для смартфонов, планшетов и многих других устройств. На данный момент её встраивают в часы, различные навигаторы, приставки и проигрыватели.

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

Я думаю, не стоит перечислять известные бренды сегодняшних телефонов, которые растут, как на дрожжах. Так вот, все они используют Андроид. Если говорить о чистой системе, то можно сказать, что она очень шустрая и производительная. Многие производители, беря за основу эту ОС делают свою оболочку с дополнительными функциями, возможностями и оформлением. У кого-то это получается лучше, и системка летает, а в каких-то устройствах не очень. С помощь операционки у вас есть возможность управлять такими функциями, как Wi-Fi, Bluetooth, NFC, GPS, создавать точки доступа Wi-Fi, то есть делать из своего телефона модем и многое другое. В современные смартфоны встраивают датчики отпечатав пальцев и сканирования радужной оболочки глаза, что позволяет многократно улучшить защиту – всем этим можно управлять с помощью Android. Естественно в Apple со своим iOS стараются не отставать.

Плюсы и минусы

Давайте рассмотрим достоинства и недостатки:

  • Так как она разработана на ядре Linux с открытым исходным кодом, то и мобильная система тоже имеет открытый исходный код, что позволяет создавать для этой системы всё, что душе угодно.
  • Чистая ОС очень оптимизирована не требовательна к устройствам. Может работать на самом слабом телефоне, который сейчас есть, хотя это уже редкость.
  • Возможность подстроить систему под себя.
  • Огромное количество дополнений и приложений, которые многократно расширяют возможности ОС.
  • Быстрота работы (не во всех случаях).
  • Системка доступна для следующих аппаратных платформ: ARM, x86, MIPS.

Это основные положительные характеристики, которые я ля себя отметил. Может быть есть еще что-то. Помимо плюсов, есть еще и минусы :

  • Операционка с открытым кодом даёт преимущество производителям смартфонов и планшетов создавать оболочки, не всегда максимально оптимизированные и работоспособные. Помимо этого, обновление оболочки может прийти намного позже, чем выйдет новейшая версия официальной системы.
  • Если системка плохо оптимизирована, то есть вероятность сильного расхода энергии. А атомность сейчас очень ценится. Но это зависит скорее от производителей устройств.
  • Из-за популярности хакеры и прочие нехорошие люди пишут для ОС вирусы и ищут уязвимости. Конечно, определённая защита у это ОС, не как у Windows. Поэтому недостаток незначительный.
  • Были замечены случаи, когда у пользователей по всему миру в общем случае было украдено несколько миллионов долларов. Делалось это посредством отправки СМС без ведома пользователя.


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

На данный момент существуют такие компании по созданию прошивок для смартфонов и прочих устройств: CyanogenMod, которая теперь LineageOS, AOKP, MIUI, Paranoid Android, AOSP, Replicant и прочие.

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

Приложения и Play Market

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

Немножечко теории. Код приложения для Андроида пишется для, так называемой, виртуальной машины Dalvic. Приложения имеют формат .apk , это единственный формат. Сами приложения до недавнего времени можно было писать на языке Java, а с 2009 года Google добавили специальный пакет возможностей, позволяющий создавать программное обеспечение на С и С++. Также, существует множество сред разработки, типа Embarcadero RAD Studio.


Что касается самого магазина приложений, то открыли его в 2008 году. Договорённость была такова, что разработчики ПО отдают 30% прибыли компании Google. По меркам 2017 года в базе Play Market насчитывается около больше 2.8 миллионов приложений.

Кончено, бывало недобросовестные пользователи выкладывали приложения с вредоносным кодом, из-за чего примерно в 2011 возник скандал, но проблемы быстро замяли и уязвимости закрыли.

Кто бы что не говорил, но прямым конкретном Play Market является App Store – магазин приложений для устройств iPhone, iPad, iPod и других. Программного обеспечения у них меньше чем в Play Market. По доходу разработчиков тоже самое, что и у Google. Вы создаете платное приложение, за которое отдадите 30% прибыли.

Что внутри Android

А теперь практически предпоследний пунктик, в котором я хочу рассказать о внутренних компонентах системы. Те, кто пользуется этой системой должны хоть немного в ней разбираться. И сравним её с Windows.

Итак, Linux от Windows отличается тем, что у второй информация разложена по дискам и папочкам, конечно, в Linux также, но отображается это всё по-разному. В линуксоидных системах древовидная структура.

Также различия есть и в регистрах. Если вы создадите несколько папок с одинаковыми названиями, то на Windows отличия не будет, а вот в Linux это будут совершенно разные папки. К файлам это тоже относится. Вот эти названия будут различны в Linux – Papka, papka, PAPKA.

Всегда кэш для системы и какого-то приложения будет сохраняться в специальный раздел – cache .

Наверняка в файловом менеджере все видели папку data . Этот каталог имеет другие папки, относящиеся к установочным файлам и каталогам от приложений.

Файлы конфигурации и библиотеки ПО можно найти в папке app-lib .

Чтобы приложения работали их пишут на языке Java для специальной виртуальной машины Dalvik. Поэтому вы можете встретить каталог dalvic-cache . Иногда его нужно чистить, например, перед перепрошивкой телефона. Делается это с помощью рут-прав или из , но обо всем этом я обязательно расскажу в будущих статьях.

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

В каталоге etc вы найдете файлы, позволяющие нормально запуститься системе.

Это еще не все папки, которые есть в Андроид системе. Понадобится несколько дополнительных статей, чтобы всё это разобрать.

Дополнительные особенности

Многие знают, что каждая модификация системы имеет ключевое название, обычно, какого-то десерта. Например, Cupcake, что значит кекс. Одна из популярных версий 4.1-4.3 имеет название Jelly Bean (Желейные бобы). А вот версия 4.4 названа честь известного шоколадного батончика KitKat . Следующая модификация 5.0 и 5.1 имеет название Lollipop – леденец. Шестой вариант – Marshmallow и, наконец, последняя на данный момент разновидность 7.0-7.1.2 получила код Nougat .

Уже совсем чуть-чуть осталось до выхода версии 8 или как его называют Android O. Бета-версия операционки уже установлена на некоторых флагманах и работает стабильно. Полностью ОС выйдет в конце 2017 года. И да, ключевое слово скорее всего будет – Oreo . Ниже вы увидите видео по презентации восьмой версии.

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

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

Шаги

Часть 1

Как настроить новый телефон

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

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

    Вставьте SD-карту. Съемная карта памяти формата SD позволяет увеличить объем хранилища. Использовать такую карточку не обязательно, но иногда без нее невозможно установить новые приложения и сохранить мультимедийные файлы, если внутренняя память уже занята. Разъем для SD-карты может располагаться под крышкой и поддерживать форматы SD, mini-SD и micro-SD, которые отличаются физическими размерами. Информацию о поддерживаемых картах памяти можно найти в руководстве по эксплуатации.

    • Некоторые устройства не позволяют расширить объем встроенной памяти и не поддерживают SD-карты.
  1. Включите смартфон и выполните начальную настройку. Нажмите и удерживайте кнопку питания несколько секунд, чтобы включить телефон. Начальная загрузка аппарата также займет несколько секунд. Затем откроется меню начальной настройки. Следуйте подсказкам на экране и выполните настройку.

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

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

    • Для подключения к защищенной сети необходимо ввести пароль. Нажмите на поле ввода текста, чтобы вызвать экранную клавиатуру, а затем введите пароль.
  2. Создайте или войдите в свою учетную запись Google. Система Android разработана компанией Google, поэтому необходимо создать бесплатную учетную запись, чтобы пользоваться сервисами Google Play, Gmail, YouTube и многими другими. Следуйте подсказкам на экране, чтобы создать аккаунт Google или войти в существующую учетную запись, которая будет привязана к данному смартфону.

  3. Установите дату и время. Можно выбрать настройку времени по сети или установить текущее время вручную.

    • При ручной настройке также необходимо выбрать дату, часовой пояс и формат вывода времени.
  4. Используйте программу настроек, чтобы изменить конфигурацию смартфона. Такое приложение позволяет изменить практически любые параметры телефона, включая настройки установленных программ, уведомления, звуки, языки и многое другое. На главном экране нажмите ярлык, который похож на сетку, чтобы открыть все приложения. Перелистывайте экран в стороны или сверху вниз, чтобы просмотреть все установленные программы. Найдите и откройте приложение “Настройки”.

    • Выберите пункты Wi-Fi, Bluetooth и Передача данных, чтобы изменить настройки, создать новое подключение, активировать или отключить функцию. Подключения по сети Wi-Fi используются в первую очередь, если рядом имеется доступная беспроводная сеть.
    • Выберите мелодию вызова в пункте Звук>Мелодия звонка. Также можно отдельно настраивать громкость мелодии звонка и мультимедиа во вкладке Звук>Громкость.
  5. Обеспечьте безопасность. Активируйте на смартфоне экран блокировки. Он пригодится в случае потери или кражи телефона и не позволит другим воспользоваться устройством. В “Настройках” перейдите к пункту “Безопасность” и выберите блокировку экрана одним из доступных способов - пароль, PIN-код или графический ключ. Завершите настройку параметров согласно подсказкам на экране.

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

Часть 2

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

    • Когда вы поднесете смартфон к уху, подсветка погаснет, а сенсорный экран будет заблокирован. Отведите телефон от уха, чтобы воспользоваться дополнительными функциями во время вызова.
    • Нажмите иконку микрофона, чтобы заглушить микрофон и собеседник не мог вас слышать. Еще раз нажмите иконку, чтобы продолжить разговор.
    • Нажмите иконку динамика, чтобы включить и выключить громкую связь. Регулируйте громкость вызова при помощи кнопок регулировки на боковой стороне устройства.
    • Нажмите иконку клавиатуры, которая выглядит как квадратная сетка, чтобы вызвать цифровую клавиатуру. Во время вызова для ввода информации может потребоваться клавиатура.
    • Нажмите кнопку “Завершить звонок”, чтобы завершить разговор.
  2. Сохраняйте и редактируйте контакты. Смартфон позволяет сохранять личные контактные данные в телефонной книге. Откройте приложение “Контакты”, чтобы увидеть список контактов. Смартфон может использовать контактные данные SIM-карты или учетной записи Google, чтобы наполнить телефонную книгу.

    • Чтобы добавить контакт, нажмите иконку “Добавить” в верхней части экрана. Выберите место для сохранения контактной информации - память телефона или аккаунт Google. Можно ввести имя человека, номер телефона, адрес электронной почты и другие сведения. Введя всю информацию, нажмите “Сохранить”, чтобы создать новый контакт на устройстве.
    • Листайте список вверх и вниз, чтобы просматривать все доступные контакты. Нажмите на имя в списке, чтобы просмотреть контактные сведения, совершить вызов, отправить сообщение, письмо или редактировать информацию.
    • Нажмите и удерживайте имя контакта, чтобы вызвать контекстное меню, которое позволит вам совершить вызов, редактировать контактные данные, отправить сообщение либо заблокировать вызовы от контакта.
    • Нажмите иконку в виде увеличительного стекла, чтобы выполнить поиск по имени контакта.
  3. Отправьте текстовое сообщение. Откройте приложение “Сообщения”, которое обычно находится в строке избранных программ или в меню всех программ, чтобы воспользоваться услугой коротких текстовых сообщений (СМС). Также в программе хранятся все исходящие и входящие сообщения, которые показаны в виде диалогов. Сообщения отправляются по номеру телефона.

    • Сообщение можно отправить контакту из книги или по номеру телефона. Нажмите “Написать”, чтобы ввести текст сообщения. В поле “Получатель” укажите имя получателя из телефонной книги или введите номер телефона. Если номер содержится в памяти телефона, то на экране появятся подходящие варианты. Для выбора нажмите на имя или номер телефона.
    • Текст сообщения следует вводить в специальном окне. Коснитесь поля, чтобы вызвать экранную клавиатуру. Затем введите текст сообщения и нажмите “Отправить”.
    • Иконка в виде скрепки позволяет прикрепить вложения. К тексту сообщения можно приложить различные файлы. Следуйте подсказкам, чтобы добавить файл, а затем нажмите “Отправить”.

Часть 3

Как настроить рабочие столы
  1. Добавьте рабочий стол. Система позволяет добавлять рабочие столы, чтобы размещать на них приложения для быстрого доступа. Сдвиньте два пальца от границ к центру экрана или зажмите кнопку возврата на главный экран, чтобы увидеть все рабочие столы. Нажмите “Добавить”, чтобы добавить новый рабочий стол. Зажмите и удерживайте пальцем выбранный рабочий стол, затем перетащите поверх иконки “Удалить” и отпустите, чтобы удалить один из столов.

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

    • Для запуска приложений не обязательно создавать ярлык на рабочем столе. Нажмите на иконку выбранной программы.
    • Также можно добавить ярлык в строку избранных программ в нижней части экрана. Такая строка не изменяется при переключении между рабочими столами и отображается на экране блокировки.
  3. Размещайте элементы на рабочем столе. Рабочий стол можно настроить на свой вкус. Ярлыки приложений и другие элементы можно расположить по сетке согласно вашим предпочтениям для быстрого и удобного доступа. Зажмите и удерживайте ярлык пару секунд, чтобы переместить его в любую свободную точку, а затем отпустите палец.

    • Перетаскивайте иконку к левой или правой границе экрана, чтобы переместить ее на другой стол.
    • Некоторые устройства позволяют перетаскивать иконки друг на друга и создавать папки. Просто нажмите на папку, чтобы увидеть содержимое. Зажмите иконку папки, чтобы вызвать клавиатуру и ввести любое название. Введите текст и нажмите кнопку ввода, чтобы переименовать папку.
    • Зажмите и удерживайте пальцем выбранный ярлык, затем перетащите поверх иконки “Удалить” и отпустите, чтобы удалить ярлык с рабочего стола.
  4. Размещайте виджеты на рабочем столе. Виджет - это окно приложения, которое работает прямо на рабочем столе. Получите мгновенный доступ к уникальным функциям телефона. Используйте калькулятор, просматривайте обновления социальных сетей в реальном времени или работайте со встроенным музыкальным плеером. Список доступных виджетов можно просмотреть одним из следующих способов. Нажмите и удерживайте палец на свободном месте рабочего стола либо откройте список всех программ и найдите раздел с виджетами. При добавлении на рабочий стол учитывайте размер виджета, так как он располагается по сетке аналогично ярлыкам приложений. Нажмите и удерживайте выбранный виджет, чтобы перенести его на рабочий стол, после чего выберите подходящее место. Отпустите, чтобы разместить виджет на главном экране.

    • Если на столе не хватает места для виджета, то добавьте новый рабочий стол или переместите соседние ярлыки с виджетами, чтобы освободить пространство.
    • Виджеты на рабочих столах способствуют ускоренному разряду батареи. Ограничьтесь только самыми необходимыми виджетами.
  • Чтобы выбрать полезные программы, можно воспользоваться рекомендациями магазина либо списками популярных приложений. Листайте вверх и вниз, чтобы просмотреть весь список. Все программы упорядочены горизонтально по категориям. Для просмотра приложений из категории смахните влево или вправо, либо нажмите “Еще” напротив названия категории.
  • Просмотрите страницу с информацией о приложении. На такой странице указываются сведения, которые позволяют определить необходимость установки программы.

    • Программы можно добавлять в список желаний, нажав иконку в виде ленты в правом верхнем углу страницы с информацией.
    • Некоторые разделы страницы можно листать вправо и влево, чтобы просмотреть изображения интерфейса программы и другие сведения. Здесь также доступны отзывы и рекомендации других пользователей.
    • Некоторые программы нельзя установить из-за несовместимости с устройством. Можно найти похожую программу или другие приложения разработчика для вашего устройства.
    • В некоторых отзывах указаны версии Android и модель телефона, которые использовались при работе с программой. Ищите отзывы именно для вашей модели, поскольку разные устройства могут иметь разную производительность.
  • Установите приложение. В верхней части страницы находится кнопка “Установить” или “Купить”, которая позволяет загрузить приложение в телефон. Магазин Google Play сообщит о требуемых разрешениях вроде работы со списком контактов или беспроводными подключениями, которые необходимы для пользования программой. Примите условия, чтобы установить приложение. Время установки зависит от размера файла. Когда установка завершится, на экране появится соответствующее уведомление.

    • Для платных приложений стоимость указывается в местной валюте. После разрешений следует выбрать удобный метод оплаты. Можно использовать банковскую карточку или кредит от магазина Google Play. Чтобы воспользоваться картой, нажмите “Добавить способ оплаты” и укажите данные карты. Следуйте подсказкам на экране, чтобы добавить информацию для оплаты в свою учетную запись. Впоследствии карточка будет отображаться как доступный способ оплаты, а вам больше не потребуется повторно вводить данные. Если кредит в магазине Google Play не покрывает всю стоимость программы, то остаток суммы можно оплатить кредитной картой.
    • Также рядом с кнопкой “Установить” может присутствовать текст “Есть платный контент”. Такая приписка говорит о том, что в программе возможны встроенные покупки. Для таких покупок будет использован добавленный способ оплаты в Google Play. Дополнительная информация содержится в инструкциях к приложению.
  • Установите программу в телефон. Приложение появится в списке установленных программ и на рабочем столе, на котором есть свободное место. Для запуска нажмите иконку программы.

    • Кнопка “Установить” на странице с информацией будет заменена на кнопку “Удалить”, которая позволяет удалить приложение с телефона. Для повторной установки нажмите соответствующую кнопку. Ранее приобретенные программы можно повторно установить без дополнительных затрат. Чтобы увидеть все приобретенные и установленные программы, выберите в боковом меню пункт “Мои приложения и игры”.
  • Мобильные устройства на платформе 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  -  о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.


    Статьи серии:

    • Как работает Android, часть 1

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

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


    Android  -  свободный и открытый проект. Большинство исходного кода (который можно найти на ) распространяется под свободной лицензией Apache 2.0.


    Компания 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.


    Как и в других Linux-системах, ядро Linux обеспечивает такие низкоуровневые вещи, как управление памятью, защиту данных, поддержку мультипроцессности и многопоточности. Но  -  за несколькими исключениями  -  вы не найдёте в Android других привычных компонентов GNU/Linux-систем: здесь нет ничего от проекта GNU, не используется X.Org, ни даже systemd. Все эти компоненты заменены аналогами, более приспособленными для использования в условиях ограниченной памяти, низкой скорости процессора и минимального потребления энергии  - таким образом, Android больше похож на встраиваемую (embedded) Linux-систему, чем на GNU/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), а собственная минималистичная реализация под названием , оптимизированная для встраиваемых (embedded) систем  -  она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.


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



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


    user@desktop-linux$ adb shell android$ uname Linux

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


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


    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 данных, реализована в библиотеке .


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


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


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

    Тебя никогда не интересовало, как работают 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 сильно отличается от других ОС, и с наскоку в нем не разобраться. Однако, если понять, как все работает, открываются просто безграничные возможности. В отличие от iOS и Windows Phone, операционка от гугла имеет очень гибкую архитектуру, которая позволяет серьезно менять ее поведение без необходимости писать код. В большинстве случаев достаточно подправить нужные конфиги и скрипты.