Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release, bukan aosp-main, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Android Open Source Project (AOSP) adalah kode sumber Android yang tersedia untuk umum dan dapat dimodifikasi. Siapa saja dapat mendownload dan mengubah AOSP untuk perangkat mereka. AOSP
menyediakan implementasi lengkap dan berfungsi penuh dari platform seluler Android.
Ada dua tingkat kompatibilitas untuk perangkat yang menerapkan AOSP: kompatibilitas AOSP dan kompatibilitas Android. Perangkat yang kompatibel dengan AOSP harus
mematuhi daftar persyaratan dalam
Compatibility Definition Document (CDD). Perangkat yang kompatibel dengan Android harus mematuhi daftar persyaratan dalam CDD dan Persyaratan Software Vendor (VSR) serta pengujian seperti yang ada di Vendor Test Suite (VTS) dan Compatibility Test Suite (CTS). Untuk mengetahui informasi lebih lanjut tentang kompatibilitas Android, lihat program kompatibilitas Android.
Arsitektur AOSP
Stack software untuk AOSP berisi lapisan berikut:
Gambar 1. Arsitektur tumpukan software AOSP.
Berikut adalah daftar definisi untuk istilah yang digunakan dalam Gambar 1:
Aplikasi Android
Aplikasi yang dibuat hanya menggunakan Android API. Google Play Store banyak digunakan untuk menemukan dan mendownload aplikasi Android, meskipun ada banyak alternatif lain. Dalam beberapa kasus, produsen perangkat mungkin ingin menginstal aplikasi Android secara pra-instal untuk mendukung fungsi inti perangkat. Jika Anda tertarik untuk mengembangkan aplikasi Android, lihat developers.android.com.
Aplikasi istimewa
Aplikasi yang dibuat menggunakan kombinasi Android API dan sistem API. Aplikasi ini
harus diprainstal sebagai aplikasi istimewa di perangkat.
Aplikasi produsen perangkat
Aplikasi yang dibuat menggunakan kombinasi Android API, system API, dan akses
langsung ke implementasi framework Android. Karena produsen perangkat
dapat langsung mengakses API yang tidak stabil dalam framework Android, aplikasi ini
harus diinstal sebelumnya di perangkat dan hanya dapat diupdate saat software sistem
perangkat diupdate.
System API
System API mewakili Android API yang hanya tersedia bagi partner dan
OEM untuk disertakan dalam aplikasi paket. API ini ditandai sebagai @SystemApi
dalam kode sumber.
Android API
Android API adalah API yang tersedia secara publik untuk developer aplikasi Android pihak ketiga. Untuk mengetahui informasi tentang Android API, lihat
referensi Android API.
Framework Android
Grup class Java, antarmuka, dan kode pra-dikompilasi lainnya yang menjadi dasar pembuatan aplikasi. Bagian framework dapat diakses secara publik melalui penggunaan Android API. Bagian framework lainnya hanya tersedia untuk OEM melalui penggunaan API sistem. Kode framework Android berjalan di dalam proses aplikasi.
Layanan sistem
Layanan sistem adalah komponen modular yang berfokus seperti system_server,
SurfaceFlinger, dan MediaService. Fungsi yang diekspos oleh Android framework API
berkomunikasi dengan layanan sistem untuk mengakses hardware yang mendasarinya.
Runtime Android (ART)
Lingkungan runtime Java yang disediakan oleh AOSP. ART melakukan
terjemahan bytecode aplikasi ke dalam petunjuk khusus prosesor
yang dieksekusi oleh lingkungan runtime perangkat.
Hardware abstraction layer (HAL)
HAL adalah lapisan abstraksi dengan antarmuka standar yang dapat diterapkan oleh vendor hardware. HAL memungkinkan Android tidak terpengaruh oleh implementasi driver tingkat yang lebih rendah. Dengan menggunakan HAL, Anda dapat menerapkan fungsionalitas tanpa memengaruhi atau mengubah sistem tingkat yang lebih tinggi. Untuk mengetahui informasi selengkapnya,
lihat ringkasan HAL.
Daemon dan library native
Daemon native di lapisan ini mencakup init, healthd, logd, dan storaged. Daemon ini berinteraksi langsung dengan kernel atau antarmuka lainnya
dan tidak bergantung pada implementasi HAL berbasis ruang pengguna.
Library native di lapisan ini mencakup libc, liblog, libutils,
libbinder, dan libselinux. Pustaka Native ini berinteraksi langsung dengan
kernel atau antarmuka lain dan tidak bergantung pada implementasi HAL berbasis ruang pengguna.
Kernel
Kernel adalah bagian utama dari sistem operasi apa pun dan berkomunikasi dengan hardware yang mendasarinya di perangkat. Jika memungkinkan, kernel AOSP dibagi
menjadi modul yang tidak bergantung pada hardware dan modul khusus vendor. Untuk mengetahui deskripsi, termasuk definisi, komponen kernel AOSP, lihat Ringkasan kernel.
Apa selanjutnya?
Jika Anda baru menggunakan AOSP dan ingin memulai pengembangan, lihat
bagian Memulai.
Jika Anda ingin mempelajari lebih lanjut lapisan AOSP tertentu, klik nama bagian di navigasi kiri dan mulailah dengan ringkasan untuk bagian tersebut.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-24 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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."]]