Операционная система Android
Feb 4 · 6 min read
Android — это операционная система с открытым исходным кодом, созданная для мобильных устройств на основе модифицированного ядра Linux. Эта ОС разработана консорциумом Open Handset Alliance, состоящим из крупных технологических компаний при организующей роли Google. Исходный код ОС представлен как часть проекта Android Open Source Project (AOSP) с лицензией Apache. Выпущенный на рынок в 2007 году Android вскоре стал самой продаваемой операционной системой в истории, благодаря своей открытой модели разработки и удобному интерфейсу. Последняя версия Android 11 вышла в 2020 году.
История развития
Проект Android появи л ся в 2003 году с целью разработки интеллектуальных мобильных устройств. Начинался он с разработки ОС для цифровых фотокамер, но вскоре акцент сместился на мобильные телефоны из-за их большой распространенности на рынке. В 2005 году проект приобрел Google и в качестве основы для этой ОС было выбрано ядро Linux за счет его гибкости и возможности обновления.
С целью разработки платформы с открытым исходным кодом для мобильных устройств в 2007 году Google сформировала Open Handset Alliance с несколькими производителями оборудования и операторами беспроводной связи. В то время каждый производитель выпускал мобильные телефоны на базе собственной платформы, с ограниченными возможностями для сторонних приложений. Альянс заявил, что открытая платформа обеспечит тесное сотрудничество между производителями и разработчиками, чтобы ускорить производство недорогих инновационных продуктов и приложений.
Платформа Android была представлена в 2007 году и вышла на рынок на следующий год. Поначалу ей мешал ограниченный набор функций и небольшая база пользователей по сравнению с конкурентами Symbian и Windows. Однако возможность обновления стала самым большим преимуществом этой ОС, поскольку каждое обновление давало новые функции и улучшенную производительность. Из-за «сладости, которую они приносят в нашу жизнь», первые версии были названы в честь десертов, в алфавитном порядке, например Cupcake, Jellybean и KitKat. Однако вскоре у Google закончились десерты, и с 2019 года новые версии ОС получают номера, начинающиеся с Android 10. Лицензия с открытым исходным кодом также помогла увеличить популярность этой ОС среди производителей мобильных устройств, поскольку они могут теперь модифицировать ОС под свои требования, не влияя при этом на разработку приложений.
Но самая главная особенность в том, что Android — это больше, чем просто операционная система. Он во многом уравнял мобильные устройства с персональными компьютерами, позволив разработчикам писать приложения независимо от аппаратной платформы устройства. Это привело к созданию глобальной платформы для приложений и укрепило позиции Android, как передовой мобильной платформы, и в 2011 году он стал самой продаваемой операционной системой для смартфонов и для планшетов в 2013 году. Сегодня на Android работает множество электронных устройств, включая смарт-камеры, часы, медиаплееры и многое другое.
Архитектура
Первоначально Android разрабатывался для архитектуры ARM, а затем был расширен для поддержки архитектур x86 и x86–64. Однако в целом Android не заботится об аппаратном обеспечении устройства из-за разнообразия и множества типов среди компонентов в мобильных устройствах.
Основой ОС Android является модифицированная версия ядра Linux LTS, которая непосредственно взаимодействует с оборудованием. Драйверы, необходимые для работы устройства, реализуются производителями оборудования и добавляются в ядро. Это позволяет производителям оборудования разрабатывать драйверы для хорошо известного ядра, а разработчикам ОС игнорировать разнообразие оборудования. Android 11 поддерживает версии ядра 4.14, 4.19 и 5.4.
Особенности оборудования дополнительно маскируются также реализуемыми производителями уровнями аппаратной абстракции, которые предоставляют стандартные интерфейсы для высокоуровневых структур, чтобы обеспечить доступ к аппаратному обеспечению устройства, не заботясь при этом о реализации драйверов.
Android Runtime (ART) — это виртуальная машина, которая выполняет код приложения, содержащийся в файлах Dalvik Executable (DEX). Она управляет компиляцией кода, отладкой и очисткой памяти. Каждое приложение работает со своим собственным экземпляром ART, то есть в своей собственной виртуальной машине, чтобы обеспечить изоляцию кода. ART заменил Dalvik в качестве виртуальной машины Java для Android в 2013 году, поскольку его компиляция Ahead-of-Time обеспечила лучшую производительность по сравнению с компиляцией Just-in-Time у последней.
Собственные библиотеки C/C ++ являются важной частью операционной системы, поскольку большинство основных компонентов Android написаны на собственном коде. Инфраструктура Java API — это шлюз в ОС для всех пользовательских приложений. Он предоставляет множество сервисов для приложений в виде вызовов Java API, включая менеджеры действий, ресурсов и уведомлений, поставщиков контента и систему просмотра. Именно поэтому приложения для Android в основном разрабатываются на Java, хотя собственные библиотеки обеспечивают некоторую поддержку C/C++. Совсем недавно также поддерживался и Kotlin, он даже предпочитался Google для разработки приложений Android. Код компилируется Android Software Development Kit (SDK) и архивируется в виде пакета Android (APK).
Android против Linux
Хотя некоторые считают Android дистрибутивом Linux, он имеет мало общего с обычной ОС Linux.
В традиционном стеке Linux ядро выполняет большую часть системных функций, включая управление памятью и файлами, аппаратное взаимодействие и планирование процессов. Системные функции предоставляются приложениям через библиотеки и вызовы API на языке Си. Именно поэтому GNU C является более важной библиотекой в Linux. Пользователи взаимодействуют с системой через оболочки, которые транслируют пользовательские команды в системные вызовы.
С другой стороны, Android можно рассматривать как пользовательское приложение, работающее в Linux. ОС использует ядро для взаимодействия с оборудованием и управления системой, а затем предлагает свои функции другим приложениям через интерфейс API. Этот интерфейс написан полностью на Java, и даже функции библиотек C/C ++ предложены в оболочках Java. В Android нет оболочки, хотя некоторые утилиты командной строки поддерживаются через приложение Toybox.
Кроме того, Android оптимизирован для мобильных устройств, которые обычно обладают малой вычислительной мощностью, имеют небольшой объем памяти и работают от батарей. По умолчанию, в качестве библиотеки C, вместо GNU, он использует Bionic из-за пониженных требований к памяти и процессору. При нехватке памяти, Android может уничтожить наименее используемые процессы и сбросить блоки разделяемой памяти. Кроме того, здесь реализуется уникальная система управления питанием, в которой устройство остается в спящем режиме, потребляя минимальную мощность до тех пор, пока процесс не запросит ресурс.
Ядро Android
Перед установкой на устройство само ядро Linux подвергается модификации несколькими участниками проекта. Во-первых, разработчики Android оптимизируют ядро LTS для мобильных устройств, вносят коррективы в функции Android и оставляют код как общее ядро AOSP. Разработчики AOSP реализуют большинство изменений в виде драйверов устройств, чтобы гарантировать внесение минимальных изменений в основной код ядра. Это позволяет с минимальными изменениями объединять обновления базового ядра в ACK. Поставщики оборудования добавляют драйверы и уровни абстракции для создания ядра поставщика. Затем, производители устройств обновляют ядро в соответствии со своими требованиями, реализуя новые драйверы или даже улучшая систему. Это ядро, в конечном счете, устанавливается на выпускаемые производителем устройства.
Разработка приложения
Основной принцип разработки в Android заключается в том, чтобы абстрагироваться от вариативности оборудования и предоставить унифицированный интерфейс для приложений. Это достигается запуском всех приложений на виртуальных машинах Java, подобных Dalvik или ART. Еще более способствует этой абстракции и упрощает разработку приложений комплект, состоящий из инфраструктуры Java API и SDK Android. Интерфейс API выполняет всю сложную работу, обеспечивая приложениям доступ к системным ресурсам лишь через вызов функции, в то время как SDK предоставляет визуальные инструменты для создания макетов приложений и управления вводом данных пользователя.
Android предоставляет приложениям большую часть своих функций через службы (services). Служба — это приложение, которое выполняет длительные операции в фоновом режиме. Она не предоставляет пользовательского интерфейса и доступна только через платформу API. Службы также могут выполнять операции в приоритетном порядке и сообщениями уведомлять пользователя. Служба также может быть привязана к приложению и обеспечивать интерфейс клиент-сервер.
Стек Android также включает вторую операционную систему Trusty. Она работает параллельно с основной операционной системой и обеспечивает доверенную среду для изолированного выполнения. В основном она используется для мобильных платежей, безопасного банковского обслуживания, обработки паролей и других процессов, требующих безопасности и конфиденциальности.
Заключение
При первых анонсах Open Handset Alliance их планы по взаимодействию при разработке открытой и многоцелевой платформы представлялись не более чем громким заявлением. Однако через десять лет платформа Android произвела революцию, и не только в мобильной индустрии. Фактически, она породила совершенно новые отрасли промышленности и коренным образом изменила наш образ жизни, работы и общения.
Источник
С днем рождения, Android. Как появилась самая популярная мобильная ОС
Когда чуть больше тринадцати лет назад в околоайтишных кругах начали бродить слухи о том, что Google разрабатывает новую операционную систему на базе ядра Linux, никто не придал этому значения. Ну, появится еще один дистрибутив от всем известной корпорации, дело житейское. Тогда никто не мог предположить, что Google затевает настоящую революцию, и их разработка уже в ближайшем будущем завоюет рынок мобильных устройств. Релиз первой версии ОС Android состоялся 23 сентября 2008 года, сегодня популярнейшая на нашей планете мобильная платформа празднует очередной день рождения. Вспомним, как это было?
Изначально разработкой всем известной сегодня операционной системы занималась независимая компания Android, Inc., созданная в 2003 году в Пало Альто, Калифорния, четырьмя энтузиастами — Эндрю Рубином, Ричем Майнером, Ником Сирсом и Крисом Уайтом. Сам Рубин, когда-то работавший инженером в Apple, вспоминал, что его команда трудилась над операционной системой с прицелом на цифровые камеры. Именно они на заре «нулевых» считались наиболее «умными» и перспективными среди массовых электронных устройств.
Однако рынок цифровых фотокамер был все же достаточно узким, и убедить инвесторов в перспективности своего стартапа Рубину никак не удавалось. В какой-то период у юной компании Android, Inc. не хватало денег даже на оплату аренды, и разработчикам на полном серьезе грозило выселение из офиса. Ситуацию тогда спас близкий друг Эндрю Рубина Стив Перлман, который одолжил ему 10 000 долларов наличными, что буквально спасло фирму от разорения. В обмен Рубин предложил другу долю в компании, но Стив благородно отказался: «я сделал это просто потому, что хотел помочь Энди в трудной жизненной ситуации», — вспоминал потом он. Этот инцидент заставил основателя пересмотреть свои планы, и Рубин решил, что Android следует превратить в операционную систему для мобильных устройств, которая сможет конкурировать с Symbian и Microsoft Windows Mobile.
Сменив парадигму, Рубин с удвоенными усилиями принялся искать финансирование, и в течение 2005 года пытался заключить сделки с HTC и Samsung, но обе компании не оценили перспектив Android, и вкладываться в «сомнительный проект» отказались. Тем временем, в Google также проектировали компактную ОС для управления цифровыми камерами — с возможностью отображать на дисплее отснятые кадры, вспомогательную графику и устанавливать связь с компьютером. Однако зачем тратить ресурсы на создание чего-либо с нуля, когда можно купить почти готовое? Наверное, именно так посчитали в Маунтин-Вью, и в августе 2005 года приобрели Android, Inc. за 130 млн. долларов. Сам Эндрю Рубин при этом стал акционером и сотрудником Google. Позже, в 2010 году, вице-президент Google по корпоративному развитию Дэвид Лауи оценил эту сделку, как самую успешную за всю историю корпорации.
Ключевым моментом в истории Android стала принятая Google финансовая модель: не инновационная, но все же достаточно смелая для 2005 года. Корпорация решила бесплатно поставлять операционную систему разработчикам мобильных устройств, в то время как извлекать прибыль она собиралась благодаря сервисным услугам и агентскому проценту от реализации приложений. В первую очередь Google решила предложить Android производителям мобильных телефонов и операторам связи, делая особый акцент на том, что она предоставляет не просто обновляемую операционную систему, а целую инфраструктуру, включающую множество гибких возможностей. Именно эта концепция сыграла ключевую роль в росте популярности новой платформы, что позволило ей в конечном итоге завоевать лидерство на рынке мобильных устройств.
Бета-версию Android 1.0 для разработчиков Google выпустила 5 ноября 2007 года, а первое устройство с новой операционной системой на борту, T-Mobile G1, также известное под названием HTC Dream, было представлено публике в сентябре 2008 года — через год с небольшим после того, как в продажу поступил iPhone от Apple. Генеральный директор Google Эрик Шмидт не слишком переживал по поводу конкуренции с «яблочной» корпорацией: он знал, что в отличие от iOS новая платформа будет работать на тысячах различных мобильных устройств. Именно с этой целью было создано объединение под названием Open Handset Alliance, в которое вошли производители мобильных телефонов, включая HTC и Motorola, микросхем, такие как Qualcomm и Texas Instruments, и крупнейшие операторы сотовой связи в США, список которых возглавил T-Mobile. Для этого оператора компанией HTC и был разработан первый смартфон под управлением Android — телефон с 3,2-дюймовым сенсорным дисплеем, полноценной выдвижной клавиатурой, оперативной памятью на 192 Мбайта и флеш-памятью объемом 256 Мбайт, которая могла быть расширена за счет подключения внешней microSD-карты объемом до 16 Гбайт. Уже в первый год в США, Великобритании и Европе было продано более миллиона таких устройств.
Изначально в недрах Google бродили сомнения насчет того, должен ли Android поддерживать сенсорные экраны — инженеры полагали, что тачскрин вряд ли сможет полноценно заменить кнопочную клавиатуру. Именно поэтому первый прототип HTC Dream был так похож на флагманские мобильные телефоны Blackberry — он обладал миниатюрной QWERTY-клавиатурой, но не имел сенсорного экрана. Позже разработчики все-таки решили, что поддержка тачскрина необходима. Правильность этого решения подтвердило появление первого iPhone, а вскоре Nokia и BlackBerry анонсировали сенсорные смартфоны, призванные составить конкуренцию iPhone 3G.
Знакомый ныне всем и каждому логотип Android придумала штатный дизайнер Google Ирина Блок. Сама Ирина вспоминала, что единственным требованием, которое предъявило ей руководство корпорации, было сделать лого похожим на робота. По ее собственным словам, логотип должен был стать максимально простым и запоминающимся — при этом в своей работе Ирина вдохновлялась стандартными символами, обозначающими мужской и женский туалеты. К слову, созданного ею зеленого робота, ставшего талисманом и маскотом Android, зовут Энди — в честь первого разработчика и создателя Android Эндрю Рубина. Внешний вид логотипа несколько раз менялся, но вот созданный Блок персонаж дожил до наших дней в чуть модифицированном, но почти первозданном виде. Сам Эндрю Рубин вынужден был покинуть Google в 2014 году после обвинений в сексуальных домогательствах к симпатичным сотрудницам. В качестве «прощального подарка» он получил от бывшего работодателя выходное пособие в размере 90 млн. долларов, что, в общем-то, неплохо для бывшего программиста, но довольно скромно для создателя и первого идеолога операционной системы, завоевавшей мир.
Первая версия Android, конечно, в значительной степени отличалась от того, к чему пользователи привыкли сейчас. Но она включала такие сервисы, как Google Maps, приложения YouTube и Android Market, а также мобильный браузер — еще не Chrome, до рождения которого оставалось несколько лет, но вполне работоспособный. В Android 1.0 была реализована демонстрация на экране уведомлений и виджетов, значков приложений, присутствовал единый центр настроек. В отличие от iPhone, операционная система от Google поддерживала работу большого количества аппаратных кнопок смартфона, включая полноценную QWERTY-клавиатуру. Примечательно, что первая версия Android получила неофициальное наименование Apple Pie, «яблочный пирог», — видимо, в качестве своеобразной иронии над основным конкурентом Google.
За минувшие годы Android превратился в платформу для смартфонов, планшетов, цифровых проигрывателей, электронных книг, наручных часов, фитнес-браслетов, игровых приставок, ноутбуков, нетбуков, телевизоров, проекторов, одноплатных компьютеров, бытовых роботов и даже автомобильных мультимедиа-систем. Сейчас это самая популярная в мире мобильная платформа, и эта популярность в будущем, скорее всего, станет только расти.13 лет — небольшой срок, Android еще не вышел из юношеского возраста, а значит, зрелость у этой ОС еще впереди.
Источник