Тема 3. Android

Android - операційна система для смартфонів, планшетів і нетбуків

Android - операційна система для смартфонів, планшетів і нетбуків. Компанія Google придбала розробника програмного забезпечення Android inc. у 2005 році. Операційна система Android заснована на модифікованому ядрі Linux. Згодом, Google та інші учасники Open Headset Alliance співпрацювали для спільної розробки цієї нової операційної системи. Далі Android Open Source Project (AOSP) доручено підтримання та подальший розвиток платформи. У Android є велика спільнота розробників, які розширюють функціональність пристроїв.

OS Android має свій офіційний магазин з продажу додатків - Android Market. Включає він в себе як платні програми, так і безкоштовні. В даний момент, для України доступні для завантаження тільки безкоштовні програми і ігри. Так як OS Android є відкритою, користувачеві надається можливість завантажувати додатки і з інших ресурсів.

Під Android розробники, в основному, пишуть програми на мові Java, керують пристроєм через розроблені Google бібліотеки.

Офіційно про OS Android стало відомо 5 листопада 2007 року, коли було оголошено підставу Open Headset Alliance - консорціум з 80 компаній. Більшу частину коду Android була випущена під ліцензією Apache.

Android програми включають в себе java-додатки і бібліотеки, які запускаються віртуальною машиною Dalvik з JIT компілятором. Бібліотеки включають в себе систему управління, графіку OpenGL ES 2.0, движок WebKit, графічний движок SGL, SSL і бібліотеки Bionic. OS Android складається з 12 мільйонів рядків коду, в тому числі 3-х мільйонів рядків XML, 2.8 мільйонів рядків на C, 2.1 мільйона рядків на Java і 1.75 мільйона рядків на C ++.

Історія

Компанія Android inc. була заснована в жовтні 2003 року в Пало Альто, штат Каліфорнія. Засновниками Android inc. були Енді Рубін, Річ Майнер, Нік Сірс і Кріс Уайт.

У серпні 2005 року компанія Google придбала Android inc. Після цього Android inc. стала дочірньою компанією Google. Після покупки Енді Рубін, Річ Майнер і Кріс Уайт залишилися в Android inc. Після поглинання Android inc., В мережі почали з'являтися чутки про те, що Google хоче вийти на ринок мобільних телефонів.

Отримавши підтримку Google, команда на чолі з Енді Рубіном почала працювати над операційною системою базується на ядрі Linux. Тоді ж, в грудні 2006 року поповзли чутки про те, що Google планує випустити смартфон під свої брендом, так званий "Гуглофон".

Всі ці чутки спростував Ерік Шмідт, заявивши наступне: «Сьогоднішня заява носить більш амбітний характер, ніж випуск смартфона під нашим брендом, про що преса спекулює останні тижні. Наше бачення полягає в тому, що найпотужніша платформа повинна віддати свої сили тисячам різних моделей телефонів ». Після цих слів 5 листопада 2007 року та був представлений Open Headset Alliance - консорціум з безлічі компаній, в який увійшли такі гіганти як: Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, Texas Instruments та інші.

Назви кожної чергової версії ОС Android представляє собою назву будь-якого десерту. Перші букви найменувань в порядку версій відповідають літерами латинського алфавіту.

архітектура

архітектура


Рівень додатків (Applications)

До складу Android входить комплект базових додатків: клієнти електронної пошти і SMS, календар, різні карти, браузер, програма для управління контактами і багато іншого. Всі додатки, що запускаються на платформі Android написані на мові Java.

Рівень каркаса додатків (Application Framework)

Android дозволяє використовувати всю міць API, використовуваного в додатках ядра. Архітектура побудована таким чином, що будь-який додаток може використовувати вже реалізовані можливості іншої програми за умови, що останнім відкриє доступ на використання своєї функціональності. Таким чином, архітектура реалізує принцип багаторазового використання компонентів ОС і додатків.

