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 düzeyi vardır: AOSP uyumluluğu ve Android uyumluluğu. AOSP uyumlu bir cihazın Uyumluluk Tanımlama Belgesindeki (CDD) gereksinimler listesine uyması gerekir. Android uyumlu bir cihazın, CDD ve Satıcı Yazılım Gereksinimlerindeki (VSR) gereksinimler listesine ve Satıcı Test Paketi (VTS) ve Uyumluluk Test Paketi (CTS) gibi testlere uyması gerekir. Android uyumluluğu hakkında daha fazla bilgi için Android uyumluluk programına bakın.

AOSP mimarisi

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

Şekil 1'de kullanılan terimlerin tanımlarının listesi aşağıdadır:

Android uygulaması
Yalnızca Android API kullanılarak oluşturulan bir uygulama. Google Play Store, Android uygulamalarını bulmak ve indirmek için yaygın olarak kullanılıyor, ancak başka birçok alternatif de var. Bazı durumlarda cihaz üreticisi, cihazın temel işlevlerini desteklemek için bir Android uygulamasını önceden yüklemek isteyebilir. Android uygulamaları geliştirmekle ilgileniyorsanız, geliştiriciler.android.com adresine bakın.
Ayrıcalıklı uygulama
Android ve sistem API'lerinin birleşimi kullanılarak oluşturulan bir uygulama. Bu uygulamaların cihaza ayrıcalıklı uygulamalar olarak önceden yüklenmesi gerekir.
Cihaz üreticisi uygulaması
Android API, sistem API'si ve Android çerçeve uygulamasına doğrudan erişimin birleşimi kullanılarak oluşturulan bir uygulama. Bir cihaz üreticisi Android çerçevesindeki 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'si
Sistem API'si, paket uygulamalara dahil edilmek üzere yalnızca iş ortaklarının ve OEM'lerin kullanımına sunulan Android API'lerini temsil eder. Bu API'ler kaynak kodunda @SystemApi olarak işaretlenmiştir.
Android API'si
Android API, üçüncü taraf Android uygulama geliştiricileri için herkese açık bir API'dir. Android API'sine ilişkin 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ı, arayüzü ve diğer önceden derlenmiş kod. Çerçevenin bazı bölümlerine Android API kullanılarak herkesin erişimine açıktır. Çerçevenin diğer bölümleri, sistem API'lerinin kullanımı yoluyla yalnızca OEM'lerin kullanımına açıktır. Android çerçeve kodu bir uygulamanın süreci içinde çalışır.
Sistem servisleri
Sistem hizmetleri system_server , SurfaceFlinger ve MediaService gibi modüler, odaklanmış bileşenlerdir. Android çerçeve API'sinin sunduğu işlevsellik, temel donanıma erişmek için sistem hizmetleriyle iletişim kurar.
Android çalışma zamanı (ART)
AOSP tarafından sağlanan bir Java çalışma zamanı 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 uygulayabileceği standart bir arayüze sahip bir soyutlama katmanıdır. HAL'ler, Android'in alt düzey sürücü uygulamaları konusunda agnostik olmasını sağlar. HAL kullanmak, üst düzey sistemi etkilemeden veya değiştirmeden işlevsellik uygulamanıza olanak tanır. Daha fazla bilgi için HAL genel bakışına bakın.
Yerel cinler ve kütüphaneler

Bu katmandaki yerel servisler init , healthd , logd ve storaged içerir. Bu arka plan programları çekirdekle veya diğer arayüzlerle doğrudan etkileşime girer ve kullanıcı alanı tabanlı HAL uygulamasına bağlı değildir.

Bu katmandaki yerel kütüphaneler arasında libc , liblog , libutils , libbinder ve libselinux bulunur. Bu Yerel kitaplıklar doğrudan çekirdekle veya diğer arayüzlerle etkileşime girer ve kullanıcı alanı tabanlı HAL uygulamasına bağlı değildir.

Çekirdek

Çekirdek, herhangi bir işletim sisteminin merkezi parçasıdır ve bir cihazın altında yatan 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 bir 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 bölmesinde bölümün adına tıklayın ve o bölüme ilişkin genel bakışla başlayın.