27
2.2 Android ОЖ архитектурасы
Android-тың архитектурасын алты деңгейге бөлуге болады: қондырғы
деңгейін; Linuxядросының деңгейі; туған кітапханалар деңгейі; Android
орындалу
ортасының
деңгейі;
қосымша
каркасының
деңгейі
(ApplicationFramework);
қосымша
деңгейі
2.1-суретте
Android
платформасының архитектурасы көрсетілген.
2.1-сурет – Android платформасының архитектурасы.
Linux ядросы және драйверлер жиыны. Android платформасының
орталығы болып, қондырғылармен әрекеттесуді және операциялық жүйенің
негізгі тапсырмаларын шешуге жауап беретін, Linux операциялық жүйесінің
ядросы (Android нұсқасынан тәуелділікте, 2.6.25-3.0.31 нұсқалары) саналады.
Бұл деңгейде жадты үлестіру және үрдістерді басқару үшін негізгі
қызметтер, қауіпсіздік және файлдік жүйелерді басқару, және желілік
функцияларды басқару үшін қызметтер (желілік үйме) орналасқан. Тек ядро
деңгейінде драйверлер жиыны арқылы құрылғы қондырғыларымен тікелей
әрекеттесу болады. Ядро деңгейінің негізгі құраушылары болып келесілер
саналады:
- үрдісаралық әрекеттесу драйвері (IPC Driver).
- энергиятұтынуды басқару драйвері (AndroidPowerManagement).
28
- мобильді құрылғының құрамына кіретін, қондырғылар үшін
драйверлер жиыны.
Android операциялық жүйесі Linux ядросына негізделген болғанымен,
олардың арасында (Android және Linux таза түрінде) кейбір ерекшеліктер бар.
Осылай Android, мысалы, өзінің жадты үлестіру механизмдерін, үрдістер
арасындағы әрекеттерді және т.б. құрайды.
IPC драйвер. Android-тағы қосымшалар мен қызметтер өзара әрекеттесе
алатын және жалпы жадқа рұқсаты бар, бөлек (қорғаныс) үрдістерінде жұмыс
атқарады. Android платформасы жүйедегі үрдістер арасында әрекеттесудің
негізгі мехонизмі болып есептелетін, IPC (Inter-processCommunication)
механизмін қамтамасыздандырады. IPC драйвері үрдістер арасындағы
синхронды сұраныстарды, үрдістердегі нысандарда сілтеме көрсетілуі мен
есептелінуін, үрдістердегі ағын пулдарын өңдеу және құруды, үрдістердің
әрекеттесу функцияларын қамтамасыздандырады.
Энергиятұтынуды
басқару.
Энергиятұтынуды
басқару
жүйесі
(AndroidPowerManagement) өзімен мобильді құрылғыларға тиімді (олардың
спецификалық ерекшеліктерін есепке ала), Linux қорек басқарылуының
стандартты драйверін білдіреді. Бұл жүйенің негізгі функциясы төмендетілген
энергияпайдалану тәртібінің үстемелеу есебінен мобильді құрылғы
батареясының зарядын үнемді қолдануда қорытындыланады.
Қондырғылар драйверлері. Android программаның үйме құрылғының
аппараттық конфигурациясын таңдау кезінде қажетті, орасан икемділікті
есепке ала жасалынды. Басқа сөзбен, Android программалық үймесінің
архитектуралық
концепциясы,
мобильді
құрылғыларға
қосымша
функционалдылықты ұсына алатын, көптеген түрлі аппараттық құраушылар
және құралдарды қолдануға мүмкіндіктерді қарастырады.
Жоғарыда айтылғандай, құрылғының аппаратурасымен тікелей
әрекеттесу Linux операциялық жүйесінің ядросы деңгейінде ғана жүзеге
асырылады, яғни, Android программалық шишасының басқа деңгейлері үшін
аппаратураның барлық ерекшеліктері мөлдір болуы тиіс. Дәл осы себептен
ядро деңгейі өзіне, құрылғыда бар, барлық қажетті қондырғының
драйверлерін қосады. Драйверлердің жинағы құрылғы үлгісі мен
өндірушілерден тәуелділікте әр-түрлі болуы мүмкін (яғни аппараттық
конфигурациядан тәуелділікте).
Туған кітапханалары. Linux ядросындағы келесі деңгей, ОЖ-нің түрлі
құраушыларымен қолданылатын, кітапханалар жиынын қосады (C/С++-те
жазылған). Бұл деңгейдегі кітапхана өзінің функционалдық тағайындалуы
бойынша келесі топтарға бөлінуі мүмкін:
- С тілінде жазылған жүйелік кітапхана Bionic (libc) (орындау
уақытының кітапханасы).
- Беттік менеджер.
- С/С++ функционалдық кітапханалары.
Жүйелік
кітапхана
Bionic
(libc).
Жүйелік
кітапхана
BerkeleySoftwareDistribution (BSD) лицензиясында базаланады және Linux
29
негізіндегі мобильді құрылғылар үшін жасалған. Google компаниясы келесі
себептер бойынша осы кітапхананың (libcBionic) өзінің жеке нұсқасын
жасады:
- Жадты
үнемдеу. Бұл кітапхана әр-бір үрдісте жүктелетін
болғандықтан, оның өлшемі мүмкіндігінше аз болуы тиіс. Bionic кітапханасы
шамамен 200 Кбайт мөлшеріне ие.
- Максималды жылдам әрекет ету. Bionic кітапханасы мобильді
құрылғыларда жұмыс үшін тиімдендірілген.
Bionic
кітапханасы жекешелікте жүйелік іс-шараларды тіркеу
қызметтерінің қолдауында Android жүйелік қызметтері үшін маңызды
орнатылған қолдауларға ие. Bionic кітапханасы GNU libc және
POSIXстандартымен сәйкес келмейді.
Беттік менеджер. Android жүйесі Compiz-ға ұқсайтын, композиттік
беттік менеджерді қолданады (OpenGL 3D графиктерді жылдамдату үшін
қолданылатын, X WindowSystem үшін композиттік терезе менеджері). Беттік
менеджер жиектелген буферге беттің барлық рендерингін (көрсету) өңдейді.
Менеджер 2D- және 3D беттерді және беттерді бірнеше қосымшалардан қоса
алады. Дисплей буферіне тікелей графиканы көшіруді жүзеге асырудың
орнына, жүйе, белгілі бір композицияны құраушы, басқаларымен бірге
жинақталатын, кадр арты буферлерде кірістік көшіру командаларын жібереді,
ал одан соң экранға шығарылады. Бұл үрдісті 2.2-суретте көруге болады.
2.2-сурет – Беттік менеджермен графикалық ақпаратты өңдеу
Функционалдық кітапханалар. Android операциялық жүйелерінің түрлі
құраушылармен қолданылатын кітапханалар:
- MediaFramework
–
мультимедия
функциясының
қолдауын
қамтамасыз етеді (аудио жәнебейнебаянды ойнату) және түрлі медиа
форматтарды қолдайды (MPEG4, H.264, MP3, WMA, WAV, AAC, AMR, JPG,
PNG).
- SQLite – SQLite мәліметтер базасын жүзеге асырушылық қолдау
кітапханасы.
- OpenGL ES – 3D-графикамен жұмысқа арналған қозғалтқыш.
- FreeType – растрлық және векторлық шрифттармен жұмысқа арналған
шрифттар кітапханасы.
- LibWebCore – web-браузермен жұмысты қамтамасыз етеді (WebKit
қозғалтқыш).