Основою всіх додатків є набір систем і служб: 1. Система уявлень (View System) - це багатий набір уявлень з розширюється функціональністю, який служить для побудови зовнішнього вигляду додатків, що включає такі компоненти, як списки, таблиці, поля введення, кнопки і т. п. 2. Контент-провайдери (Content Providers) - це служби, які дозволяють додаткам отримувати доступ до даних інших додатків, а також надавати доступ до своїх даних. 3. Менеджер ресурсів (Resource Manager) призначений для доступу до строкових, графічним і іншим типам ресурсів. 4. Менеджер повідомлень (Notification Manager) дозволяє будь-якому додатком відображати призначені для користувача повідомлення в рядку статусу. 5. Менеджер дій (Activity Manager) управляє життєвим циклом додатків і надає систему навігації по історії роботи з діями.

Рівень бібліотек (Libraries)

Платформа Android включає набір C / C ++ бібліотек, використовуваних різними компонентами ОС. Для розробників доступ до функцій цих бібліотек реалізований через використання Application Framework. Нижче представлені деякі з них: 1. System C library - BSD-реалізація стандартної системної бібліотеки C (libc) для вбудованих пристроїв, заснованих на Linux. 2. Media Libraries - бібліотеки, засновані на PacketVideo's OpenCORE, призначені для підтримки програвання і записи популярних аудіо- і відео- форматів (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG і т.п.). 3. Surface Manager - менеджер поверхонь управляє доступом до підсистеми відображення 2D- і 3D- графічних шарів. 4. LibWebCore - сучасний движок web-браузера, який надає всю міць вбудованого Android-браузера. 5. SGL - движок для роботи з 2D-графікою. 6. 3D libraries - движок для роботи з 3D-графікою, заснований на OpenGL ES 1.0 API. 7. FreeType - бібліотека, призначена для роботи зі шрифтами. 8. SQLite - потужний легкий движок для роботи з реляційними БД.

Рівень середовища виконання (Android Runtime)

До складу Android входить набір бібліотек ядра, які надають більшу частину функціональності бібліотек ядра мови Java.

Платформа використовує оптимізовану, регістр-орієнтовану віртуальну машину Dalvik, на відміну від неї стандартна віртуальна машина Java - стек-орієнтована. Кожна програма запускається в своєму власному процесі, зі своїм власним примірником віртуальної машини. Dalvik використовує формат Dalvik Executable (* .dex), оптимізований для мінімального використання пам'яті додатком. Це забезпечується такими базовими функціями ядра Linux, як організація потокової обробки і низькорівневе управління пам'яттю. Байт-код Java, на якому написані ваші програми, компілюються в dex-формат за допомогою утиліти dx, що входить до складу SDK.

Рівень ядра Linux (Linux Kernel)

Android заснований на ОС Linux версії 2.6, тим самим платформі доступні системні служби ядра, такі як управління пам'яттю і процесами, забезпечення безпеки, робота з мережею і драйверами. Також ядро ​​служить шаром абстракції між апаратним та програмним забезпеченням.

Доступні бібліотеки:

§ Bionic - бібліотека стандартних функцій, несумісна з libc § SSL - шифрування § Media Framework (PacketVideo OpenCORE, MPEG4, H.264, MP3, AAC, AMR, JPG, PNG) § Surface Manager § LibWebCore (на базі WebKit) § SGL - 2D-графіка § OpenGL ES - 3D-бібліотека § FreeType - шрифти § SQLite - легка СУБД

У порівнянні зі звичайними додатками Linux, додатки Android підкоряються додатковим правилам: § Content Providers - обмін даними між додатками; § Resource Manager - доступ до таких ресурсів, як файли XML, PNG, JPEG; § Notification Manager - доступ до рядка стану; § Activity Manager - управління активними додатками.

Для Android був розроблений формат архівних виконуваних файлів-додатків .apk

Історія

архітектура

(C) http://android.com.ua