Android — açıq mənbə kodu (AOSP) olan və Linux nüvəsində işləyən Google mobil əməliyyat sistemidir. Android inkişafı Kotlin dilində Android Studio mühitində aparılır. Məqalə OS arxitekturasını, tətbiq komponentlərini, Jetpack Compose-u və Google Play-də dərci əhatə edir.
Əsas məqamlar
Android — Linux nüvəsi əsasında mobil əməliyyat sistemidir, Google tərəfindən 2007-ci ildən inkişaf etdirilir. Mənbə kodu Android Open Source Project (AOSP) çərçivəsində Apache 2.0 lisenziyası altında açıqdır. Hər bir istehsalçı sistemi dəyişdirə və öz cihazlarında quraşdıra bilər.
StatCounter (2026) məlumatlarına görə, Android qlobal mobil OS bazarının təxminən 72%-ni tutur. Ən böyük istehsalçılar Samsung, Xiaomi, Oppo, Vivo, Google Pixel-dir. Parçalanma platformanın əsas problemidir: müxtəlif OS versiyaları olan minlərlə model eyni vaxtda istifadə olunur.
Android arxitekturası icazələr (permissions) prinsipi üzərində qurulmuşdur: hər bir tətbiq ayrı Linux UID altında işləyir və yalnız öz məlumatlarına çıxışı var. Sistem resurslarına (kamera, mikrofon, kontaktlar) çıxış Android 6-dan (API 23) başlayaraq iş vaxtı Android Permissions vasitəsilə tələb olunur.
Android 1.0 2008-ci ildə HTC Dream-də buraxılmışdır. Əsas mərhələlər: Android 4.0 Ice Cream Sandwich (telefonlar və planşetlər üçün vahid interfeys), Android 5.0 Lollipop (Material Design), Android 6.0 (iş vaxtı icazələri), Android 10 (tünd tema, jestlər), Android 12 (Material You). 2023-cü ildən Google desert adları olmadan illik əsas buraxılışlara keçmişdir.
| Android Versiyası | İl | Əsas Yenilik |
|---|---|---|
| Android 1.0 | 2008 | HTC Dream-də ilk buraxılış |
| Android 4.0 (ICS) | 2011 | Telefonlar və planşetlər üçün vahid dizayn |
| Android 5.0 (L) | 2014 | Material Design, Dalvik əvəzinə ART |
| Android 6.0 (M) | 2015 | İş vaxtı icazələri, Doze rejimi |
| Android 8.0 (O) | 2017 | Kotlin rəsmi dil olaraq |
| Android 10 (Q) | 2019 | Scoped Storage, tünd tema |
| Android 12 (S) | 2021 | Material You, Privacy Dashboard |
| Android 15 | 2024 | Private Space, peyk əlaqəsi |
Android arxitekturası dörd əsas qatdan ibarətdir və aparat təminatını istifadəçi tətbiqlərindən təcrid edir. Hər bir qat ciddi şəkildə müəyyən edilmiş interfeyslər vasitəsilə aşağıdakı qatın xidmətlərindən istifadə edir.
Alt qat dəyişdirilmiş Linux nüvəsidir (LTS, Android 15-də versiya 6.x). Yaddaşın idarə edilməsi, proseslər, şəbəkə yığını və sürücüləri təmin edir. HAL (Hardware Abstraction Layer) aparatla (kamera, Bluetooth, Wi-Fi, sensorlar) qarşılıqlı əlaqə üçün vahid API təqdim edir. İstehsalçılar yuxarı qatlara təsir etmədən HAL modullarını həyata keçirirlər.
ART tətbiqlərin DEX bayt kodunu icra edir. Android 5.0-dən başlayaraq, ART Dalvik-i əvəz etdi və performansı yaxşılaşdırmaq üçün Ahead-of-Time (AOT) kompilyasiyasından istifadə edir. Hər bir tətbiqin ayrı ART instansı ilə öz prosesi var. Zibil yığımı (GC) minimal fasilələrlə işləyir — tipik GC fasiləsi 2–4 ms-dir.
Framework — tərtibatçının birbaşa işlədiyi qatdır. Activity Manager (ekran yığını), Content Providers (məlumat girişi), Resource Manager (lokallaşdırma, resurslar), Notification Manager, Location Manager daxildir. Bütün sistem xidmətləri Binder IPC — Android-in proseslərarası kommunikasiya mexanizmi vasitəsilə çağırılır.
// AİDL interfeysi vasitəsilə Binder ilə iş nümunəsi
interface IDataService : android.os.IInterface {
fun getData(): List<DataItem>
fun saveData(item: DataItem): Boolean
}
// Xidmətin icrası
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
}Üst qat standart sistem tətbiqlərindən ibarətdir: Telefon, Kontaktlar, Kamera, Parametrlər, Brauzer. Bunların istifadəçi tətbiqlərindən daha yüksək imtiyazları yoxdur, lakin üçüncü tərəf tətbiqləri ilə əvəz edilə bilər. Android 15-də sistem tətbiqləri istehsalçının OTA yeniləmələrindən asılı olmayaraq Google Play System Updates vasitəsilə yenilənir.
Kotlin — JetBrains tərəfindən statik tipli, JVM-də işləyən proqramlaşdırma dilidir. Google 2017-ci ildə Google I/O-da Kotlin-i rəsmi Android dili elan etdi. Kotlin Java ilə tam uyğundur, lakin onun çatışmazlıqlarını aradan qaldırır: null təhlükəsizliyi, data siniflər, genişləndirmə funksiyaları və korutinlər.
Kotlin-in əsas xüsusiyyəti NullPointerException-a qarşı daxili qorunmadır. Tiplər nullable (String?) və non-null (String) olaraq bölünür. Kompilyator qurma vaxtı nullable girişi yoxlayır. Safe call (?.) və Elvis operatoru (?:) iç-içə yoxlamalar olmadan isteğe bağlı dəyərlərlə işi sadələşdirir.
// Korutinlər və Flow ilə Kotlin kodu nümunəsi
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)
}
}Nümunə asinxron şəbəkə və verilənlər bazası girişi üçün korutinləri (suspend funksiyası), məlumat dəyişikliklərinin reaktiv müşahidəsi üçün Flow-u və təhlükəsiz səhv idarəetməsi üçün Result-u göstərir. Korutinlər thread yükü olmadan callback və RxJava-nı əvəz edir.
Kotlin korutinləri ortaq thread hovuzunda işləyən yüngül thread-lərdir. Şəbəkə və disk üçün Dispatchers.IO, UI üçün Dispatchers.Main, CPU intensiv tapşırıqlar üçün Dispatchers.Default. viewModelScope və lifecycleScope komponent məhv edildikdə korutinləri avtomatik ləğv edir.
// Korutinlər və StateFlow ilə 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 — IntelliJ IDEA əsaslı rəsmi IDE, Google tərəfindən hazırlanmışdır. Kod redaktoru, Layout Inspector, cihaz emulyatoru, APK Analyzer, Profiler (CPU, Yaddaş, Şəbəkə, Enerji) və Firebase inteqrasiyası daxildir. Android Studio 2024 (Ladybug) çoxplatformalı KMP rejimi ilə Kotlin 2.0-ı dəstəkləyir.
Android Emulyatoru aparat sürətləndirilməsi üçün KVM (Linux) və ya Hyper-V (Windows) istifadə edir. GPS, sensorlar, kamera, zənglər və SMS simulyasiyasını dəstəkləyir. Google Pixel 9 Pro API 35 və 8 GB emulyator RAM ilə sınaq üçün tövsiyə olunan konfiqurasiyadır.
Profiler real vaxtda CPU yükünü, yaddaş ayrılmasını, şəbəkə sorğularını və enerji istehlakını göstərir. Memory Profiler istinad ağacı vasitəsilə heap boşaltma və sızma analizinə imkan verir. Network Inspector bədən və başlıqlarla bütün HTTP/HTTPS sorğularını qeyd edir. Dərin analiz üçün Android Studio Canary istifadə olunur.
Android tətbiqi dörd növ komponentdən ibarətdir, hər birinin öz giriş nöqtəsi və həyat dövrü var. Komponentlər AndroidManifest.xml faylında qeydiyyatdan keçirilir.
| Komponent | Məqsəd | Giriş nöqtəsi |
|---|---|---|
| Activity | İstifadəçi ilə qarşılıqlı əlaqə üçün UI ekranı | Action.MAIN və LAUNCHER kateqoriyası ilə Intent |
| Service | UI olmadan fon tapşırıqlarının icrası | startService() və ya bindService() |
| BroadcastReceiver | Sistem və ya fərdi hadisələrin qəbulu | Manifestdə və ya kodda qeydiyyat |
| ContentProvider | Strukturlaşdırılmış məlumatlara girişin idarəsi | ContentResolver vasitəsilə URI |
Activity istifadəçi interfeysinin əsas komponentidir. Hər ekran ayrı Activity və ya Activity daxilində Fragmentdir. Ekranlar arasında naviqasiya Intent — hərəkət (ACTION_VIEW, ACTION_SEND) və məlumat (URI) olan obyekt vasitəsilə həyata keçirilir. Jetpack Navigation Graph-da naviqasiya XML-də təsvir olunur.
Service fon tapşırıqlarını yerinə yetirir, lakin Android 8-dən başlayaraq fon xidmətləri məhdudlaşdırılıb. WorkManager zəncirlər, məhdudiyyətlər (məsələn, yalnız şarj zamanı) və çöküşdən sonra yenidən başlatma dəstəyi ilə gecikdirilmiş və zəmanətli fon tapşırıqları üçün tövsiyə olunan kitabxanadır.
Jetpack Compose və ənənəvi XML layoutları arasında seçim Android layihəsinə başlayarkən əsas arxitektural qərardır. XML Layouts (RecyclerView, ConstraintLayout, FrameLayout) 2008-ci ildən standartdır. Jetpack Compose 2021-ci ildə deklarativ alternativ olaraq təqdim edilmişdir.
| Meyar | XML Layouts | Jetpack Compose |
|---|---|---|
| Paradiqma | Əmr (View ağacı) | Deklarativ (@Composable funksiyalar) |
| Minimum versiya | İstənilən (API 1+) | API 21+ (Android 5.0) |
| Layout | XML + data binding / ViewBinding | Modifier ilə Kotlin kodu |
| RecyclerView analoqu | RecyclerView + Adapter + ViewHolder | LazyColumn / LazyGrid |
| Ön baxış | Android Studio-da XML ön baxış | İnteraktivliklə @Preview annotasiyası |
| Yenidən birləşmə | notifyDataSetChanged (tam) | Avtomatik, dənəvər (DiffUtil) |
| İnteroperabillik | Tam (bütün kitabxanalar) | XML-də ComposeView / Compose-da AndroidView |
Google bütün yeni layihələr üçün Jetpack Compose-u tövsiyə edir. XML Layouts köhnə layihələrin dəstəyi və maksimum View fərdiləşdirilməsi (Canvas, SurfaceView) tələb olunan hallar üçün aktual qalır. Compose kodu ekvivalent XML + ViewBinding-dən orta hesabla 40% qısadır.
// Jetpack Compose — istifadəçi profil ekranı
@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 = "İstifadəçi 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("Profili redaktə et")
}
}
}
@Preview(showBackground = true, showSystemUi = true)
@Composable
fun ProfileScreenPreview() {
MaterialTheme {
ProfileScreen(
user = User(1, "Anna Petrova", "anna@example.com"),
onEditClick = {}
)
}
}ProfileScreen funksiyası @Composable olaraq elan edilir — View instansları yaratmadan UI-ı deklarativ təsvir edir. Compose user dəyişdikdə ekranı avtomatik yeniləyir. @Preview qurma və emulyatorda işə salmadan birbaşa IDE-də nəticəni göstərir.
Android-də hər Activity altı həyat dövrü vəziyyətindən keçir: onCreate, onStart, onResume, onPause, onStop, onDestroy. Fragment onAttach, onCreateView, onViewCreated əlavə edir. Həyat dövrünü başa düşmək yaddaş idarəçiliyi və sızmaların qarşısını almaq üçün vacibdir.
onCreate — Activity yaradıldıqda bir dəfə çağırılır. Burada başlatma aparılır: setContentView, adapter qurulumu, LiveData abunəliyi. onResume — Activity ön plandadır və istifadəçi ilə qarşılıqlı əlaqədədir. onPause — Activity fokusunu itirir (dialoq, başqa Activity). onStop — Activity görünmür. onDestroy — Activity məhv edilir.
// LifecycleScope vasitəsilə həyat dövrü idarəçiliyi ilə 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 istifadəsi Activity fon keçdikdə məlumat toplamanın dayanmasını və ön plana qayıtdıqda davam etməsini təmin edir. Bu sızmaların və lazımsız şəbəkə sorğularının qarşısını alır. onSaveInstanceState ekran dönməsində müvəqqəti vəziyyəti saxlayır.
Google Play rəsmi Android tətbiq mağazasıdır. Tərtibatçı hesabı qeydiyyatı $25 birdəfəlikdir. Hər bir tətbiq zərərli kod, siyasət pozuntuları və yanlış icazə istifadəsi üçün avtomatik Google Play Integrity yoxlamasından keçir.
Google Android App Bundle (AAB) və ya APK vasitəsilə tətbiq imzalanmasını tələb edir. AAB hər bir cihaz konfiqurasiyası üçün optimallaşdırılmış APK yaratmağa imkan verən tövsiyə olunan formatdır. Tətbiq etibarlı sertifikatla açar (keystore) ilə imzalanmalıdır. Google Play App Signing Google tərəfində isteğe bağlı açar şifrələməsidir.
Şəxsi məlumatlara giriş tələb edən bütün tətbiqlər Məxfilik Siyasəti təqdim etməlidir. 2024-cü ildən Google toplanan məlumat növlərini və emal məqsədlərini göstərən Data Safety bəyannaməsi tələb edir. Android 14+ hədəfləyən tətbiqlər icazələri bəyan etmək üçün Declarations API istifadə etməlidir.
| Tələb | Təsvir |
|---|---|
| Android App Bundle | Optimallaşdırılmış çatdırılma üçün AAB formatı |
| Data Safety | Şəxsi məlumatların toplanması və emalı haqqında form |
| Hədəf SDK | Tətbiq ən son Android API səviyyəsini hədəfləməlidir |
| Məzmun Reytinqi | Yaş reytinqi sorğu vərəqi |
| Mağaza Siyahısı | Ad, işarə, ekran görüntüləri, təsvir |
Tez-tez verilən suallar
Kotlin — Google tərəfindən Android üçün rəsmi tövsiyə olunan dil. Java da köhnə layihələr üçün dəstəklənir. Kotlin null təhlükəsizliyi, korutinlər və genişləndirmə funksiyaları təklif edir, Java ilə müqayisədə kod həcmini 30–40% azaldır.
Jetpack Compose deklarativ sintaksisi və avtomatik yenidən birləşmə optimallaşdırması sayəsində bütün yeni layihələr üçün tövsiyə olunur. XML Layouts köhnə layihələrdə və Canvas və ya SurfaceView-in dəqiq fərdiləşdirilməsi tələb olunan hallarda qalır.
Google Play tərtibatçı qeydiyyatı $25 birdəfəlikdir. Mağaza komissiyası ilk $1 milyon gəlir üçün 15%, sonra 30%-dir. Abunəliklər üçün komissiya ilk gündən 15%-dir. Apple Developer Program-dan fərqli olaraq illik ödəniş yoxdur.
Android Jetpack rəsmi SDK-ya daxil olan Google kitabxanaları dəstidir: Navigation, Room (kompilyasiya vaxtı sorğu yoxlaması ilə SQLite ORM), WorkManager (zəmanətli fon tapşırıqları), ViewModel (vəziyyət idarəçiliyi), LiveData və StateFlow reaktivlik üçün.
Yeni layihələr üçün dəstəklənən minimum versiya API 24 (Android 7.0)-dür. AndroidManifest.xml tətbiq komponentlərini və icazələrini təsvir edir. APK/AAB keystore ilə imzalanır. Hədəf SDK dərc zamanı ən son API səviyyəsinə uyğun olmalıdır.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun