Bosh sahifa Wiki Android

Android

Android — smartphone, tablet, televizor, avtomobil, wearable va boshqa qurilmalar uchun yaratilgan mobil operatsion tizim va dasturiy platforma. U Linux kerneliga tayanadi, application framework, runtime, system service va development tool’larni birlashtiradi. Android applicationlar ko‘pincha Kotlin yoki Java tilida yaratiladi, ayrim qismlar C yoki C++ orqali yozilishi mumkin.

Android ochiq kodli Android Open Source Project asosiga ega. Qurilma ishlab chiqaruvchilari unga driver, interfeys va o‘z xizmatlarini qo‘shishi mumkin.

Platforma qatlamlari

Soddalashtirilgan Android stack:

  1. Linux kernel;
  2. hardware abstraction;
  3. native library;
  4. Android Runtime;
  5. system service;
  6. application framework;
  7. application.

Har qatlam yuqoridagi qatlamlarga ma’lum API beradi.

Linux kernel

Kernel:

kabi past darajadagi vazifalarni boshqaradi.

Android oddiy desktop Linux distributioni emas, ammo kernel asosidan foydalanadi.

Hardware Abstraction Layer

HAL Android framework va qurilma hardware implementationi orasida standard interface beradi.

Camera, audio, sensor va boshqa componentlar vendor module orqali ulanadi.

Bu frameworkni har hardware modelining ichki tafsilotidan ajratadi.

Android Runtime

ART application bytecode’ini bajaradi.

Build jarayonida Kotlin yoki Java kodi DEX formatiga aylantiriladi.

Runtime:

  • ahead-of-time;
  • just-in-time;
  • garbage collection;
  • profile-guided optimization

kabi mexanizmlardan foydalanishi mumkin.

Application sandbox

Har Android application alohida Linux user ID bilan ishlaydi.

Default holatda boshqa application file va processiga bevosita kira olmaydi.

Data almashish explicit component, provider, permission yoki platform API orqali amalga oshiriladi.

Sandbox barcha zaifliklarni yo‘q qilmaydi.

APK

APK application package formatidir.

U:

ni saqlashi mumkin.

Qurilmaga o‘rnatiladigan application odatda APK ko‘rinishiga ega.

AAB

Android App Bundle publish formatidir.

Store bundle’dan qurilma configurationiga mos optimized APKlar yaratadi.

Bu keraksiz architecture, til va screen resource’larini userga yubormaslikka yordam beradi.

AAB odatda qurilmaga to‘g‘ridan-to‘g‘ri o‘rnatilmaydi.

Manifest

AndroidManifest.xml application haqida platformaga ma’lumot beradi:

Export qilingan component va permission security uchun muhim.

Activity

Activity odatda user ko‘radigan bitta ekran yoki interaction entry pointini ifodalaydi.

U lifecycle callbacklarga ega:

  • create;
  • start;
  • resume;
  • pause;
  • stop;
  • destroy.

Configuration change va process death UI state boshqaruvini talab qiladi.

Fragment

Fragment Activity ichidagi reusable UI va lifecycle componenti.

Bir ekranda bir nechta fragment bo‘lishi mumkin.

Navigation va responsive layoutda ishlatiladi.

Fragment lifecycle Activity lifecycle’iga bog‘liq, ammo aynan bir xil emas.

Service

Service backgroundda uzoqroq operation bajaradigan component.

Background execution cheklovlari sabab service doimiy yashashi kafolatlanmaydi.

Foreground service userga notification ko‘rsatishi va ma’lum permission talab qilishi mumkin.

Scheduled ish uchun WorkManager ko‘proq mos bo‘lishi ehtimoli bor.

Broadcast Receiver

System yoki application eventlarini qabul qiladi.

Masalan:

  • boot;
  • networkga oid signal;
  • custom broadcast.

Background va implicit broadcastlar platforma versiyalarida cheklangan bo‘lishi mumkin.

Receiver qisqa ish bajaradi, uzun taskni workerga topshiradi.

Content Provider

Structured data’ni boshqa component yoki applicationlarga URI orqali taqdim etadi.

Permission va grant bilan access boshqariladi.

File sharing uchun FileProvider xavfsiz content URI yaratishi mumkin.

Raw file path boshqa applicationga berilmaydi.

Intent

Intent action bajarish yoki component ishga tushirishni ifodalovchi message.

  • explicit intent aniq componentni ko‘rsatadi;
  • implicit intent action va data bilan mos componentni qidiradi.

Untrusted intent extra va URIlar validationdan o‘tadi.

Permission

Android permission:

  • normal;
  • dangerous;
  • signature;
  • special access

kabi toifalarga ega bo‘lishi mumkin.

Dangerous permission runtime’da userdan so‘raladi.

Application faqat kerakli minimal permissionni talab qiladi.

Storage

Application internal storage’iga faqat o‘zi kira oladi.

Shared media va document uchun MediaStore yoki Storage Access Framework ishlatiladi.

Scoped storage umumiy file systemga erkin accessni cheklaydi.

Sensitive data encrypted va backup policy bilan boshqariladi.

UI

Android UI:

orqali yaratilishi mumkin.

Density-independent unit turli ekranlarda o‘lchamni moslashtiradi.

Accessibility semantics, content description va touch target muhim.

Lifecycle va process death

System memory kerak bo‘lsa background processni o‘ldirishi mumkin.

User keyin qaytsa screen state qayta yaratiladi.

Muhim state:

orqali tiklanadi.

Singleton memory permanent storage emas.

Android versioni

Platform API level bilan versionlanadi.

Application:

  • minSdk;
  • targetSdk;
  • compileSdk

qiymatlariga ega.

Yangi target version security va behavior o‘zgarishlarini olib kelishi mumkin.

Runtime API mavjudligi version tekshiruvi bilan boshqariladi.

Update ekotizimi

Android system update Google, chipset vendor, qurilma ishlab chiqaruvchi va mobil operator qatlamlariga bog‘liq bo‘lishi mumkin. Security patch darajasi qurilmalar orasida farq qiladi. Application faqat OS versionni emas, kerakli API va security capability’ni tekshiradi.

Process va thread

UI operationlar main threadda bajariladi. Network yoki katta hisoblash main threadni bloklasa interface javob bermay qoladi. Coroutine, executor yoki worker background ishni bajaradi, UI natijasi lifecycle’ga mos qaytariladi.

Build variant

Debug, staging va release variantlari boshqa endpoint, signing va logging settingiga ega bo‘lishi mumkin. Production secret source code ichida saqlanmaydi.

Bog‘liq tushunchalar

Android, Linux kernel, Android Runtime, APK, AAB, Activity, Fragment, Service, Intent, Permission, Jetpack