Mimariye genel bakış

Android Açık Kaynak Projesi (AOSP), herkese açık ve değiştirilebilir bir Android kaynak kodudur. Herkes cihazı için AOSP'yi indirip değiştirebilir. AOSP, Android mobil platformunun eksiksiz ve tam 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 ile uyumlu bir cihaz, Uyumluluk Tanımı Belgesi'ndeki (CDD) şartlar listesine uymalıdır. Android uyumlu bir cihaz, CDD ve Vendor Software Requirements (VSR) dokümanlarındaki şartlar listesine ve Vendor Test Suite (VTS) ile Compatibility Test Suite (CTS)'deki testler gibi testlere uygun olmalıdır. Android uyumluluğu hakkında daha fazla bilgi için Android uyumluluk programı başlıklı makaleyi inceleyin.

AOSP mimarisi

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

AOSP yazılım yığını mimarisi.

1.şekil 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 kullanılarak oluşturulan bir uygulama. Google Play Store, Android uygulamalarını bulup indirmek için yaygın olarak kullanılır ancak başka birçok alternatif de vardır. Bazı durumlarda, cihaz üreticileri cihazın temel işlevini desteklemek için bir Android uygulamasını önceden yüklemek isteyebilir. Android uygulamaları geliştirme konusunda bilgi edinmek istiyorsanız developers.android.com adresini ziyaret edin.
Ayrıcalıklı uygulama
Android ve sistem API'lerinin bir kombinasyonu kullanılarak oluşturulan bir uygulama. Bu uygulamalar, cihazlara ayrıcalıklı uygulamalar olarak önceden yüklenmelidir.
Cihaz üreticisinin uygulaması
Android API, sistem API'si ve Android çerçeve uygulamasına doğrudan erişim kullanılarak oluşturulan bir uygulama. Cihaz üreticileri, Android çerçevesindeki kararsız API'lere doğrudan erişebildiğinden bu uygulamaların cihaza önceden yüklenmesi ve yalnızca cihazın sistem yazılımı güncellendiğinde güncellenebilmesi gerekir.
System API
Sistem API'si, yalnızca iş ortakları ve OEM'ler tarafından kullanılabilen ve paketlenmiş uygulamalara dahil edilebilen Android API'lerini temsil eder. Bu API'ler, kaynak kodda @SystemApi olarak işaretlenir.
Android API'si
Android API, üçüncü taraf Android uygulaması geliştiricileri için herkese açık API'dir. Android API hakkında bilgi edinmek için Android API referansı'na bakın.
Android framework'ü
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 kullanılarak herkese açık bir şekilde erişilebilir. Çerçevenin diğer bölümleri ise yalnızca sistem API'leri kullanılarak OEM'lere sunulur. Android framework kodu, bir uygulamanın işlemi içinde çalışır.
Sistem hizmetleri
Sistem hizmetleri, system_server, SurfaceFlinger ve MediaService gibi modüler, odaklanmış bileşenlerdir. Android çerçevesi API'si tarafından kullanıma 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 zamanı ortamı tarafından yürütülen işlemciye özel talimatlara çevirir.
Donanım soyutlama katmanı (HAL)
HAL, donanım satıcılarının uygulaması için standart bir arayüze sahip soyutlama katmanıdır. HAL'ler, Android'in alt düzey sürücü uygulamaları konusunda bağımsız olmasını sağlar. HAL kullanarak, daha üst düzey sistemi etkilemeden veya değiştirmeden işlevsellik uygulayabilirsiniz. Daha fazla bilgi için HAL'ye genel bakış konusuna bakın.
Yerel arka plan programları ve kitaplıklar

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

Bu katmandaki yerel kitaplıklar arasında libc, liblog, libutils, libbinder ve libselinux yer alır. Bu yerel kitaplıklar, çekirdek veya diğer arayüzlerle doğrudan etkileşime girer ve kullanıcı alanı tabanlı bir HAL uygulamasına bağlı değildir.

Kernel

Çekirdek, herhangi bir işletim sisteminin merkezi kısmı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 ayrılır. AOSP çekirdek bileşenlerinin tanımlarını içeren bir açıklama için Kernel overview (Çekirdeğe genel bakış) başlıklı makaleye bakın.

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 bölmesinde bölümün adını tıklayın ve ilgili bölümün genel bakışıyla başlayın.