Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Android Mimarisi

Android sistem mimarisi aşağıdaki bileşenleri içerir:

Android sistem mimarisine genel bakış
Şekil 1. Android sistem mimarisi
  • Uygulama çerçevesi . Uygulama çerçevesi en çok uygulama geliştiricileri tarafından kullanılır. Bir donanım geliştiricisi olarak, geliştirici API'lerinin, temel HAL arayüzlerine doğrudan eşlendiği ve sürücülerin uygulanması hakkında yararlı bilgiler sağlayabileceği kadar farkında olmalısınız.
  • Bağlayıcı IPC . Bağlayıcı İşlemler Arası İletişim (IPC) mekanizması, uygulama çerçevesinin işlem sınırlarını aşmasına ve Android sistem hizmetleri kodunu çağırmasına olanak tanır. Bu, üst düzey çerçeve API'lerinin Android sistem hizmetleriyle etkileşime girmesini sağlar. Uygulama çerçevesi düzeyinde, bu iletişim geliştiriciden gizlenir ve işler "sadece işe yarar" gibi görünür.
  • Sistem hizmetleri . Sistem hizmetleri, Pencere Yöneticisi, Arama Hizmeti veya Bildirim Yöneticisi gibi modüler, odaklanmış bileşenlerdir. Uygulama çerçevesi API'larının maruz kaldığı işlevsellik, temel donanıma erişmek için sistem hizmetleriyle iletişim kurar. Android iki hizmet grubu içerir: sistem (Window Manager ve Notification Manager gibi) ve medya ( medya oynatma ve kaydetme ile ilgili hizmetler).
  • Donanım soyutlama katmanı (HAL) . HAL, Android'in daha düşük düzeyli sürücü uygulamaları konusunda agnostik olmasını sağlayan donanım satıcılarının uygulayacağı standart bir arabirim tanımlar. HAL kullanmak, üst düzey sistemi etkilemeden veya değiştirmeden işlevsellik uygulamanızı sağlar. HAL uygulamaları modüller halinde paketlenir ve Android sistemi tarafından uygun zamanda yüklenir. Ayrıntılar için, bkz. Donanım Soyutlama Katmanı (HAL) .
  • Linux çekirdeği . Aygıt sürücülerinizi geliştirmek, tipik bir Linux aygıt sürücüsü geliştirmeye benzer. Android, Linux çekirdeğinin bir sürümünü, Düşük Bellek Katili (belleği korumada daha agresif olan bir bellek yönetim sistemi), uyandırma kilitleri (bir PowerManager sistem hizmeti), Binder IPC sürücüsü ve diğer önemli özellikler mobil yerleşik bir platform için. Bu eklemeler öncelikle sistem işlevselliği içindir ve sürücü geliştirmeyi etkilemez. Çekirdekin gerekli özellikleri (bağlayıcı sürücüsü gibi) desteklediği sürece herhangi bir sürümünü kullanabilirsiniz. Ancak, Android çekirdeğinin en son sürümünü kullanmanızı öneririz. Ayrıntılar için bkz Bina Kernels .

HAL arayüz tanımlama dili (HIDL)

Android 8.0, üreticilerin cihazları yeni bir Android sürümüne güncellemelerini kolaylaştırmak, daha hızlı ve daha az maliyetli hale getirmek için Android OS çerçevesini ( Treble olarak bilinen bir projede) yeniden tasarladı . Bu yeni mimaride HAL arayüzü tanımlama dili (HIDL, "hide-l" olarak telaffuz edilir), HAL ile kullanıcıları arasındaki arayüzü belirtir ve Android çerçevesinin HAL'ları yeniden oluşturmadan değiştirilmesini sağlar.

HIDL, satıcı uygulamasını (silikon üreticileri tarafından yazılan cihaza özgü, alt düzey yazılım) yeni bir satıcı arayüzü aracılığıyla Android OS çerçevesinden ayırır. Satıcılar veya SOC üreticileri HAL'leri bir kez oluşturur ve bunları cihazdaki bir /vendor bölümüne yerleştirir; çerçeve, kendi bölümünde, HAL'leri yeniden derlemeden havadan (OTA) bir güncellemeyle değiştirilebilir .

Eski Android mimarisi ile mevcut, HIDL tabanlı mimari arasındaki fark satıcı arayüzünün kullanımındadır:

  • Android 7.x ve önceki sürümlerinde resmi bir tedarikçi arayüzü yoktur, bu nedenle bir cihazın Android'in daha yeni bir sürümüne taşınması için cihaz üreticilerinin Android kodunun büyük bölümlerini güncellemeleri gerekir:

    Şekil 2. Eski Android güncelleme ortamı
  • Android 8.0 ve sonraki sürümlerde, yeni ve kararlı bir tedarikçi arayüzü, Android'in donanıma özgü parçalarına erişim sağlar, böylece cihaz üreticileri, silikon üreticilerinin ek çalışması gerekmeden Android OS çerçevesini güncelleyerek yeni Android sürümleri sunabilir:

    Şekil 3. Mevcut Android güncelleme ortamı

Android 8.0 ve sonraki sürümlerle başlatılan tüm yeni cihazlar yeni mimariden yararlanabilir. Satıcı uygulamalarının ileri uyumluluğunu sağlamak için, satıcı arayüzü Uyumluluk Test Paketi'ne (CTS) benzer olan Satıcı Test Paketi (VTS) tarafından doğrulanır. VTS'yi hem eski hem de mevcut Android mimarilerinde HAL ve OS çekirdek testlerini otomatikleştirmek için kullanabilirsiniz.

Mimari kaynaklar

Android mimarisiyle ilgili ayrıntılar için aşağıdaki bölümlere bakın:

  • HAL Çeşitleri . Bağlanmış, düz geçiş, Aynı İşlem (SP) ve eski HAL'ları açıklar.
  • HIDL (Genel) . HAL ve kullanıcıları arasındaki arabirim hakkında genel bilgiler içerir.
  • HIDL (C ++) . HIDL arabirimlerinin C ++ uygulamaları oluşturma ayrıntılarını içerir.
  • HIDL (Java) . HIDL arabirimleri için Java ön ucuyla ilgili ayrıntıları içerir.
  • ConfigStore HAL . Android çerçevesini yapılandırmak için kullanılan salt okunur yapılandırma öğelerine erişmek için API'ları açıklar.
  • Aygıt Ağacı Kaplamaları . Android'de cihaz ağacı yer paylaşımlarını (DTO'lar) kullanma hakkında ayrıntılar sağlar.
  • Tedarikçi Yerli Geliştirme Kiti (VNDK) . HAL satıcılarını uygulamak için satıcıya özel kitaplıklar kümesini açıklar.
  • Satıcı Arabirim Nesnesi (VINTF) . Bir aygıtla ilgili bilgileri toplayan ve bu bilgileri sorgulanabilir bir API aracılığıyla kullanılabilir hale getiren nesneleri açıklar.
  • Android 8.0 için SELinux . Ayrıntılar SELinux değişiklikleri ve özelleştirmeleri.

Bu sitedeki kaynaklara ek olarak, Treble ekibinin üyeleri , Global Dağıtılmış Paydaşların Aktif Yazılım Ekosisteminde Denge Yaratarak Tiz: Hızlı Yazılım Güncellemeleri yayınladı. Bildiri ACM üyeleri için ücretsizdir ve üye olmayanlar özeti satın alabilir veya okuyabilir.