Android cihazlarda kullanıcıya kendi cihazının özelliklerini ve sürücülerini değiştirme ve uygulama özgünlüğü sunar Donanım soyutlama katmanı (HAL), Android platformu yığını ile donanımınız arasında yazılım bağlantıları yaratmak için standart yöntemleri sunar. Android işletim sistemi bir açık kaynak dizisidir, bu yüzden kendi arayüzlerinize ve geliştirmelerinizi yapmanıza olanak sağlar.
Uygulama Çerçevesi (Application framework)
Çoğunlukla uygulama geliştiricileri tarafından kullanılmaktadır. Uygulama geliştiricisi olan pek çok kişi doğrudan HAL arabirimlerine ulaşamaz. Bu yüzden geliştirici API’leri kullanmak zorundadır. Bu sayede sürücüler hakkında gerekli bilgilere sahip olabilir.
Binder IPC
Ciltçi İşlemler Arası İletişim (IPC) mekanizması, uygulama çerçevesinin süreç sınırlarını aşmasına ve Android sistem hizmetleri kodunu çağırmasına izin verir. Bu, üst düzey çerçeve API’lerinin Android sistem hizmetleri ile etkileşimde bulunmasını sağlar. Uygulama çerçevesi düzeyinde, bu iletişim geliştiriciden gizlidir ve işler “sadece işe yarıyor” görünür.
Sistem Hizmetleri
Uygulama çerçevesi API’leri tarafından serbest bırakılan işlevler temel donanıma erişmek için sistem hizmetleri ile iletişim kurarlar. Hizmetler modülerdir, Pencere Yöneticisi, Arama Hizmeti veya Bildirim Yöneticisi gibi özelliklerine göre odaklanmış bileşenlerdir. Android iki servis grubunu içerir: sistem (Pencere Yöneticisi ve Bildirim Yöneticisi gibi servisler) ve medya ( medyayı oynatma ve kayıt etme ile ilgili servisler).
Donanım Düzeyi Katmanı (HAL)
Donanım soyutlama katmanı (HAL), donanım üreticilerinin uygulayacağı standart bir arabirimi tanımlar ve Android’in alt düzey sürücülerle ilgili uygulamaları tanımamasına izin verir. HAL, üst düzey sistemi etkilemeden veya değiştirmeden işlevsellik sağlamanıza izin verir. HAL uygulamaları modül ( .so) dosyasına paketlenir ve Android sistem tarafından uygun zamanda yüklenir.
Linux Kernel
Aygıt sürücülerini geliştirmek, tipik bir Linux aygıt sürücüsü geliştirmeye benzer. Android, uyandırma kilitleri, mobil cihazlar ve yerleşik bir platform için önemli olan Binder IPC sürücüsü ve diğer bazı özel eklemeler ile Linux çekirdeğinin bir sürümünü kullanıyor.
Gerekli özellikleri (bağlayıcı sürücüsü gibi) desteklediği sürece çekirdeğin herhangi bir sürümünü kullanabilirsiniz. Bununla birlikte, Android çekirdeğin en yeni sürümünü kullanmak her zaman daha iyidir.