Как работает программа android
В этой серии статей я расскажу о внутреннем устройстве Android — о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.
Немного фактов
Android — самая популярная операционная система и платформа для приложений, насчитывающая больше двух миллиардов активных пользователей. На ней работают совершенно разные устройства, от «интернета вещей» и умных часов до телевизоров, ноутбуков и автомобилей, но чаще всего Android используют на смартфонах и планшетах.
Компания Android Inc. была основана в 2003 году и в 2005 году куплена Google. Публичная бета Android вышла в 2007 году, а первая стабильная версия — в 2008, с тех пор мажорные релизы выходят примерно раз в год. Последняя на момент написания стабильная версия Android — 7.1.2 Nougat.
Android is Linux
По поводу такой формулировки было много споров, так что сразу поясню, что именно я имею в виду под этой фразой: Android основан на ядре Linux, но значительно отличается от большинства других Linux-систем.
Среди исходной команды разработчиков Android был Robert Love, один из самых известных разработчиков ядра Linux, да и сейчас компания Google остаётся одним из самых активных контрибьюторов в ядро, поэтому неудивительно, что Android построен на основе Linux.
Другая причина того, что в Android не используется софт от GNU — известная политика «no GPL in userspace»:
We are sometimes asked why Apache Software License 2.0 is the preferred license for Android. For userspace (that is, non-kernel) software, we do in fact prefer ASL 2.0 (and similar licenses like BSD, MIT, etc.) over other licenses such as LGPL.
Android is about freedom and choice. The purpose of Android is promote openness in the mobile world, and we don’t believe it’s possible to predict or dictate all the uses to which people will want to put our software. So, while we encourage everyone to make devices that are open and modifiable, we don’t believe it is our place to force them to do so. Using LGPL libraries would often force them to do just that.
Само ядро Linux в Android тоже немного модифицировано: было добавлено несколько небольших компонентов, в том числе ashmem (anonymous shared memory), Binder driver (часть большого и важного фреймворка Binder, о котором я расскажу ниже), wakelocks (управление спящим режимом) и low memory killer. Исходно они представляли собой патчи к ядру, но их код был довольно быстро добавлен назад в upstream-ядро. Тем не менее, вы не найдёте их в «обычном линуксе»: большинство других дистрибутивов отключают эти компоненты при сборке.
В качестве libc (стандартной библиотеки языка C) в Android используется не GNU C library (glibc), а собственная минималистичная реализация под названием bionic, оптимизированная для встраиваемых (embedded) систем — она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.
В Android есть оболочка командной строки (shell) и множество стандартных для Unix-подобных систем команд/программ. Во встраиваемых системах для этого обычно используется пакет Busybox, реализующий функциональность многих команд в одном исполняемом файле; в Android используется его аналог под названием Toybox. Как и в «обычных» дистрибутивах Linux (и в отличие от встраиваемых систем), основным способом взаимодействия с системой является графический интерфейс, а не командная строка. Тем не менее, «добраться» до командной строки очень просто — достаточно запустить приложение-эмулятор терминала. По умолчанию он обычно не установлен, но его легко, например, скачать из Play Store (Terminal Emulator for Android, Material Terminal, Termux). Во многих «продвинутых» дистрибутивах Android — таких, как LineageOS (бывший CyanogenMod) — эмулятор терминала предустановлен.
Второй вариант — подключиться к Android-устройству с компьютера через Android 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, автоматически получают последние улучшения и исправления уязвимостей.
It’s all about apps
Как легко заметить, использование Android принципиально отличается от использования «обычного Linux» — вам не нужно открывать и закрывать приложения, вы просто переключаетесь между ними, как будто все приложения запущены всегда. Действительно, одна из уникальных особенностей Android — в том, что приложения не контролируют напрямую процесс, в котором они запущены. Давайте поговорим об этом подробнее.
Основная единица в Unix-подобных системах — процесс. И низкоуровневые системные сервисы, и отдельные команды в shell’е, и графические приложения — это процессы. В большинстве случаев процесс представляет собой чёрный ящик для остальной системы — другие компоненты системы не знают и не заботятся о его состоянии. Процесс начинает выполняться с вызова функции main() (на самом деле _start ), и дальше реализует какую-то свою логику, взаимодействуя с остальной системой через системные вызовы и простейшее межпроцессное общение (IPC).
Поскольку Android тоже Unix-подобен, всё это верно и для него, но в то время как низкоуровневые части — на уровне Unix — оперируют понятием процесса, на более высоком уровне — уровне Android Framework — основной единицей является приложение. Приложение — не чёрный ящик: оно состоит из отдельных компонентов, хорошо известных остальной системе.
У приложений Android нет функции main() , нет одной точки входа. Вообще, Android максимально абстрагирует понятие приложение запущено как от пользователя, так и от разработчика. Конечно, процесс приложения нужно запускать и останавливать, но Android делает это автоматически (подробнее я расскажу об этом в следующих статьях). Разработчику предлагается реализовать несколько отдельных компонентов, каждый из которых обладает своим собственным жизненным циклом.
In Android, however, we explicitly decided we were not going to have a main() function, because we needed to give the platform more control over how an app runs. In particular, we wanted to build a system where the user never needed to think about starting and stopping apps, but rather the system took care of this for them… so the system had to have some more information about what is going on inside of each app, and be able to launch apps in various well-defined ways whenever it is needed even if it currently isn’t running.
Для реализации такой системы нужно, чтобы приложения имели возможность общатся друг с другом и с системными сервисами — другими словами, нужен очень продвинутый и быстрый механизм IPC.
Этот механизм — Binder.
Binder
Binder — это платформа для быстрого, удобного и объектно-ориентированного межпроцессного взаимодействия.
Разработка Binder началась в Be Inc. (для BeOS), затем он был портирован на Linux и открыт. Основной разработчик Binder, Dianne Hackborn, была и остаётся одним из основных разработчиков Android. За время разработки Android Binder был полностью переписан.
Binder работает не поверх System V IPC (которое даже не поддерживается в bionic), а использует свой небольшой модуль ядра, взаимодействие с которым из userspace происходит через системные вызовы (в основном ioctl ) на «виртуальном устройстве» /dev/binder . Со стороны userspace низкоуровневая работа с Binder, в том числе взаимодействие с /dev/binder и marshalling/unmarshalling данных, реализована в библиотеке libbinder.
Низкоуровневые части Binder оперируют в терминах объектов, которые могут пересылаться между процессами. При этом используется подсчёт ссылок (reference-counting) для автоматического освобождения неиспользуемых общих ресурсов и уведомление о завершении удалённого процесса (link-to-death) для освобождения ресурсов внутри процесса.
Высокоуровневые части Binder работают в терминах интерфейсов, сервисов и прокси-объектов. Описание интерфейса, предоставляемого программой другим программам, записывается на специальном языке AIDL (Android Interface Definition Language), внешне очень похожем на объявление интерфейсов в Java. По этому описанию автоматически генерируется настоящий Java-интерфейс, который потом может использоваться и клиентами, и самим сервисом. Кроме того, по .aidl -файлу автоматически генерируются два специальных класса: Proxy (для использования со стороны клиента) и Stub (со стороны сервиса), реализующие этот интерфейс.
Для Java-кода в процессе-клиенте прокси-объект выглядит как обычный Java-объект, который реализует наш интерфейс, и этот код может просто вызывать его методы. При этом сгенерированная реализация прокси-объекта автоматически сериализует переданные аргументы, общается с процессом-сервисом через libbinder, десериализует переданный назад результат вызова и возвращает его из Java-метода.
Stub работает наоборот: он принимает входящие вызовы через libbinder, десериализует аргументы, вызывает абстрактную реализацию метода, сериализует возвращаемое значение и передаёт его процессу-клиенту. Соответственно, для реализации сервиса программисту достаточно реализовать абстрактные методы в унаследованном от Stub классе.
Такая реализация Binder на уровне Java позволяет большинству кода использовать прокси-объект, вообще не задумываясь о том, что его функциональность реализована в другом процессе. Для обеспечения полной прозрачности Binder поддерживает вложенные и рекурсивные межпроцессные вызовы. Более того, использование Binder со стороны клиента выглядит совершенно одинаково, независимо от того, расположена ли реализация используемого сервиса в том же или в отдельном процессе.
Для того, чтобы разные процессы могли «найти» сервисы друг друга, в Android есть специальный сервис ServiceManager, который хранит, регистрирует и выдаёт токены всех остальных сервисов.
Binder широко используется в Android для реализации системных сервисов (например, пакетного менеджера и буфера обмена), но детали этого скрыты от разработчика приложений высокоуровневыми классами в Android Framework, такими как Activity, Intent и Context. Приложения могут также использовать Binder для предоставления друг другу собственных сервисов — например, приложение Google Play Services вообще не имеет собственного графического интерфейса для пользователя, но предоставляет разработчикам других приложений возможность пользоваться сервисами Google Play.
Подробнее про Binder можно узнать по этим ссылкам:
В следующей статье я расскажу о некоторых идеях, на которых построены высокоуровневые части Android, о нескольких его предшественниках и о базовых механизмах обеспечения безопасности.
Те, кто использует iPhone давно, знают, как работали ранние версии iOS. Фактически это была однозадачная операционка, которая позволяла работать в фоне или прерывать работу текущего приложения только предустановленным приложениям: вы читаете книжку, вам звонят — книгочиталка сворачивается, и на экране появляется окно звонка. А вот обратная операция невозможна: книгочиталка не только не может прервать работу других приложений, но и будет убита сразу после сворачивания.
Смысл существования такой системы, конечно же, в том, чтобы сэкономить процессор, оперативную память, а также ресурс батареи. Благодаря ей (но не только) iPhone мог работать быстро в условиях ограниченных ресурсов и очень бережно относился к батарее.
Как устроена операционная система Андроид
Android всегда работал иначе. Здесь можно запустить множество различных приложений и все они будут оставаться в памяти и даже смогут работать в фоне. Вы открываете браузер, вводите адрес и, пока загружается страница, запускаете почтовый клиент и читаете письма. Все как на десктопе, с тем исключением, что вам не нужно заботиться о закрытии приложений, система сделает это сама, когда оперативная память подойдет к концу или ее не хватит для размещения запускаемого приложения (само собой, в первую очередь в расход пойдут редко используемые приложения). Этот механизм называется lowmemorykiller.
Имея права root, настройки lowmemorykiller можно регулировать напрямую или с помощью специальных приложений
Важным элементом системы многозадачности были службы (service). Это особые компоненты приложений, которые могли работать в фоне абсолютно в любых условиях: включен экран или выключен, свернуто приложение или развернуто, службам плевать даже на то, запущено ли родительское приложение вообще. Оно просто говорило: «Эй, Android, мне нужны ресурсы процессора, я хочу сделать некоторые расчеты» — и получало эти ресурсы. В терминологии Android такой запрос к системе называется wakelock (а если точнее — процессорный wakelock).
Однако поддержка такого мощного и полезного инструмента сыграла с Google злую шутку. Появилось огромное количество приложений, которые плодили службы на каждый чих, постоянно выполняли какую-то работу и не давали смартфону спать. Установив на смартфон сотню приложений, пользователь получал несколько десятков служб, каждая из которых периодически что-то делала (обновить ленту твиттера, пока телефон спит, — это же так важно).
Дела обстояли настолько плачевно, что китайские производители, не обремененные задачей сохранить совместимость с оригинальным Android (это требуется, если хотите устанавливать на свои смартфоны Play Store), просто отключили в своих смартфонах механизмы поддержания жизненного цикла служб для несистемных приложений.
Продвинутые юзеры шли другим путем: они получали права root и устанавливали приложение Greenify, которое позволяло заморозить службы выбранных приложений так, чтобы их уже никто не смог разбудить. Существовали и более радикальные варианты, например снести весь софт, которым пользуешься реже одного раза в сутки.
Сама Google также предпринимала определенные действия для борьбы с «ядовитыми» службами. Большой шаг в этом направлении был сделан в Android 4.4, где появился интеллектуальный механизм, который определял, не работает ли служба слишком много времени и не сильно ли она грузит процессор, и, если это оказывалось так, прибивал ее на месте и не давал запуститься. Даже на поверхностный взгляд эта версия системы жила на батарейке заметно дольше предыдущих.
В Android 6.0 Google пошла еще дальше и оснастила ее механизмом Doze, который после определенного времени неактивности смартфона (около одного часа) переводил его в специальный энергосберегающий режим. Одна из особенностей этого режима — запрет на wakelock, то есть ни приложения, ни службы просто не могут разбудить смартфон, чтобы выполнить какую-либо работу. На глаз Android 6.0 не стал жить дольше, так что неизвестно, сработал ли этот механизм вообще.
Шкала работы Doze
И наконец, в Android 8.0 Google пошла на радикальный шаг — запретила работу фоновых служб. Но с двумя исключениями:
Приложение в некоторых случаях, например когда оно находится на экране, может запускать службы, но Android прибьет их после ухода приложения в сон.
Видимые пользователю службы до сих пор разрешены. Это так называемый foreground service, служба, которая видна в панели уведомлений и имеет иконку в статусбаре.
Казалось бы, да, службы — это зло, но как теперь быть таким приложениям, как противоугонное, которое должно работать незаметно в фоне? Или тот же почтовый клиент? Из-за необходимости периодически проверять почту он должен висеть в панели уведомлений?
На самом деле нет. Google шла к запрету служб еще с версии 5.0, где появился так называемый JobScheduler. Это специальная подсистема, которая позволяет приложениям попросить Android выполнить ту или иную работу в такое-то время или при возникновении такого-то события (подключение к интернету, например). И да, JobScheduler сильно напоминает аналогичную функцию из iOS.
Binder
Вопреки расхожему мнению, Android с самых первых версий использовал песочницы для изоляции приложений. И реализованы они были весьма интересным образом. Каждое приложение запускалось от имени отдельного пользователя Linux и, таким образом, имело доступ только к своему каталогу внутри /data/data .
Работу Binder обеспечивают драйвер в ядре Linux и Service Manager
Эта особенность дала Android очень широкие возможности автоматизации, о которых мы знаем благодаря таким приложениям, как Tasker, Automate или Locale. Все эти приложения доступны и для Android 8, разве что некоторые опасные возможности, такие как включение/выключение режима полета, теперь запрещены для использования обычными приложениями.
Система оповещения базируется на интентах (intent), специальном механизме, реализованном поверх Binder и предназначенном для обмена информацией между приложениями (или ОС и приложениями), а также запуска компонентов приложений. С помощью интентов можно оповещать приложения о событиях, попросить систему открыть приложение для обработки определенных типов данных (например, чтобы открыть определенную страницу в браузере, достаточно послать широковещательный интент со ссылкой на страницу, и на него откликнутся все приложения, способные отображать веб-страницы, либо только дефолтовый браузер) или просто запустить компонент того или иного приложения. Например, приложения в Android запускаются не напрямую, а с помощью интентов.
Google исправила это недоразумение опять же в Android 8.0. Теперь приложения могут регистрировать обработчики широковещательных интентов только во время своей работы (за небольшими исключениями).
Сервисы Google
Google любит бравировать тем, что Android — операционная система с открытым исходным кодом. Это, конечно же, не совсем так. С одной стороны, код Android действительно открыт, и именно поэтому мы имеем доступ к такому количеству разнообразных кастомных прошивок. С другой стороны, собрав Android из официальных исходников, вы получите систему без нескольких важных компонентов: 1) отдельных драйверов, исходники которых производитель прячет, как коммерческую тайну, 2) сервисов Google, которые нужны в первую очередь для получения доступа к аккаунту, запуска Google Play и облачного бэкапа.
Сервисы Google (Google Mobile Services) также отвечают за многие другие вещи, включая поддержку push-уведомлений, Instant Apps, Google Maps, доступ к календарю, определение местоположения по сотовым вышкам и Wi-Fi-роутерам, механизм Smart Lock, позволяющий разблокировать устройство в зависимости от некоторых условий.
В современных версиях Android сервисы Google взяли на себя настолько большую часть работы, что жить без них оказывается хоть и возможно, но очень проблематично. А с ними тоже невесело: минимальный вариант пакета GApps (который содержит только сервисы Google и Google Play) весит больше 120 Мбайт, а сами сервисы славятся своей любовью к оперативке и заряду батареи. А еще они закрыты, то есть о том, что они могут делать, знает только сама Google.
Именно поэтому на свет появился проект microG, задача которого — воссоздать самую важную функциональность сервисов Google в открытом коде. Уже сейчас microG позволяет получить доступ к своему аккаунту, активировать push-уведомления, доступ к картам Google и определению местоположения по сотовым вышкам. И все это при размере в четыре мега и почти полном отсутствии требований к оперативке и ресурсу батареи.
У проекта есть собственная сборка прошивки LineageOS, которая из коробки включает в себя microG и все необходимые для его работы модификации.
Ядро Linux и рантайм
Android основан на ядре Linux. Ядро управляет ресурсами смартфона, в том числе доступом к железу, управлением оперативной и постоянной памятью, запуском, остановкой и переносом процессов между ядрами процессора и многими другими задачами. Как и в любой другой ОС, ядро — это сердце Android, центральная часть, без которой все остальное развалится.
Слоеный пирог Android
Наличие ядра Linux, а также частично совместимой со стандартом POSIX среды исполнения (в первую очередь это библиотека bionic, основанная на реализации стандартной библиотеки языка С из OpenBSD) делает Android совместимым с приложениями для Linux. Например, система аутентификации wpa_supplicant, применяемая для подключения к Wi-Fi-сетям, здесь точно такая же, как в любом дистрибутиве Linux. В ранних версиях Android использовался стандартный bluetooth-стек Linux под названием bluez (позже его заменили реализацией от Qualcomm под названием Bluedroid). Здесь даже есть своя консоль с набором стандартных UNIX/Linux-команд, реализованных в наборе Toybox, изначально созданном для встраиваемых Linux-систем.
Большинство консольных приложений, написанных для Linux, можно портировать в Android простой перекомпиляцией с помощью кросс-компилятора (главное — использовать статическую компиляцию, чтобы не получить конфликт библиотек), а имея права root, на Android-девайсе можно без всяких проблем запустить полноценный Linux-дистрибутив. Один нюанс — доступ к нему можно будет получить либо только через консоль, либо используя VNC-соединение. Также существует проект Maru OS, позволяющий использовать смартфон в качестве ПК на базе Debian при подключении к монитору. Ту же функцию обещает Samsung при подключении своих смартфонов к монитору с помощью дока DeX.
Старый добрый mc, запущенный в Android
Начиная с версии 4.4 Android умеет использовать систему принудительного контроля доступа SELinux для защиты от взлома и получения прав root. SELinux разработана Агентством национальной безопасности США и, если не вдаваться в детали, позволяет ограничить приложения (в том числе системные низкоуровневые компоненты) в возможностях. И речь вовсе не о полномочиях, которые юзер предоставляет приложениям, а о таких вещах, как системные вызовы и доступ к тем или иным файлам, невзирая на стандартные права доступа UNIX.
Серия уязвимостей Stagefright, поразивших Android несколько лет назад, позволяла получить контроль над устройством, просто заставив юзера открыть пришедшую MMS или специальный файл в браузере. Проблема состояла в мультимедиафреймворке Stagefright, содержащем сразу несколько уязвимостей переполнения буфера. При открытии специальным образом подготовленного мультимедиафайла эксплоит использовал уязвимость и запускал на устройстве код от имени Stagefright (который работал под рутом).
Все эти баги Google благополучно закрыла, а также поработала над модуляризацией кода фреймворка и его запуском в специальных доменах SELinux. Эти домены запрещают компонентам, ответственным за обработку мультимедиа, использовать большую часть системных вызовов Linux, включая системные вызовы группы execve, которые как раз и были причастны к запуску зловредного кода.
Сегодня SELinux используется для защиты почти всех системных компонентов Android. И это стало причиной резкого снижения количества найденных багов в Android. Но привело к фокусировке взломщиков на ядре, а точнее тех самых закрытых драйверах, аудит кода которых никто не проводил и безопасность которых не гарантирована (а она, как оказалось, находится в плачевном состоянии).
Выводы
Android определенно не самая стандартная ОС. Многие свои черты она позаимствовала из операционной системы Inferno, к созданию которой приложили руку разработчики языка С, UNIX и Plan 9. А эти ребята явно знали, что делали.
Что такое система Android Auto и как ей пользоваться в машине.
Подключив ваш Android-смартфон к информационно-развлекательной системе автомобиля данная система "Android Auto" проецирует операционную систему телефона на экран информационно-развлекательной системы машины. Правда на экране автомобиля после ее подключения будут доступны не все функции, которыми вы привыкли пользоваться в своем смартфоне. То есть, подключив телефон к машине вам будет доступна как-бы упрощенная версия смартфона выводящаяся на дисплее центральной консоли авто.
В своем итоге интеграция смартфона с информационно-развлекательной системой автомобиля не только упрощает использование телефона во время управления автомобилем, а заодно делает этот процесс законным и что самое главное, безопасным. Например, подключив к автомобилю телефон с операционной системой Android вы не только получите возможность пользоваться громкой связью во время движения, но и для вас еще появится возможность быстрого доступа к приложениям и функциям вашего телефона, которые будут отображаться на экране информационно-развлекательной системы автомобиля. Например, вам будет обеспечен доступ к навигационным картам вашего смартфона, к музыке, к телефонным звонкам и т.п. функциям.
Система "Android Auto" пока еще к сожалению не доступна на новых марках автомобилей (как и конкурирующая система Apple CarPlay). Но это временное явление, так как программное обеспечение системы Android регулярно обновляется. Это означает следующее, что с каждым годом система "Android Auto" становится все более доступной для большего количества новых моделей автомобилей. Автопроизводители сами заинтересованы в подобной системе, поскольку их собственное программное обеспечение не может конкурировать с "Android Auto" или с "Apple CarPlay", так как данные системы регулярно обновляются глобальными технологичными компаниями в отличии от редких обновлений тех же штатных информационно-развлекательных систем.
Вот к примеру, тажа система "Android Auto" получает для себя регулярные обновления для интеграции обновлений навигационных карт, которые установлены в смартфоне(ах). А вот автопроизводители уже не могут так часто выпускать обновления для своих навигационных карт установленных в заводских информационно-развлекательных системах. В этом и есть неоспоримое преимущество технологии "Android Auto".
И так друзья, чтобы использовать систему "Android Auto" в машине вам нужен смартфон с операционной системой Android, который обновлен до версии Lollipop или выше.
Вот как работает эта система:
Чем отличается интерфейс "Android Auto" на экране автомобиля от того же меню в телефоне.
Самое большое различие в них заключается в том, что сама система "Android Auto" была разработана именно с учётом использования ее в автомобилях. В результате чего ее интерфейс, что отображается на экране автомобиля выглядит в упрощенном варианте, сделано это было для того, чтобы не отвлекать водителя от управления автомобилем. В машине тоже вам будут доступны не все функции смартфона, а только лишь первоочередные функции. Чтобы смягчить разочарование пользователей отсутствием многих функций меню и кнопок телефона появляющихся на экране автомобиля, компания "Google" интегрировала в систему голосовой поиск Google с помощью которого вы сможете управлять системой "Android Auto" при помощи голоса. Благодаря программному обеспечению которое умеет распознавать голос(а), вы можете пользоваться уже многими функциями своего телефона не отвлекаясь при этом от управления автомобилем.
Сколько стоит система "Android Auto".
Эта система предлагается бесплатно. Чтобы вы могли пользоваться этой технологией программное обеспечение информационно-развлекательной системы вашего автомобиля должно поддерживать работу "Android Auto" и должно быть установлено на заводе производителе, а еще ваш телефон должен быть обновлён как минимум до операционной системы "Android Lollipop". Чтобы приступить к использованию "Android Auto" вам необходимо сначала скачать специальное приложение с Google Play.
Кроме того, в Google Play есть немало сторонних приложений которые умеют работать с системой "Android Auto". Например, такие приложения, которые позволяют слушать прямо из интернета потоковую музыку (интернет-радио и другие музыкальные онлайн сервисы). Правда все эти приложения бывают доступны в основном только по платной подписке.
Какие автопроизводители поддерживают систему "Android Auto".
На сегодняшний день система "Android Auto" встроена уже в следующие марки автомобилей: Abarth, Alfa Romeo, Audi, Bentley, Citroen, DS, Fiat, Ford, Honda, Hyundai, Infiniti, Jaguar, Jeep, Kia, Land Rover, Maserati, Mazda, Mercedes-Benz, Mitsubishi, Nissan, Peugeot, Renault, SEAT, Skoda, SsangYong, Subaru, Suzuki, Vauxhall, Volkswagen и Volvo.
Правда, вам необходимо запомнить, что "Android Auto" доступна не на всех моделях машин вышеуказанных нами автомобильных марок. Дело в том, что сама система "Android Auto" устанавливается на автомобили как-бы опционально и предлагается автопроизводителем только для некоторых моделях в модельной линейке машин того или иного автобренда.
Поэтому, чтобы понять для себя, поддерживает ли автомобиль систему "Android Auto" нужно тщательно изучить весь список стандартного оборудования автомобиля и сам раздел опционального оснащения. Если вы только еще собираетесь приобретать себе новый автомобиль, то информацию о том, поддерживает ли данный автомобиль систему "Android Auto" нужно будет уточнять непосредственно у менеджера автосалона, где вы собираетесь купить машину.
Как вы уже поняли или догадались друзья, данная система "Android Auto" предназначена в певую очередь для штатных заводских информационно-развлекательных систем. Но на рынке сегодня можно найти и нештатные информационно-развлекательные системы, которые умеют работать конкретно с системой "Android Auto". Вот например, такие мультимедийные магнитолы и информационно-развлекательные системы как Pioneer и Kenwood, что поддерживают технологию "Android Auto".
"Android Auto"- как подключиться..
Подключение телефона к "Android Auto" происходит как обычно, точно также, как вы подключаете свой смартфон к различным устройствам с помощью Bluetooth.
Во-первых, Вы должны подключать свой телефон к "Android Auto" только в тех местах, где хорошо работает мобильная связь, поскольку для подключения к приложению в смартфоне необходимо подключиться непосредственно к сервису Google. Также, для подключения к "Android Auto" ваш автомобиль должен стоять на месте и не перемещаться. Если вы будете находиться в движении, то система "Android Auto" будет блокировать такую возможность интеграции.
И так, напомним, для подключения вы должны загрузить приложение "Android Auto" на свой телефон (бесплатная загрузка из магазина Google Play). Далее Вы должны подключить смартфон через USB к машине и запустить приложение "Android Auto". Затем на экране автомобиля Вы должны нажать кнопку, которая разрешит вашему смартфону подключиться к информационно-развлекательной системе автомобиля. После этого, на экране смартфона в приложении "Android Auto" необходимо будет дать свое согласие на интеграцию смартфона с программным обеспечением автомобиля.
Если вас пугает подобное сложное подключение, то не переживайте друзья. Такое соединение вашего телефона и автомобиля необходимо будет сделать только один лишь раз. В последующем такое подключение телефона и автомобиля для работы "Android Auto" будет происходить уже автоматически.
Если после подключения телефона к машине при работающем приложении "Android Auto" вы получаете пустой экран информационно-развлекательной системы на центральной консоли машины, то вполне возможно, что вам потребуется обновить само программное обеспечение в вашем смартфоне или ваш телефон просто не совместим с этим встроеным программным обеспечением "Android Auto" в автомобиле. Напомним нашим читателям еще раз, что для работы "Android Auto" ваш личный смартфон должен быть обновлен до операционной системы Android версии 5.0 («Lollipop»). Так что помните друзья, если ваш смартфон в настоящий момент имеет более старую версию операционки (памяти), то для его работы сначала обновите операционную систему до нужной актуальной, а затем уже повторите попытку подключения телефона к автомобилю с включенным приложением "Android Auto".
"Android Auto" - Лучшие приложения
Каждый месяц в Google Play появляется все больше и больше разных приложений которые поддерживаются системой "Android Auto". Да, это понятно, что все приложения умеющие интегрироваться с "Android Auto" работают естественно по-разному. Бывают хорошие приложения, но встречаются плохие и отвратительные, которые работают нестабильно. Но несомненно надо признать, что лучшим приложением для "Android Auto" является приложение Google Maps, которое работает всегда стабильно при подключении телефона к автомобилю.
Благодаря интеграции "Android Auto" в информационно-развлекательную систему автомобиля и возможности использования карт Google в приложении "Android Auto", Вы получаете полноценные навигационные карты Google прямо на экране информационно-развлекательной системы своей машины.
Это позволяет вам не только пользоваться качественной постоянно обновляемой навигационной картой, но и видеть в реальном времени всю информацию о пробках, что позволяет вам строить навигационные маршруты с учетом дорожной ситуации в реальном времени.
При работе Google Maps на экране информационно-развлекательной системы машины не наблюдается никаких подрагиваний и нестабильной работы данного навигационного приложения. Дисплей быстро реагирует на все ваши жесты, на все параметры маршрута и быстро обновляется. Но самое главное другое, а именно, что управляя автомобилем мы можем не отвлекаясь нажав на кнопку микрофона сказать примерно следующее- "Перейти к заданному пункту маршрута" и навигационная карта Google Maps мгновенно проложит вам маршрут на экране центральной консоли.
Да, конечно никто не спорит, что распознавание голоса пока еще не совсем совершенная технология и естественно, что в ней еще бывают сбои при восприятии голосовых команд. Но такое наблюдается как правило, при большом шуме в салоне автомобиля. Например, когда окна в машине открыты и вы проезжаете в этот момент достаточно шумную улицу. Но, если окна в автомобиле закрыты, то в большинстве случаев данная система "Android Auto" воспринимает ваши голосовые команды быстро и четко. В любом случае такое голосовое управление Google встроенное в "Android Auto" работает гораздо лучше и эффективнее, чем остальные штатные голосовые системы, которые встроены даже в дорогие премиальные автомобили.
Поскольку система "Android Auto" использует у себя собственные данные Google, это позволяет вам заранее прокладывать различные маршруты на компьютере, планшете или на телефоне, а затем использовать их сразу, как только вы сядете в свою машину, в этот момент ваш смартфон автоматически подключится к информационно-развлекательной системе вашего авто. В этом случае вам даже не придется просить систему об этом. То есть, построив заранее маршрут на домашнем компьютере на карте Google сев в машину и запустив двигатель, вы тот-час увидите на своем смартфоне приложение "Android Auto" и моментально подключитесь к автомобилю, увидев таким образом этот самый маршрут на экране своего автомобиля.
Также, после поездок с включенной системой "Android Auto" вы сможете просматривать историю своих маршрутов уже на других устройствах. Например, за компьютером, находясь у себя дома.
Такая информация о дорожном трафике доступна в "Android Auto" благодаря технологиям Google Maps. Например, тажа информация о пробках будет передаваться вам в реальном времени благодаря данным прямо с сервера Google на который поступает информация от других пользователей Google Maps.
В том числе, при прокладывании маршрута в Google Maps вы получаете точное время нахождения в пути (с точностью-погрешностью до 2 минут). А вот штатные заводские навигационные системы не могут обеспечить водителям такой точности.
Другой основной функцией "Android Auto" является потоковое воспроизведение музыки на аудио системе вашего автомобиля прямо из Интернета. Например, оформив подписку вы сможете слушать в своем автомобиле прямо онлайн потоковую музыку с таких например систем, как Google Play Музыка, Amazon Music и Spotify.
Самое интересное здесь то, что вы сможете не только слушать в машине онлайн музыку из Интернета, но и сможете одновременно управлять музыкальными архивами с помощью голосового управления, выбирая для себя необходимые треки.
Минусы системы "Android Auto"
Одним из отрицательных моментов системы "Android Auto" является то, что компания "Google" ограничивает водителям количество просматриваемых приложений со смартфона на экране автомобиля, и делается это по соображению безопасности. Например, на экране информационно-развлекательной системы автомобиля вам не будут доступны ваши множественные любимые приложения. Также, если у вас имеется и закачана в телефон любимая коллекция музыкальных треков (например, в архиве онлайн-сервисов потоковой музыки), то на экране машины вам будет доступен лишь только ограниченный список песен или альбомов.
Если вам захочется увидеть полный или расширенный список любимой музыки и песен, то вам придется для этого остановиться. К примеру, тажа система "Apple CarPlay" менее требовательна к безопасности за рулем.
Кстати, недавно такие приложения как WhatsApp и Skype стали полностью совместимы с "Android Auto". Так что друзья, теперь вы сможете звонить через эти приложения во время движения автомобиля и при подключении телефона к машине с помощью естественно приложения "Android Auto".
Особенности простого телефона
Простые телефоны к моменту появления Андроид были оснащены возможностями голосовых вызовов, SMS и MMS переписок, выходом в интернет с помощью стандартного, встроенного браузера и общением через mail-почту. Поскольку перечисленные функции являются встроенными, их невозможно улучшить или расширить способности. К примеру, если хочется посмотреть видеофайл в более высоком разрешении, скачать новую версию программу уже не получится.
Рынок умных устройств в начале нулевых был представлен коммуникаторами на базе систем Windows Mobile и Symbian. Они уже подразумевали под собой установку дополнительных программ из интернета, и имели больший функционал, но их уровень все равно не мог удовлетворить потребности динамично развивающегося сообщества. Большая свобода действий была получена пользователями при появлении Android.
Что представляет собой Android
С каждой новой версией в программе появляется все больше полезных возможностей, отмечаются лучшие показатели производительности и экономичного потребления энергии гаджета. На данный момент на Андроиде работают не только смартфоны, но также и планшетные персональные компьютеры, “умные” системы и другие устройства десятков европейских, американских и азиатских компаний.
Основные достоинства Android OS:
- Режим приема/осуществления голосовых вызовов;
- Работа с mailами;
- Поддержка множества беспроводных модулей, которые обеспечивают круглосуточный, непрерывный выход в сеть и не только (3G, 4G, GPS/ГЛОНАСС, Wi-Fi, NFC и т. д.);
- Легкость в использовании благодаря многообразию сенсорных поверхностей, чувствительных тачпадов, электронных клавиатур и т.д.;
- Поддержка видеозвонков для общения с близкими на расстоянии;
- Съемка видео в высоком разрешении, а также способность создавать качественные, практически профессиональные фотоснимки;
- Широкая база возможностей защиты и сохранения конфиденциальности личных данных (например, верификация по отпечатку пальца или голосу);
- Удобная работа с внешними устройствами и накопителями.
Однако основным преимуществом Андроид можно считать неограниченную возможность установки абсолютно любых приложений на усмотрение пользователя. Поскольку современные разработчики не останавливаются не достигнутом и постоянно выпускают интересные, занимательные игры, полезные штучки и другой, крутой контент, возможность загрузки его в любое время (при наличии достаточного количества свободной памяти устройства) является огромным плюсом для пользователей, которые держат руку на пульсе событий. Сейчас в телефонах на базе Андроид буквально содержится целая жизнь: с их помощью можно общаться в социальных сетях, изучать необходимую информацию, просматривать новинки кинематографа, наслаждаться новыми песнями любимых исполнителей и многое другое.
Возможности Андроид
Кроме того, в PlayMarket можно скачать следующие вещи:
- Приложения для доступа в социальные сети;
- Мессенджеры, работающие от интернет-трафика;
- Платежные системы;
- Почтовые программы;
- WebMoney и похожие онлайн-кошельки;
- Игры, требующие подключения к интернету и независимые от него;
- “Женские” и “мужские” приложения и многое другое.
Кстати, чтобы воспользоваться некоторыми функциями, совершенно необязательно их открывать. Например, загруженные программы для демонстрации погоды обычно автоматически обновляют данные на рабочем столе, что очень удобно в течение дня.
Операционная система Android стремительно развивается. На данный момент на ее базе работают не только стандартные смартфоны, но и множественные планшеты, смарт-устройства, системы для умных домов, электронные книги, популярные в последнее время наручные часы и многое другое. Начните свое знакомство в Андроид уже сегодня, и будьте уверены в том, что вам понравится!
Читайте также: