Android: bu nima, tizim arxitekturasi va Kotlin dasturlash

Muallif: IT Sectr Nashr etilgan: 2026-02-07 O'qish vaqti: 11 daq

Android — ochiq manba kodli (AOSP) va Linux yadrosida ishlaydigan Google mobil operatsion tizimi. Android dasturlash Kotlin tilida Android Studio muhitida amalga oshiriladi. Maqola OT arxitekturasi, ilova komponentlari, Jetpack Compose va Google Play-da nashr qilishni qamrab oladi.

Asosiy fikrlar

  • Android — Linux yadrosida to‘rt qatlamli OT: yadro, HAL, Android Runtime, Application Framework
  • Kotlin — null xavfsizligi va asinxronlik uchun korutinlar bilan asosiy dasturlash tili
  • Activity, Service, BroadcastReceiver, ContentProvider — Android ilovasining to‘rtta majburiy komponenti
  • Jetpack Compose — Google tomonidan yangi loyihalar uchun tavsiya etilgan deklarativ UI framework
  • Google Play — 15–30% komissiya va Play Integrity xavfsizlik tekshiruvi bilan asosiy tarqatish kanali

Android nima?

Android — Linux yadrosiga asoslangan mobil operatsion tizim, Google tomonidan 2007-yildan beri ishlab chiqilmoqda. Manba kodi Android Open Source Project (AOSP) doirasida Apache 2.0 litsenziyasi ostida ochiq. Har bir ishlab chiqaruvchi tizimni o‘zgartirishi va o‘z qurilmalariga o‘rnatishi mumkin.

StatCounter (2026) ma'lumotlariga ko‘ra, Android global mobil OT bozorining taxminan 72% ni egallaydi. Eng yirik ishlab chiqaruvchilar: Samsung, Xiaomi, Oppo, Vivo, Google Pixel. Parchalanish platformaning asosiy muammosidir: turli OT versiyalariga ega minglab modellar bir vaqtning o‘zida ishlatiladi.

Android arxitekturasi ruxsatlar (permissions) tamoyiliga asoslangan: har bir ilova alohida Linux UID ostida ishlaydi va faqat o‘z ma'lumotlariga kirish huquqiga ega. Tizim resurslariga (kamera, mikrofon, kontaktlar) kirish Android 6 (API 23) dan boshlab ish vaqtida Android Permissions orqali so‘raladi.

Android versiyalari tarixi

Android 1.0 2008-yilda HTC Dream da chiqarilgan. Asosiy bosqichlar: Android 4.0 Ice Cream Sandwich (telefonlar va planshetlar uchun yagona interfeys), Android 5.0 Lollipop (Material Design), Android 6.0 (ish vaqti ruxsatlari), Android 10 (qorong‘u mavzu, imo-ishoralar), Android 12 (Material You). 2023-yildan boshlab Google shirinlik nomlarisiz yillik asosiy relizlarga o‘tdi.

Android versiyasiYilAsosiy yangilik
Android 1.02008HTC Dream da birinchi reliz
Android 4.0 (ICS)2011Telefonlar va planshetlar uchun yagona dizayn
Android 5.0 (L)2014Material Design, Dalvik o‘rniga ART
Android 6.0 (M)2015Ish vaqti ruxsatlari, Doze rejimi
Android 8.0 (O)2017Kotlin rasmiy til sifatida
Android 10 (Q)2019Scoped Storage, qorong‘u mavzu
Android 12 (S)2021Material You, Privacy Dashboard
Android 152024Private Space, sun'iy yo‘ldosh aloqasi

Android arxitekturasi: to‘rtta asosiy qatlam

Android arxitekturasi to‘rtta asosiy qatlamdan iborat bo‘lib, ular apparat ta'minotini foydalanuvchi ilovalaridan ajratadi. Har bir qatlam qat'iy belgilangan interfeyslar orqali pastki qatlam xizmatlaridan foydalanadi.

Linux yadrosi va HAL

Eng pastki qatlam — o‘zgartirilgan Linux yadrosi (LTS, Android 15 da versiya 6.x). U xotira boshqaruvi, jarayonlar, tarmoq steki va drayverlarni boshqaradi. Hardware Abstraction Layer (HAL) apparat bilan (kamera, Bluetooth, Wi-Fi, sensorlar) o‘zaro aloqa qilish uchun yagona API taqdim etadi. Ishlab chiqaruvchilar yuqori qatlamlarga ta'sir qilmasdan HAL modullarini amalga oshiradilar.

Android Runtime (ART)

ART ilovalarning DEX bayt kodini bajaradi. Android 5.0 dan boshlab, ART Dalvik o‘rnini egalladi va ishlashni yaxshilash uchun Ahead-of-Time (AOT) kompilyatsiyasidan foydalanadi. Har bir ilova alohida ART instansi bilan o‘z jarayoniga ega. Axlat yig‘ish (GC) minimal pauzalar bilan ishlaydi — odatdagi GC pauzasi 2–4 ms.

Application Framework

Framework — bu dasturchi bevosita ishlaydigan qatlam. U Activity Manager (ekranlar steki), Content Providers (ma'lumotlarga kirish), Resource Manager (mahalliylashtirish, resurslar), Notification Manager, Location Manager ni o‘z ichiga oladi. Barcha tizim xizmatlari Binder IPC — Android ning jarayonlararo aloqa mexanizmi orqali chaqiriladi.

kotlin
// AIDL interfeysi orqali Binder bilan ishlash misoli
interface IDataService : android.os.IInterface {
    fun getData(): List<DataItem>
    fun saveData(item: DataItem): Boolean
}

// Xizmatni amalga oshirish
class DataService : Service() {
    private val binder = object : IDataService.Stub() {
        override fun getData(): List<DataItem> = repository.getAll()
        override fun saveData(item: DataItem): Boolean = repository.save(item)
    }

    override fun onBind(intent: Intent?): IBinder = binder
}

Tizim ilovalari

Yuqori qatlam standart tizim ilovalaridan iborat: Telefon, Kontaktlar, Kamera, Sozlamalar, Brauzer. Ular foydalanuvchi ilovalaridan yuqori imtiyozlarga ega emas, lekin uchinchi tomon ilovalari bilan almashtirilishi mumkin. Android 15 da tizim ilovalari ishlab chiqaruvchining OTA yangilanishlaridan mustaqil ravishda Google Play System Updates orqali yangilanadi.

Kotlin — Android dasturlashning asosiy tili

Kotlin — JetBrains tomonidan statik tipli, JVM da ishlaydigan dasturlash tili. Google 2017 yilda Google I/O da Kotlin ni rasmiy Android tili deb e'lon qildi. Kotlin Java bilan to‘liq mos keladi, lekin uning kamchiliklarini bartaraf etadi: null xavfsizligi, ma'lumot sinflari, kengaytma funksiyalari va korutinlar.

Null xavfsizligi va turlar

Kotlin ning asosiy xususiyati NullPointerException ga qarshi o‘rnatilgan himoya. Turlar nullable (String?) va non-null (String) ga bo‘linadi. Kompilyator qurish vaqtida nullable kirishni tekshiradi. Safe call (?.) va Elvis operatori (?:) ichma-ich tekshirishlarsiz ixtiyoriy qiymatlar bilan ishlashni soddalashtiradi.

kotlin
// Korutinlar va Flow bilan Kotlin kodi misoli
data class User(
    val id: Long,
    val name: String,
    val email: String
)

class UserRepository(
    private val api: UserApi,
    private val dao: UserDao
) {
    suspend fun getUser(id: Long): Result<User> {
        return try {
            val cached = dao.getUser(id)
            if (cached != null) {
                return Result.success(cached)
            }
            val remote = api.fetchUser(id)
            dao.insertUser(remote)
            Result.success(remote)
        } catch (e: Exception) {
            Result.failure(e)
        }
    }

    fun observeUsers(): Flow<List<User>> {
        return dao.observeAll()
            .map { list -> list.sortedBy { it.name } }
            .flowOn(Dispatchers.Default)
    }
}

Misol asinxron tarmoq va ma'lumotlar bazasiga kirish uchun korutinlarni (suspend funksiyasi), ma'lumot o‘zgarishlarini reaktiv kuzatish uchun Flow ni va xavfsiz xatolarni boshqarish uchun Result ni ko‘rsatadi. Korutinlar thread yuklamasiz callback va RxJava o‘rnini bosadi.

Kotlin korutinlari va Flow

Kotlin korutinlari umumiy thread hovuzida ishlaydigan yengil threadlardir. Tarmoq va disk uchun Dispatchers.IO, UI uchun Dispatchers.Main, CPU intensiv vazifalar uchun Dispatchers.Default. viewModelScope va lifecycleScope komponent yo‘q qilinganda korutinlarni avtomatik bekor qiladi.

kotlin
// Korutinlar va StateFlow bilan ViewModel
class UserViewModel(
    private val repository: UserRepository
) : ViewModel() {

    private val _users = MutableStateFlow<List<User>>(emptyList())
    val users: StateFlow<List<User>> = _users.asStateFlow()

    private val _loading = MutableStateFlow(false)
    val loading: StateFlow<Boolean> = _loading.asStateFlow()

    init {
        viewModelScope.launch {
            repository.observeUsers().collect { userList ->
                _users.value = userList
            }
        }
    }

    fun refresh() {
        viewModelScope.launch {
            _loading.value = true
            repository.getUser(42).onSuccess { user ->
                _users.value = listOf(user)
            }
            _loading.value = false
        }
    }
}

Android Studio va dasturlash vositalari

Android Studio — IntelliJ IDEA ga asoslangan rasmiy IDE, Google tomonidan ishlab chiqilgan. Kod muharriri, Layout Inspector, qurilma emulyatori, APK Analyzer, Profiler (CPU, Xotira, Tarmoq, Energiya) va Firebase integratsiyasini o‘z ichiga oladi. Android Studio 2024 (Ladybug) ko‘p platformali KMP rejimi bilan Kotlin 2.0 ni qo‘llab-quvvatlaydi.

Android emulyatori

Android emulyatori apparat tezlashtirish uchun KVM (Linux) yoki Hyper-V (Windows) dan foydalanadi. GPS, sensorlar, kamera, qo‘ng‘iroqlar va SMS simulyatsiyasini qo‘llab-quvvatlaydi. Google Pixel 9 Pro API 35 va 8 GB emulyator RAM bilan sinov uchun tavsiya etilgan konfiguratsiya.

Android Profiler va disk raskladka

Profiler real vaqtda CPU yuklanishi, xotira ajratilishi, tarmoq so‘rovlari va energiya sarfini ko‘rsatadi. Memory Profiler mos yozuvlar daraxti orqali heap tushirish va oqish tahliliga imkon beradi. Network Inspector tanasi va sarlavhalari bilan barcha HTTP/HTTPS so‘rovlarini qayd qiladi. Chuqur tahlil uchun Android Studio Canary ishlatiladi.

Android ilovasining komponentlari

Android ilovasi to‘rt turdagi komponentlardan iborat, ularning har biri o‘z kirish nuqtasi va hayot sikliga ega. Komponentlar AndroidManifest.xml faylida ro‘yxatdan o‘tkaziladi.

KomponentMaqsadKirish nuqtasi
ActivityFoydalanuvchi bilan o‘zaro aloqa uchun UI ekranAction.MAIN va LAUNCHER toifasi bilan Intent
ServiceUIsiz fon vazifalarini bajarishstartService() yoki bindService()
BroadcastReceiverTizim yoki maxsus hodisalarni qabul qilishManifestda yoki kodda ro‘yxatdan o‘tish
ContentProviderStrukturalangan ma'lumotlarga kirishni boshqarishContentResolver orqali URI

Activity va Intent

Activity foydalanuvchi interfeysining asosiy komponentidir. Har bir ekran alohida Activity yoki Activity ichidagi Fragment. Ekranlar orasida navigatsiya Intent — harakat (ACTION_VIEW, ACTION_SEND) va ma'lumot (URI) ni o‘z ichiga olgan obyekt orqali amalga oshiriladi. Jetpack Navigation Graph da navigatsiya XML da tasvirlangan.

Service va WorkManager

Service fon vazifalarini bajaradi, ammo Android 8 dan boshlab fon xizmatlari cheklangan. WorkManager zanjirlar, cheklovlar (masalan, faqat zaryadlash vaqtida) va qulashdan keyin qayta ishga tushirishni qo‘llab-quvvatlash bilan kechiktirilgan va kafolatlangan fon vazifalari uchun tavsiya etilgan kutubxona.

Jetpack Compose va XML Layouts

Jetpack Compose va an'anaviy XML layoutlar o‘rtasidagi tanlov Android loyihasini boshlashda asosiy arxitektura qaroridir. XML Layoutlar (RecyclerView, ConstraintLayout, FrameLayout) 2008 yildan beri standart. Jetpack Compose 2021 yilda deklarativ muqobil sifatida taqdim etilgan.

MezonXML LayoutsJetpack Compose
ParadigmaBuyruq (View daraxti)Deklarativ (@Composable funksiyalar)
Minimal versiyaIstagan (API 1+)API 21+ (Android 5.0)
LayoutXML + data binding / ViewBindingModifier bilan Kotlin kodi
RecyclerView analogiRecyclerView + Adapter + ViewHolderLazyColumn / LazyGrid
Oldindan ko‘rishAndroid Studio da XML oldindan ko‘rishInteraktivlik bilan @Preview annotatsiyasi
Qayta birlashishnotifyDataSetChanged (to‘liq)Avtomatik, aniq (DiffUtil)
InteroperabellikTo‘liq (barcha kutubxonalar)XML da ComposeView / Compose da AndroidView

Google barcha yangi loyihalar uchun Jetpack Compose ni tavsiya qiladi. XML Layoutlar eski loyihalarni qo‘llab-quvvatlash va maksimal View sozlash (Canvas, SurfaceView) zarur bo‘lgan holatlar uchun dolzarb bo‘lib qoladi. Compose kodi ekvivalent XML + ViewBinding dan o‘rtacha 40% qisqa.

kotlin
// Jetpack Compose — foydalanuvchi profil ekrani
@Composable
fun ProfileScreen(
    user: User,
    onEditClick: () -> Unit,
    modifier: Modifier = Modifier
) {
    Column(
        modifier = modifier
            .fillMaxSize()
            .padding(16.dp),
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        AsyncImage(
            model = user.avatarUrl,
            contentDescription = Foydalanuvchi avatari,
            modifier = Modifier
                .size(120.dp)
                .clip(CircleShape)
        )

        Spacer(modifier = Modifier.height(16.dp))

        Text(
            text = user.name,
            style = MaterialTheme.typography.headlineMedium
        )

        Text(
            text = user.email,
            style = MaterialTheme.typography.bodyLarge,
            color = MaterialTheme.colorScheme.onSurfaceVariant
        )

        Spacer(modifier = Modifier.height(24.dp))

        Button(onClick = onEditClick) {
            Icon(Icons.Default.Edit, contentDescription = null)
            Spacer(modifier = Modifier.width(8.dp))
            Text(Profilni tahrirlash)
        }
    }
}

@Preview(showBackground = true, showSystemUi = true)
@Composable
fun ProfileScreenPreview() {
    MaterialTheme {
        ProfileScreen(
            user = User(1, Anna Petrova, "anna@example.com"),
            onEditClick = {}
        )
    }
}

ProfileScreen funksiyasi @Composable deb e'lon qilingan — View instansiyalarini yaratmasdan UI ni deklarativ tasvirlaydi. Compose user o‘zgarganda ekranni avtomatik yangilaydi. @Preview qurish va emulyatorda ishga tushirishsiz to‘g‘ridan-to‘g‘ri IDE da natijani ko‘rsatadi.

Activity va Fragment hayot sikli

Android dagi har bir Activity hayot siklining olti holatidan o‘tadi: onCreate, onStart, onResume, onPause, onStop, onDestroy. Fragment onAttach, onCreateView, onViewCreated qo‘shadi. Hayot siklini tushunish xotira boshqaruvi va oqishlarning oldini olish uchun muhimdir.

Activity ning asosiy holatlari

onCreate — Activity yaratilganda bir marta chaqiriladi. Bu yerda ishga tushirish amalga oshiriladi: setContentView, adapter sozlash, LiveData obunasi. onResume — Activity oldingi planda va foydalanuvchi bilan o‘zaro aloqada. onPause — Activity fokusni yo‘qotadi (dialog, boshqa Activity). onStop — Activity ko‘rinmaydi. onDestroy — Activity yo‘q qilinadi.

kotlin
// LifecycleScope orqali hayot siklini boshqarish bilan Activity
class MainActivity : ComponentActivity() {
    private val viewModel: UserViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            MaterialTheme {
                lifecycleScope.launch {
                    repeatOnLifecycle(Lifecycle.State.STARTED) {
                        viewModel.users.collect { users ->
                            updateUi(users)
                        }
                    }
                }
            }
        }
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putString("last_search", searchQuery)
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        searchQuery = savedInstanceState.getString("last_search", "")
    }
}

repeatOnLifecycle dan foydalanish Activity fon ga o‘tganda ma'lumot yig‘ish to‘xtashini va oldingi planga qaytganda davom etishini kafolatlaydi. Bu oqishlar va keraksiz tarmoq so‘rovlarining oldini oladi. onSaveInstanceState ekran aylanishida vaqtinchalik holatni saqlaydi.

Google Play: nashr qilish va talablar

Google Play rasmiy Android ilovalar do‘konidir. Dasturchi hisobini ro‘yxatdan o‘tkazish $25 bir martalik to‘lov. Har bir ilova zararli kod, siyosat buzilishlari va noto‘g‘ri ruxsat ishlatish uchun avtomatik Google Play Integrity tekshiruvidan o‘tadi.

Nashr qilish talablari

Google ilovani Android App Bundle (AAB) yoki APK orqali imzolashni talab qiladi. AAB har bir qurilma konfiguratsiyasi uchun optimallashtirilgan APK yaratishga imkon beruvchi tavsiya etilgan format. Ilova haqiqiy sertifikat bilan kalit (keystore) yordamida imzolanishi kerak. Google Play App Signing Google tomondan ixtiyoriy kalit shifrlashdir.

Maxfiylik siyosati

Shaxsiy ma'lumotlarga kirishni talab qiladigan barcha ilovalar Maxfiylik siyosati ni taqdim etishi kerak. 2024 yildan boshlab Google to‘plangan ma'lumotlar turlari va qayta ishlash maqsadlarini ko‘rsatuvchi Data Safety deklaratsiyasini talab qiladi. Android 14+ ga mo‘ljallangan ilovalar ruxsatlarni e'lon qilish uchun Declarations API dan foydalanishi kerak.

TalabTavsif
Android App BundleOptimallashtirilgan yetkazib berish uchun AAB formati
Data SafetyShaxsiy ma'lumotlarni to‘plash va qayta ishlash haqida shakl
Target SDKIlova eng so‘nggi Android API darajasini nishonga olishi kerak
Kontent reytingiYosh reytingi so‘rovnomasi
Do‘kon ro‘yxatiNom, ikonka, ekran tasvirlari, tavsif

Tez-tez so‘raladigan savollar

Android dasturlash uchun qaysi til eng yaxshi?

Kotlin — Google tomonidan Android uchun rasmiy tavsiya etilgan til. Java ham eski loyihalar uchun qo‘llab-quvvatlanadi. Kotlin null xavfsizligi, korutinlar va kengaytma funksiyalarini taklif qiladi, Java bilan solishtirganda kod hajmini 30–40% kamaytiradi.

Nima tanlash kerak: Jetpack Compose yoki XML Layouts?

Jetpack Compose deklarativ sintaksisi va avtomatik qayta birlashish optimallashuvi tufayli barcha yangi loyihalar uchun tavsiya etiladi. XML Layouts eski loyihalarda va Canvas yoki SurfaceView ni aniq sozlash zarur bo‘lgan hollarda qoladi.

Google Play da nashr qilish qancha turadi?

