Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
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 çoğu, doğrudan temeldeki HAL arabirimleriyle eşleştiği ve sürücülerin uygulanmasıyla ilgili yararlı bilgiler sağlayabileceği için 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 çalışıyor" 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'leri tarafından ortaya çıkan işlevsellik, temel donanıma erişmek için sistem hizmetleriyle iletişim kurar. Android, iki hizmet grubu içerir: sistem (Pencere Yöneticisi ve Bildirim Yöneticisi gibi) ve medya ( medya oynatma ve kaydetme ile ilgili hizmetler).
  • Donanım soyutlama katmanı (HAL) . Bir HAL, Android'in daha düşük seviyeli sürücü uygulamaları hakkında agnostik olmasını sağlayan donanım satıcılarının uygulaması için standart bir arabirim tanımlar. Bir HAL kullanmak, üst düzey sistemi etkilemeden veya değiştirmeden işlevselliği 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, Low Memory Killer (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 önemli diğer özellikler gibi birkaç özel PowerManager birlikte Linux çekirdeğinin bir sürümünü kullanır. mobil gömülü bir platform için. Bu eklemeler öncelikle sistem işlevselliği içindir ve sürücü gelişimini etkilemez. Gerekli özellikleri (cilt 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. Çekirdek Oluşturma .

HAL arayüz tanımlama dili (HIDL)

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

HIDL, yeni bir satıcı arayüzü aracılığıyla satıcı uygulamasını (silikon üreticileri tarafından yazılan cihaza özgü, daha düşük seviyeli yazılım) Android işletim sistemi çerçevesinden ayırır. Satıcılar veya SOC üreticileri bir kez HAL'ler oluşturur ve bunları aygıtın /vendor bölümüne yerleştirir; çerçeve, kendi bölümünde, HAL'leri yeniden derlemeden bir kablosuz (OTA) 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ümlerde resmi bir satıcı arayüzü yoktur, bu nedenle cihaz üreticilerinin bir cihazı daha yeni bir Android sürümüne taşımak için 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 satıcı arayüzü, Android'in donanıma özgü parçalarına erişim sağlar, böylece cihaz üreticileri yeni Android sürümlerini, silikon üreticilerinden ek çalışma gerektirmeden, yalnızca Android OS çerçevesini güncelleyerek teslim edebilir:

    Ş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 ileriye dönük 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. Hem eski hem de mevcut Android mimarilerinde HAL ve işletim sistemi ç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 . Bağlayıcı, geçiş, Aynı İşlem (SP) ve eski HAL'leri açıklar.
  • HIDL (Genel) . Bir HAL ve kullanıcıları arasındaki arayüz hakkında genel bilgiler içerir.
  • HIDL (C ++) . HIDL arayüzlerinin C ++ uygulamalarını oluşturmaya yönelik ayrıntıları içerir.
  • HIDL (Java) . HIDL arayüzleri için Java ön ucu ile 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şim için API'leri açıklar.
  • Aygıt Ağacı Kaplamaları . Android'de cihaz ağacı katmanları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ı Arabirim Nesnesi (VINTF) . Bir cihazla 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 Treble: Global Olarak Dağıtılan Paydaşların Aktif Yazılım Ekosisteminde Denge Oluşturarak Hızlı Yazılım Güncellemeleri yayınladı. Bu makale ACM üyeleri için ücretsizdir ve üye olmayanlar özeti satın alabilir veya okuyabilir.