Android Açık Kaynak Projesi (AOSP), herkese açık ve değiştirilebilir Android kaynak kodudur. Herkes AOSP'yi cihazına indirip değiştirebilir. AOSP, Android mobil platformunun eksiksiz ve tamamen işlevsel bir uygulamasını sağlar.
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) şartlar listesine uygun olmalıdır. Android uyumlu cihazlar, CDD ve Tedarikçi Yazılım Şartları'ndaki (VSR) gereksinim listesine ve Tedarikçi Testi Paketi (VTS) ve Uyumluluk Testi Paketi (CTS) gibi testlere uygun olmalıdır. 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 üreticileri, cihazın temel işlevlerini desteklemek için bir Android uygulamasını önceden yüklemek isteyebilir. Android uygulamaları geliştirmek istiyorsanız developers.android.com adresine bakın.
- Özellikli 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'si 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
- System API, 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 uygulama geliştiricileri için herkese 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, uygulamanın işlemi 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'e genel bakış başlıklı makaleyi inceleyin.
- Yerel daemon'lar 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 özel modüller olarak bölünür. AOSP çekirdek bileşenlerinin tanımlarını da içeren 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ünde bölümün adını tıklayın ve ilgili bölüme genel bakışla başlayın.