Google Play dasturchi ro‘yxatdan o‘tkazish $25 bir martalik. Do‘kon komissiyasi birinchi $1 million daromad uchun 15%, keyin 30%. Obunalar uchun komissiya birinchi kundan boshlab 15%. Apple Developer Program dan farqli o‘laroq yillik to‘lov yo‘q.

Android Jetpack nima?

Android Jetpack rasmiy SDK tarkibidagi Google kutubxonalari to‘plami: Navigation, Room (kompilyatsiya vaqtida so‘rov tekshiruvi bilan SQLite ORM), WorkManager (kafolatlangan fon vazifalari), ViewModel (holat boshqaruvi), LiveData va StateFlow reaktivlik uchun.

Android ilovasi uchun minimal talablar qanday?

Yangi loyihalar uchun minimal qo‘llab-quvvatlanadigan versiya API 24 (Android 7.0). AndroidManifest.xml ilova komponentlari va ruxsatlarini tavsiflaydi. APK/AAB keystore bilan imzolanadi. Target SDK nashr vaqtida eng so‘nggi API darajasiga mos kelishi kerak.

Xulosa

  • Android — Linux yadrosida ochiq mobil OT, 72% global bozor ulushi va ishlab chiqaruvchi sozlash imkoniyatlari
  • Kotlin — null xavfsizligi, korutinlar va 100% Java mosligi bilan asosiy Android dasturlash tili
  • Android Arxitekturasi to‘rt qatlamda qurilgan: Linux yadrosi, HAL, Android Runtime, Application Framework
  • Activity, Service, BroadcastReceiver, ContentProvider — manifestda ro‘yxatdan o‘tgan to‘rt komponent
  • Jetpack Compose — avtomatik qayta birlashish bilan Google tavsiya qilgan deklarativ UI framework
  • Google Play — bir martalik $25 to‘lov, AAB formati, majburiy Data Safety va Maxfiylik siyosati
  • WorkManager — bajarish kafolatlari va cheklovlar bilan fon vazifalari uchun tavsiya etilgan API

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing