Android Açık Kaynak Projesi (AOSP), herkese açık ve değiştirilebilir Android kaynak kodudur. Herkes kendi cihazına AOSP'yi indirip değiştirebilir. AOSP, Android mobil platformunun eksiksiz ve tamamen işlevsel bir uygulamasını sunar.
AOSP'yi uygulayan cihazlar için iki uyumluluk düzeyi vardır: AOSP uyumluluğu ve Android uyumluluğu. AOSP uyumlu bir cihaz, Uyumluluk Tanımlama Belgesi'ndeki (CDD) gereksinimler listesine uygun olmalıdır. Android uyumlu cihazların CDD ve Tedarikçi Yazılım Gereksinimleri (VSR) ile Tedarikçi Test Paketi (VTS) ve Uyumluluk Test Paketi (CTS) gibi testlerdeki şartlar listesine 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:
Şekil 1. AOSP yazılım yığını mimarisi.
Şekil 1'de kullanılan terimlerin tanımları aşağıda verilmiştir:
- Android uygulaması
- Yalnızca Android API'si kullanılarak oluşturulmuş bir uygulama. Android uygulamalarını bulup indirmek için yaygın olarak Google Play Store kullanılır ancak bunun dışında birçok alternatif de vardır. Bazı durumlarda cihaz üreticisi, cihazın temel işlevini desteklemek için bir Android uygulamasını önceden yüklemek isteyebilir. Android uygulamaları geliştirmek istiyorsanız developers.android.com adresine bakın.
- Özel uygulama
- Android ve sistem API'lerinin bir kombinasyonu kullanılarak oluşturulmuş bir uygulama. Bu uygulamalar, cihaza ayrıcalıklı uygulamalar olarak önceden yüklenmiş olmalıdır.
- Cihaz üreticisi uygulaması
- Android API, sistem API ve Android çerçeve uygulamasına doğrudan erişim kombinasyonu kullanılarak oluşturulan bir uygulama. Cihaz üreticileri, Android çerçevesindeki kararsız API'lere doğrudan erişebileceğinden bu uygulamalar cihaza önceden yüklenmiş olmalıdır ve yalnızca cihazın sistem yazılımı güncellendiğinde güncellenebilir.
- System API
- Sistem API'si, yalnızca iş ortakları ve OEM'lerin paketlenmiş uygulamalara dahil etmek için kullanabileceği Android API'lerini temsil eder. Bu API'ler kaynak kodunda @SystemApi olarak işaretlenmiştir.
- Android API
- Android API, üçüncü taraf Android uygulaması geliştiricileri için herkesin kullanımına açık bir API'dir. Android API hakkında bilgi edinmek için Android API referansına bakın.
- Android çerçevesi
- Uygulamaların oluşturulduğu bir grup Java sınıfı, arayüzü ve önceden derlenmiş diğer kodlar. Çerçevenin bazı bölümlerine Android API'nin kullanılmasıyla herkes erişebilir. Çerçevenin diğer bölümlerine yalnızca OEM'ler sistem API'lerini kullanarak erişebilir. Android çerçeve kodu, bir uygulamanın işleminin içinde çalışır.
- Sistem hizmetleri
- Sistem hizmetleri,
system_server
, SurfaceFlinger ve MediaService gibi modüler, odaklanmış bileşenlerdir. Android framework API'si tarafından sunulan işlevler, 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 kodunu cihazın çalışma ortamı tarafından yürütülen işlemciye özel talimatlara dönüştürür.
- Donanım soyutlama katmanı (HAL)
- HAL, donanım tedarikçilerinin uygulayabileceği standart bir arayüze sahip bir soyutlama katmanıdır. HAL'ler, Android'in alt düzey sürücü uygulamaları konusunda tarafsız olmasına olanak tanır. HAL kullanmak, üst düzey sistemi etkilemeden veya değiştirmeden işlevleri uygulamanıza olanak tanır. Daha fazla bilgi için HAL'ye genel bakış sayfasını inceleyin.
- Yerel arka plan programları ve kitaplıklar
Bu katmandaki yerel daemon'lar arasında
init
,healthd
,logd
vestoraged
bulunur. Bu daemon'lar doğrudan çekirdekle veya diğer arayüzler ile etkileşime girer ve kullanıcı alanına dayalı bir HAL uygulamasına bağlı değildir.Bu katmandaki yerel kitaplıklar
libc
,liblog
,libutils
,libbinder
velibselinux
'dir. Bu yerel kitaplıklar doğrudan çekirdekle veya diğer arayüzlerle etkileşime girer ve kullanıcı alanına dayalı bir HAL uygulamasına bağlı değildir.- Çekirdek
Çekirdek, her işletim sisteminin merkezi parçasıdır ve cihazdaki temel donanımla iletişim kurar. Mümkün olduğunda AOSP çekirdeği, donanımdan bağımsız modüller ve tedarikçiye özgü modüller olarak bölünür. AOSP çekirdek bileşenlerinin tanımlarını içeren bir açıklama için Çekirdeğe genel bakış başlıklı makaleyi inceleyin.
Sırada ne var?
- AOSP'de yeniyseniz ve geliştirmeye başlamak istiyorsanız Başlangıç bölümüne bakın.
- AOSP'nin belirli bir katmanı hakkında daha fazla bilgi edinmek istiyorsanız sol gezinme menüsünden bölümün adını tıklayın ve ilgili bölümün genel bakışıyla başlayın.