Android: co to je, architektura systému a vývoj v Kotlinu

Autor: IT Sectr Publikováno: 2026-02-07 Doba čtení: 11 min

Android je mobilní operační systém Google s otevřeným zdrojovým kódem (AOSP) běžící na jádru Linux. Vývoj pro Android probíhá v Kotlinu s Android Studio. Tento článek pokrývá architekturu OS, komponenty aplikací, Jetpack Compose a publikování na Google Play.

Hlavní body

  • Android — OS na jádru Linux se čtyřmi vrstvami: jádro, HAL, Android Runtime, Application Framework
  • Kotlin — primární vývojový jazyk s nulovou bezpečností a korutinami pro asynchronnost
  • Activity, Service, BroadcastReceiver, ContentProvider — čtyři povinné komponenty Android aplikace
  • Jetpack Compose — deklarativní UI framework doporučený Googlem pro nové projekty
  • Google Play — hlavní distribuční kanál s provizí 15–30% a bezpečnostní kontrolou Play Integrity

Co je Android?

Android je mobilní operační systém založený na jádru Linux, vyvíjený Googlem od roku 2007. Zdrojový kód je otevřený pod licencí Apache 2.0 v rámci projektu Android Open Source Project (AOSP). Každý výrobce může systém upravit a nainstalovat na svá zařízení.

Podle StatCounter (2026) Android drží přibližně 72% celosvětového trhu mobilních OS. Největšími výrobci jsou Samsung, Xiaomi, Oppo, Vivo, Google Pixel. Fragmentace je klíčovým problémem platformy: tisíce modelů s různými verzemi OS se používají současně.

Architektura Androidu je postavena na principu oprávnění (permissions): každá aplikace běží pod samostatným Linux UID a má přístup pouze ke svým datům. Přístup k systémovým zdrojům (kamera, mikrofon, kontakty) je vyžadován prostřednictvím Android Permissions za běhu, počínaje Android 6 (API 23).

Historie verzí Android

Android 1.0 byl vydán v roce 2008 na HTC Dream. Klíčové milníky: Android 4.0 Ice Cream Sandwich (jednotné UI pro telefony a tablety), Android 5.0 Lollipop (Material Design), Android 6.0 (oprávnění za běhu), Android 10 (tmavé téma, gesta), Android 12 (Material You). Od roku 2023 Google přešel na každoroční hlavní vydání bez názvů dezertů.

Verze AndroidRokKlíčová inovace
Android 1.02008První vydání na HTC Dream
Android 4.0 (ICS)2011Jednotný design pro telefony a tablety
Android 5.0 (L)2014Material Design, ART místo Dalvik
Android 6.0 (M)2015Oprávnění za běhu, režim Doze
Android 8.0 (O)2017Kotlin jako oficiální jazyk
Android 10 (Q)2019Scoped Storage, tmavé téma
Android 12 (S)2021Material You, Privacy Dashboard
Android 152024Private Space, satelitní připojení

Architektura Android: čtyři klíčové vrstvy

Architektura Android se skládá ze čtyř hlavních vrstev, které izolují hardware od uživatelských aplikací. Každá vrstva využívá služby vrstvy pod ní prostřednictvím přísně definovaných rozhraní.

Jádro Linux a HAL

Nejnižší vrstva je modifikované jádro Linux (LTS, verze 6.x v Android 15). Spravuje paměť, procesy, síťový zásobník a ovladače. Hardware Abstraction Layer (HAL) poskytuje jednotné API pro interakci s hardwarem: kamera, Bluetooth, Wi-Fi, senzory. Výrobci implementují moduly HAL, aniž by ovlivňovali horní vrstvy.

Android Runtime (ART)

ART spouští DEX bajtkód aplikací. Počínaje Android 5.0, ART nahradil Dalvik a používá Ahead-of-Time (AOT) kompilaci pro zlepšení výkonu. Každá aplikace má svůj vlastní proces se samostatnou instancí ART. Garbage collection (GC) pracuje s minimálními pauzami — typická pauza GC je 2–4 ms.

