اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
مشروع Android المفتوح المصدر (AOSP) هو رمز مصدر Android متاح للجميع ويمكن تعديله. يمكن لأي مستخدم تنزيل AOSP وتعديله على جهازه. توفّر AOSP عملية تنفيذ كاملة وعملية لمنصة Android للأجهزة الجوّالة.
هناك مستويان للتوافق مع الأجهزة التي تستخدم AOSP: التوافق مع AOSP والتوافق مع Android. يجب أن يستوفي الجهاز المتوافق مع AOSP قائمة المتطلبات الواردة في مستند تعريف التوافق (CDD). يجب أن يستوفي الجهاز المتوافق مع Android قائمة المتطلبات الواردة في مستند تعريف التوافق (CDD) ومتطلبات برامج المورّدين (VSR) والاختبارات، مثل تلك الواردة في مجموعة أدوات اختبار المورّدين (VTS) ومجموعة أدوات اختبار التوافق (CTS). لمزيد من المعلومات حول التوافق مع Android، يُرجى الرجوع إلى برنامج التوافق مع Android.
بنية AOSP
يتضمّن حزمة البرامج لنظام التشغيل AOSP الطبقات التالية:
الشكل 1. بنية حزمة برامج AOSP
في ما يلي قائمة بتعريفات المصطلحات المستخدَمة في الشكل 1:
تطبيق Android
تطبيق تم إنشاؤه باستخدام Android API فقط يُستخدَم "متجر Google Play" على نطاق واسع للعثور على تطبيقات Android وتنزيلها، ولكن تتوفّر العديد من البدائل الأخرى. في بعض الحالات، قد تريد الشركة المصنّعة للجهاز
تثبيت تطبيق Android مسبقًا لتوفير الوظائف الأساسية للجهاز. إذا كنت مهتمًا بتطوير تطبيقات Android، يمكنك الرجوع إلى developers.android.com.
تطبيق ذو امتيازات
تطبيق تم إنشاؤه باستخدام مجموعة من واجهات برمجة التطبيقات لنظام التشغيل Android والنظام. يجب تثبيت هذه التطبيقات مسبقًا كتطبيقات ذات امتيازات على الجهاز.
تطبيق الشركة المصنّعة للجهاز
تطبيق تم إنشاؤه باستخدام مزيج من واجهة برمجة تطبيقات Android وواجهة برمجة تطبيقات النظام وإمكانية الوصول المباشر إلى تنفيذ إطار عمل Android. بما أنّ الشركة المصنّعة للجهاز قد تتمكّن من الوصول مباشرةً إلى واجهات برمجة التطبيقات غير الثابتة ضمن إطار عمل Android، يجب تثبيت هذه التطبيقات مسبقًا على الجهاز ولا يمكن تحديثها إلا عند تحديث برنامج نظام الجهاز.
System API
تمثّل System API واجهات Android API المتاحة فقط للشركاء ومصنّعي المعدات الأصلية (OEM) لتضمينها في التطبيقات المجمّعة. يتم وضع علامة @SystemApi على واجهات برمجة التطبيقات هذه
في رمز المصدر.
واجهة برمجة تطبيقات Android
واجهة Android API هي واجهة برمجة تطبيقات متاحة للجميع ومخصّصة لمطوّري تطبيقات Android التابعة لجهات خارجية. للحصول على معلومات حول واجهة برمجة التطبيقات Android، يُرجى الرجوع إلى
مرجع واجهة برمجة التطبيقات Android.
إطار عمل Android
مجموعة من فئات Java وواجهاتها وغيرها من الرموز البرمجية المجمَّعة مسبقًا والتي يتم إنشاء التطبيقات استنادًا إليها. يمكن الوصول إلى أجزاء من إطار العمل بشكل علني من خلال استخدام Android API. ولا تتوفّر أجزاء أخرى من إطار العمل إلا لمصنّعي المعدات الأصلية من خلال استخدام واجهات برمجة التطبيقات الخاصة بالنظام. يتم تشغيل رمز إطار عمل Android داخل عملية التطبيق.
خدمات النظام
خدمات النظام هي مكونات نموذجية ومركّزة، مثل system_server وSurfaceFlinger وMediaService. تتواصل الوظائف التي توفّرها واجهة برمجة التطبيقات لإطار عمل Android مع خدمات النظام للوصول إلى الأجهزة الأساسية.
وقت تشغيل Android (ART)
بيئة وقت تشغيل Java يوفّرها مشروع Android المفتوح المصدر (AOSP) تنفّذ ART عملية ترجمة الرموز الثنائية للتطبيق إلى تعليمات خاصة بالمعالج،
وتنفّذ بيئة وقت التشغيل على الجهاز هذه التعليمات.
طبقة تجريد الأجهزة (HAL)
طبقة تجريد الأجهزة (HAL) هي طبقة تجريد تتضمّن واجهة عادية يمكن لمورّدي الأجهزة تنفيذها. تسمح طبقات تجريد الأجهزة (HAL) لنظام التشغيل Android بعدم الاكتراث بتنفيذات برامج التشغيل ذات المستوى الأدنى. يتيح لك استخدام طبقة تجريد الأجهزة (HAL) تنفيذ وظائف بدون التأثير في النظام ذي المستوى الأعلى أو تعديله. لمزيد من المعلومات، اطّلِع على نظرة عامة على طبقة تجريد الأجهزة (HAL).
البرامج الخفية والمكتبات الأصلية
تتضمّن البرامج الخفية الأصلية في هذه الطبقة init وhealthd وlogd وstoraged. تتفاعل هذه العمليات الخفية مباشرةً مع النواة أو واجهات أخرى، ولا تعتمد على تنفيذ طبقة HAL المستندة إلى مساحة المستخدم.
تتضمّن المكتبات الأصلية في هذه الطبقة libc وliblog وlibutils وlibbinder وlibselinux. تتفاعل هذه المكتبات الأصلية مباشرةً مع النواة أو الواجهات الأخرى، ولا تعتمد على تنفيذ HAL المستند إلى مساحة المستخدم.
Kernel
النواة هي الجزء المركزي من أي نظام تشغيل، وهي تتفاعل مع الأجهزة الأساسية على الجهاز. ويتم تقسيم نواة AOSP، حيثما أمكن، إلى وحدات مستقلة عن الأجهزة ووحدات خاصة بالمورِّد. للحصول على وصف، بما في ذلك التعريفات، لمكوّنات نواة AOSP، يُرجى الرجوع إلى نظرة عامة على النواة.
ما هي الخطوات التالية؟
إذا كنت حديث العهد بنظام التشغيل AOSP وتريد البدء في عملية التطوير، يُرجى الرجوع إلى قسم "البدء".
إذا أردت معرفة المزيد عن طبقة معيّنة من AOSP، انقر على اسم القسم في شريط التنقّل الأيمن وابدأ بنظرة عامة على هذا القسم.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-24 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-24 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]