Приложение использование устройства для чего
Функция «Использование устройства» в Windows 10 будет бесполезной?
В прошлом году в инсайдерских сборках была представлена новая страница «Настройка устройства», которая позволяет оптимизировать систему под пользовательский сценарий использования.
Теперь новая страница «Использование устройства» доступна для некоторых инсайдеров в приложении «Параметры».
Изначально функция «Использование устройства» была обнаружена пользователем Twitter с ником Albacore. В описании сообщалось, что функция предназназначена для создания персонализированного опыта, например «индивидуальных предложений по инструментам и службам». Тем не менее, некоторые пользователи надеялись, что Microsoft не станет ограничиваться простым сервисом рекомендаций, а предложит расширенные возможности.
На самом деле, страница «Использование устройства» (доступно в приложении Параметры > Персонализация > Использование устройства) лишь дает пользователям возможность выбрать, как они планируют использовать устройство. Операционная система использует информацию для отображения рекомендаций пользователю. Как видите, функция не самая впечатляющая.
В сборке Windows 10 Build 21359 (Dev) доступно 6 различных категорий использования, такие как игры, развлечения и бизнес. Выбрав определенный сценарий использования, пользователи будут получать персональные рекомендации по продуктам. Например, геймеры будут получать предложения игр из Microsoft Store, а пользователи, выбравшие категорию «Креативность», получат уведомление, что Paint 3D доступен для установки в Microsoft Store.
Таким образом, все, что делает новая функция — это отображает подсказки по пользованию инструментами и сервисами, относящихся к определенной категории. Какие именно продукты будут предлагаться пока неизвестно — это могут быть и решения от партнеров Microsoft и собственные службы.
Пока складывается впечатление, что Microsoft не будет использовать эту информацию для предоставления полезного пользовательского опыта, например для добавления полезных инструментов в ОС, применения настроек для оптимизации ОС под конкретные нужды или для удаления неиспользуемых служб.
Пока полезность новой функции «Использование устройства» в Windows 10 вызывает сомнения. Она может быть интересна для Microsoft, но пользователи могут ее и не настраивать, потому что в этом нет особого смысла.
А что вы думаете о функции «Использование устройства»?
Приложение использование устройства для чего
В октябре 2020 года Microsoft начала тестирование обновленного экрана OOBE с новыми параметрами, которые помогут пользователям настроить новое или старое устройство после обновления функций Windows 10.
Компания все еще изучает эту идею, и похоже, что приложение «Настройки» также обновляется и получит новый раздел «Использование устройства», чтобы помочь пользователям настроить свое устройство после того, как они покинули экран OOBE.
На данный момент неясно, как будет работать новый параметр «Использование устройства», поскольку он дает сбой в предварительных сборках. Этот параметр отображается на странице «Персонализация» в приложении «Настройки», поэтому можно с уверенностью предположить, что Microsoft не работает над функцией Google Digital Wellbeing.
Вместо этого похоже, что новый экран использования устройства позволит пользователям настроить систему под свои личные нужды. Страница «Использование устройства» имеет внутреннее кодовое название «SettingsUserIntentPage», это также предполагает, что параметр «Использование устройства» связан с новым интерфейсом OOBE.
Если новая страница настроек действительно основана на OOBE, то пользователи смогут выбрать основную категорию использования для своей системы. Первоначально будут предложены следующие категории «использования устройств»:
Если выбрать «Игры», то Windows 10 будет оптимизирована для игр, но неясно, как будет работать оптимизация и какие изменения будут внесены в вашу систему. Также неясно, будет ли эта функция включена в следующее крупное обновление Sun Valley.
Мобильное приложение
Буквально 15-20 лет назад на вопрос, что такое мобильное приложение, владелец сотового телефона не нашел бы ответа. Возможности устройств ограничивались функциями звонков, отправки СМС и простейшими играми. Впрочем, незатейливую игру на сотовом можно было уже тогда называть приложением.
Чем приложение отличается от мобильного сайта?
Довольно часто пользователи путаются в функциональных различиях мобильного сайта и приложения на смартфон, планшет или другой гаджет. Бывает и так, что стартапы и даже уже раскрученные бизнесы не понимают, зачем платить за разработку отдельного программного обеспечения для телефона, когда можно «подстроить» под разрешение мобильного дисплея готовый сайт.
Давайте разбираться в ключевых отличиях и функциональных особенностях адаптированного сайта и приложения.
Мобильный вариант сайта представляет собой переработанный, а в некоторых вариантах адаптированный дизайн и контент веб-страниц для удобного просмотра на дисплее смартфона. Самый простой способ – это создать копию основного сайта для ПК и попытаться его подстроить под мобильное разрешение. Оптимальный вариант – это полностью «перебрать» сайт и создать новый дизайн, с которым будет удобно взаимодействовать пользователю посредством сенсорного экрана.
Соответственно простая подстройка ПК-версии под гаджеты называется «резиновой» версткой. То есть на сайте остается тот же самый контент и дизайн, но он изменяется в размерах. Блоки становятся меньше. Такое решение было наиболее популярным 10-15 лет назад, когда продажи с мобильных гаджетов не могли конкурировать с ПК. Сейчас многое изменилось. С мобильного канала идет больше трафика и продаж. Поэтому «резиновый» сайт уступает в лидогенерации мобильным приложениям.
Основные преимущества сайта – минимальные затраты на разработку (по сути, версия для смартфонов делается «на сдачу» с основного сайта), кроссплатформенность, быстрые обновления.
Один существенный недостаток перечеркивает все достоинства. Адаптированный сайт имеет низкий уровень взаимодействия с пользователем. Даже при хорошем трафике такой сайт будет плохо конвертировать лидов.
Мобильное приложение – это программный пакет, функционал и дизайн которого «заточен» под возможности мобильных платформ. Перечислим несколько основных плюсов приложения:
На самом деле функционал мобильных приложений уже давно превзошел адаптированные сайты. Сегодня можно скачать и установить на смартфон программы для бизнеса, обучения, органайзеры с опциями напоминания, развлекательный контент, различные сервисные службы.
Виды приложений
По бизнес-направленности мобильные приложения могут быть двух видов. Первые оптимизируют внутренние процессы организации, компании, сервиса. Вторые используются в маркетинговом плане, то есть для коммуникаций с клиентами, продаж и продвижения бренда.
Программы для клиентов:
Приложения для внутреннего использования:
Также мобильные приложения можно разделить на три типа:
Принцип работы мобильного приложения
Мобильное приложение можно разделить на два больших блока – это front- и back-end. Соответственно в часть Front-end входят компоненты и опции программы, с которой взаимодействует пользователь. Например, панель выбора, дашборд, настройки опций и прочее. Back-end – это скрытая часть, «задник». С этими компонентами взаимодействует разработчик посредством серверного софта.
Иными словами мобильное приложение напоминает сплит-систему, в которой одна часть находится на стороне пользователя – это Front-end, а другая на стороне разработчика – это Back-end.
Пользователи мобильной сети загружают необходимые приложения из магазинов Google Play и App Store. Компании на стороне Back-end получают массу преимуществ от такого формата взаимодействия. Например, анализируют информацию о целевой аудитории, быстрее доводят политику лояльности пользователям, повышают уровень продаж с мобильного канала.
Зачем бизнес-сфере мобильные приложения?
Успешный бизнес должен идти в ногу с современными технологиями иначе он останется в прошлом и придет в упадок. Какие перспективы открывают перед коммерсантами мобильные приложения:
Резюме
Мы изучили, что представляет собой приложение для смартфонов и планшетов. Рассмотрели его отличия от адаптированного сайта, а также в общих чертах узнали, как работает мобильное приложение. В конце статьи мы познакомились со сферами применения программного обеспечения в бизнесе.
Как рекламщики узнают, какие приложения вы используете
Рассказываем про идентификаторы устройств на Android и про то, как приложения злоупотребляют ими, чтобы больше зарабатывать на рекламе.
О том, как работает реклама в Интернете и как рекламные сети (и не только они) узнают, какие сайты вы посещаете, мы уже рассказывали. Но ваша виртуальная жизнь вряд ли ограничивается веб-страницами. Скорее всего, заметная ее часть проходит в мобильных приложениях, которые тоже нередко зарабатывают на рекламе. Для этого они, как и сайты, сотрудничают с рекламными сетями.
Чтобы маркетологи могли составить на вас детальное досье и показывать вам персонализированные объявления, мобильные программы отправляют им информацию о вашем устройстве. Даже ту, использовать которую в рекламных целях Google не разрешает.
Какая информация позволяет отследить ваше Android-устройство
Что приложения могут рассказать рекламной сети о вашем смартфоне? В первую очередь — то, что они на нем установлены. Получив такую информацию от нескольких программ, рекламная сеть в состоянии сделать вывод о том, чем вы интересуетесь и какие объявления могут вас «зацепить». Например, если вы пользуетесь селфи-камерой, Instagram и Snapchat, вам покажут приложения с фильтрами и эффектами для фото.
Убедиться, что та или иная программа установлена именно на вашем устройстве, рекламной сети помогают специальные коды-идентификаторы. Как правило, их у смартфона, планшета и любого другого гаджета несколько, и большинство из них придуманы не для рекламы.
Так, уникальный номер IMEI нужен, чтобы распознавать ваш телефон в сотовых сетях и, например, блокировать краденые устройства. А при помощи серийного номера можно определить все гаджеты серии, в которых обнаружен брак, и отозвать их из магазинов.
Еще один уникальный идентификатор, MAC-адрес, нужен для подключения устройства к сети, а заодно может быть использован, чтобы ограничить набор гаджетов, которые имеют право подключаться к вашему домашнему WiFi. Наконец, Android ID (он же SSAID) разработчики приложений используют, чтобы продавать лицензии на ограниченное количество копий для платных версий своих продуктов.
Долгое время какого-то отдельного идентификатора для рекламы вообще не существовало, поэтому приложения отправляли своим партнерам те, к которым имели доступ. При этом спрятаться от объявлений по интересам пользователь практически не мог: те же IMEI или MAC-адреса — это уникальные номера, по которым устройство опознается однозначно. Каждый раз, когда очередное приложение передает в рекламную сеть один из них, та понимает, что его установили именно вы.
Теоретически существует возможность изменить эти номера — в том числе при помощи специальных приложений, но это непросто, и, что хуже, подвергает опасности ваш телефон. Дело в том, что для подобных экспериментов нужны root-права, а получая их, вы делаете устройство уязвимым. К тому же в некоторых странах манипуляции вроде смены IMEI запрещены законом.
Android ID поменять проще — для этого достаточно сбросить смартфон или планшет до заводских настроек. Но после этого придется заново задавать все параметры, устанавливать приложения, авторизоваться в каждом из них и так далее. В общем, куча мороки, так что желающих делать это часто, мягко говоря, не очень много.
Рекламный идентификатор — ожидание
В 2013 году в качестве компромисса между интересами пользователей Android и рекламщиков компания Google ввела специальный рекламный идентификатор. Его задают сервисы Google Play, и пользователь при желании может сбросить его и создать новый. Делается это в меню Настройки > Google > Реклама > Сброс рекламного идентификатора. С одной стороны, такой идентификатор позволяет рекламным сетям отслеживать привычки и увлечения владельцев устройств. С другой — если же хочется избавиться от слежки рекламщиков, вы можете в любой момент без лишних трудностей его сбросить.
По правилам магазина Google Play, в рекламных целях можно использовать только этот идентификатор. Площадка не запрещает связывать его с другими ID, но для этого приложению нужно получить согласие пользователя.
В теории это должно работать так: если вам нравится реклама по интересам, вы не трогаете рекламный идентификатор и можете даже разрешить приложениям объединять его с чем угодно. Если же нет, вы запрещаете связывать эту метку с другими и периодически сбрасываете ее, таким образом отвязывая свое устройство от собранного на него досье.
Увы, в действительности все несколько иначе.
Рекламный идентификатор — реальность
Как обнаружил исследователь Серж Эгельман (Serge Egelman), более 70% приложений в Google Play используют хотя бы один дополнительный идентификатор без предупреждения. Некоторые из них, например 3D Bowling, Clean Master и CamScanner, скачали многие миллионы человек.
Чаще всего в ход идет Android ID, хотя IMEI, MAC-адреса и серийные номера разработчики тоже задействуют. Некоторые приложения отправляют партнерам сразу три идентификатора и более. Так, игра 3D Bowling — видимо, для верности — использует и рекламный идентификатор, и IMEI, и Android ID.
Такой подход делает саму идею специального рекламного идентификатора бессмысленной. Даже если вы против слежки и регулярно сбрасываете его, маркетологи при помощи более стабильной метки легко привяжут к существующему профилю новый идентификатор.
Несмотря на то что подобное поведение не соответствует правилам Google Play, вовремя отловить злоупотребляющих идентификаторами разработчиков не так-то просто. Все приложения проверяют перед публикацией, но многие не совсем честные авторы успешно обходят эту проверку. Даже майнеры то и дело попадают в магазин — что уж говорить о программах, в которых нет откровенно вредоносных функций.
При этом просто запретить приложениям доступ к идентификаторам устройства Google не может: как мы уже говорили, их используют не только для рекламы. Лишая мобильные программы, например, возможности считывать Android ID, компания Google помешала бы разработчикам защищать свой продукт от нелегального копирования, а значит, нарушила бы их права.
Борьба с навязчивой рекламой
Конечно, Google не бездействует. Компания принимает меры, чтобы ограничить возможность злоупотребления идентификаторами. Например, начиная с Android Oreo тот же Android ID для каждого приложения задается свой, так что в глазах рекламной сети, полагающейся на этот ID вместо рекламного, ваш Instagram будет установлен на одном устройстве, а Snapchat — на другом.
Однако для IMEI, серийных номеров и MAC-адресов ввести такую защиту нельзя. Да и телефонов с более старыми версиями Android на рынке немало. Поэтому рекомендуем ограничивать сбор данных, грамотно управляя приложениями.
Что за приложение использование устройства в android
Использовано приложение Android System: что это значит?
Часто в списке утилит, которые установлены на Андроиде, встречается приложение Android System (полное название Android System WebView). Не каждый знает, для чего оно нужно и что с ним делать.
Что же это такое?
Android System – это одна из разработок компании Google, направленная на упрощение просмотра веб-содержимого внутри софта разного рода. При этом нет никакой необходимости в запуске браузера.
При этом заряд аккумулятора будет расходоваться в разы меньше, ведь нет никакой необходимости использовать дополнительные ресурсы ПО.
Везде ли имеется программа?
Android System есть только на тех моделях смартфонов, где установлена операционная система версии 4.2.2 и выше. Приложение работает без ошибок и нареканий и загружать его отдельно не требуется, т.к. оно является предустановленным.
Однако, если утилита по каким-то причинам отсутствует на устройстве, то ее можно бесплатно скачать с Google Play. Программа находится в свободном доступе.
Кроме того, последняя версия сервиса снизит до нуля риск нежелательного проникновения злоумышленников на устройство, что способно повлечь за собой кражу личных данных, взлом аккаунта или шпионаж.
Как же работает программа?
Android System достаточно активно потребляет ресурсы процессора, оперативную память устройства и расходует заряд батареи. Если гаджет обладает низкой мощностью, то производительность будет существенно замедлена и система начнет тормозить.
Для последних версий устройств, работающих на Андроид, эта проблема не является актуальной. Но на четвертую версию обновлений уже нет, что приводит к ухудшению работы гаджета.
В некоторых случаях может потребоваться настройка конкретных программ. Например, у Facebook Lite имеется опция использования внутреннего браузера. Если она окажется неактивной, то в случае перехода по внешней ссылке, у пользователя будут открываться страницы браузера, установленного на телефоне.
Устройства на Android: что сегодня работает на мобильной операционной системе от Google
Одним из первых представителей планшетов на Android стал Samsung Galaxy Tab, который попал на полки магазинов в 2010 году. Корейская компания выпускала устройство, чтобы навязать конкуренцию iPad, который уже тогда был готов стать лидером продаж.
До Samsung уже были попытки выпустить планшет на Андроид, но они либо просто не увенчались успехом, либо прошли незамеченными. Первый Galaxy Tab работал на версии 2.2, которая была явно не лучшим выбором для подобного класса гаджетов – она просто не была приспособлена в то время для планшетов, что не скрывала и Google. Хотя Samsung и постаралась ее доработать.
Расцвет планшетов начался после выхода Android версии 3.0, которая была разработана специально для этих устройств. Полки магазинов мгновенно наполнились дешевыми китайскими планшетами, которые привлекали пользователя своей ценой. Следующие версии Андроид стали универсальными, что позволило использовать систему и на смартфонах, и на планшетах.
Сегодня Android-планшеты переживают не лучшие времена – новинки выходят редко, пользователи отдают предпочтение фаблетам, к тому же, серьезную конкуренцию навязывают iPad и модели на Windows.
Телевизоры, Mini PC, игровые приставки и TV Box на Android
Вслед за смартфонами, планшетами и некоторыми другими устройствами Андроид проник и в мультимедийные устройства. Еще летом 2012 года Nexus представила медиа-развлекательное устройство Q, которое подключалось к телевизору и воспроизводило различный контент. Работал гаджет на Android 4.0. Позже, в 2014 году, Google показала Android TV – ответвление, которое предназначалось для приставок и телевизоров. Android TV перенял всю функциональность основной системы, став более адаптированным к управлению пультом ДУ.
За широкие возможности ОС особенно приглянулась многим производителям TV Box, которые, подключаясь к телевизору, превращают его в некое подобие большого смартфона. Очень любимы эти устройства китайскими компаниями, выпускающими ТВ Боксы по 2000-3000 рублей. На Android TV выпускаются и некоторые модели телевизоров, но большинство крупных компаний имеет свои системы Smart TV, от которых не желает отказываться.
Кроме того, с выходом Android 4.4 в интернет-магазинах появилось немало Mini PC на этой системе – небольшие устройства (часто в виде флешки), которые, по сути, представляют собой все те же TV Box. Главное их достоинство – компактность, позволяющая носить Mini PC в кармане.
Многим пользователям интересна Android и как игровая система. Компании же стараются потворствовать желаниям покупателей. Уже сегодня на прилавках магазинов электроники можно найти игровую приставку на Android от Nvidia, а также кучу портативных моделей от китайских компаний.
Android с каждым годом только усиливает позиции на рынках развлекательных мультимедийных устройств. Функциональности системы сегодня достаточно для комфортного просмотра онлайн-контента, запуска тысяч игр и многих других целей.
Носимая электроника и техника для дома
Относительно недавно новым трендом стала умная носимая электроника, в числе которой оказались Smart Watch. На волне популярности Android выпустила в 2014 году свою систему для умных часов – Android Wear. Как и полноценную ОС, ее постарались сделать наиболее удобной и функциональной. Сегодня на Android Wear доступны часы от таких крупных брендов как Samsung, LG, Huawei, Sony и других.
Не обошла система от Google стороной и технику для дома, которая год от года становится умнее. Уже в 2009 году пользователи могли приобрести рамку для фотографий на Android, позже к тренду присоединилась бытовая техника, в частности холодильники. Производители встраивают в свои устройства сенсорные панели, с помощь которых можно производить настройку работы холодильника, заказывать еду, управлять удаленно, задействовав планшет или смартфон.
Интересные приборы для кухни с операционной системой Андроид «на борту» представляют почти на каждой выставке. Кроме того, падает постепенно и цена на подобные устройства, что способствует их быстрому распространению.
Ноутбуки, камеры, проекторы, электронные книги
Есть ноутбуки, работающие на Android. Их относительно немного, но Google сегодня готова приложить все усилия, чтобы их продукт навязал конкуренцию системе уже десктопной – Windows. Кроме того, каждый пользователь может опробовать Андроид на своем компьютере или ноутбуке, причем совершенно бесплатно.
В Сети есть куча программ-эмуляторов, которые помогут запустить ОС от Google. Можно, если очень хочется, установить Android и рядом с Windows.
Однако пока ноутбуки на Андроид особым успехом не пользуются – все же для работы со многим программами на голову выше Windows. Возможно, только пока.
А вот проекторы на Android выглядят поинтереснее. Сегодня многие компании выпускают портативные модели, которые оснащаются Android TV, что позволяет насладиться любимым шоу или сериалом в любом месте: хоть дома на диване, хоть в лесу под елью. Но, опять же, это больше нишевые устройства, которые не имеют такого спроса как смартфоны или смарт часы.
Любителям чтения сегодня доступны электронные книги на Android. Они существенно функциональнее своих братьев, на которых можно лишь открыть скачанный заранее роман или повесть. Подобные модели и в Интернете позволяют посидеть, и фильм посмотреть, ну и, конечно же, насладиться чтением.
Устройства для автомобилей
Автомобили сегодня так же распространены, как и смартфоны, так почему бы и их не наградить современной операционной системой. Крупные холдинги оснащают новые модели бортовыми компьютерами, которые полностью отслеживают состояние авто, готовы помочь водителю с маршрутом и развлекут в длинной пробке фильмом.
Кроме того, на рынке полным-полно различных устройств на Андроид, которые может позволить каждый. Это, естественно, GPS-навигаторы, позволяющие загрузить тысячи карт, куда же без магнитолы, которая не только будет воспроизводить музыку, но и видео из YouTube в длинной пробке покажет. Дополнить этот тандем готовы видеорегистраторы, которые с помощью Android обладают существенно большими возможностями.
Заключение
Список устройств, работающих на операционной системе Google, действительно впечатляет. По факту, ни одна другая система не способна похвастаться столь широким распространением. И ведь сферы применения Android только расширяются. Общедоступность и функциональность делают свое дело – система растет впечатляющими темпами, оставляя позади конкурентов. Может вы, уважаемые читатели, тоже знаете какие-нибудь экзотические устройства на Android?
Как работает Android, часть 1
В этой серии статей я расскажу о внутреннем устройстве Android — о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.
Немного фактов
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 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 — основной единицей является приложение. Приложение — не чёрный ящик: оно состоит из отдельных компонентов, хорошо известных остальной системе.
Для реализации такой системы нужно, чтобы приложения имели возможность общатся друг с другом и с системными сервисами — другими словами, нужен очень продвинутый и быстрый механизм IPC.
Этот механизм — Binder.
Binder
Binder — это платформа для быстрого, удобного и объектно-ориентированного межпроцессного взаимодействия.
Разработка Binder началась в Be Inc. (для BeOS), затем он был портирован на Linux и открыт. Основной разработчик Binder, Dianne Hackborn, была и остаётся одним из основных разработчиков Android. За время разработки Android Binder был полностью переписан.
Низкоуровневые части Binder оперируют в терминах объектов, которые могут пересылаться между процессами. При этом используется подсчёт ссылок (reference-counting) для автоматического освобождения неиспользуемых общих ресурсов и уведомление о завершении удалённого процесса (link-to-death) для освобождения ресурсов внутри процесса.
Для 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, о нескольких его предшественниках и о базовых механизмах обеспечения безопасности.