Mimariye genel bakış

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 Compatibility 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.

Aşağıda, Şekil 1'de kullanılan terimlerin tanımlarının bir listesi bulunmaktadır:

Android uygulaması
Yalnızca Android API kullanılarak oluşturulmuş 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 bakın.
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 üreticisi uygulaması
Android API, sistem API'si ve Android çerçeve uygulamasına doğrudan erişim kombinasyonu kullanılarak oluşturulmuş 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.
Sistem API'sı
System API, paket uygulamalara dahil edilmek üzere yalnızca iş ortakları ve OEM'ler tarafından kullanılabilen Android API'lerini temsil eder. Bu API'ler kaynak kodunda @SystemApi olarak işaretlenmiştir.
Android API'sı
Android API, üçüncü taraf Android uygulama geliştiricileri için halka açık API'dir. Android API hakkında bilgi için Android API referansına bakın.
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 API'si kullanılarak genel olarak erişilebilir. Çerçevenin diğer bölümleri, 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.
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 çalıştırma ortamı. ART, uygulamanın bayt kodunun, cihazın çalışma zamanı ortamı tarafından yürütülen işlemciye özel 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.
Yerel arka plan programları ve kitaplıklar

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

Çekirdek, herhangi bir işletim sisteminin merkezi parçasıdır ve bir cihazdaki temel donanımla iletişim kurar. 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 bakın .
  • Belirli bir AOSP katmanı hakkında daha fazla bilgi edinmek istiyorsanız, sol gezinme panelinde bölümün adına tıklayın ve o bölümün genel görünümüyle başlayın.