Application Framework

Framework je vrstva, se kterou vývojář přímo pracuje. Zahrnuje Activity Manager (zásobník obrazovek), Content Providers (přístup k datům), Resource Manager (lokalizace, zdroje), Notification Manager, Location Manager. Všechny systémové služby jsou volány přes Binder IPC — mechanismus meziprocesové komunikace Android.

kotlin
// Příklad práce s Binder přes AIDL rozhraní
interface IDataService : android.os.IInterface {
    fun getData(): List<DataItem>
    fun saveData(item: DataItem): Boolean
}

// Implementace služby
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
}

Systémové aplikace

Nejvyšší vrstva tvoří standardní systémové aplikace: Telefon, Kontakty, Kamera, Nastavení, Prohlížeč. Nemají vyšší oprávnění než uživatelské aplikace, ale mohou být nahrazeny aplikacemi třetích stran. V Android 15 jsou systémové aplikace aktualizovány prostřednictvím Google Play System Updates nezávisle na OTA aktualizacích výrobce.

Kotlin — primární jazyk vývoje Android

Kotlin je staticky typovaný programovací jazyk od JetBrains běžící na JVM. Google oznámil Kotlin jako oficiální jazyk Android v roce 2017 na Google I/O. Kotlin je plně kompatibilní s Javou, ale odstraňuje její nedostatky: nulovou bezpečnost, datové třídy, rozšiřující funkce a korutiny.

Nulová bezpečnost a typy

Hlavní vlastností Kotlin je vestavěná ochrana proti NullPointerException. Typy jsou rozděleny na nullable (String?) a non-null (String). Kompilátor kontroluje nullable přístup v době kompilace. Operátor safe call (?.) a operátor Elvis (?:) zjednodušují práci s volitelnými hodnotami bez vnořených kontrol.

kotlin
// Příklad kódu Kotlin s korutinami a Flow
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)
    }
}

Příklad ukazuje korutiny (funkce suspend) pro asynchronní přístup k síti a databázi, Flow pro reaktivní pozorování změn dat a Result pro bezpečné zpracování chyb. Korutiny nahrazují callbacky a RxJava bez režie vláken.

Kotlin korutiny a Flow

Kotlin korutiny jsou lehká vlákna běžící na sdíleném fondu vláken. Dispatchers.IO pro síť a disk, Dispatchers.Main pro UI, Dispatchers.Default pro úkoly náročné na CPU. viewModelScope a lifecycleScope automaticky ruší korutiny při zničení komponenty.

kotlin
// ViewModel s korutinami a StateFlow
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 a vývojové nástroje

Android Studio je oficiální IDE založené na IntelliJ IDEA, vyvinuté Googlem. Zahrnuje editor kódu, Layout Inspector, emulátor zařízení, APK Analyzer, Profiler (CPU, Paměť, Síť, Energie) a integraci Firebase. Android Studio 2024 (Ladybug) podporuje Kotlin 2.0 s multiplatformním režimem KMP.

Android emulátor

Android emulátor používá KVM (Linux) nebo Hyper-V (Windows) pro hardwarovou akceleraci. Podporuje simulaci GPS, senzorů, kamery, hovorů a SMS. Google Pixel 9 Pro je doporučená konfigurace pro testování s API 35 a 8 GB RAM emulátoru.

Android Profiler a ladění

Profiler v reálném čase zobrazuje zatížení CPU, alokaci paměti, síťové požadavky a spotřebu energie. Memory Profiler umožňuje výpis haldy a analýzu úniků pomocí referenčního stromu. Network Inspector zaznamenává všechny HTTP/HTTPS požadavky s tělem a hlavičkami. Pro hloubkovou analýzu se používá Android Studio Canary.

Komponenty Android aplikace

Android aplikace se skládá ze čtyř typů komponent, každá s vlastním vstupním bodem a životním cyklem. Komponenty se registrují v souboru AndroidManifest.xml.

KomponentaÚčelVstupní bod
ActivityObrazovka s UI pro interakci s uživatelemIntent s Action.MAIN a kategorií LAUNCHER
ServiceProvádění úloh na pozadí bez UIstartService() nebo bindService()
BroadcastReceiverPříjem systémových nebo vlastních událostíRegistrace v manifestu nebo v kódu
ContentProviderSpráva přístupu ke strukturovaným datůmURI přes ContentResolver

Activity a Intent

Activity je základní komponentou uživatelského rozhraní. Každá obrazovka je samostatná Activity nebo Fragment uvnitř Activity. Navigace mezi obrazovkami probíhá přes Intent — objekt obsahující akci (ACTION_VIEW, ACTION_SEND) a data (URI). V Jetpack Navigation Graph je navigace popsána v XML.

Service a WorkManager

Service provádí úlohy na pozadí, ale od Android 8 jsou služby na pozadí omezeny. WorkManager je doporučená knihovna pro odložené a garantované úlohy na pozadí s podporou řetězců, omezení (např. pouze při nabíjení) a restartu po pádu.

Jetpack Compose vs XML Layouts

Volba mezi Jetpack Compose a tradičními XML rozvrženími je hlavním architektonickým rozhodnutím při zahájení Android projektu. XML rozvržení (RecyclerView, ConstraintLayout, FrameLayout) jsou standardem od roku 2008. Jetpack Compose byl představen v roce 2021 jako deklarativní alternativa.

KritériumXML LayoutsJetpack Compose
ParadigmaImperativní (strom View)Deklarativní (@Composable funkce)
Minimální verzeJakákoli (API 1+)API 21+ (Android 5.0)
RozvrženíXML + data binding / ViewBindingKotlin kód s Modifier
Analog RecyclerViewRecyclerView + Adapter + ViewHolderLazyColumn / LazyGrid
NáhledXML náhled v Android Studio@Preview anotace s interaktivitou
RekompozicenotifyDataSetChanged (plná)Automatická, granulární (DiffUtil)
InteroperabilitaPlná (všechny knihovny)ComposeView v XML / AndroidView v Compose

Google doporučuje Jetpack Compose pro všechny nové projekty. XML rozvržení zůstávají relevantní pro podporu starších projektů a pro případy, kde je vyžadováno maximální přizpůsobení View (Canvas, SurfaceView). Compose kód je v průměru o 40% kratší než ekvivalentní XML + ViewBinding.

kotlin
// Jetpack Compose — obrazovka profilu uživatele
@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 = "Avatár uživatele",
            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("Upravit profil")
        }
    }
}

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

Funkce ProfileScreen je deklarována jako @Composable — deklarativně popisuje UI bez vytváření instancí View. Compose automaticky aktualizuje obrazovku při změně user. @Preview zobrazí výsledek přímo v IDE bez sestavení a spuštění na emulátoru.

Životní cyklus Activity a Fragment

Každá Activity v Androidu prochází šesti stavy životního cyklu: onCreate, onStart, onResume, onPause, onStop, onDestroy. Fragment přidává onAttach, onCreateView, onViewCreated. Pochopení životního cyklu je klíčové pro správu paměti a prevenci úniků.

Hlavní stavy Activity

onCreate — volá se jednou při vytvoření Activity. Zde probíhá inicializace: setContentView, nastavení adaptérů, odběr LiveData. onResume — Activity je v popředí a interaguje s uživatelem. onPause — Activity ztrácí fokus (dialog, jiná Activity). onStop — Activity není viditelná. onDestroy — Activity je zničena.

kotlin
// Activity se zpracováním životního cyklu přes LifecycleScope
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", "")
    }
}

Použití repeatOnLifecycle zajišťuje, že sběr dat se pozastaví, když Activity přejde na pozadí, a obnoví se, když se vrátí do popředí. Tím se zabrání únikům a zbytečným síťovým požadavkům. onSaveInstanceState ukládá dočasný stav při otáčení obrazovky.

Google Play: publikování a požadavky

Google Play je oficiální obchod s aplikacemi pro Android. Registrace vývojářského účtu stojí 25 $ jednorázově. Každá aplikace prochází automatickou kontrolou Google Play Integrity na škodlivý kód, porušení zásad a nesprávné použití oprávnění.

Požadavky na publikování

Google vyžaduje podpis aplikace prostřednictvím Android App Bundle (AAB) nebo APK. AAB je doporučený formát, který umožňuje generovat optimalizované APK pro každou konfiguraci zařízení. Aplikace musí být podepsána klíčem (keystore) s platným certifikátem. Google Play App Signing je volitelné šifrování klíče na straně Google.

Zásady ochrany osobních údajů

Všechny aplikace požadující přístup k osobním údajům musí poskytnout Zásady ochrany osobních údajů. Od roku 2024 Google vyžaduje prohlášení Data Safety — formulář specifikující typy shromažďovaných údajů a účely zpracování. Aplikace cílené na Android 14+ musí používat Declarations API pro deklarování oprávnění.

PožadavekPopis
Android App BundleFormát AAB pro optimalizované doručení
Data SafetyFormulář o shromažďování a zpracování osobních údajů
Cílové SDKAplikace musí cílit na nejnovější úroveň API Android
Hodnocení obsahuDotazník věkového hodnocení
Výpis v obchoděNázev, ikona, snímky obrazovky, popis

Často kladené otázky

Který jazyk je nejlepší pro vývoj Android?

Kotlin — oficiálně doporučený jazyk Googlem pro Android. Java je také podporována pro starší projekty. Kotlin nabízí nulovou bezpečnost, korutiny a rozšiřující funkce, čímž snižuje objem kódu o 30–40% ve srovnání s Javou.

Co vybrat: Jetpack Compose nebo XML Layouts?

Jetpack Compose je doporučen pro všechny nové projekty díky deklarativní syntaxi a automatické optimalizaci rekompozice. XML Layouts zůstávají ve starších projektech a případech, kde je vyžadováno detailní přizpůsobení Canvas nebo SurfaceView.

Kolik stojí publikování na Google Play?

Registrace vývojáře Google Play stojí 25 $ jednorázově. Provize obchodu je 15% pro prvních 1 milion $ příjmů, poté 30%. Pro předplatné je provize 15% od prvního dne. Na rozdíl od Apple Developer Program neexistuje žádný roční poplatek.

Co je Android Jetpack?

Android Jetpack je sada knihoven Google zahrnutých v oficiálním SDK: Navigation, Room (SQLite ORM s kontrolou dotazů v době kompilace), WorkManager (garantované úlohy na pozadí), ViewModel (správa stavu), LiveData a StateFlow pro reaktivitu.

Jaké jsou minimální požadavky pro Android aplikaci?

Minimální podporovaná verze pro nové projekty je API 24 (Android 7.0). AndroidManifest.xml popisuje komponenty a oprávnění aplikace. APK/AAB se podepisuje keystore. Cílové SDK musí odpovídat nejnovější úrovni API v době publikování.

Shrnutí

  • Android — otevřený mobilní OS na jádru Linux s 72% globálním podílem na trhu a možnostmi přizpůsobení výrobci
  • Kotlin — primární jazyk vývoje Android s nulovou bezpečností, korutinami a 100% kompatibilitou s Javou
  • Architektura Android postavena na čtyřech vrstvách: jádro Linux, HAL, Android Runtime, Application Framework
  • Activity, Service, BroadcastReceiver, ContentProvider — čtyři komponenty registrované v manifestu
  • Jetpack Compose — deklarativní UI framework doporučený Googlem s automatickou rekompozicí
  • Google Play — jednorázová platba 25 $, formát AAB, povinné Data Safety a Zásady ochrany osobních údajů
  • WorkManager — doporučené API pro úlohy na pozadí se zárukami provedení a omezeními

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také