27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main yerine android-latest-release kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
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:
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.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-24 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-24 UTC."],[],[],null,["# Architecture overview\n\nThe *Android Open Source Project (AOSP)* is publicly available and modifiable\nAndroid source code. Anyone can download and modify AOSP for their device. AOSP\nprovides a complete and fully functional implementation of the Android mobile\nplatform.\n| **Note:** AOSP can't provide support for apps that require backend services, such as a cloud messaging or advanced location services app. AOSP also doesn't include a full set of end-user apps that might be needed for particular types of devices.\n\nThere are two levels of compatibility for devices implementing AOSP: AOSP\ncompatibility and Android compatibility. An *AOSP-compatible device* must\nconform to the list of requirements in the\n[Compatibility Definition Document (CDD)](/docs/compatibility/cdd). An\n*Android-compatible device* must conform to the list of requirements in the CDD\nand Vendor Software Requirements (VSR) and tests such as those in the\n[Vendor Test Suite (VTS)](/docs/core/tests/vts) and\n[Compatibility Test Suite (CTS)](/docs/compatibility/cts). For further\ninformation on Android compatibility, refer to the\n[Android compatibility program](/docs/compatibility).\n\nAOSP architecture\n-----------------\n\nThe software stack for AOSP contains the following layers:\n\n**Figure 1.** AOSP software stack architecture.\n\nFollowing is a list of definitions for terms used in Figure 1:\n\n*Android app*\n: An app created solely using the Android API. Google\n Play Store is widely used to find and download Android apps, though there are\n many other alternatives. In some cases, a device manufacturer might want to\n preinstall an Android app to support the core functionality of the device. If\n you're interested in developing Android apps, refer to\n [developers.android.com](https://developer.android.com/).\n\n*Privileged app*\n: An app created using a combination of the Android and system APIs. These apps\n must be preinstalled as privileged apps on a device.\n\n*Device manufacturer app*\n: An app created using a combination of the Android API, system API, and direct\n access to the Android framework implementation. Because a device manufacturer\n might directly access unstable APIs within the Android framework, these apps\n must be preinstalled on the device and can be updated only when the device's\n system software is updated.\n\n*System API*\n: The System API represents Android APIs available only to partners and\n OEMs for inclusion in bundled applications. These APIs are marked as @SystemApi\n in the source code.\n\n*Android API*\n: The Android API is the publicly available API for third-party Android app\n developers. For information on the Android API, refer to\n [Android API reference](https://developer.android.com/reference).\n\n*Android framework*\n: A group of Java classes, interfaces, and other precompiled code upon which\n apps are built. Portions of the framework are publicly accessible through the\n use of the Android API. Other portions of the framework are\n available only to OEMs through the use of the system APIs. Android\n framework code runs inside an app's process.\n\n*System services*\n: System services are modular, focused components such as `system_server`,\n SurfaceFlinger, and MediaService. Functionality exposed by Android framework API\n communicates with system services to access the underlying hardware.\n\n*Android runtime (ART)*\n: A Java runtime environment provided by AOSP. ART performs the\n translation of the app's bytecode into processor-specific instructions\n that are executed by the device's runtime environment.\n\n*Hardware abstraction layer (HAL)*\n: A HAL is an abstraction layer with a standard interface for hardware vendors\n to implement. HALs allow Android to be agnostic about lower-level driver\n implementations. Using a HAL lets you implement functionality without\n affecting or modifying the higher level system. For further information,\n see the [HAL overview](/docs/core/architecture/hal).\n\n*Native daemons and libraries*\n\n: Native daemons in this layer include `init`, `healthd`, `logd`, and\n `storaged`. These daemons interact directly with the kernel or other interfaces\n and don't depend on a userspace-based HAL implementation.\n\n Native libraries in this layer include `libc`, `liblog`, `libutils`,\n `libbinder`, and `libselinux`. These Native libraries interact directly with\n the kernel or other interfaces and don't depend on a userspace-based HAL\n implementation.\n\n*Kernel*\n\n: The kernel is the central part of any operating system and talks to the\n underlying hardware on a device. Where possible, the AOSP kernel is split\n into hardware-agnostic modules and vendor-specific modules. For a description,\n including definitions, of AOSP kernel components, refer to the\n [Kernel overview](/docs/core/architecture/kernel).\n\nWhat's next?\n------------\n\n- If you're new to AOSP, and want to get started with development, refer to the [Get started section](/docs/setup).\n- If you want to learn more about a specific layer of AOSP, click the section's name in the left navigation and begin with the overview for that section."]]