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 sık uygulama geliştiricileri tarafından kullanılır. Bir donanım geliştiricisi olarak, geliştirici API'lerinin çoğu, doğrudan temeldeki HAL arabirimleriyle eşleşir ve sürücülerin uygulanmasıyla ilgili yararlı bilgiler sağlayabilir.
  • 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 araması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 çalışıyor" gibi görünür.
  • Sistem servisleri. Sistem hizmetleri, Pencere Yöneticisi, Arama Hizmeti veya Bildirim Yöneticisi gibi modüler, odaklanmış bileşenlerdir. Uygulama çerçevesi API'leri tarafından sunulan işlevsellik, temel donanıma erişmek için sistem hizmetleriyle iletişim kurar. (İskambil ve medyayı kayıt karışan hizmetler) (örneğin Pencere Yöneticisi ve Bildirim Manager gibi) sistem ve medya: Android iki hizmet gruplarını kapsamaktadır.
  • Donanım ayırma katmanı (HAL). HAL, donanım satıcılarının uygulaması için standart bir arabirim tanımlar; bu, Android'in alt düzey sürücü uygulamaları hakkında agnostik olmasını sağlar. HAL kullanmak, üst düzey sistemi etkilemeden veya değiştirmeden işlevsellik uygulamanıza olanak tanır. HAL uygulamaları modüller halinde paketlenir ve uygun zamanda Android sistemi tarafından 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 kullanımlar, Düşük Bellek Killer (koruyarak bellekte daha agresif bir bellek yönetim sistemi), uyandırma kilitleri (a gibi birkaç özel eklemelerle Linux çekirdeğinin bir versiyonu PowerManager sistem servisi), Bağlayıcı IPC sürücüsü ve diğer özellikler önemli mobil gömülü bir platform için. Bu eklemeler öncelikle sistem işlevselliği içindir ve sürücü geliştirmeyi etkilemez. Gerekli özellikleri (binder sürücüsü gibi) desteklediği sürece çekirdeğin 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 (AIDL/HIDL)

Android 8.0 yeni bir Android sürümüne güncelleme cihazlara üreticileri için daha hızlı, daha kolay ve daha az masraflı hale getirmek için (Tiz olarak bilinen bir projede) Android işletim sistemi çerçevesini yeniden tasarlanmış. Bu yeni mimaride, HAL arabirim tanımlama dili (HIDL, "hide-l" olarak telaffuz edilir) bir HAL ile kullanıcıları arasındaki arabirimi belirtir ve HAL'leri yeniden oluşturmadan Android çerçevesinin değiştirilmesini sağlar. Android 10'da HIDL özellikleri AIDL'ye dahil edildi. O zamandan beri, HIDL kullanımdan kaldırıldı ve yalnızca henüz AIDL'ye dönüştürülmemiş alt sistemler tarafından kullanılıyor.

Treble, satıcı uygulamasını (silikon üreticileri tarafından yazılan cihaza özel, daha düşük seviyeli yazılım) yeni bir satıcı arayüzü aracılığıyla Android işletim sistemi çerçevesinden ayırır. Satıcılar veya SOC yapımcıları kez HAL'lerin oluşturmak ve bir koyun /vendor cihazda bölümü; çerçeve, kendi bölümüne, daha sonra bir ile değiştirilebilir over-the-air (OTA) güncelleme HAL'lerin derlemeye olmadan.

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

  • Android 7.x ve önceki sürümlerde resmi bir satıcı arabirimi yoktur, bu nedenle cihaz üreticilerinin bir cihazı Android'in daha yeni bir sürümüne taşımak için Android kodunun büyük bölümlerini güncellemesi gerekir:

    Şekil 2. Legacy Android güncellemesi ortamı
  • Android 8.0 ve sonraki sürümlerde, yeni bir kararlı satıcı arabirimi, Android'in donanıma özgü bölümlerine erişim sağlar, böylece cihaz üreticileri, silikon üreticilerinin ek çalışmasına gerek kalmadan yalnızca Android işletim sistemi çerçevesini güncelleyerek yeni Android sürümlerini sunabilir:

    Şekil 3. Güncel Android güncellemesi ortamı

Android 8.0 ve sonraki sürümlerle piyasaya sürülen tüm yeni cihazlar, yeni mimariden yararlanabilir. Satıcı uygulamaları uyumluluğunu sağlamak için, satıcı arayüz tarafından doğrulanır satıcı Test Suite (VTS) benzerdir, uyumluluk testi Suite (CTS) . Hem eski hem de mevcut Android mimarilerinde HAL ve OS çekirdek testini otomatikleştirmek için VTS'yi kullanabilirsiniz.

Mimari kaynaklar

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

  • HAL Türleri . Birleştirilmiş, geçiş, Aynı İşlem (SP) ve eski HAL'leri açıklar.
  • AIDL . AIDL hakkında, genel olarak mı yoksa bir HAL arayüzü olarak mı kullanıldığına dair belgeler.
  • HIDL (Genel) . Bir HAL ve kullanıcıları arasındaki arabirim hakkında genel bilgileri içerir.
  • HIDL (C ++) . HIDL arabirimlerinin C++ uygulamalarını oluşturmaya ilişkin ayrıntıları 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'leri açıklar.
  • Aygıt Ağacı Yerpaylaşımları . Android'de cihaz ağacı kaplamalarını (DTO'lar) kullanma hakkında ayrıntılar sağlar.
  • Satıcı Yerel Geliştirme Kiti (VNDK) . Satıcı HAL'lerini uygulamak için satıcıya özel kitaplıklar kümesini açıklar.
  • Satıcı Arayüz Nesnesi (VINTF) . Bir cihazla ilgili bilgileri toplayan ve bu bilgileri sorgulanabilir bir API aracılığıyla kullanıma sunan nesneleri açıklar.
  • Android 8.0 için SELinux'un . Ayrıntılar SELinux değişiklikleri ve özelleştirmeleri.

Bu sitedeki kaynaklara ek olarak, yayınlanmış Tiz ekibin üyeleri Tiz: Hızlı Yazılım Güncellemeleri Küresel Olarak Aktif Yazılım Ekosisteminde bir Equilibrium oluşturma yoluyla Paydaşları Dağıtılmış . Bildiri ACM üyeleri için ücretsizdir ve üye olmayanlar özeti satın alabilir veya okuyabilir.