Как работает андроид
Перейти к содержимому

Как работает андроид

  • автор:

Как работает Android. Архитектура платформы

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

Начнем со схемы, на которой визуально отображены все основные компоненты архитектуры, а ниже детально (насколько это возможно) рассмотрим каждый из них.

android_architecture

Linux Kernel

Данный уровень является базовым в архитектуре Android, так как вся система Android построена на ядре Linux с некоторыми архитектурными изменениями.

Основные задачи, выполняемые ядром.

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

Power Management — это своего рода система управления питанием. Она предоставляет различные средства, с помощью которых приложение может реагировать на режимы питания устройства, а также поддерживать необходимые компоненты устройства активными. Например, при чтении книги нам было бы удобно, если бы экран оставался постоянно активным. Или когда мы включаем музыку и она продолжает проигрываться в фоне при отключенном экране.

Помимо вышеперечисленного, ядро Linux обеспечивает управление памятью и процессом.

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

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

Hardware Abstraction Layer (HAL)

HAL обеспечивает связь между драйверами и библиотеками. Состоит он из нескольких библиотечных модулей, каждый из которых реализует интерфейс для определенного аппаратного компонента (Bluetooth, Камера итд.). И когда к оборудованию устройства обращаются через API-интерфейс, загружается необходимый для его работы модуль.

Если объяснять на пальцах, то когда от приложения поступает какое-либо сообщение, HAL его обрабатывает таким образом, чтобы оно стало понятным для драйверов. И наоборот.

Android Runtime (ART)

Основным языком Android был выбран Java, поскольку это один из самых популярных языков программирования. Для Java существует много наработок и специалистов, а написанные на нем программы переносимы между операционными системами.

Но для того, чтобы программа работала на Java необходима виртуальная машина ‒ Java Virtual Machine. В Android используется виртуальная машина Android Runtime (ART). Эта машина специально оптимизирована для работы на мобильных устройствах: с нехваткой памяти, с постоянной выгрузкой и загрузкой приложений и т.д. В версиях Android ниже 5.0 Lollipop, использовалась виртуальная машина Dalvik — старая реализация виртуальной машины для Android.

В ART, как и в Dalvik, используется свой формат байт-кода ‒ DEX (Dalvik executable). При сборке приложения исходные файлы сначала компилируются в файлы типа class обычным компилятором, а затем конвертируются специальной утилитой в DEX .

И Dalvik, и ART оптимизируют выполняемый код, используя механизм компиляции just-in-time (JIT) — компиляция происходит во время выполнения приложения, что позволяет оптимизировать код для выполнения на конкретном устройстве. При этом байт-код приложения можно переносить на другие устройства.

ART может компилировать байт-код заранее, а не во время выполнения, используя ahead-of-time (AOT). Система сама решает, когда и какие приложения необходимо скомпилировать. Например, когда устройство не загружено и подключено к зарядке. При этом ART учитывает информацию о приложении, собранную во время предыдущих запусков, что дает дополнительную оптимизацию.

Native C/C++ Libraries

Набор библиотек, написанных на языках C или C++ и используемых различными компонентами ОС.

  • WebKit — представляет из себя движок веб-браузера и другие связанные с ним функции.
  • Media Framework предоставляет медиа кодеки, позволяющие записывать и воспроизводить различные медиа-форматы.
  • OpenGL — используется для отображения 2D и 3D графики.
  • SQLite — движок базы данных, используемый в Android для хранения данных.

Java API Framework (Application Framework)

Набор API, написанный на языке Java и предоставляющий разработчикам доступ ко всем функциям ОС Android. Эти API-интерфейсы образуют строительные блоки, необходимые для создания приложений, упрощая повторное использование основных, модульных, системных компонентов и сервисов, таких как:

  • Activity Manager — управляет жизненным циклом приложения и обеспечивает общий навигационный стек обратных вызовов.
  • Window Manager — управляет окнами и является абстракцией библиотеки Surface Manager.
  • Content Providers — позволяет приложению получать доступ к данным из других приложений или обмениваться собственными данными, т.е. предоставляет механизм для обмена данными между приложениями.
  • View System — содержит строительные блоки для создания пользовательского интерфейса приложения (списки, тексты, кнопки итд.), а также управляет событиями элементов пользовательского интерфейса.
  • Package Manager — управляет различными видами информации, связанными с пакетами приложений, которые в настоящее время установлены на устройстве.
  • Telephony Manager — позволяет приложению использовать возможности телефонии.
  • Resource Manager — обеспечивает доступ к таким ресурсам, как локализованные строки, растровые изображения, графика и макеты.
  • Location Manager — возможность определения местоположения.
  • Notification Manager — отображение уведомлений в строке состояния.

