Android İşletim Sistemi Mimarisi (Kernel, Libraries, Runtime, Framework, DVM)


Önceki yazımızda Android’in, Linux tabanlı ve açık kaynak kodlu bir işletim sistemi olduğundan bahsetmiştik. Şimdi de detaylı olarak Android işletim sistemi mimarisini inceleyelim. Android işletim sistemi 4 ana katmandan oluşur:

  • Linux Çekirdek (Linux Kernel)
  • Kütüphaneler (Libraries)  ve Android Çalışma Zamanı (Android Runtime)
  • Uygulama Çatısı (Application Framework)
  • Uygulamalar (Applications)

android

1.    Linux Çekirdek (Linux Kernel)

Android mimarisindeki en alt katmandır. Bu katmanda donanımsal bilgiler ve uygulamaların çalışabilmesi için gerekli sürücüler yer alır (klavye sürücüleri, ses sürücüleri, Wi-fi sürücüleri, kamera, görüntü ve görüntü sürücüleri, işlem ve hafıza denetimi, güç denetimi).

2.    Kütüphaneler (Libraries)

Çekirdeğin üstünde yer alan yer katman genelde C++ ve C dilleri ile yazılmış kütüphaneleri içerir (libc, SSL). Bu katmada sistem kütüphaneleri, mp3, mpeg4, jpg gibi çoklu ortam bileşenleri için medya kütüphaneleri ve 2D/3D grafikler için OpenGL/SGL içeren kütüphaneler bulunur.

Android İşletim Sistemi kendi ilişkisel verilerini tutabildiği bir SQLite isimli bir veritabanına sahiptir. Kütüphaneler katmanında veri tabanı için SQLite kütüphaneleri gibi temel kütüphaneler de yer alır.

3.    Android Çalışma Zamanı (Android Runtime)

Android’i mobil Linux uygulamasından ayıran en önemli katmandır. Android alt seviye işler için (hafıza yönetimi, donanım sürücüleri gibi) Linux kernelini kullanmaktadır ve temel Java kütüphanelerini içerir. Bu katmanda Çekirdek Kütüphaneleri ve Dalvik Sanal Makinesi yer almaktadır.

3.1.  Çekirdek Kütüphaneleri (Core Libraries)

Çekirdek kütüphaneleri, Java için çekirdek API’lerini, veri yapılarını, hizmetleri, dosya erişimi, ağ erişimi ve grafik bileşenlerini de içermektedir.

3.2.  Dalvik Sanal Makinesi (DVM – Dalvik Virtual Machine)

Dalvik Sanal Makinesi (DVM) Android işletim sisteminin en önemli bileşenidir. Java ME gibi geleneksel Java VM kullanmaktan ziyade Android tek bir cihaz üzerinde çoklu instance’lerın etkili bir şekilde çalışmasını sağlayan DVM’i kullanır. DVM, thread, bellek yönetimi, işlemler ve güvenlik gibi düşük seviye işlevsellikleri yoluna koymak için cihazdaki linux çekirdeğini kullanır. DVM, minimum bellek kullanımı için optimize edilmiş bir format olan Dalvik dosyalarını çalıştırır. DVM özetle;

  • Belleği verimli kullanır.
  • Uygulama taşınabilirliği ve çalıştırılmasında tutarlılık sağlar.
  • Gömülü ortamlar için tasarlanmıştır.
  • Java sınıf dosyalarının yapısını optimize edilmiş dex formatına dönüştürür.
  • Dex dosyaları Dalvik bytecode ile çalıştırılır.
  • Her süreç için ayrı bir dalvik sanal makinesi çalıştırılır.

4.    Uygulama Çatısı (Application Framework)

Android, yazılım geliştiriciler için oldukça zengin bir platform sunmaktadır. Android uygulamalarının yazılımını oluştururken yazılımcıya uygulama çatısı sağlayan uygulama servisleri aşağıdaki gibidir;

  • Aktivite Yöneticisi (Activity Manager): Aktivitelerinizin yaşam çemberini kontrol eder. Aktivite yığınının yönetimini içerir.
  • Görünümler (Views): Aktiviteler için kullanıcı ara yüzü yapılmasında kullanılır.
  • Uyarı Yöneticisi (Notification Manager): Kullanıcılara yapılan bildirimler ve uyarılar için uyumlu ve tutarlı işlev sağlar.
  • İçerik Sağlayıcılar (Content Providers): Uygulamanın veri paylaşımını sağlar. Telefon rehberi, resim, müzik vb. verilerin uygulamalarca erişimini sağlayan arabirimlerdir. SQL benzeri erişim ara yüzüne sahiptirler.
  • Kaynak Yöneticisi (Resource Manager): Dışarıda tutulmak üzere diziler ve grafikler gibi kodsuz kaynakları destekler.

5.    Uygulamalar (Applications)

Android uygulama çatısındaki servisler ve sınıflar kullanılarak oluşturulan yerel ve 3.parti Android uygulamalarını kapsar. Yerel uygulamalar arasında e-mail istemcisi, sms programı, takvim, google maps, telefon rehberi gibi temel uygulamalar yer almaktadır.

Deniz KILINÇ

Advertisements

One Response to Android İşletim Sistemi Mimarisi (Kernel, Libraries, Runtime, Framework, DVM)

  1. Pingback: Android Emülatörü ve Sanal Cihazı (AVD) | Dr. Deniz KILINÇ Blog Sitesi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: