Com android os приложения для чего. Что такое Android. Секреты "Андроид" для начинающих

Тебя никогда не интересовало, как работают 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, на который откликнется любое приложение, способное выполнять функцию лончера. Таким же образом работает кнопка «Поделиться», а также множество других компонентов системы.

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

Но что такое Android в принципе? Попробуем в этом разобраться.

Описание

Андроид (eng. «Аndrоid» ) — это название программной платформы для устройств (основная часть из которых: мобильные устройства), основанная на ядре Linux. Изначала была создана компанией Аndrоid Inс., которую приобрела компания Gооgle. Андроид предоставляет возможность разрабатывать Jаvа-приложения, которые управляют устройством с помощью библиотек, разработанных компанией Gооgle. Распространяется под лицензией Apache 2.0.

Используется в большом ассортименте устройств:

  • Смартфоны
  • Телевизоры
  • Очки Gооgle
  • Медиаплееры
  • Электронные книги
  • Фоторамки
  • Ноутбуки/нетбуки/смартбуки
  • и прочее

Планируется установка системы Аndrоid на автомобильную компьютеризированную часть и роботизированные машины (военные и бытовые). Сейчас это самая распространенная операционная система для мобильных устройств (к примеру, на 2014 год больше 80% проданных смартфонов имели операционную систему Аndrоid).

Осенью 2012-ого Л. Пейдж (исп. директор Google) опубликовал статистику активации свыше 500 млн. мобильных устройств на базе Аndrоid. Для сравнения скорости распространения этой ОС — осенью 2013-ого стало известно, что на нашей планете активировано > 1 миллиарда устройств под управлением Аndrоid.

Основным конкурентом в мобильном сегменте на данный момент является компания Apple с недешевой проприетарной операционной системой под названием iOS. Как и компания Apple, компания Google имеет свой интернет-маркет, но имеет не только платные, но и множество бесплатных продуктов, в отличие от своего конкурента, продающего свои полноценные программы чаще всего дороже чем за 0$.

Магазин программ (приложений) «Gооgle Plаy»

Осенью 2008-ого Gооgle презентовала онлайн-магазин программ (приложений) для своей ОС — Аndrоid Mаrket. Что касается оплаты, то разработчики получают около 70% прибыли, а оставшиеся 30% получают операторы, предоставляющие доступ к сотовой сети. На январь 2012 года было скачано > 10 млрд приложений с начала работы Аndrоid Mаrket.

Весной 2012 года компания совместила свои мультимедийные сервисы, такие как «Книги», «Аndrоid Mаrket», «Музыка» и др. Появился «Gооgle Plаy». Интернет-магазин Gооgle Plаy используется более чем в 180 странах и имеет свыше полумиллиона приложений, скачанных более 25 млрд раз.

Достоинства Аndrоid

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

  • по-умолчанию имеет ограничение на установку программ из «непроверенных источников», но данный запрет легко деактивируется в настройках устройства, что позволяет производить установку без подключения к интернету, а также предоставляет возможность тестировать написанные лично приложения;
  • доступен для MIPS, АRM, x86;
  • многопользовательский режим, начиная с версии Android 4.3

Критика со стороны

  • отдельные устройства имеют сервисы Gооgle, позволяющие передавать конфиденциальную информацию в компанию;
  • платформа имеет чрезмерную фрагментацию, препятствующую программистам создавать приложения без каких-либо проблем;
  • из-за использования Jаvа-кода часто отмечается снижение общей производительности и повышенное энергопотребление устройств на Аndrоid
  • По данным Lооkоut Seсurity Mоbile, за 2011 год у владельцев Аndrоid-смартфонов было украдено свыше 1 млн. долларов США (частые методы: отправка мгновенных сообщений без участия владельца телефона или звонок на платный номер).

Это интересно

  • имя каждой версии Android 1.5+, представляет собой десерт, а точнее его наименование. При этом первые буквы названий соотносительны буквам латинского алфавита, следующим по порядку:
  • для Аndrоid были созданы индивидуальные наборы шрифтов Drоid и Rоbоtо ;
  • В версиях Аndrоid 4.2+ изначально инструменты разработчика выключены , для активации необходимо семь раз нажать на номер релиза.
  • на официальных сайтах с момента их запуска и до текущего момента не указаны минимальные характеристики , необходимые для запуска ОС;
  • в версиях 2.3+ есть пасхалка , чтобы её запустить, следует зайти в «Настройки — Об устройстве — Версия Андроид» и быстро нажать на эту функцию 4 раза, после чего отобразится анимация, а затем откроется мини-игра «Flаppy Bird».

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 и не ошиблись.

Тебя никогда не интересовало, как работают 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.


Выносы из текста

  • Fastboot останется на месте, даже если в результате экспериментов ты сотрешь со смартфона содержимое всех разделов NAND-памяти
  • Раздел recovery полностью самодостаточен и содержит миниатюрную операционную систему, которая никак не связана с Android
  • Слегка изменив файл fstab, мы можем заставить init загрузить систему с карты памяти

Шаг второй, альтернативный. Раздел 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 не исчезают после установки новой версии прошивки.

Команды fastboot

Чтобы получить доступ к fastboot, необходимо установить Android SDK, подключить смартфон к ПК с помощью кабеля и включить его, зажав обе кнопки громкости. После этого следует перейти в подкаталог platform-tools внутри SDK и запустить команду

Fastboot devices

На экран будет выведено имя устройства. Другие доступные команды:

  • fatsboot oem unlock - разлочка загрузчика на нексусах;
  • update файл.zip - установка прошивки;
  • flash boot boot.img - прошивка образа boot-раздела;
  • flash recovery recovery.img - прошивка образа раздела recovery;
  • flash system system.img - прошивка образа системы;
  • oem format - восстановление разрушенной таблицы разделов;

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

Итак, получив управление, ядро подключает 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 выполнит команды из соответствующих блоков всех файлов. Это сделано для удобства формирования конфигурационных файлов для нескольких устройств, когда основной конфиг содержит общие для всех девайсов команды, а специфичные для каждого устройства записываются в отдельные файлы.

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

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

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

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

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


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

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

Команды init.rc

Процесс init имеет встроенный набор команд, многие из которых повторяют стандартный набор команд Linux. Наиболее примечательные из них:

  • exec /путь/до/команды - запустить внешнюю команду;
  • ifup интерфейс - поднять сетевой интерфейс;
  • class_start имя_класса - запустить службы, относящиеся к указанному классу;
  • class_stop имя_класса - остановить службы;
  • insmod /путь/до/модуля - загрузить модуль ядра;
  • mount ФС устройство каталог - подключить файловую систему;
  • setprop имя значение - установить системную переменную;
  • start имя_службы - запустить указанную службу;
  • trigger имя - включить триггер (выполнить указанный блок команд);
  • write /путь/до/файла строка - записать строку в файл.

Шаг четвертый. 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

INFO

В терминологии Linux RAM-диск - это своего рода виртуальный жесткий диск, существующий только в оперативной памяти. На раннем этапе загрузки ядро извлекает содержимое диска из образа и подключает его как корневую файловую систему (rootfs).

В процессе загрузки Android отображает три разных загрузочных экрана: первый появляется сразу после нажатия кнопки питания и прошит в ядро Linux, второй отображается на ранних этапах инициализации и записан в файл /initlogo.rle (сегодня почти не используется), последний запускается с помощью приложения bootanimation и содержится в файле /system/media/bootanimation.zip.

Кроме стандартных триггеров, init позволяет определять собственные триггеры, которые могут срабатывать от самых разных событий: подключения устройства к USB, изменения состояния смартфона или изменения состояния системных переменных.

Кроме всего прочего, Activity Manager также занимается убийством фоновых приложений при нехватке памяти. Значения порогов свободной памяти содержатся в файле /sys/module/lowmemorykiller/parameters/minfree.

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

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

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

Андроид, что это такое – для чайников

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

Разнообразие приложений позволит получить дополнительные возможности для пользователя и заменить базовый функционал. По сей день проводятся регулярные обновления, которые значительно расширяют возможности пользователей, повышают производительность и экономичность. Последняя версия ОС разработана в 2017 году и называется Android 8.0 Oreo. Андроид – современная платформа, которая позволяет преобразить смартфон и планшет в настоящий карманный компьютер. Кроме этого, ОС Андроид проста в управлении.

Часть первая. Первый запуск

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

Мастер первого запуска

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

В современных Андроид-устройствах предусмотрено использование интернета. Использовать основной функционал смартфона можно и без него. Если поблизости нет WiFi, можно воспользоваться мобильным интернетом. У каждого оператора сотовой связи свои тарифы, которые различаются стоимостью и параметрами. Однако, доступ к полезным опциям и интересным возможностям будет затруднён.

При первом включении мобильного телефона не рекомендуют вставлять Sim – карту, поскольку в ОС установлено по умолчанию использование мобильных данных. Эти действия позволят избежать нецелесообразного использования трафика. Сделав выбор необходимого языка меню следует нажать кнопку „Далее“, чтобы приступить к следующему этапу настроек.

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

Созданный аккаунт навсегда остается с пользователем, а также ранее купленные приложения и некоторые настройки. Даже если захотите поменять старый смартфон на новый. Стоит заметить, что в распоряжении пользователя будет 16 Gb „облачного пространства“, что позволит настроить синхронизацию с облачным хранилищем Google. После входа в аккаунт система задаст несколько вопросов относительно настройки смартфона. Для того чтобы никогда не потерять контакты, следует подтвердить свое согласие относительно резервного копирования данных.

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

Далее нужно указать email. После регистрации изменить его будет невозможно. Затем заполните поле с паролем и логином. Настоятельно рекомендуем их записать или запомнить. Пользователю предложат произвести настройку процедуры восстановления пароля. При этом потребуется ввести номер мобильного телефона.

Пользователь должен подтвердить согласие на доступ к информации об его местоположении. Здесь есть несколько вариантов: отключить или включить опцию, включить поиск местоположения через GPS или координаты сети. Данные о расположении пользователя не распространяются на третьи лица. Они могут быть необходимыми для некоторых приложений.

Система задаст вопрос о согласии с правилами Google. Нажмите кнопку „Принять“. Затем введите капчу. Предоставляется дополнительная возможность привязки к аккаунту карты VISA, Paypal и других. Данная опция удобна при покупке в магазине приложений игр, музыки и программ.

В завершении процедуры настройки понадобится ввести часовой пояс, дату и текущее время. Если планируете в дальнейшем использовать Google Карты, то оставьте отметку в соответствующем пункте.

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

Перенос контактов со старого аппарата

Перенести контакты с одного Андроид-устройства на другой можно несколькими способами. Самый простой способ – синхронизация с Google. Если у вас не первый смартфон с ОС Андроид, то все записи могут быть сохранены в „облаке“ Google. Это возможно если пользователь не отключил синхронизацию контактов на старом устройстве.

Проверить, сохранились ли контакты можно следующим образом:

  1. Со старого устройства зайдите в настройки и нажмите пункт „Аккаунты“.
  2. Когда учетная запись Google привязана к устройству, то под указанным выше пунктом будет находиться надпись „Google“. В противном случае, ее необходимо подключить. Для этого выберите „Добавить аккаунт“, введите логин и пароль.
  3. Нажмите на e-mail, чтобы попасть в настройки синхронизации.
  4. Для сохранения записей с Андроид в системе сервисов Google нажмите „Контакты“. Произойдет процесс синхронизации.
  5. Затем понадобится подключить новый смартфон или планшет с Google, с той же учетной записью к которой был привязан старый аппарат.
  6. Для того, чтобы перенести контакты на новое устройстве проведите процедуру, описанную выше до пункта Gmail.

Другой способ – использование vcf-файл. Пользователю понадобится произвести экспорт данных в файл. Для этого необходимо:

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

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

Можно сначала перенести контакты на карту памяти, затем вставить ее в планшет или смартфон. Многие пользователи предпочитают переносить контакты с Sim-карты. Единственный минус такого метода – ограниченное количество контактов для хранения. Он подходит для тех пользователей, у которых в списке номеров не более 220 штук. Для этого необходимо, чтобы все контакты были на ней сохранены.

Зайдите в приложение телефонной книги. Выберите опцию „Экспорт/Импорт“, далее „Экспорт“. Путь копирования определяем как “Sim-карта”. Вставляем карту с номерами в новый аппарат и переносим. Заходим в телефонную книгу. Нажимаем на кнопку в верхнем правом углу. Выбираем опцию „Импорт с Sim-карты“.

Еще один способ – перенести контакты с компьютера через USB-кабель. Для этого подключаем старый аппарат к ПК и кабелю. Переносим vcf-файл с номерами телефона на компьютер. Затем таким же образом подключаем новый смартфон или планшет и переносим на него данные с ПК.

Настройка почты

Переходим к настройкам почты. Если пользователь не планирует пользоваться электронной почтой через смартфон, этот этап можно пропустить. Когда используется электронный ящик Gmail, то он автоматически настраиваться после ввода логина и пароля Google аккаунта. В том случае, когда электронная почта находится на другом ресурсе, ее придется настраивать вручную. Для этого выполните следующие действия:

  1. Запустите на устройстве встроенное приложение „Электронная почта“.
  2. Зайдите в „Настройки“.
  3. Нажмите „Добавить учетную запись“.
  4. Заполните форму: имя пользователя и пароль.
  5. Нажмите „Далее“.
  6. Система предложит выбрать протокол, по которому будет производиться связь с почтой. Как правило, почтовые сервера работают по двум протоколам: POP3 и IMAP. Выберите, тот который для вас более удобный, затем нажмите „Вход“.

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

Экранная клавиатура

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

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

Чтобы сэкономить время на печати, можно скопировать слово и вставить в текст. Чтобы выделить нужное слово, тапните по нему и удержите несколько секунд. Для увеличения границ копирования потяните за маркеры по его краям. Вверху клавиатуры появится панель с функциями „Копировать“, „Вырезать“ и „Вставить“.

Подключение к Wi-Fi

Для подключения к новой сети через Wi-Fi необходимо зайти в настройки устройства, затем в раздел „Wi-Fi“. Появится список доступных в данный момент сетей. Замочек, расположенный возле значка Wi-Fi означает, что вход в эту сеть защищен паролем. Если ввести пароль один раз, то повторное подключение к такой сети Андроид-устройством происходит в автоматическом режиме, вводить пароль снова уже не потребуется.

В некоторых случаях нужная сеть может не отображаться в списке доступных. Администратор любой сети может ее сделать закрытой (невидимой) для других пользователей. Чтобы к ней подключиться, нажмите кнопку „Меню“ в верхнем углу экрана телефона, затем „Добавить сеть“. С помощью кнопки „Меню“ также можно перейти к дополнительным настройкам сети: работа сети в режиме сна и включение уведомлений о доступных и открытых сетях.

Часть вторая. Интерфейс смартфона

Интерфейс Андроид-устройства зависит от версии операционной системы и от фирменной оболочки, которую установил производитель. Однако, логика работы ОС остается неизменной.

Жесты

Управление устройством на базе ОС Андроид производится на основе жестов. К основным из них относятся:

  1. Тап – однократное касание пальцем руки по экрану.
  2. Двойной тап – аналог двойного клика мышкой. Двойное касание по сенсорному экрану смартфона.
  3. Долгий тап – касание по экрану продолжительностью в несколько секунд.
  4. Свайп – скользящее касание по экрану. Предполагает проведение пальцем по экрану смартфона слева направо, сверху вниз, либо снизу вверх.
  5. Щипок – подразумевает касание по экрану большого и указательного пальца, затем их сведение вместе.

Рабочий стол и иконки док-бара

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

Строка состояния

Она расположена в верхней части экрана Андроид-устройства. Здесь отображается информация о текущем времени, заряде аккумулятора и активных уведомлениях. Некоторые пользователи называют ее „шторкой“. Чтобы ее открыть, необходимо произвести свайп сверху вниз. В строке состояния находится доступ к основным переключателям: мобильные данные, геоданные, экономия энергии, звук, книжный экран, авиарежим, фонарик, Bluetooth и Wi-Fi.

Обои, виджеты, иконки

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

Установка мелодии вызова

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

Часть третья. Установка приложений

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

Google Play

Для доступа к официальному магазину приложений необходим аккаунт в Google. Значок Play Market расположен на рабочем столе. Тапните по нему, чтобы запустить приложение. В верхней части экрана находится строка поиска. Если пользователю необходимо загрузить конкретное приложение, введите его название для поиска. В Google Play есть разделы: игры, приложения, музыка, книги и журналы. Внизу экрана представлен список новинок кино и самых популярных приложений.

Защита от случайных покупок

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

Скидки и распродажи

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

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

Выбор программ по умолчанию

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

Если вы случайно выбрали не ту программу, какую хотели, вернуть её в диалоговое окно можно так:

  1. Зайдите в пункт меню „Настройки“.
  2. Затем в „Приложения“.
  3. Найдите необходимую программу.
  4. Нажмите „Удалить программу по умолчанию“.

Удаление программ

Для удаления программ с Андроид-устройства существует несколько способов. Первый метод:

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

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

Третий способ – удаление через Play Market. Запустите приложение. В меню выберите раздел „Мои приложения“. Тапните по нужному приложению и выберите функцию „Удалить“.

Установка приложений из сторонних источников

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

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

Сторонние магазины приложений

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

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