Android ArchiТекстура: Шари, Каркас, Компонент
⚡ Розумний підсумок
Android ArchiТекстура — це багаторівневий стек програмного забезпечення, який розділяє завдання на чотири основні рівні: рівень додатків, фреймворк додатків, Android Середовище виконання з основними бібліотеками та ядром Linux. Кожен рівень вирішує окремі проблеми та може оновлюватися незалежно.

Android Початковий випуск операційної системи відбувся у 2008 році. Навіть на початку команда, яка розробляла операційну систему, створила її на плечах гігантів. Окрім інтерфейсу користувача Android ОС представлена на поверхневому рівні, вона складається з кількох шарів. Ці рівні включають спеціальний код і технології з відкритим вихідним кодом, які постійно розвивалися десятиліттями.
Android був розроблений завдяки масштабним спільним зусиллям та інвестиціям багатьох компаній. Головною компанією, що займається розробкою Android, є GoogleСеред інших компаній є виробники пристроїв, такі як Samsung, LG; виробники процесорів, такі як Intel та ARM, але й інші.
Коли ми говоримо Android архітектури, ми маємо на увазі, як Android систему розроблено, сегментовано на рівні та створено для роботи як системи. Побудова такої складної системи вимагає ретельного структурування, щоб усі компоненти працювали злагоджено. Його архітектура гарантує, що багато компонентів функціонують як єдине ціле без збоїв.
Шари
Нижче наведено шари, які складають Android архітектури, як зазначено на схемі:
- додаток
- Рамкова програма
- Android Бібліотеки середовища виконання та ядра
- Ядро Linux
Розвитокping Операційна система для мобільних пристроїв пов'язана з низкою проблем. Використання такої багаторівневої архітектури забезпечує розбиття різних проблем на частини та їх вирішення на різних рівнях.
Багаторівнева архітектура допомагає розділити проблеми та гарантує, що розробникам програмного забезпечення для Android не доведеться мати справу з проблемами низького рівня на кожному кроці. Натомість вони можуть зосередитися на досягненні бізнес-цінності, пов’язаної з рівнем, на якому вони працюють.
Розробники працюють над тим, щоб програмам не потрібно було турбуватися про реалізацію інфраструктури програми. Цю роботу залишають розробники системи, які працюють над структурою програми.
Розробники Application Framework працюють на основі досвіду розробників і їм не потрібно турбуватися про драйвери низького рівня. Системні інженери низького рівня можуть повністю зосередитися на компонентах низького рівня, таких як Bluetooth або аудіодрайвери тощо.
AndroidБагаторівнева структура дає змогу застосовувати оновлення з виправленнями помилок або покращеннями до кожного окремого шару. Це гарантує, що зміни між шарами не заважатимуть одна одній. Це дає змогу людям, які працюють на різних рівнях ОС, працювати, перешкоджаючи один одному під час випуску нових оновлень і випусків.
Android додаток

Це рівень, з яким взаємодіють кінцеві користувачі. Саме на цьому рівні розробники програм публікують свої програми для запуску.
Android, за замовчуванням, постачається з набором програм, які роблять пристрої Android придатними для використання зі зсуву.
- Головна: Домашня сторінка на Android складається з піктограм запуску програм, які часто використовуються, до яких кінцевому користувачеві може знадобитися швидкий доступ. Ви можете запустити програми, натиснувши на панелі запуску цих програм. У верхній частині екрана є віджети, які показують мережу, рівень заряду акумулятора, дату та час.
- Контакти: Androidза замовчуванням надає засоби для зберігання та отримання контактів. Контактна інформація передається іншим програмам для покращення функціональності.
- Повідомлення: Android надає можливість надсилати та отримувати SMS-повідомлення.
- Email: Android поставляється з вбудованою підтримкою служб електронної пошти. Налаштування Android пристрій вимагає Gmail обліковий запис. Налаштування Gmail активує інші компоненти, залежні від електронної пошти Android пристроїв. Деякі функції, що залежать від електронної пошти, включають механізми безпеки та відновлення. Іншою функцією, яка залежить від електронної пошти, є доступ до Play Store, ринку для Android додатків.
- Браузер: Android поставляється з браузером за замовчуванням.
- Ящик сповіщень: Швіping Внизу на екрані відображається панель сповіщень. Вона містить події програм, про які користувач повинен знати. Над сповіщенням знаходиться набір ярликів для деяких часто використовуваних налаштувань пристрою, які користувачі можуть перемикати. Ці налаштування включають перемикачі для ввімкнення та вимкнення різних апаратних компонентів, таких як Bluetooth та Wi-Fi. Тривале натискання цих подій дозволяє нам перейти на сторінку їх конфігурацій.
Цей рівень також називають рівнем користувача, на відміну від нижчих рівнів, які здебільшого налаштовані на розробку додатків. Розробники додатків створюють та налаштовують інтерфейс своїх додатків на цьому рівні. Шари, розташовані нижче рівня додатків, не налаштовуються розробниками додатків. Вони вважаються частиною системного рівня. Ці шари налаштовуються виробниками пристроїв, Google команди Android або треті сторони, які хочуть використовувати Android вихідний код свого продукту чи дослідження.
Рамкова програма
Команда Android ОС розкриває основні бібліотеки та функції Android пристрій, який використовує a Java API. Це те, що відомо як Android рамка. Фреймворк надає безпечні та одноманітні засоби для використання Android ресурси пристрою.

1) Менеджер діяльності
Додатки використовують Android компонент діяльності для представлення точки входу в додаток. Android Діяльності — це компоненти, які містять інтерфейс користувача, з яким взаємодіють користувачі програми. Коли кінцеві користувачі взаємодіють із Android пристрою, вони запускаються, зупиняються та перескакують вперед і назад у багатьох програмах. Кожна подія навігації запускає активацію та дезактивацію багатьох дій у відповідних програмах.
Команда Android ActivityManager відповідає за передбачувану та послідовну поведінку під час переходів додатків. ActivityManager надає слот для розробників додатків, щоб їхні додатки реагували, коли Android ОС виконує глобальні дії. Програми можуть прослуховувати такі події, як обертання пристрою, знищення програми через брак пам’яті, переміщення програми поза фокусом тощо.
Деякі приклади того, як програми можуть реагувати на ці переходи, включають призупинення активності в грі, зупинкуping музика, що відтворюється під час телефонної розмови.
2) Менеджер вікон
Android може визначити інформацію про екран, щоб визначити вимоги, необхідні для створення вікон для програм. Windows це слоти, де ми можемо переглянути інтерфейс користувача програми. Android використовує диспетчер вікон, щоб надати цю інформацію програмам і системі під час їх роботи, щоб вони могли адаптуватися до режиму, у якому працює пристрій.
Диспетчер вікон допомагає налаштувати налаштовану програму. Програми можуть заповнювати весь екран для захоплюючого досвіду або ділитися екраном з іншими програмами. Android вмикає це, дозволяючи кілька вікон для кожної програми.
3) Менеджер розташування
міст Android Пристрої оснащені пристроями GPS, які можуть отримувати місцеположення користувача за допомогою супутникової інформації, до якої можна переходити аж до точності вимірювачів. Програмісти можуть запитувати у користувачів дозвіл на визначення місцезнаходження, надавати дані про місцезнаходження й усвідомлювати досвід.
Android також може використовувати бездротові технології для подальшого збагачення деталей розташування та збільшення покриття, коли пристрої знаходяться в закритому просторі. Android надає ці функції під егідою Location-Manager.
4) Менеджер телефонії
міст Android пристрої виконують основну роль у телефонії. Android використовує TelephoneManager для поєднання апаратних і програмних компонентів для надання функцій телефонії. Апаратні компоненти включають зовнішні частини, такі як SIM-карта, і частини пристрою, такі як мікрофон, камера та динаміки. Компоненти програмного забезпечення включають власні компоненти, такі як панель набору номера, телефонна книга, профілі сигналу дзвінка. Використовуючи TelephoneManager, розробник може розширити або налаштувати стандартну функцію виклику.
5) Менеджер ресурсів
Android-додаток зазвичай містить не лише код. Він також містить інші ресурси, такі як значки, аудіо- та відеофайли, анімацію, текстові файли тощо. Android допомагає забезпечити ефективний, оперативний доступ до цих ресурсів. Це також гарантує доставку потрібних ресурсів кінцевим користувачам. Наприклад, під час заповнення полів у програмах використовуються текстові файли відповідної мови.
6) Система перегляду
Android також надає засоби для легкого створення загальних візуальних компонентів, необхідних для взаємодії з програмою. Ці компоненти включають такі віджети, як кнопки, тримачі зображень, такі як ImageView, компоненти для відображення списку елементів, такі як ListView, і багато іншого. Компоненти є готовими, але їх також можна налаштувати відповідно до потреб розробників додатків і бренду.
7) Менеджер повідомлень
Менеджер сповіщень відповідає за інформування Android користувачі подій програми. Це робиться шляхом надання користувачам візуальних, звукових чи вібраційних сигналів або їх комбінації, коли відбувається подія. Ці події мають зовнішні та внутрішні тригери. Деякі приклади внутрішніх тригерів – це події стану низького заряду акумулятора, які викликають сповіщення про низький рівень заряду акумулятора. Іншим прикладом є визначені користувачем події, такі як будильник. Деякі приклади зовнішніх тригерів включають нові повідомлення або виявлені нові мережі Wi-Fi.
Android надає програмістам і кінцевим користувачам засоби для точного налаштування системи сповіщень. Це може допомогти гарантувати, що вони можуть надсилати й отримувати події сповіщень у спосіб, який найкраще підходить для них та їхнього поточного середовища.
8) Менеджер пакетів
Android також надає доступ до інформації про встановлені програми. Android тримає track інформації про програму, такої як події встановлення та видалення, дозволи, які запитує програма, та використання ресурсів, наприклад, споживання пам’яті.
Ця інформація може дозволити розробникам активувати або деактивувати функції своїх програм залежно від нових функцій, представлених супутніми програмами.
9) Постачальник контенту
Android має стандартизований спосіб обміну даними між програмами на пристрої за допомогою постачальника вмісту. Розробники можуть використовувати постачальника вмісту для надання даних іншим програмам. Наприклад, вони можуть зробити пошук даних додатків із зовнішніх пошукових програм. Android сам надає такі дані, як дані календаря, контактні дані тощо, використовуючи ту саму систему.
Android Середа виконання та основні/власні бібліотеки

1) Android Час виконання
Android в даний час використовує Android Середа виконання (ART) для виконання коду програми. ART передує Dalvik Runtime, який компілює код розробника у виконувані файли Dalvik (файли DEX). Ці середовища виконання оптимізовані для платформи android з урахуванням обмежень процесора та пам’яті мобільних пристроїв.
Середовище виконання перетворює код, написаний програмістами, у машинний код, який виконує обчислення та використовує компоненти фреймворку Android для забезпечення функціональності. Android містить кілька додатків і системних компонентів, кожен з яких працює у своїх процесах.
Основні бібліотеки
У цьому сегменті ми обговоримо деякі з основних бібліотек, які присутні в Android операційна система.
2) MediaFramework
Android також вбудовано підтримує популярні медіакодеки, що полегшує роботу програм, створених на Android платформа для використання/відтворення мультимедійних компонентів із коробки.
3) SQLite
Android також має SQLite база даних це дозволяє додаткам мати дуже швидку власну функціональність бази даних без потреби у сторонніх бібліотеках.
4) Freetype
Android поставляється з попередньо встановленим швидким і гнучким механізмом шрифтів. Це дає змогу розробникам програм стилізувати компоненти своєї програми та надавати багатий досвід, який передає наміри розробника.
5) OpenGL
Android також постачається з графічною системою OpenGL. Це бібліотека C, яка допомагає Android використовувати апаратні компоненти для візуалізації 2D і 3D графіки в реальному часі.
6) SSL
Android також має вбудований рівень безпеки для безпечного зв’язку між програмами Android та інші пристрої, такі як сервери, інші мобільні пристрої, маршрутизатори.
7) SGL
Android поставляється з графічною бібліотекою, реалізованою в низькорівневому коді, який ефективно відображає графіку для платформи Android. Він працює з компонентами вищого рівня Android рамки Android графічний конвеєр.
8) Libc
ядро Android містить бібліотеки, написані на C і C++, які є мовами низького рівня, призначеними для вбудованого використання, які допомагають максимізувати продуктивність. Libc надає засоби для надання низькорівневих системних функцій, таких як Threads, Sockets, IO тощо, для цих бібліотек.
9) Webkit
Це механізм браузера з відкритим кодом, який використовується як основа для створення браузерів. За замовчуванням Android браузер до версії 4.4 KitKat використовує його для візуалізації веб-сторінок. Це дозволяє розробникам додатків відтворювати веб-компоненти в системі перегляду за допомогою WebView. Це дозволяє програмам інтегрувати веб-компоненти у свої функції.
10) Менеджер поверхні
Менеджер поверхні відповідає за забезпечення плавного рендерингу екранів програми. Це робиться шляхом компонування 2D і 3D графіки для візуалізації. Крім того, це дозволяє виконувати буферизацію поза екраном.
Ядро Linux
Коренева складова в Android Системою є ядро Linux. Це основа, яка дозволяє всім Androidфункціональність.
Ядро Linux — це перевірене в боях програмне забезпечення, яке використовувалося в розробціping операційні системи для пристроїв широкого діапазону, від суперкомп'ютерів до невеликих гаджетів. Він має обмежені можливості обробки, як невеликі мережеві гаджети для Інтернету речей (IoT).
Ядро Linux можна налаштувати відповідно до специфікацій пристрою, щоб виробники могли його створювати Android пристрої з різними можливостями відповідно до досвіду користувача.
По відношенню до Android, ядро відповідає за багато базових функцій, включаючи, але не обмежуючись цим:
- Драйвери пристроїв
- Управління пам'яттю
- Управління процесами
Розглянемо деякі функції:
Драйвери пристроїв
Ядро Linux містить драйвери, необхідні для того, щоб операційна система могла працювати з різними апаратними компонентами. Ці драйвери забезпечують стандартний інтерфейс, з яким можуть працювати апаратні компоненти різних виробників.
Це дає змогу виробникам пристроїв отримувати різні компоненти, наприклад компоненти Bluetooth, компоненти Wi-Fi, компоненти камери. Поки виробники відповідають Android стандартні характеристики, безперебійна інтеграція.
1) Драйвер USB
Linux також надає Android із засобами зв’язку з пристроями USB. Сучасні пристрої постачаються з різними портами USB, включаючи USB 2.0 і нові версії USB, включаючи USB-C. Ці драйвери дозволяють використовувати USB-порт для заряджання, передачі живих даних, таких як журнали з Android пристроїв і взаємодіяти з android файлової системи.
2) Драйвер Bluetooth
Ядро Linux забезпечує підтримку взаємодії з апаратними компонентами Bluetooth. Він забезпечує спосіб читання та запису даних, отриманих із підтримуваних радіочастот bluetooth. Він також надає набір зручностей для Android щоб налаштувати Bluetooth.
3) Драйвер Wi-Fi
Ядро Linux надає драйвери для інтеграції апаратних компонентів мережі WiFi. Увімкнено компоненти WiFi, вбудовані в мобільні пристрої Android пристрої для підключення до мереж wifi. Драйвер дозволяє компонентам Wi-Fi транслювати мережі Wi-Fi і створювати точки доступу.
4) Драйвер дисплея
Android дає можливість взаємодіяти з компонентами дисплея. Для більшості пристроїв компонентом інтерфейсу є сенсорний рідкокристалічний екран. Він підтримує налаштування та малювання пікселів.
5) Аудіодрайвер
Android пристрої зазвичай постачаються з апаратними компонентами для введення та виведення аудіо. Аудіодрайвери в ядрі дозволяють Android система для використання аудіо, отриманого від цих компонентів, а також для виведення аудіо.
6) Менеджер живлення
міст Android пристрої використовуються, відключені від розеток. Таким чином, вони залежать від батарей, які живлять їх протягом значної частини їх використання. Linux Kernel поставляється з системою керування живленням, яку можна налаштувати відповідно до потреб пристроїв, які його використовують.
Android ОС використовує диспетчер живлення, щоб активувати інші компоненти пристрою. Це робиться шляхом трансляції різних станів, пов’язаних із потужністю. Ці стани: очікування, сон і низький заряд батареї. Увімкнено Android, диспетчер живлення налаштовано на режим сну за замовчуванням, щоб забезпечити максимальний час автономної роботи.
Power Manager надає засоби для реагування програм на різні режими живлення. Програми також можуть змінювати свою поведінку відповідно до поточного стану живлення пристрою.
Програма також може запитувати зміну політик живлення за замовчуванням. Програми можуть досягти бажаної функціональності, такої як keeping активні апаратні компоненти. Прикладом є keeping екран активний під час читання книги, щоб користувачеві не переривали роботу. Інший приклад — keeping аудіокомпоненти вмикалися під час прослуховування музики у фоновому режимі.
7) Флеш-пам'ять
міст Android пристрої використовують флеш-пам'ять як засіб зберігання. Флеш-пам'ять працює швидко і займає менше місця, що робить її ідеальною для невеликих пристроїв. Ядро Linux надає засоби для Android пристрої для читання та запису у флеш-пам'ять. Він надає засоби для розділення пам’яті таким чином, щоб ОС та інші програми могли легко та ефективно спільно використовувати ресурс пам’яті.
8) Сполучна речовина
Android містить багато додатків і системних компонентів, кожен з яких працює у своїх процесах. У більшості випадків ці процеси мають бути ізольовані один від одного, щоб запобігти перешкодам і пошкодженню даних. Проте бувають випадки, коли ми хочемо передати дані від одного процесу до іншого.
Ядро Linux дає змогу обмінюватися даними, надаючи драйвери зв’язування. Драйвери Binder забезпечують міжпроцесний зв’язок, IPC. За допомогою процесів IPC можна виявляти інші процеси та обмінюватися інформацією.
Управління пам'яттю
Іншим обов’язком ядра Linux є керування пам’яттю. Під час роботи різних програм ядро гарантує, що простір пам’яті, який вони використовують, не конфліктує та не перезаписує одне одного.
Це також допомагає гарантувати, що всі запущені програми отримують достатню кількість пам’яті для роботи, гарантуючи, що жодна програма не займає надто багато місця.
Управління процесами
Кожна програма в Android виконується в процесі. Ядро також відповідає за керування процесами. Це означає, що воно відповідає за створення, призупинення, зупинкуping, завершення або припинення процесів.
Ядро забезпечує різні функції, такі як запуск кількох процесів одночасно, обмін даними між процесами, запуск процесів у фоновому режимі тощо.
Оскільки кожному процесу для належної роботи потрібен власний простір пам’яті, ядро гарантує, що простори пам’яті, виділені для кожного процесу, захищені від інших процесів. Це також гарантує, що ресурси, як Оперативна пам'ять виділені процесам звільняються, коли процеси вимикаються.
Ядро Linux також відповідає за розподіл роботи між процесорами, присутніми на пристрої. Це дає змогу максимізувати продуктивність пристроїв із декількома ядрами, оскільки різні програми виконуватимуть процеси на різних ядрах.
Ядро Linux виконує більше завдань під капотом, включаючи забезпечення безпеки.

