AOSP Mimarisi

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Android Açık Sistem Platformu (AOSP) , herkese açık ve değiştirilebilir Android kaynak kodudur. Herkes kendi cihazı için AOSP'yi indirebilir ve değiştirebilir. AOSP, Android mobil platformunun eksiksiz ve tamamen işlevsel bir uygulamasını sağlar.

AOSP uygulayan cihazlar için iki uyumluluk seviyesi vardır: AOSP uyumluluğu ve Android uyumluluğu. AOSP uyumlu bir cihaz , Uyumluluk Tanımlama Belgesindeki (CDD) gereksinimler listesine uygun olmalıdır. Android uyumlu bir cihaz , CDD ve Vendor Software Requirements (VSR) gereksinimleri listesine ve Vendor Test Suite (VTS) ve Compatability Test Suite (CTS) gibi testlere uymalıdır. Android uyumluluğu hakkında daha fazla bilgi için Android uyumluluk programına bakın.

AOSP mimarisi

AOSP için yazılım yığını aşağıdaki katmanları içerir:

AOSP yazılım yığını mimarisi
Şekil 1. AOSP yazılım yığını mimarisi.
  • Android uygulaması. Yalnızca Android SDK içindeki Android API kullanılarak oluşturulan bir uygulama. Google Play Store, Android uygulamalarını bulmak ve indirmek için yaygın olarak kullanılır, ancak başka birçok alternatif vardır. Bazı durumlarda, bir cihaz üreticisi, cihazın temel işlevlerini desteklemek için bir Android uygulamasını önceden yüklemek isteyebilir. Android uygulamaları geliştirmekle ilgileniyorsanız, Developers.android.com adresine gidin.
  • Ayrıcalıklı uygulama. Android ve sistem API'lerinin bir kombinasyonu kullanılarak oluşturulan bir uygulama. Bu uygulamalar, bir cihaza ayrıcalıklı uygulamalar olarak önceden yüklenmiş olmalıdır.
  • Cihaz üretimi uygulaması Android API, sistem API'si ve Android çerçeve uygulamasına doğrudan erişim kombinasyonu kullanılarak oluşturulan bir uygulama. Bir cihaz üreticisi, Android çerçevesinde kararsız API'lere doğrudan erişebileceğinden, bu uygulamaların cihaza önceden yüklenmiş olması gerekir ve yalnızca cihazın sistem yazılımı güncellendiğinde güncellenebilir.
  • Android çerçevesi. Uygulamaların üzerine inşa edildiği bir grup Java sınıfı, arabirimi ve diğer önceden derlenmiş kod. Çerçevenin bazı bölümlerine, Android SDK'nın Android API'leri kullanılarak genel olarak erişilebilir. Çerçevenin diğer bölümleri, Android SDK'nın sistem API'lerinin kullanımı yoluyla yalnızca OEM'ler tarafından kullanılabilir. Android çerçeve kodu, bir uygulamanın sürecinde çalışır.
  • Android SDK'sı. Android çerçevesiyle etkileşime giren uygulamalar oluşturmak için kullanılan bir yazılım geliştirme kiti. Android SDK, tüm uygulamalarda kullanılabilen Android API'sinden ve yalnızca ayrıcalıklı uygulamalarda kullanılabilen sistem API'sinden oluşur. Android SDK'nın Android API'si hakkında daha fazla bilgi için Developers.android.com adresine gidin . Android uygulamanızın bir bölümünü yerel kod kullanarak yazmanıza izin veren bir Android yerel geliştirme kiti (NDK) de bulunduğunu unutmayın.
  • Sistem servisleri. Sistem hizmetleri, system_server , SurfaceFlinger ve MediaService gibi modüler, odaklı bileşenlerdir. Android çerçeve API'si tarafından sunulan işlevsellik, temeldeki donanıma erişmek için sistem hizmetleriyle iletişim kurar.
  • Android çalışma zamanı (ART). AOSP tarafından sağlanan bir Java uygulama çalıştırma ortamı. ART, uygulamanın bayt kodunun, cihazın çalıştırma ortamı tarafından yürütülen işlemciye özgü talimatlara çevirisini gerçekleştirir.
  • Donanım soyutlama katmanı (HAL). HAL, donanım satıcılarının uygulaması için standart bir arayüze sahip bir soyutlama katmanıdır. HAL'ler, Android'in alt düzey sürücü uygulamaları hakkında agnostik olmasına izin verir. Bir HAL kullanmak, üst düzey sistemi etkilemeden veya değiştirmeden işlevsellik uygulamanıza izin verir.
  • Daha fazla bilgi için HAL genel bakışına bakın.
  • Yerli cinler ve kütüphaneler. Bu katmandaki yerel arka plan programları arasında init , healthd , logd ve storaged bulunur. Bu arka plan programları, doğrudan çekirdek veya diğer arabirimlerle etkileşime girer ve kullanıcı alanı tabanlı bir HAL uygulamasına bağlı değildir. Bu katmandaki yerel kitaplıklar libc , liblog , libutils , libbinder ve libselinux . Bu Yerel kitaplıklar, doğrudan çekirdek veya diğer arabirimlerle etkileşime girer ve kullanıcı alanı tabanlı bir HAL uygulamasına bağlı değildir.
  • Çekirdek. Herhangi bir işletim sisteminin merkezi parçası olan çekirdek, bir aygıttaki temel donanımla konuşur. Mümkün olduğunda, AOSP çekirdeği, donanımdan bağımsız modüllere ve satıcıya özel modüllere bölünmüştür. AOSP çekirdek bileşenlerinin tanımları da dahil olmak üzere açıklaması için Çekirdeğe Genel Bakış bölümüne bakın.

Sıradaki ne?

  • AOSP'de yeniyseniz ve geliştirmeye başlamak istiyorsanız Başlarken bölümüne ilerleyin.
  • Belirli bir AOSP katmanı hakkında daha fazla bilgi edinmek istiyorsanız, sol gezinme panelinde katmanın adına tıklayın ve o katmana genel bakışla başlayın.