Android operatsion tizimining arxitekturasi

|
Android operatsion tizimining arxitekturasi
|
bet | 2/4 | Sana | 24.07.2024 | Hajmi | 1,66 Mb. | | #268406 |
Bog'liq 9-amaliy ish
Android operatsion tizimi to‘rtta asosiy qatlamni o‘z ichiga olgan qatlamli arxitekturada qurilgan: Linux yadrosi, apparat abstraktsiya qatlami (HAL), mahalliy C/C++ kutubxonalari va Android Runtime.Linux yadrosi: Android arxitekturasining eng quyi darajasida Linux yadrosi joylashgan. Yadro qurilmaning apparat vositalarini, jumladan, protsessor, xotira va kiritish/chiqarish (I/U) operatsiyalarini boshqarish uchun javobgardir. Linux yadrosi Android operatsion tizimining qolgan qismi uchun barqaror va xavfsiz poydevor yaratadi.
Linux yadrosi Android operatsion tizimining asosiy komponentidir. Android 1991-yilda Linus Torvalds tomonidan ishlab chiqilgan ochiq kodli operatsion tizim yadrosi boʻlgan Linux yadrosiga asoslangan. Yadro tizimning protsessor, xotira va kiritish/chiqarish qurilmalari kabi apparat resurslarini boshqarish va taʼminlash uchun javobgardir. Ilovalar va xizmatlarning ushbu resurslar bilan standartlashtirilgan tarzda o‘zaro ta’sirini ta’minlaydigan abstraksiya qatlami.
Androidda ishlatiladigan Linux yadrosi mobil platformaning maxsus talablariga moslashtirilgan. U quvvatni boshqarish, multimedia va simsiz tarmoq kabi mobil qurilmalarga xos xususiyatlarni qo‘llab-quvvatlashni o‘z ichiga oladi. Bundan tashqari, yadro mobil qurilmalar uchun yaxshiroq ishlash va xavfsizlikni ta’minlash uchun o‘zgartirildi.
Androidda Linux yadrosidan foydalanishning asosiy afzalliklaridan biri shundaki, u ochiq kodli dasturiy ta’minotdir, ya’ni ishlab chiquvchilar o‘zlarining maxsus ehtiyojlariga mos ravishda manba kodiga kirishlari va o‘zgartirishlari mumkin. Bu Android qurilmalari uchun qo‘shimcha funktsiyalar va optimallashtirishni ta’minlaydigan ko‘plab maxsus ROMlar (faqat o‘qish uchun xotira) va yadrolarni yaratishga olib keldi. Linux yadrosi Android operatsion tizimining muhim tarkibiy qismi bo‘lib, mobil platformaning apparat va dasturiy resurslari uchun mustahkam poydevor yaratadi. Uning ochiq manbali tabiati moslashtirish va innovatsiyalarni amalga oshirishga imkon beradi va uning keng tarqalishi butun dunyo bo‘ylab ishlab chiquvchilar va foydalanuvchilarning jonli ekotizimini yaratishga yordam berdi.
Dalvik - bu Android operatsion tizimidagi to‘xtatilgan virtual mashina bo‘lib, u Android ilovalarini ishga tushirish va bajarish uchun ishlatilgan. U Android 1.5 Cupcakeda taqdim etilgan va Android Runtime (ART) bilan almashtirilgan Android 4.4 KitKatgacha standart virtual mashina edi.
Dalvik - protsessual quvvati va xotirasi cheklangan mobil qurilmalar uchun maxsus ishlab chiqilgan registrga asoslangan virtual mashina. U Just-In-Time (JIT) kompilyatsiya yondashuvidan foydalanadi, ya’ni dastur kodi ARTda bo‘lgani kabi Oldindan Vaqt (AOT) emas, balki ish vaqtida kompilyatsiya qilinadi va optimallashtiriladi. Bu Dalvik-ga ilovalarni tezroq yuklash va ishga tushirish imkonini berdi, lekin u ham yuqori xotiraga ega edi va batareya quvvati jihatidan unchalik samarali emas edi.
Dalvik 5.0 versiyasidan oldin Android-da ishlatiladigan original virtual mashina edi. U kam quvvatli qurilmalarda ishlash uchun optimallashtirilgan va ish vaqtida bayt kodini mashina kodiga tarjima qilish uchun Just-In-Time (JIT) kompilyatoridan foydalangan. Bu yondashuv ilovalarni tezroq ishga tushirish va xotira sarfini kamaytirish imkonini berdi, biroq batareya quvvatining koʻproq sarflanishiga va ilovalarni ishga tushirish vaqtlarining uzoqroq boʻlishiga olib keldi.
O‘zining afzalliklariga qaramay, Dalvik oxir-oqibat bir qator omillar tufayli ART bilan almashtirildi, jumladan uning yuqori xotirasi, sekinroq dasturni ishga tushirish vaqti va ilg‘or xususiyatlar va funksionallik nuqtai nazaridan cheklovlar. Biroq, Dalvik ba’zi maxsus Android tuzilmalarida va boshqa Java ga asoslangan mobil platformalarda foydalanishda davom etmoqda.
Umuman olganda, Dalvik Android platformasining dastlabki rivojlanishida muhim rol o‘ynadi va ishlab chiquvchilarga mobil qurilmalar uchun yuqori sifatli, sezgir va xususiyatlarga sermahsul ilovalarni yaratishga imkon beruvchi tez va samarali virtual mashinani taqdim etdi. O‘shandan beri u ART bilan almashtirilgan bo‘lsada, uning merosi Android platformasining rivojlanishida va kengroq mobil hisoblash landshaftida sezilyapti.
ART (eng. Virtual machine - Android Runtime) Android operatsion tizimidagi standart virtual mashina bo‘lib, u Android ilovalarini ishga tushiradi va bajaradi.
ART avvalgi Dalvik virtual mashinasini almashtirilgan va Android 5.0 Lollipopda taqdim etilgan. Shundan beri u Androidning barcha versiyalarida standart ish vaqtiga aylandi.
ART - bu dastur kodini bajaradigan ish vaqti muhiti va dasturga fayl tizimi, tarmoq va grafik apparat kabi tizim xizmatlariga kirish imkonini beruvchi asosiy kutubxonalar to‘plamini taqdim etadi. U “Ahead-Of-Time” (AOT) kompilyatsiya usulidan foydalanadi, ya’ni dastur kodi Dalvikdagi kabi Just-In-Time (JIT) emas, balki o‘rnatish vaqtida asl ko‘rinishidan haqiqiy mashina kodiga kompilyatsiya qilinadi.
1.1.5-Rasm.ART va Dalvik farqi
ART ning Dalvikga nisbatan asosiy afzalliklaridan biri uning yaxshilangan ishlashi, ayniqsa dasturni ishga tushirish vaqtlari va umumiy javob berish qobiliyatidir. Buning sababi shundaki, ART kodni tezroq bajarishga imkon beruvchi yanada samarali kompilyatsiya jarayonidan foydalanadi, kamroq xotira yuki va kamroq ish vaqtida xatolar. Bundan tashqari, ART ishlab chiquvchilarga yuqori sifatli Android ilovalarini yaratishni osonlashtiradigan yaxshilangan axlat yig‘ish va yaxshilangan disk raskadrovka vositalari kabi bir qator ilg‘or xususiyatlarni qo‘llab quvvatlaydi.
Androidda ART va Dalvik o‘rtasidagi asosiy farq ularning kodni bajarish usulidir. Dalvik Just-In-Time (JIT) kompilyatsiyasidan, ART esa Ahead-of-Time (AOT) kompilyatsiyasidan foydalanadi. JIT bilan kod kerak bo‘lganda tuziladi, AOT bilan esa kod muddatidan oldin tuziladi va ikkilik formatda saqlanadi, bu esa ilovalarni tezroq ishga tushirish vaqtini va umumiy ish Activityini yaxshilashga olib keladi. Bundan tashqari, ART kengroq arxitekturani qo‘llab -quvvatlaydi va Dalvik bilan solishtirganda yaxshilangan axlat yig‘ish mexanizmlariga ega.
Hardware Abstraction Layer (HAL): Linux yadrosining tepasida HAL joylashgan. HAL Android platformasi uchun kamera, Wi-Fi moduli va sensorlar kabi qurilmaning apparat qismlariga kirish uchun standart interfeysni taqdim etadi.
Ushbu abstraksiya qatlami bir xil kodni turli xil apparat konfiguratsiyalarida ishlatilishini ta’minlashga yordam beradi, bu esa ishlab chiquvchilarga keng doiradagi qurilmalarda ishlaydigan ilovalarni yaratishni osonlashtiradi.
Mahalliy C/C++ kutubxonalari: Android platformasi C va C++ tillarida yozilgan mahalliy kutubxonalar to‘plamini ham o‘z ichiga oladi. Bu kutubxonalar grafik tasvirlarni ko‘rsatish, ma’lumotlar bazasiga kirish va multimediyani ishga tushirish kabi keng imkoIntentsni taqdim etadi. Ushbu qatlamdagi ba’zi asosiy kutubxonalarga 3D grafikalar uchun OpenGL ES, ma’lumotlar bazasiga kirish uchun SQLite va audio va videolarni ijro etish uchun Media Framework kiradi.
1.1.6-Rasm.Hardware Abstraction Layer (HAL)
Android Application Framework: Android Application Framework ishlab chiquvchilarga Android ilovalarini yaratishga imkon beruvchi APIlar to‘plamini taqdim etadi. Ushbu APIlar bildirishnomalarni qayta ishlash, qurilma resurslarini boshqarish va tizim xizmatlariga kirish xizmatlarini o‘z ichiga oladi. Ilovalar ramkasi, shuningdek, Android ilovasining foydalanuvchi interfeysini yaratish uchun ishlatilishi mumkin bo‘lgan TextViews, Buttons va ListViews kabi UI komponentlari to‘plamini o‘z ichiga oladi.
Umuman olganda, Androidning qatlamli arxitekturasi keng ko‘lamli apparat konfiguratsiyasida ishlashi mumkin bo‘lgan mobil ilovalarni ishlab chiqish uchun barqaror va moslashuvchan platformani ta’minlash uchun mo‘ljallangan. Android platformasi vaqt oʻtishi bilan rivojlanib bordi va oʻzining ochiq manbali tabiati va qurilmalarda doimiy foydalanuvchi tajribasini taqdim etish qobiliyati tufayli ishlab chiquvchilar uchun mashhur tanlov boʻlib qolmoqda.
Ilovalar: Android qurilmalarida o‘rnatilishi va ishlashi mumkin bo‘lgan ilovalarni ishlab chiqish uchun asos yaratadi. Ilovalar Java yoki Kotlin dasturlash tillari yordamida ishlab chiqilishi mumkin va ular qurilmadagi kamera, sensorlar va joylashuv xizmatlari kabi keng imkoIntentsdan foydalanishlari mumkin.
1.1.7-Rasm.Android ilovalarini yaratish
Activities: Activitylar (ing. Activities) Android ilovasining asosiy foydalanuvchi interfeysi komponentlaridir. Ular foydalanuvchi o‘zaro aloqada bo‘lishi mumkin bo‘lgan foydalanuvchi interfeysi bilan bitta ekranni ifodalaydi. Ilovada bir nechta Activity bo‘lishi mumkin va ular foydalanuvchi harakatlana oladigan ekranlar oqimini yaratish uchun bir-biriga bog‘lanishi mumkin. Activitylardan shuningdek, tugmani bosish yoki ekranni surish kabi foydalanuvchi ma’lumotlarini qabul qilish va ularga javob berish uchun foydalanish mumkin.
1.1.8-Rasm. Activity launchedning sxemasi
Androidda kontent provayderlari - bu boshqa ilovalar yoki komponentlar tomonidan kirish mumkin bo‘lgan umumiy ilova ma’lumotlar to‘plamini boshqaradigan dastur komponentining bir turidir. Kontent provayderlari ma’lumotlarni boshqarish uchun standart interfeysni taqdim etadi, bu esa ilovalarga ma’lumotlar bilan izchil va xavfsiz tarzda o‘zaro ta’sir qilish imkonini beradi.
1.1.9-Rasm. Android-Dagi Kontent Provayderi ishlash sxemasi
Kontent provayderlari odatda ma’lumotlar bazalarida, fayllarda yoki boshqa turdagi ma’lumotlar manbalarida saqlangan ma’lumotlarni boshqaradi va boshqa ilovalarga ma’lumotlarni so‘rash, kiritish, yangilash va o‘chirishga ruxsat beradi.
Ular, shuningdek, ilovalar o‘rtasida ma’lumotlarni almashish mexanizmini taqdim etishi mumkin, bu bir nechta ilovalarga bir xil ma’lumotlarga kirish va o‘zgartirish imkonini beradi.
Kontent provayderlari ContentProvider sinfining quyi sinflari sifatida amalga oshiriladi va ularni AndroidManifest.xml faylida ro‘yxatdan o‘tkazish mumkin. Ular ma’lumotlarni boshqarish uchun query(), insert(), update() va delete() kabi standart usullardan foydalanadilar. Ushbu usullar boshqa ilovalar yoki komponentlar tomonidan ContentResolver ob’ekti yordamida chaqiriladi, bu esa kontent provayderidan ma’lumotlarga kirish uchun standartlashtirilgan interfeysni ta’minlaydi.
Kontent provayderlaridan foydalanishning asosiy afzalliklaridan biri shundaki, ular ilovalar uchun ma’lumotlarni almashish va boshqarish uchun xavfsiz va standartlashtirilgan usulni ta’minlaydi. Ma’lumotlarga kirish va o‘zgartirish uchun izchil interfeysni ta’minlash orqali kontent provayderlari ilovalarning ma’lumotlarning maxfiyligi yoki xavfsizligini buzmasdan xavfsiz va xavfsiz tarzda ma’lumotlar bilan o‘zaro ta’sir qilishini ta’minlaydi. Kontent provayderlari Android operatsion tizimining muhim tarkibiy qismi bo‘lib, ilovalar uchun ma’lumotlarni xavfsiz va standartlashtirilgan tarzda boshqarish va almashish imkonini beradi.
Kontent provayderlarining kuchidan foydalangan holda, ishlab chiquvchilar yanada moslashuvchan, kuchliroq va ko‘proq o‘zaro ishlashi mumkin bo‘lgan ilovalarni yaratishi mumkin, bu esa foydalanuvchilarga bir nechta ilovalarda izchil va xavfsiz tarzda ma’lumotlarga kirish va boshqarish imkonini beradi.
Umuman olganda, ushbu komponentlar va xususiyatlarning kombinatsiyasi Android platformasida mobil ilovalarni yaratish uchun kuchli asos yaratadi. Ushbu komponentlar va xususiyatlardan foydalangan holda, ishlab chiquvchilar yuqori sifatli foydalanuvchi tajribasini ta’minlaydigan sermahsul va jozibali ilovalarni yaratishi mumkin.
Androidda Intent - bu xabar almashish ob’ekti bo‘lib, u tizimning boshqa komponentidan harakatni boshlash, translyatsiya yuborish yoki xizmatni ishga tushirish kabi harakatni so‘rash uchun ishlatiladi. Intentni bir komponentdan ikkinchisiga yuboriladigan xabar yoki signal sifatida qarash mumkin, bu komponentlarning bir-biri bilan o‘zaro ta’siri va turli vazifalarni bajarishiga imkon beradi.
1.1.10-Rasm.Intent orqali kamera va email ishlash Activityi
Intent ikki qismdan iborat: harakat va ma’lumotlar. Harakat amalga oshiriladigan operatsiya turini belgilaydi, masalan, web-sahifani ochish uchun “KO‘RISH” yoki elektron pochta xabarini yuborish uchun “YUBORISH”. Ma’lumotlar web sahifaning URL manzili yoki elektron pochta manzili kabi operatsiya bajarilishi kerak bo‘lgan ma’lumotlarni belgilaydi.Intent aniq yoki yashirin bo‘lishi mumkin. Aniq Intent maqsadni olishi kerak bo‘lgan komponentni, masalan, muayyan Activity yoki xizmatni belgilaydi. Yashirin Intent komponentni belgilamaydi, aksincha, tizimdagi boshqa komponentlar tomonidan roʻyxatga olingan Intent filtrlari asosida tizimga qaysi komponent Intentni olishi kerakligini aniqlash imkonini beruvchi harakat va maʼlumotlarni belgilaydi.
Intents Android tizimida keng qo‘llaniladi, bu turli komponentlarga bir-biri bilan aloqa qilish va turli vazifalarni bajarish imkonini beradi. Masalan, Activity boshqa Activityni boshlash uchun Intentdan foydalanishi mumkin, xizmat translyatsiya xabarini yuborish uchun Intentdan foydalanishi mumkin va eshittirish qabul qiluvchisi xizmatni boshlash uchun Intentdan foydalanishi mumkin. Intents, shuningdek, ilovalar o‘rtasida ma’lumotlarni almashish yoki boshqa ilovada Activityni boshlash kabi ilovalarga o‘zaro ta’sir o‘tkazish imkonini beradi.
Broadcast Receivers - bu telefon qo‘ng‘irog‘i qabul qilinganda yoki batareya quvvati kam bo‘lganda kabi butun tizim voqealarini tinglaydigan komponentdir. Voqea sodir bo‘lganda, tizim barcha ro‘yxatdan o‘tgan qabul qiluvchilarga translyatsiya yuboradi, keyinchalik ular voqea asosida muayyan harakatlarni amalga oshirishi mumkin.
Android Framework: Android ramkasi ilovalarni ishlab chiqishni soddalashtiradigan oldindan tuzilgan sinflar va funktsiyalar to‘plamini taqdim etadi. Ramka foydalanuvchi interfeysi, ma’lumotlarni saqlash, tarmoq va boshqa ko‘plab funktsiyalar uchun komponentlarni o‘z ichiga oladi.
1.1.11-Rasm.Androidda Broadcast Receivers
Androiddagi UI (eng. User Interface - foydalanuvchi interfeysi) komponentlari foydalanuvchilar turli vazifalarni bajarish va ilova orqali harakatlanish uchun o‘zaro aloqada bo‘ladigan vizual elementlardir. Androiddagi ba’zi asosiy UI komponentlariga quyidagilar kiradi:
Activities: Activity foydalanuvchi interfeysi bilan bitta ekranni ifodalaydi. Unda matn maydonlari, tugmalar va tasvirlar kabi turli xil UI komponentlari bo‘lishi mumkin.
Fragmentlar - bu moslashuvchan va dinamik UI yaratish uchun boshqa fragmentlar bilan birlashtirilishi mumkin bo‘lgan qayta foydalanish mumkin bo‘lgan UI komponentlari. Ular turli ekran o‘lchamlari va yo‘nalishlariga moslasha oladigan murakkabroq foydalanuvchi interfeyslarini yaratish uchun ishlatiladi.
Views: Ko‘rishlar Android UI komponentlarining asosiy qurilish bloklari hisoblanadi. Ular tugmalar, matn maydonlari, tasvirlar va foydalanuvchilar bilan muloqot qilishlari mumkin bo‘lgan boshqa interaktiv elementlarni o‘z ichiga oladi.
Layouts: - bu UI komponentlarini saqlaydigan va ularning ekranda joylashishini aniqlaydigan konteynerlar. Ular ilovaning foydalanuvchi interfeysining umumiy strukturasini yaratish uchun ishlatiladi.
Intents: Niyatlar ilovaning turli komponentlari, masalan, Activity, xizmatlar va translyatsiya qabul qiluvchilari oʻrtasida aloqa oʻrnatish uchun ishlatiladi. Ular Activityni boshlash, xabar yuborish yoki tizim hodisasini ishga tushirish uchun ishlatiladi.
Adapterlar: Adapterlar ma’lumotlarni ro‘yxatlar yoki panjaralar kabi UI komponentlariga ulash uchun ishlatiladi. Ular katta hajmdagi ma’lumotlarni tuzilgan tarzda ko‘rsatish usulini ta’minlaydi.
Bular Androiddagi asosiy UI komponentlaridan faqat bir nechtasi. Keng ko‘lamli foydalanuvchi interfeyslari va tajribalarini yaratish uchun ularni turli usullar bilan birlashtirish mumkin.
Android operatsion tizimi sermahsul va mukammal mobil ilovalar yaratish uchun ishlatilishi mumkin bo‘lgan keng ko‘lamli UI komponentlarini taqdim etadi. Quyida Androidda eng ko‘p ishlatiladigan UI komponentlari keltirilgan:
TextView: - bu komponentasi matnni ekranda aks ettirish uchun ishlatiladi. U oddiy matnni, formatlangan matnni yoki hatto giperhavolalarni ko‘rsatish uchun ishlatilishi mumkin.
EditText: - bu komponenti foydalanuvchilarga matn kiritish imkonini berish uchun ishlatiladi. U foydalanuvchi nomi, parol yoki qidiruv so‘rovini kiritish kabi turli maqsadlarda ishlatilishi mumkin.
Button: - bu komponenti bosiladigan tugmalarni yaratish uchun ishlatiladi. U amalni boshlash yoki ilova ichidagi boshqa ekranga o‘tish uchun ishlatilishi mumkin.
ImageButton: - bu komponenti matn o‘rniga tasvirni aks ettiruvchi tugmalar yaratish uchun ishlatiladi. U maxsus piktogramma yaratish yoki foydalanuvchiga vizual fikr bildirish uchun ishlatilishi mumkin.
ImageView: - bu komponenti tas’virlarni ekranda aks ettirish uchun ishlatiladi. U fotosuratlar, piktogrammalar yoki boshqa grafiklarni ko‘rsatish uchun ishlatilishi mumkin.
ProgressBar: - bu komponenti operatsiya davom etayotganligini ko‘rsatish uchun ishlatiladi. U uzoq davom etadigan operatsiya sodir bo‘lganda, masalan, internetdan ma’lumotlarni yuklab olishda foydalanuvchiga fikr bildirish uchun ishlatilishi mumkin.
ListView: - bu komponenti ekrandagi elementlar ro‘yxatini ko‘rsatish uchun ishlatiladi. U kontaktlar, xabarlar yoki boshqa ma’lumotlar ro‘yxatini ko‘rsatish uchun ishlatilishi mumkin.
RecyclerView: - bu komponenti ListViewga o‘xshaydi, lekin ko‘proq moslashuvchanlik va ishlashni ta’minlaydi. U katta ma’lumotlar to‘plamlarini samarali ko‘rsatish uchun mo‘ljallangan va maxsus tartiblar va animatsiyalarni amalga oshirish uchun ishlatilishi mumkin.
Spinner: - bu komponenti ochiladigan variantlar ro‘yxatini yaratish uchun ishlatiladi. U foydalanuvchiga til yoki valyuta kabi roʻyxatdagi variantni tanlashga ruxsat berish uchun ishlatilishi mumkin.
WebView: - bu komponenti ilova ichidagi web-sahifalarni ko‘rsatish uchun ishlatiladi. U internetdagi kontentni ko‘rsatish yoki Android ilovasiga web ilovalarni joylashtirish uchun ishlatilishi mumkin.
Bular Androidda eng ko‘p qo‘llaniladigan UI komponentlaridan ba’zilari. Android platformasi ilovaning o‘ziga xos ehtiyojlariga mos keladigan maxsus maketlar va animatsiyalarni yaratish uchun ishlatilishi mumkin bo‘lgan sermahsul UI komponentlarini taqdim etadi.
Xizmatlar: Xizmatlar odatda ilova manifest faylida aniqlanadi va maqsad yoki boshqa komponentdan xizmatga ulanish orqali ishga tushiriladi. Xizmatlar fonda cheksiz ishlashi mumkin va xabarlar yoki umumiy xotira orqali boshqa komponentlar bilan bog‘lanishi mumkin. Ikki turdagi xizmatlar mavjud: boshlangan xizmatlar va bog‘langan xizmatlar. Boshlangan xizmatlar bitta vazifani bajarish va keyin to‘xtash uchun ishlatiladi, bog‘langan xizmatlar esa boshqa komponentlarning xizmat bilan o‘zaro aloqasi uchun interfeysni ta’minlash uchun ishlatiladi.
|
| |