Подписаться на получение новых статей на почту:

Android. История, архитектура, software development. Шаг №75

Всем привет. Рассмотрев в прошлой статье подключение AVR к Windows через USB, заменим хост на Android. Но для этого давайте познакомимся с этой ОС, т.к. последующие проекты будут тесно связаны с ней. Итак само определение, немного истории и основы работы с ней.

Android – это операционная система для многих  устройств, например таких как смартфоны, планшеты, наручные часы, телевизоры, бытовые роботы и многое другое. Историю можна начать с 2002 года, тогда основатели компании Google посетили лекцию Энди Рубина (Andy Rubin) о разработке программного обеспечения для планшета T-Mobile Sidekick. Эта тема их настолько заинтересовала, что Google, позже купила стартап Энди, сделав его самого, позже, директором по мобильным платформам.

 

стартап Android

Начало Android

В июле 2005 года корпорация Google приобрела стартап Android Inc., чтобы приступить к разработке платформы Android. Ведущими фигурантами в Android Inc были: Энди Рубин (Andy Rubin), Рич Майнер (Rich Miner), Ник Сиэрс (Nick Sears), Крис Уайт(Chris White). 5 ноября 2007 года компания официально объявила о создании Open Handset Alliance (OHA), где сплотились лидирующие компании в области мобильной связи, например: — Sprint Nextel, T-Mobile, Motorola, Samsung, Sony Ericsson, Toshiba, Vodafone, Google, Intel, Texas Instruments. Члены альянса приняли решение предоставить значительный объем интеллектуальной собственности по свободной лицензии  Apache, т.е. производители мобильных устройств не должны платить никаких лицензионных взносов за установку Android на свои телефоны или другие устройства.

Early Look SDK

12 ноября 2007 года альянс представил первую версию пакета для разработчиков Android «Early Look» SDK и эмулятор Android. Это был предварительный вариант.  Android SDK

В сентябре 2008 года компания T-Mobile анонсировала выход первого смартфона работающего на платформе Android. Также (23 сентября) Google аннонсиовала выход Android SDK Release Candidate 1.0.

Доступ к Android

В октябре 2008 года Google открыла доступ к исходному коду платформы Android в соответствии со свободной лицензией Apache.

Небольшое отступление. В ходе эволюции Android, всем версиям давали названия исходя из любимых вкусностей программистов, работающих над ОС: 1,5 – «Cupcake» (кекс); 1,6 – «Donut» (пончик); 2,0 – «Eclair» (эклер); 2,1 – «Froyo» (замороженный йогурт); 2.3 – «Gingerbread» (имбирный пряник); 3.0 – «Honeycomb» (медовые соты); 4.0 – «Ice Cream Sandwich» (мороженое-сандвич); 4.1, 4,2 и 4,3 получили название «Jelly Bean» (желейная конфета); 4.4 названа в честь популярного шоколадного батончика – «KitKat»; - Android 5.0  Lollipop «Леденец на палочке»; - Android 6.0 Marshmallow (кондитерское изделие цилиндрической формы, похожее немного на зефир и пастилу, но отличающееся по составу); - Android 7.0 Nougat (Нуга);

Android 1.5 «Cupcake» Android 1.6 «Donut»Android 2.0 «Eclair»

В 2009 году было представлено целых четыре обновления платформы. Так, в феврале вышла версия 1.1 с исправлением различных ошибок. В апреле и сентябре вышли ещё два обновления — 1.5 «Cupcake» и 1.6 «Donut» соответственно. Обновление «Cupcake» привнесло существенные изменения: виртуальная клавиатура, воспроизведение и запись видео, браузер и другие. В «Donut» впервые появились поддержка различных разрешений и плотности экрана и сетей CDMA. В октябре того же года вышла версия операционной системы Android 2.0 «Eclair» с поддержкой нескольких аккаунтов Google, поддержкой браузером языка HTML5 и других нововведений, а также после небольшого обновления в пределах версии «Eclair» появились «живые обои» и был видоизменён экран блокировки.

Android 2.2 «Froyo»Android 2.3 «Gingerbread»

В середине 2010 года Google представила Android версии 2.2 под наименованием «Froyo», а в конце 2010 годаAndroid 2.3 «Gingerbread». После обновления «Froyo» стало возможно использовать смартфон в качестве точки доступа, использовать традиционную блокировку смартфона цифровым или буквенно-цифровым паролем и другие изменения, а обновление «Gingerbread» привнесло более полный контроль над функцией копирования и вставки, улучшение управления питанием и контроля над приложениями, поддержку нескольких камер на устройстве и т. д.

Android 3.0 «Honeycomb»22 февраля 2011 года была официально представлена ориентированная на интернет-планшеты платформа Android 3.0 «Honeycomb». Исходный код этой версии так и не был открыт компанией Google в связи с опасениями портирования её на смартфоны, для которых она не была предназначена.

 

 

Android 4.0 «Ice Cream Sandwich»

интерфейс «Holo»Android 4.0 «Ice Cream Sandwich», вышедшая 19 октября 2011 года, — первая универсальная платформа, которая предназначена как для планшетов, так и для смартфонов. Также обновление принесло новый интерфейс «Holo», который использовался до Android 4.4.4 KitKat (был заменён на интерфейс на основе Material Design в Android 5).

 

Android 4.1, 4.2, 4.3 «Jelly Bean» В июне 2012 вышло обновление под названием «Jelly Bean» с порядковым номером 4.1, который сменился на 4.2 вследствие небольшого обновления в конце октября того же года и на 4.3 после обновления в июле 2013.

 

 

Android 4.4 «KitKat»

31 октября 2013 года Google представила следующую версию операционной системы Android 4.4, которая получила название шоколадного батончика «KitKat» по соглашению с компанией производителем Nestlé. Впервые KitKat появился на Nexus 5; эта версия Android оптимизирована для работы на более широком наборе устройств, имеющих 512 МБ ОЗУ в качестве рекомендуемого минимума.

 

 

Android 5.0 Lollipop

25 июня 2014 Google представили Android L (5.0  Lollipop «Леденец на палочке»), доступный для разработчиков, пользователей смартфонов Nexus, а также некоторых других смартфонов. 15 октября 2014 года была официально анонсирована Android 5.0 Lollipop. Главное обновление системы — новый дизайн Material design. Также, если на Android-устройстве установлен пароль или графический ключ, и если поблизости находятся часы хозяина устройства с Android Wear, то устройство автоматически разблокируется. Внутренние изменения основываются на переходе на виртуальную машину Android Runtime (ART), официально сменяющую Dalvik для повышения производительности и оптимизации, направленной на повышение энергоэффективности системы.

Android Wear

Android AutoAndroid TV

 

 

 

В 2014 году была анонсирована операционная система для носимых устройств Android Wear. Также на Google I/O были представлены версии Android Auto (для автомобилей) и Android TV (для телевизоров), тем самым Android перестал быть операционной системой только для мобильных устройств.

9 декабря 2014 Google заменила официальную среду разработки, основанную на Eclipse (adt-bundle), на Android Studio.

Android 6.0 Marshmallow29 мая 2015 Google представила Android M. По словам Google главная цель новой операционной системы — улучшить пользовательский опыт общения со смартфоном, сделать взаимодействие интуитивнее и проще. 17 августа 2015 официально стало известно, что Android M получила название Android 6.0 Marshmallow.

 

Android 7.0 Nougat19 мая 2016 года на конференции разработчиков Google I/O была представлена Android N, а 1 июля Google официально объявила название этой версии Android — Android 7.0 Nougat. Рассылка финальной версии операционной системы стартовала 22 августа 2016 года. Поддерживаемые устройства: Huawei Nexus 6P, LG Nexus 5X, Motorola Nexus 6, HTC Nexus 9, ASUS Nexus Player, Google Pixel C и General Mobile 4G.

Android OВ марте 2017 года был представлен Android O для разработчиков.

Ниже на рисунке хронология обновления версий.

 

 

Хронология обновлений Android

 

 

 

 

 

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

Давайте теперь немножко познакомимся с архитектурой ОС. Как видно из рисунка, ниже, архитектуру можно представить слоями.

Архитектура Android

В самом низу находится основа  — это модифицированная и урезанная версия Linux. Использование ядра, которого, снизило стоимость разработки. Модифицированное ядро (разработчиками Android) является уровнем абстракции между «железом» мобильных устройств и soft – ом. И как видно, из рисунка, обеспечивает функционирование системы, отвечая за безопасность, предоставляя сетевой стек и модель драйверов. Далее по иерархии идет набор библиотек, которые в свою очередь являются базовым функционалом для реализации алгоритмов вышележащих уровней. Библиотеки реализованы на C/C++ и скомпилированы под конкретное аппаратное обеспечение устройства, вместе с которым они и поставляются производителем в предустановленном виде. Здесь же располагается СРЕДА ВЫПОЛНЕНИЯ АНДРОИД - Android Runtime. Куда входит набор библиотек ядра (Core Libraries) и на сегодняшний день уже ART. Что представляет собой среду выполнения Android-приложений. Появилась данная среда начиная с версии 4.4, в качестве выбора между машинами: последней и виртуальной машиной Dalvik (разработанной Google). Я думаю, что мы должны познакомится с обеими машинами, т.к. не все успевают за прогрессом)). Итак на рисунке ниже представлено сравнение архитектуры Dalvik и ART. Первая осуществляла доступ к устройствам и системным службам Android используя специальный формат DEX для хранения двоичных кодов, который оптимизирован для использования минимального объема памяти. Dalvik  был основан на регистрах, что увеличивает скорость выполнения и уменьшения бинарников. Такой механизм позволяет разработчику приложения практически не привязываться к конкретной архитектуре или «железу», но наносит серьезный урон производительности, нагружая процессор во время компиляции. Конечно, после первого самого «тормозного» запуска программы часть полученного «нативного» кода сохраняется в кеше, однако полностью проблему лагов это не решает.

Работа Dalvik and ART

Библиотеки обеспечивают большую часть низкоуровневой функциональности, доступной библиотекам ядра языка Java.

Машина ART уже начиная с 5-ой версии, как основной и единственной, при установке Java-код приложения сразу компилирует его в машинный код (AOT (Ahead-Of-Time) -компиляция), тогда как Dalvik компилировал Java-код в свой байт код dex (Dalvik executable), а после запуска программы компилировал его в машинный код в реальном времени (JIT (Just-In-Time Compilation) -компиляция). То есть пользователь запускает программу уже скомпилированной, что существенно ускоряет ее открытие и выполнение. Поэтому ART экономит энергию. Правда, это происходит за счёт увеличения используемого пространства и замедления инсталляции приложений. Google уверяет, что замедление не критическое. Инновации вроде ART стали возможны благодаря увеличению объёма памяти в современных смартфонах. ART полностью совместим с байткодом Dalvik, так что с точки зрения разработчиков ничего не изменилось: можно писать приложения такие же, как раньше. Новая среда при установке приложения создаёт исполняемый файл формата ELF с машинным кодом.

Выше лежит слой Application Framework или уровень каркаса приложений, через который разработчики получают доступ к API, предоставляемым компонентами системы, лежащими ниже уровнем. И в самом верху у нас находится уровень приложений (Application) – базовые приложения предустановленные на ОС, например браузер, карты и т.д.

Чтобы писать приложения под данную ОС нам необходима среда разработки. До 2013 года это была Eclipse с установкой плагина ADT, а также JDK, JRE и Android SDK. 16 мая 2013 года на конференции Google I/O представила новую среду разработки Android Studio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains.  Первая стабильная версия 1.0 была выпущена в декабре 2014 года, тогда же прекратилась поддержка плагина Android Development Tools (ADT) для Eclipse.

Логотип Eclipse and Android Studio

Ну и последнее это архитектура Android-приложения. В общих чертах она состоит из:

- Java-классов, являющихся подклассами основных классов из Android SDK и Java-классов, у которых нет там родителей; - Манифеста приложения ( XML файл); - Ресурсов - наподобие строк, изображений, слои GUI (XML файлы), объявления меню (XML файлы), текстовые строки и др.; — Файлов (Файлы «общего назначения, Файлы БД, Файлы Opaque Binary Blob (OBB) (зашифрованная файловая система), закешированные файлы и др.;

Что ж на этом можно и заканчивать. В этой статье мы с Вами познакомились c Android-ом, основами архитектуры системы и приложения, а также необходимое ПО для дальнейшей работы с этой системой.  Мы с Вами продолжим знакомство ,с ней, уже на примере передачи данных  мк – хост, где в качестве хоста у нас уже будет выступать Android. И сравним с примером на Windows. Следующий шаг предполагает знание языка java, но мы с Вами уже с ним знакомились  в статье №51, где научились передавать данные контроллера через небольшое приложение (на java) в базу данных. Также следующий пример разберем с помощью среды разработки Eclipse, и на примере телефона под ОС Android 4.2.  Позже обязательно перенесем его на Android Studio и более новое «железо». На этом сегодня и остановимся. Всем пока.

Просмотрено 1102 раз.

Я на Google+

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

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe without commenting