Android Archiструктура: Приложни слоеве, рамка, компонент

Android Първоначалното издание на операционната система беше през 2008 г. Дори в началото екипът зад операционната система я изгради на върха на раменете на гиганти. Отвъд потребителския интерфейс, който Android ОС се представя на повърхностно ниво, тя се състои от множество слоеве. Тези слоеве включват потребителски код и технологии с отворен код, които са в процес на непрекъснато развитие от десетилетия.

Android е разработен чрез огромни съвместни усилия и инвестиции от много компании. Основната компания зад разработката на Android е Google. Други компании включват производители на устройства като Samsung, LG; производители на процесори като Intel и ARM, но за да назовем само няколко.

Когато говорим за това Android архитектура, имаме предвид как Android системата е проектирана, сегментирана на слоеве и изградена, за да работи като система. Изграждането на такава сложна система изисква внимателно структуриране, за да се гарантира, че всички компоненти работят заедно сплотено. Архитектурата му гарантира, че множеството компоненти функционират като едно цяло без сривове.

Слоеве

Следват слоевете, които съставят Android архитектура, както е отбелязано на диаграмата:

  1. Приложение
  2. Рамка на приложенията
  3. Android Runtime и основни библиотеки
  4. Linux Kernel

Разработването на операционна система за мобилни устройства идва с набор от предизвикателства. Използването на тази многослойна архитектура гарантира, че различните проблеми се разбиват и решават на различни нива.

Слоестата архитектура помага за разделяне на опасенията и гарантира, че разработчиците на софтуер за android не трябва да се справят с проблеми на ниско ниво на всяка крачка. Вместо това те могат да се съсредоточат върху предоставянето на бизнес стойност, свързана със слоя, върху който работят.

Разработчиците работят върху това приложенията да не се притесняват за внедряването на рамката на приложението. Тази работа е оставена на разработчиците на системата, работещи върху рамката на приложението.

Разработчиците на Application Framework работят върху опита на разработчиците и не трябва да се притесняват за драйверите от ниско ниво. Системните инженери на ниско ниво могат да се съсредоточат изцяло върху компоненти на ниско ниво, като Bluetooth или аудио драйвери и други подобни.

AndroidСлоестата структура на дава възможност за прилагане на актуализации с корекции на грешки или подобрения към всеки слой самостоятелно. Това гарантира, че промените между слоевете не си пречат една на друга. Това дава възможност на хората, работещи на различно ниво на операционната система, да работят, като се възпрепятстват взаимно, докато се правят нови актуализации и версии.

Android Приложение

Android Приложение
Android Приложение

Това е слоят, с който взаимодействат крайните потребители. Именно на този слой разработчиците на приложения публикуват своите приложения за изпълнение.

Android, по подразбиране, идва с набор от приложения, които правят устройствата с android използваеми от изместването.

  1. Начало: Началната страница на Android се състои от икони за стартиране на често използвани приложения, до които крайният потребител може да иска бърз достъп. Можете да стартирате приложенията, като щракнете върху стартовите панели на тези приложения. В най-горната част на екрана имате уиджети, които показват мрежата, нивото на батерията, датата и часа.
  2. За контакти: Android, по подразбиране, предоставя средство за съхраняване и извличане на контакти. Информацията за контакт се споделя между други приложения за подобряване на функционалността.
  3. мнения: Android предоставя възможност за изпращане и получаване на SMS съобщения.
  4. Мейл: Android идва с вградена поддръжка за имейл услуги. Настройване на Android устройството изисква акаунт в Gmail. Настройването на Gmail активира други зависещи от имейл компоненти Android устройства. Някои зависещи от имейл функции включват механизми за сигурност и възстановяване. Друга функция, зависима от имейла, е достъпът до Play Store, пазар за Android приложения.
  5. Браузър: Android идва с браузър по подразбиране.
  6. Чекмедже за известия: Плъзгането надолу по екрана показва чекмеджето за известия. Той предоставя събития на приложението, за които потребителят трябва да знае. Над известието има набор от преки пътища към някои често използвани настройки на устройството, които потребителите могат да превключват. Тези настройки включват превключватели за включване и изключване за различни хардуерни компоненти като Bluetooth и Wifi. Продължителното натискане на тези събития ни позволява да навигираме до страницата им с конфигурации.

Този слой също се нарича потребителско ниво за разлика от слоевете по-долу, които са настроени предимно за разработка на приложения. Разработчиците на приложения създават и персонализират преживяванията за своите приложения на този слой. Слоевете под слоя на приложението не се персонализират от разработчиците на приложения. Те се считат за част от системния слой. Тези слоеве са персонализирани от производители на устройства, екипи на Google за android или трети страни, които искат да използват Android изходен код за техния продукт или изследване.

Рамка на приложенията

- Android OS разкрива основните библиотеки и функции на Android устройство, което използва a Java API. Това е известно като Android рамка. Рамката разкрива безопасно и унифицирано средство за използване Android ресурси на устройството.

Рамка на приложенията
Приложна рамка

1) Мениджър на дейности

Приложенията използват Android компонент за дейност за представяне на входна точка към приложението. Android Дейностите са компонентите, които съдържат потребителския интерфейс, с който потребителите на приложението взаимодействат. Докато крайните потребители взаимодействат с Android устройство, те стартират, спират и прескачат напред-назад в много приложения. Всяко навигационно събитие задейства активиране и деактивиране на много дейности в съответните приложения.

- Android ActivityManager е отговорен за предвидимото и последователно поведение по време на преходите на приложението. ActivityManager предоставя слот за създателите на приложения, за да могат техните приложения да реагират, когато Android ОС изпълнява глобални действия. Приложенията могат да слушат събития като завъртане на устройството, унищожаване на приложение поради недостиг на памет, изместване на приложение извън фокус и т.н.

Някои примери за начина, по който приложенията могат да реагират на тези преходи, включват пауза на активност в игра, спиране на възпроизвеждането на музика по време на телефонно обаждане.

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 потребители на събития в приложението. Той прави това, като дава на потребителите визуални, звукови или вибрационни сигнали или комбинация от тях, когато възникне събитие. Тези събития имат външни и вътрешни тригери. Някои примери за вътрешни задействания са събития за състояние на изтощена батерия, които задействат известие, показващо изтощена батерия. Друг пример са определени от потребителя събития като аларма. Някои примери за външни задействания включват открити нови съобщения или нови wifi мрежи.

Android предоставя средства за програмисти и крайни потребители за фина настройка на системата за уведомяване. Това може да помогне да се гарантира, че те могат да изпращат и получават уведомителни събития по начин, който най-добре подхожда на тях и техните текущи среди.

8) Мениджър на пакети

Android също така осигурява достъп до информация за инсталираните приложения. Android следи информация за приложението, като например събития за инсталиране и деинсталиране, разрешения, които приложението иска, и използване на ресурси, като например потребление на памет.

Тази информация може да позволи на разработчиците да накарат своите приложения да активират или деактивират функционалност в зависимост от новите функции, представени от придружаващите приложения.

9) Доставчик на съдържание

Android има стандартизиран начин за споделяне на данни между приложения на устройството, използвайки доставчика на съдържание. Разработчиците могат да използват доставчика на съдържание, за да изложат данни на други приложения. Например, те могат да направят данните на приложението достъпни за търсене от външни приложения за търсене. Android сам излага данни като данни от календара, данни за контакти и други подобни, използвайки същата система.

Android Време за изпълнение и основни/родни библиотеки

Android Време за изпълнение и основни/родни библиотеки
Библиотеки

1) Android Runtime

Android в момента използва Android Runtime (ART) за изпълнение на код на приложение. ART се предшества от Dalvik Runtime, който компилира кода на разработчиците в Dalvik Executable файлове (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 и други устройства като сървъри, други мобилни устройства, рутери 6.

7) SGL

Android идва с графична библиотека, внедрена в код на ниско ниво, която ефективно изобразява графики за платформата android. Работи с компонентите от по-високо ниво на Android рамка Android графичен конвейер.

8) Libc

Ядрото на Android съдържа библиотеки, написани на C и C++, които са езици на ниско ниво, предназначени за вградена употреба, които помагат за максимално увеличаване на производителността. Libc предоставя средства за излагане на системни функционалности на ниско ниво като нишки, гнезда, IO и други подобни на тези библиотеки.

9) Webkit

Това е браузър с отворен код, използван като основа за изграждане на браузъри. По подразбиране Android браузър преди версия 4.4 KitKat го използва за изобразяване на уеб страници. Той позволява на разработчиците на приложения да изобразяват уеб компоненти в системата за изглед чрез използване на WebView. Това позволява на приложенията да интегрират уеб компоненти в своята функционалност.

10) Повърхностен мениджър

Мениджърът на повърхността е отговорен за осигуряването на гладкото изобразяване на екраните на приложенията. Той прави това чрез композиране на 2D и 3D графики за изобразяване. Освен това позволява това чрез буфериране извън екрана.

Linux Kernel

Коренният компонент на Android Системата е ядрото на Linux. Това е основната част, която позволява всичко Androidфункционалност.

Linux Kernel

Ядрото на Linux е тестван в битки софтуер, който е използван при разработването операционна система за устройства от широк диапазон, от суперкомпютри до малки джаджи. Той има ограничени възможности за обработка като малки мрежови джаджи за интернет на нещата (IoT).

Ядрото на Linux може да бъде променено, за да отговаря на спецификациите на устройството, за да може производителите да го правят Android устройства с различни възможности, за да отговарят на потребителското изживяване.

По отношение Android, ядрото е отговорно за много основни функции, включително, но не само:

  1. Драйвери на устройства
  2. Управление на паметта
  3. Управление на процесите

Нека разширим част от функционалността:

Драйвери на устройства

Ядрото на Linux съдържа драйверите, необходими, за да може операционната система да работи с различни хардуерни компоненти. Тези драйвери предоставят стандартен интерфейс, с който могат да работят хардуерни компоненти, произведени от различни производители.

Това дава възможност на производителите на устройства да доставят различни компоненти, като Bluetooth компоненти, Wifi компоненти, компоненти за камера. Стига производителите да отговарят на Android стандартни спецификации, интеграцията е безпроблемна.

1) USB драйвер

Linux също предоставя Android със средства за взаимодействие с USB устройства. Съвременните устройства се предлагат с различни USB портове, включително USB 2.0 и нови версии на USB, включително USB-C. Тези драйвери правят възможно използването на USB порта за зареждане, прехвърляне на данни на живо, като регистрационни файлове от Android устройства и взаимодействат с android файлова система.

2) Bluetooth драйвер

Ядрото на Linux осигурява поддръжка за взаимодействие с Bluetooth хардуерни компоненти. Той предоставя начин за четене и запис на данни, получени от поддържаните bluetooth радиочестоти. Той също така предоставя набор от съоръжения за Android за да конфигурирате Bluetooth.

3) Wifi драйвер

Ядрото на Linux предоставя драйвери за интегриране на хардуерните компоненти на WiFi мрежата. WiFi компонентите, вградени в мобилни устройства, позволяват Android устройства за свързване към wifi мрежи. Драйверът позволява на wifi компонентите да излъчват wifi мрежи и да създават горещи точки.

4) Драйвер на дисплея

Android дава възможност за взаимодействие с компоненти на дисплея. За повечето устройства компонентът на интерфейса е LCD сензорен екран. Позволява поддръжка за конфигуриране и рисуване на пиксели.

5) Аудио драйвер

Android устройствата обикновено идват с хардуерни компоненти за аудио вход и изход. Аудио драйверите в ядрото позволяват Android система, за да използва аудио, получено от тези компоненти, и също да произвежда аудио изход.

6) Диспечер на захранването

мост Android устройствата се използват, докато са изключени от електрическите контакти. По този начин те зависят от батерии, които да ги захранват за голяма част от употребата им. Ядрото на Linux идва със система за управление на захранването, която може да се конфигурира, за да отговори на нуждите на устройствата, които го използват.

Android ОС използва мениджъра на захранването, за да активира захранването на други компоненти на устройството. Той прави това чрез излъчване на различни състояния, свързани с мощността. Тези състояния са режим на готовност, заспиване и ниска батерия. включено Android, мениджърът на захранването е променен по подразбиране в режим на заспиване, за да се осигури максимален живот на батерията.

Диспечерът на захранването разкрива средства за реагиране на приложенията на различни режими на захранване. Приложенията също могат да променят поведението си, за да съответстват на текущото състояние на захранване на устройството.

Приложение може също така да поиска промяна на правилата за захранване по подразбиране. Приложенията могат да постигнат желаната функционалност, като например поддържане на хардуерните компоненти активни. Пример е поддържането на екрана активен при четене на книга, за да се гарантира, че потребителят няма да бъде прекъсван. Друг пример е поддържането на аудио компонентите включени, когато слушате музика във фонов режим.

7) Флаш памет

мост Android устройствата използват флаш памет като средство за съхранение. Флаш паметта е бърза и заема по-малко място, което я прави идеална за малки устройства. Linux ядрото предоставя средства за Android устройства за четене и запис във флаш памет. Той осигурява средство за разделяне на паметта по такъв начин, че операционната система и другите приложения да могат лесно и ефективно да споделят ресурса на паметта.

8) Свързващо вещество

Android хоства много приложения и системни компоненти, които се изпълняват в своите процеси. В повечето случаи тези процеси трябва да бъдат изолирани един от друг, за да се предотврати намеса и повреда на данните. И все пак има случаи, в които искаме да предадем данни от един процес на друг.

Ядрото на Linux позволява функционалност за споделяне на данни чрез предоставяне на свързващи драйвери. Драйверите за свързване позволяват междупроцесна комуникация, IPC. Използването на IPC процеси може да открие други процеси и да сподели информация.

Управление на паметта

Друга отговорност на ядрото на Linux е управлението на паметта. Докато се изпълняват различни приложения, ядрото гарантира, че пространството в паметта, което те използват, не е в конфликт и се презаписва едно друго.

Също така помага да се гарантира, че всички работещи приложения получават подходяща памет, за да функционират, като се гарантира, че нито едно приложение не заема твърде много място.

Управление на процесите

Всяко приложение в Android работи в процес. Ядрото също отговаря за управлението на процесите. Това означава, че е отговорен за създаването, паузата, спирането, затварянето или спирането на процеси.

Ядрото позволява различни функционалности като стартиране на множество процеси едновременно, комуникация между процеси, стартиране на процеси във фонов режим и т.н.

Тъй като всеки процес изисква собствено пространство в паметта, за да функционира правилно, ядрото гарантира, че пространствата в паметта, разпределени за всеки процес, са защитени от други процеси. Той също така гарантира, че ресурсите като RAM разпределени за процеси се освобождават, когато процесите бъдат затворени.

Ядрото на Linux също отговаря за разпределянето на работата към процесорите, присъстващи в устройството. Това дава възможност да се увеличи максимално производителността на устройства с множество ядра, тъй като различните приложения ще имат процеси, изпълнявани на различно ядро.

Ядрото на Linux изпълнява повече задачи под капака, включително налагане на сигурност.

Oбобщение

  • Android архитектурата е организирана на слоеве.
  • Всеки слой решава уникален набор от проблеми.
  • Крайните потребители взаимодействат с приложения на приложния слой
  • Разработчиците на приложения разработват приложения, които да се използват на слоя на приложението. Те правят това с помощта на инструменти и абстракции, предоставени от рамката на приложението.
  • Android Слоят на рамката опростява достъпа до компоненти на ниско ниво чрез създаване на API върху собствени библиотеки.
  • Android Runtime и Core-Libraries използват езици от ниско ниво заедно с оптимизации за мобилни устройства. Това гарантира, че кодът, написан от разработчиците на приложения, работи гладко въпреки Android ограничения на устройството.
  • В долната част на Android софтуерният стек е ядрото на Linux. Той взаимодейства с обичайните хардуерни компоненти Android устройства.