קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
פרויקט הקוד הפתוח של Android (AOSP) הוא קוד מקור של Android שזמין לציבור וניתן לשינוי. כל אחד יכול להוריד ולשנות את ה-AOSP במכשיר שלו. AOSP מספק הטמעה מלאה ופונקציונלית של פלטפורמת Android לנייד.
בהמשך מופיעה רשימת הגדרות למונחים שמופיעים באיור 1:
אפליקציית Android
אפליקציה שנוצרה רק באמצעות Android API. חנות Google Play היא פלטפורמה פופולרית לחיפוש ולהורדה של אפליקציות ל-Android, אבל יש גם הרבה אפשרויות אחרות. במקרים מסוימים, יצרן מכשיר עשוי לרצות להתקין מראש אפליקציית Android כדי לתמוך בפונקציונליות הבסיסית של המכשיר. אם אתם מעוניינים לפתח אפליקציות ל-Android, תוכלו להיעזר במידע שבכתובת developers.android.com.
אפליקציה עם הרשאות מיוחדות
אפליקציה שנוצרה באמצעות שילוב של ממשקי Android ו-API של המערכת. האפליקציות האלה צריכות להיות מותקנות מראש במכשיר כאפליקציות עם הרשאות מיוחדות.
אפליקציה של יצרן המכשיר
אפליקציה שנוצרה באמצעות שילוב של Android API, System API וגישה ישירה להטמעה של Android framework. יצרן המכשיר עשוי לגשת ישירות לממשקי API לא יציבים במסגרת Android, ולכן האפליקציות האלה צריכות להיות מותקנות מראש במכשיר, ואפשר לעדכן אותן רק כשמעדכנים את תוכנת המערכת של המכשיר.
System API
ממשק ה-API של המערכת מייצג ממשקי API של Android שזמינים רק לשותפים ול-OEM לצורך הכללה באפליקציות בחבילה. ממשקי ה-API האלה מסומנים ב-@SystemApi בקוד המקור.
Android API
Android API הוא ממשק API שזמין לציבור ומיועד למפתחים של אפליקציות Android של צד שלישי. למידע על Android API, אפשר לעיין בהפניית Android API.
Android framework
קבוצה של מחלקות Java, ממשקים וקוד אחר שעבר קומפילציה מראש, שעליהם מבוססות האפליקציות. חלקים מהמסגרת נגישים לציבור באמצעות Android API. חלקים אחרים במסגרת זמינים רק ליצרני ציוד מקורי (OEM) באמצעות ממשקי ה-API של המערכת. קוד של Android
framework פועל בתוך תהליך של אפליקציה.
שירותי מערכת
שירותי המערכת הם רכיבים מודולריים וממוקדים כמו system_server, SurfaceFlinger ו-MediaService. הפונקציונליות שנחשפת על ידי Android framework API מתקשרת עם שירותי המערכת כדי לגשת לחומרה הבסיסית.
Android runtime (ART)
סביבת זמן ריצה של Java שסופקה על ידי AOSP. ART מבצע את התרגום של קוד הבייט של האפליקציה להוראות ספציפיות למעבד שמופעלות על ידי סביבת זמן הריצה של המכשיר.
שיטת הפשטת חומרה (HAL)
HAL היא שכבת הפשטה עם ממשק סטנדרטי שספקי חומרה יכולים להטמיע. שכבות HAL מאפשרות ל-Android להיות אגנוסטיות לגבי יישומי מנהלי התקנים ברמה נמוכה יותר. שימוש ב-HAL מאפשר להטמיע פונקציונליות בלי להשפיע על המערכת ברמה גבוהה יותר או לשנות אותה. מידע נוסף זמין בסקירה הכללית על HAL.
ספריות ודמונים מקוריים
השדים המקוריים בשכבה הזו כוללים את init, healthd, logd ו-storaged. הדמונים האלה יוצרים אינטראקציה ישירה עם הליבה או עם ממשקים אחרים, והם לא תלויים בהטמעה של HAL שמבוססת על מרחב משתמש.
ספריות מקוריות בשכבה הזו כוללות את libc, liblog, libutils, libbinder ו-libselinux. ספריות מקוריות אלה מקיימות אינטראקציה ישירה עם ליבת המערכת או עם ממשקים אחרים, והן לא תלויות בהטמעה של HAL שמבוססת על מרחב משתמש.
Kernel
הליבה היא החלק המרכזי בכל מערכת הפעלה, והיא מתקשרת עם החומרה הבסיסית במכשיר. במקרים שבהם הדבר אפשרי, ליבת ה-AOSP מחולקת למודולים שאינם תלויים בחומרה ולמודולים ספציפיים לספק. תיאור של רכיבי ליבת AOSP, כולל הגדרות, מופיע במאמר סקירה כללית של ליבת המערכת.
כדי לקבל מידע נוסף על שכבה ספציפית ב-AOSP, לוחצים על שם הקטע בסרגל הניווט הימני ומתחילים בסקירה הכללית של הקטע.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-24 (שעון UTC).
[[["התוכן קל להבנה","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 (שעון 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."]]