System Apps

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

Системные приложения на всех устройствах разные, но все они являются предустановленными производителями устройства (приложение для SMS-сообщений, календарь, карты, браузер, контакты итд.).

Этот уровень использует все уровни ниже (если смотреть на схему) для правильного функционирования приложений.

Полезные ссылки

Официальная документация.
Hardware Abstraction Layer (HAL) на wiki.
Android Runtime на wiki.

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

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

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

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

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

Android — свободный и открытый проект. Большинство исходного кода (который можно найти на https://source.android.com) распространяется под свободной лицензией 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), а собственная минималистичная реализация под названием bionic, оптимизированная для встраиваемых (embedded) систем — она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.

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

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

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

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

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

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

It’s all about apps

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

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

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

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

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

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

Binder

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

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

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

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

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

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

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

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

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

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

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

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

Познавательно-практический экскурс в архитектуру Android

Тебя никогда не интересовало, как работают 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-памяти, так что для ее изменения перепрошивка загрузчика не нужна.

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

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

Другие статьи в выпуске:

Хакер #184. Современный фронтенд

Особенно интересен раздел 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

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

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

  • 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 и запустить команду

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

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

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

Итак, получив управление, ядро подключает 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.rc из CyanogenMod

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

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

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

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

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

Типичное содержимое файла 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 встретит в конце конфига примерно такой блок:

Это описание службы 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

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

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

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

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

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

  • Процесс запуска 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, на который откликнется любое приложение, способное выполнять функцию лончера. Таким же образом работает кнопка «Поделиться», а также множество других компонентов системы.
  • Официальная документация init.rc в исходниках Android: goo.gl/QciYVW
  • Описание формата файла /sys/module/lowmemorykiller/parameters/minfree: goo.gl/gKdGPT
  • Каталоговая структура Android: goo.gl/363Sq6
  • Описание фоновых служб: goo.gl/rtmGgf

Выводы

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

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Android для чайников. Как найти общий язык с новым смартфоном?

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

Android_для_чайников_1_main

Содержание:

Вместо предисловия

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

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

Часть пятая. Безопасность

Часть шестая. Советы и хитрости

Вместо предисловия

О формате статьи

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

Информации набралось больше, чем мы рассчитывали изначально, найти ответ на свой вопрос в нескольких десятках заметок новым пользователям было совсем не просто. Поэтому все эти заметки будет объединены в пару больших статей, которые будут представлять из себя что-то вроде первого гайда для «чайников».

О многообразии Android устройств

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

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

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

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

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

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

Android_для_чайников_1-19Android_для_чайников_1-20

Android_для_чайников_1-21Android_для_чайников_1-22

Здесь стоит отметить, что любой современный смартфон, будь то аппарат на Android, iOS или Windows Phone, изначально рассчитан на использование интернета. Безусловно, никто не мешает пользоваться им и без доступа к сети, вот только множество интересных возможностей и полезных функций в этом случае будут вам недоступны. Например, какой смысл от прогноза погоды на главном экране, если он не обновляется неделями? Зачем настраивать на смартфоне почту, если проверить без интернета вы ее все равно не сможете? И много ли толку от чата или клиента любимой социальной сети, в которых не появляется новых сообщений?

У каждого оператора мобильной связи свои тарифы на интернет, которые различаются по стоимости и параметрам. Все их можно условно разделить на две группы — тарифы с пакетом предоплаченного трафика и тарифы, на которых вы платите за израсходованный трафик по факту. И я крайне рекомендую перейти на тарифный план с каким-то включенным объемом трафика, пусть даже и совсем небольшим. Дело в том, что в тарификации мобильного интернета есть один большой подводный камень, который называется «округление трафика». Даже если ваш смартфон «вылез» в интернет на долю секунды и израсходовал на проверку погоды всего пару килобайт, оператор связи все равно округлит это число до какого-то минимально допустимого значения. И иногда это «минимально допустимое значение» может составлять целый мегабайт, что на некоторых тарифных планах может обойтись вам в 5-10 рублей за одно подключение. Что, мягко говоря, совершенно невыгодно. А вот «условно-безлимитные» пакетные предложения от таких проблем избавляют раз и навсегда.

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

Android_для_чайников_1-23Android_для_чайников_1-24

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

Android_для_чайников_1-28Android_для_чайников_1-27

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

На этом первичная настройка смартфона закончена и им можно пользоваться. Вопрос только в том, как перенести на него контакты с прошлого телефона.

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

Проверить, сохранились ли в Google ваши контакты, можно прямо с компьютера. Для этого нужно зайти в почту Gmail и в левом верхнем углу выбрать пункт «Контакты».

Чайник_17-02Чайник_17-01

Если вы «переезжаете» со смартфона, работающего на какой-то иной платформе, то перенести контакты можно двумя способами. Первый способ — записать их на SIM-карту. Еще несколько лет назад им пользовалось большинство людей и он всех устраивал. А вот на сегодняшний день такой способ уже заметно устарел. Во-первых, далеко не факт, что у вашего старого телефона и нового Android смартфона совпадает формат SIM-карты. К примеру, в старом аппарате могла использоваться стандартная miniSIM-карта, а в новом — уже ее micro- или даже nano- аналог. А значит, старую SIM-карту просто так в смартфон не переставишь. Во-вторых, обычно на SIM-карту можно записать только контакты самого простого формата: «одно имя — один телефон». А это тоже не всем и не всегда может быть удобно.

Второй способ — экспортировать контакты из старого телефона в виде vCard (.*vcf файлов). Такой способ поддерживает большинство имеющихся на рынке моделей, хотя досадные исключения тоже все еще попадаются. Далее *vcf файл можно записать на microSD карту или передать на смартфон любым другим образом. Например, с помощью почты.

Для импорта vCard контактов в новый смартфон нужно открыть его адресную книгу, нажать на кнопку «Меню», зайти в раздел «Управление контактами» и выбрать пункт «Экспорт и импорт». Отсюда можно как сохранить контакты на карту памяти, так и восстановить их из резервной копии.

Android_для_чайников_1-17Android_для_чайников_1-18

Android_для_чайников_1-16Android_для_чайников_1-15

Подробнее о резервном копировании и переносе личных данных (контактов, фотографий, SMS) в новый смартфон вы узнаете из семнадцатого выпуска нашей колонки.

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

Следующий момент — настройка почты. Если вы пользуетесь почтой Gmail, то она была автоматически настроена в тот момент, когда вы ввели данные своего Google аккаунта. А вот если у вас есть свой ящик на каком-то ином почтовом ресурсе, то придется настроить его вручную.

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

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

Рассмотрим настройку почты на примере почтового клиента в прошивке MIUI. Настройка иных программ для работы с почтой будет практически идентична.

На первом шаге нужно ввести название почтового ящика и пароль, а также выбрать протокол для приема почты. В основном почтовыми сервисами поддерживается два протокола — POP3 и IMAP. Первый протокол наиболее распространен и позволяет просто копировать хранящуюся на сервера почту в телефон. Второй протокол умеет чуть больше и позволяет работать с почтой прямо на удаленном сервере. Если используемый вами почтовый сервис поддерживает оба варианта – лучше выбирать IMAP.

Чайник_31-04Чайник_31-03

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

Чайник_31-02Чайник_31-01

Особое внимание обратите на имя пользователя. Иногда здесь нужно указывать полное название почтового ящика, а иногда только его первую часть, которая идет до символа «@». Например, вот так выглядят настройки для mail.ru:

Чайник_31-05

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

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

В Android вам никогда не придется задумываться над тем, как именно вызвать клавиатуру. Просто нажмите на текстовое поле или окно, в котором необходимо ввести текст, и клавиатура автоматически появится на экране. Если она мешает – нажмите на телефонную кнопку «Назад» и она вновь исчезнет.

Чайник_15-03Чайник_15-06

Сам процесс ввода текста мало чем отличается от печати на клавиатуре ПК или ноутбука. Рассмотрим его на примере клавиатуры Google.

В стандартной клавиатуре Google сменить язык ввода можно с помощью кнопки со значком глобуса Чайник_15-05_a.

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

Для того, чтобы ввести заглавную букву, необходимо нажать на клавишу Shift Чайник_15-01_a. Удерживая ее и продолжая печать, можно ввести несколько заглавных букв подряд. Двойное нажатие по клавише Shift переведет клавиатуру в режим Caps Lock, во время которого все набранные буквы будут заглавными.

Если нужно стереть неверно введенное слово, воспользуйтесь клавишей удаления текста Чайник_15-04_a. При одиночном нажатии на клавишу будет удален один символ, находящийся слева от курсора. Удерживая клавишу удаления, можно быстро удалить одно или несколько слов. Будьте внимательны – чем дольше вы удерживаете клавишу, тем больше возрастает скорость, с которой стирается текст.

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

На некоторые клавиши нанесено сразу два символа, основной и дополнительный. Для ввода дополнительного символа нужно нажать и удерживать клавишу в течение пары секунд. Если дополнительных символов на клавише несколько, то для выбора нужного следует, не отрывая палец от экрана, выполнить в его сторону горизонтальный свайп. Таким же образом можно ввести буквы «Ъ» и «Ё», которых изначально нет на клавиатуре. Для этого достаточно выполнить долгий тап по клавишам «Ь» и «Е» соответственно.

Чайник_15-04Чайник_15-05

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

В клавиатуре Google экран с дополнительными символами открывается с помощью кнопки Чайник_15-02_aв левом нижнем углу экрана, а список смайликов – с помощью долго тапа по клавише Enter Чайник_15-03_a.

Чайник_15-07Чайник_15-02

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

В последнее время большинство клавиатур обзавелись поддержкой безотрывного ввода текста, больше известного как «Swype». При использовании этого метода ввода все слово набирается на клавиатуре одним движением, без отрыва пальца от экрана. Такой способ позволяет существенно сократить время печати.

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

Чайник_15-01Чайник_15-08

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

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

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

Ничего сложного в этом нет. Достаточно просто зайти в настройки телефона, а затем перейти в раздел «Wi-Fi».

Чайник_2-15Чайник_2-13

Вам откроется список доступных Wi-Fi сетей. Замочек рядом с иконкой Wi-Fi показывает, что сеть защищена паролем. Соответственно, при попытке подключения к такой сети смартфон запросит пароль.

Чайник_2-07Чайник_2-11
Чайник_2-12Чайник_2-08

По умолчанию большинство Android устройств настроено таким образом, что подключение к известной сети происходит автоматически. Иными словами, если вы хотя бы один раз подключили смартфон к какой-то Wi-Fi сети, то как только вы вновь попадете в радиус ее действия, смартфон подключится к ней самостоятельно. В большинстве случаев это удобно. Но иногда бывают ситуации, когда повторное подключение к конкретной сети нежелательно. В этом случае необходимо сделать долгий тап (нажать и удерживать в течение пары секунд) на названии нужной сети, затем выбрать пункт «Удалить сеть» либо «Забыть сеть». Кроме того, здесь можно исправить настройки сети, если у нее изменился тип шифрования или пароль.

В очень редких случаях нужная вам Wi-Fi сеть может не отображаться в списке доступных. Скорее всего, администратор сети специально сделал ее скрытой, чтобы подключиться к ней могли только те, кто знает ее название. Для подключения к такой сети достаточно нажать на кнопку «Меню», находящуюся в левом верхнем углу экрана, затем выбрать пункт «Добавить сеть».

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

Чайник_2-10Чайник_2-09

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

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

Жесты

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

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

Двойной тап — быстрое двойное касание (или «постукивание») по экрану, этот жест похож на двойной клик мышью.

Долгий тап — долгое нажатие на экран, длящееся несколько секунд.

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

Щипок — нужно коснуться экрана двумя пальцами, а затем свести их вместе. Или, напротив, развести в разные стороны. Таким способом обычно выполняется масштабирование изображения, карты или веб-страницы.

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

Рабочих столов в Android может быть несколько, «перелистывать» их можно с помощью горизонтального свайпа в любом направлении. Максимальное количество рабочих столов зависит от версии ОС и фирменной оболочки, обычно их может быть 5 или 7.

Custom_Nova_Launcher-088Custom_Nova_Launcher-087

Android_для_чайников_1-7Android_для_чайников_1-5

В нижней части экрана находятся иконки док-бара, которые всегда видны на любом рабочем столе. Обычно там находятся иконки адресной книги, браузера, программы для работы с SMS. Центральная иконка — вызов меню со списком всех установленных программ.

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

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

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

Android_для_чайников_1-30Android_для_чайников_1-29

Как вы могли заметить, последнее пришедшее уведомление, которое расположено в самом верху «шторки», занимает заметно больше места, чем остальные. Сделано это не просто так — последнее событие считается наиболее актуальным и важным для пользователя, поэтому о нем показана дополнительная информация, что очень удобно. К примеру, если это письмо или SMS, то вам хватит одного беглого взгляда, чтобы оценить, насколько оно для вас важно. Более того, в большинстве случаев вы сможете на него ответить буквально в один клик, даже не закрывая «шторку» панели уведомлений.

Android_для_чайников_1-3Android_для_чайников_1-4

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

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

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

TOP-60_HD_Виджеты-03TOP-60_HD_Виджеты-04

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

Android_для_чайников_1-8Android_для_чайников_1-6

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

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

Android_для_чайников_1-1Android_для_чайников_1-2

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

Android_для_чайников_1-06Android_для_чайников_1-05

Android_для_чайников_1-04Android_для_чайников_1-03

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

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

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

Для начала рассмотрим классический способ установки мелодии вызова – через меню настроек. Заходим в настройки телефона, переходим в раздел «Звук» и выбираем пункт «Мелодия звонка».

Чайник_19-04Чайник_19-03

Перед нами список стандартных мелодий, заранее установленных в смартфон производителем. На некоторых аппаратах прямо из этого же меню можно выбрать свою собственную композицию. Например, на смартфоне HTC One (M8), который используется в этой статье в качестве примера, для этого служит иконка «+», расположенная в верхнем правом углу экрана.

Чайник_19-02Чайник_19-01

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

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

Чайник_17-19

Нас интересует папка «Media». Внутри нее должна находиться папка «Audio», а в ней, в свою очередь, папка «Ringtones». Таким образом, полный путь до интересующей нас папки выглядит следующим образом: \Media\Audio\Ringtones. Именно сюда и следует скопировать нужную вам мелодию. Если таких папок во внутренней памяти смартфона нет, то их необходимо создать. Главное — сделать это именно в том порядке, как указано выше.

Для верности стоит перезагрузить смартфон. Все, теперь выбранная вами мелодия появится в общем списке. Схожим образом можно установить мелодию на звонок будильника, только путь в этом случае будет немного другой: \Media\Audio\Alarms.

Если возиться с подключением смартфона к компьютеру не хочется, можно сделать проще. Открыть нужную вам мелодию в аудиоплеере, а затем выбрать пункт «Установить на звонок» во всплывающем меню.

Custom_One-82Custom_One-81

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

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

Чайник_19-05Чайник_19-06

Если ничего подобного на экране нет, то нажмите на кнопку «Меню» — скорее всего, нужный нам пункт находится там.

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

Чем смартфон отличается от простенькой «звонилки»? В первую очередь, многозадачностью и поддержкой огромного числа разнообразных приложений. Это клиенты социальных сетей и приложения для видеозвонков, программы для работы с корпоративной почтой и офисные пакеты, мобильные версии знаменитых программ Adobe и видеоредакторы, спортивные тренеры и автомобильные навигаторы, программы для чтения книг и просмотра фильмов, потрясающие 3D игры и приложения-фотокамеры с разными фильтрами… миллионы программ на любой вкус и цвет.

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

Google Play

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

Android_для_чайников_1-02Android_для_чайников_1-01

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

Android_для_чайников_1-14Android_для_чайников_1-13

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

Android_для_чайников_1-08Android_для_чайников_1-07

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

Android_для_чайников_1-12Android_для_чайников_1-11

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

Android_для_чайников_1-10Android_для_чайников_1-09

К сожалению, популярность — штука непостоянная. Да и накрутить рейтинг, в теории, тоже вполне возможно. И иногда в «Топ» попадают какие-то уже совсем странные приложения, которые представляют интерес только для очень узкой аудитории. А вот проверенные временем программы, которые и так установили себе уже практически все, из «Топа» иногда пропадают, ведь количество их новых загрузок не так уж велико.

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

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

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

Очень многие родители время от времени дают детям поиграть в игры на своем смартфоне. И, разумеется, никакого подвоха в этот момент они совершенно не ожидают. В самом деле, ну что может натворить маленький ребенок во время игры в какого-нибудь «Крокодильчика Свомпи», Cut The Rope или Angry Birds? Тем более, сидя рядом с родителями?

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

Чайник_11-03Чайник_11-02

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

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

Чайник_11-04Чайник_11-01

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

Затем – открыть боковое меню. Сделать это можно, нажав на иконку в левом верхнем углу экрана либо просто проведя пальцем от левой кромки экрана вправо.

Чайник_11-08Чайник_11-07

Теперь остается только перейти в раздел настроек и нажать на строку «Запрашивать пароль при покупке». На большинстве устройств по умолчанию используется вариант «Запрашивать каждые 30 минут». В этом случае вводить пароль потребуется только один раз в полчаса, а все остальные покупки в этом интервале можно будет совершать без дополнительного подтверждения.

Чайник_11-06Чайник_11-05

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

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

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

Многие пользователи Android устройств даже не подозревают, что скидки на те или иные программы появляются в Google Play практически ежедневно. Иногда речь идет о символических 10-20% скидки, но иногда скидка составляет 90%, а то и все 100%. Проблема только в том, что вручную следить за изменением цен ассортимента магазина Google практически невозможно — уж больно много в нем разных программ.

Но этому горю несложно помочь. Достаточно просто установить специальное приложение, которое будет сообщать вам о текущих скидках и распродажах. Программ такого типа довольно много. В качестве примера приведу приложение AppSales, о котором уже как-то упоминалось на этом сайте.

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

Чайник_25-10Чайник_25-09

На главном экране показаны текущие скидки. Как видите, они весьма солидные. Причем зачастую речь идет о весьма известных программах. Например, на скриншоте вы можете заметить 80% скидку на популярную игру компании Ubisoft.

Чайник_25-08Чайник_25-07

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

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

Чайник_25-06Чайник_25-05

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

Как вы могли заметить, Android дает пользователю возможность буквально «в пару кликов» заменить любую предустановленную программу или системный компонент. Хотите попробовать другой браузер? А может быть, установить новую клавиатуру? Или, к примеру, заменить стандартный почтовый клиент или календарь? Нет ничего проще.

Но что произойдет, если на смартфоне окажется сразу несколько программ для одной и той же цели? Например, какой браузер откроется при клике по ссылке в письме, если помимо стандартного браузера, на смартфоне установлена еще и Opera mini? Или какой именно проигрыватель запустится при клике на видеофайл?

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

Чайник_7-02Чайник_7-01

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

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

Чайник_7-06Чайник_7-05

Чайник_7-04Чайник_7-03

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

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

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

Итак, с установкой программ мы более-менее разобрались. Самое время поговорить про их удаление.

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

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

Принцип тут примерно тот же, что и в настольной Windows. Нужно открыть меню настроек и выбрать в нем пункт «Приложения». Обычно это окно разделено на несколько вкладок, переключиться между которыми можно с помощью горизонтального свайпа. Удобнее всего пользоваться вкладкой «Сторонние приложения», но если нужного вам приложения там по какой-то причине нет, то можно переключиться на вкладку «Все».

Чайник_2-15Чайник_14-08

Чайник_14-07Чайник_14-06

Теперь остается только найти в списке то самое приложение, от которого вы хотите избавится, а затем нажать на кнопку «Удалить». Обратите внимание, что если вы хотите сбросить настройки приложения на «заводские» или очистить его данные, то переустанавливать само приложение вовсе не обязательно. Достаточно воспользоваться кнопкой «Удалить данные» или «Очистить данные», которая находится чуть ниже на этом же экране.

Чайник_14-05Чайник_14-10

Второй способ удалить установленную программу – воспользоваться магазином Google Play. Прежде всего, нужно открыть сам Google Play, нажав на соответствующую иконку на рабочем столе или в меню приложений. Затем нажать на значок меню (иконка из трех полосок в левом верхнем углу) либо выполнить горизонтальный свайп от левой кромки экрана. В открывшемся меню нужно выбрать пункт «Мои приложения», дотронуться до названия нужной программы и нажать на кнопку «Удалить».

Чайник_14-04Чайник_14-03

Чайник_14-02Чайник_14-01

Как видите, ничего сложного в удалении приложений нет. Единственный немного неприятный момент — удалить таким образом можно только сторонние приложения, которые вы сами скачали из Google Play после покупки смартфона. А вот избавиться от тех программ, которые производитель установил на ваш смартфон изначально, к сожалению, так просто не получится.

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

Разработчики Android с самого начала предполагали, что для поиска и установки приложений пользователями будет использоваться магазин Google Play. В том числе и из соображений безопасности – программе с вредоносным кодом попасть в этот магазин приложений практически невозможно.

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

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

Чайник_21-04Чайник_21-03

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

Чайник_21-02Чайник_21-01

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

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

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

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

Если уж магазин Google Play оказался чем-то не мил, то лучше поступить иначе. Ведь многие известные компании, от Яндекс до Amazon, имеют свои магазины приложений, во многом похожие на Google Play. И воспользоваться ими может любой желающий.

Главный вопрос тут звучит даже не «как», а «зачем». Что в этих магазинах есть такого, чего не может предложить Google Play?

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

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

Рассмотрим установку стороннего магазина на примере Yandex Store. Прежде всего нужно убедиться, что в настройках смартфона разрешена установка приложений из сторонних источников. Об этом мы говорили чуть выше. Затем – скачать клиент магазина. Для этого нужно открыть с мобильного телефона адрес m.ya.ru/ystore. Обязательно убедитесь, что вы скачиваете файл именно с официального сайта, а не из каких-то файлообменников и прочих сомнительных источников.

Чайник_30-22Чайник_30-21

Чайник_30-20Чайник_30-19

Третий шаг – установка приложения. Тут все стандартно – проверяем требуемые программой разрешения, пару раз нажимаем «Далее» и в самом конце – «Принять».

Чайник_30-18Чайник_30-17

Чайник_30-16Чайник_30-15

Внешне магазин напоминает немного упрощенную копию Google Play. Основной экран разбит на три вкладки («Интересное», «Игры», «Приложения), в самом верху находятся иконки поиска и настроек. Рядом с иконкой поиска вы можете заметить оранжевый квадратик индикатора обновлений. Интересный момент –Yandex Store может обновлять даже те приложения, которые вы скачали через Google Play. Разумеется, в том случае, если в нем они также присутствуют.

Чайник_30-14Чайник_30-13

Чайник_30-12Чайник_30-11

Чайник_30-10Чайник_30-09

Чайник_30-08Чайник_30-07

Для покупки приложений нужно указать магазину желаемый способ оплаты. А пред этим – зарегистрироваться либо войти под уже имеющимся Яндекс логином.

Чайник_30-06Чайник_30-05

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

Чайник_30-04Чайник_30-03

Чайник_30-02Чайник_30-01

Если вы решите установить какие-то иные сторонние магазины, то уделите особое внимание трем вещам:

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

Android_min

Продолжение следует…

twitterspan

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *