بنية النظام الأساسي
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
Android هو حزمة برامج مفتوحة المصدر مستندة إلى Linux ومُصمَّمة لمجموعة واسعة من الأجهزة وأشكال الأجهزة. يعرض الشكل 1 المكوّنات الرئيسية للنظام الأساسي Android.
الشكل 1. حزمة برامج Android.
نواة Linux
يستند نظام Android الأساسي إلى Linux kernel. على سبيل المثال، يعتمد وقت تشغيل Android (ART) على نواة Linux في ما يتعلق بالوظائف الأساسية، مثل سلاسل المحادثات وإدارة الذاكرة المنخفضة المستوى.
ويتيح استخدام نواة Linux لنظام التشغيل Android الاستفادة من ميزات الأمان الرئيسية ويسمح للشركات المصنّعة للأجهزة بتطوير برامج تشغيل للأجهزة للنواة المعروفة.
طبقة تجريد الأجهزة (HAL)
توفّر
طبقة تجريد الأجهزة (HAL) واجهات عادية تعرض
إمكانات أجهزة الجهاز لإطار عمل واجهة برمجة تطبيقات Java الأعلى مستوى. تتألف تقنية HAL من عدة وحدات مكتبة، تنفذ كل منها واجهة لنوع محدّد من مكونات الأجهزة، مثل الكاميرا أو وحدة البلوتوث.
عندما تُجري واجهة برمجة تطبيقات لإطار عمل طلب الوصول إلى أجهزة الجهاز، يحمِّل نظام Android
وحدة المكتبة لمكوّن الجهاز هذا.
وقت تشغيل Android
بالنسبة إلى الأجهزة التي تعمل بالإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث، يتم تشغيل كل تطبيق
في عملية خاصة به ومثيل خاص به من وقت تشغيل Android
(ART). تمت كتابة تقنية ART لتشغيل أجهزة افتراضية متعددة على الأجهزة ذات الذاكرة المنخفضة من خلال تنفيذ ملفات بتنسيق Dalvik القابل للتنفيذ (DEX)، وهو تنسيق رمز بايت مصمّم خصيصًا لنظام التشغيل Android وتم تحسينه لتقليل استهلاك الذاكرة. تعمل أدوات الإنشاء، مثل d8
، على تجميع مصادر Java في رمز بايت DEX الذي يمكن تشغيله على نظام Android الأساسي.
في ما يلي بعض الميزات الرئيسية لـ ART:
- تجميع الوقت مسبقًا (AOT) والعرض المباشر (JIT)
- تحسين عملية جمع البيانات المهملة (GC)
- في نظام التشغيل Android 9 (المستوى 28 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتم تحويل ملفات DEX لحزمة تطبيق إلى رمز جهاز أصغر حجمًا.
- توفير دعم أفضل لتصحيح الأخطاء، بما في ذلك محلّل مخصّص لأخذ العينات
واستثناءات التشخيص التفصيلية وتقارير الأعطال، وإمكانية ضبط
نقاط المراقبة لمراقبة حقول معيّنة
قبل الإصدار 5.0 من Android (المستوى 21 من واجهة برمجة التطبيقات)، كان وقت تشغيل Android هو Dalvik.
إذا كان تطبيقك يعمل بشكل جيد على ART، يمكن أن يعمل على Dalvik أيضًا، ولكن
العكس قد لا يكون صحيحًا.
يتضمّن Android أيضًا مجموعة من مكتبات أوقات التشغيل الأساسية التي توفّر معظم
وظائف لغة البرمجة Java، بما في ذلك بعض ميزات لغة Java 8 التي يستخدمها
إطار عمل واجهة برمجة التطبيقات Java API.
مكتبات C/C++ الأصلية
تم إنشاء العديد من مكوّنات وخدمات نظام Android الأساسية، مثل ART وHAL، من رموز برمجية أصلية تتطلّب مكتبات أصلية مكتوبة بلغة C وC++ . ويوفّر نظام Android الأساسي واجهات برمجة تطبيقات لإطار عمل Java لعرض وظائف بعض هذه المكتبات الأصلية للتطبيقات. على سبيل المثال، يمكنك الوصول إلى OpenGL ES من خلال Java OpenGL API على نظام Android لإتاحة إمكانية رسم الرسومات الثنائية والثلاثية الأبعاد ومعالجتها في تطبيقك.
إذا كنت تطور تطبيقًا يتطلب رمز C أو C++ ، يمكنك استخدام
Android NDK للوصول إلى بعض مكتبات الأنظمة الأساسية الأصلية هذه مباشرةً من
رمزك الأصلي.
إطار عمل واجهة برمجة تطبيقات Java
تتوفر لك مجموعة ميزات نظام التشغيل Android الكاملة من خلال واجهات برمجة التطبيقات
المكتوبة بلغة Java. تشكِّل واجهات برمجة التطبيقات هذه الوحدات الأساسية التي تحتاجها
لإنشاء تطبيقات Android من خلال تبسيط إعادة استخدام مكونات وخدمات النظام
الأساسي ووحداتها، ويشمل ذلك ما يلي:
- نظام عرض ثري وقابل للتوسع يمكنك استخدامه لإنشاء واجهة المستخدم للتطبيق، بما في ذلك القوائم والشبكات ومربعات النص والأزرار وحتى متصفح ويب قابل للتضمين
- مدير موارد يوفّر إمكانية الوصول إلى الموارد غير المرمّزة مثل السلاسل والرسومات وملفات التنسيق المترجَمة
- مدير
الإشعارات الذي يتيح لجميع التطبيقات عرض تنبيهات مخصّصة في شريط الحالة
- مدير أنشطة
يدير دورة حياة التطبيقات ويوفّر حزمة تنقّل مشتركة
-
موفّرو
المحتوى الذين يتيحون للتطبيقات إمكانية الوصول إلى البيانات من تطبيقات أخرى، مثل
تطبيق "جهات الاتصال"، أو مشاركة بياناتهم الخاصة
يحصل المطوِّرون على إمكانية الوصول الكامل إلى واجهات برمجة التطبيقات لإطار العمل نفسها التي تستخدمها تطبيقات نظام Android.
تطبيقات النظام
يأتي Android مزوّدًا بمجموعة من التطبيقات الأساسية للبريد الإلكتروني ورسائل الرسائل القصيرة SMS والتقويمات وتصفّح الإنترنت وجهات الاتصال وغيرها. أمّا التطبيقات المضمّنة في النظام الأساسي، فليست لها حالة خاصة بين التطبيقات التي يختار المستخدم تثبيتها. وبالتالي، يمكن
أن يصبح تطبيق تابع لجهة خارجية هو متصفّح الويب التلقائي للمستخدم أو أداة المراسلة عبر الرسائل القصيرة SMS أو
حتى لوحة المفاتيح التلقائية. تسري بعض الاستثناءات، مثل تطبيق "الإعدادات"
على النظام.
تعمل تطبيقات النظام كتطبيقات للمستخدمين وتقدّم إمكانات أساسية
يمكن للمطوّرين الوصول إليها من تطبيقاتهم. على سبيل المثال، إذا كنت تريد
من تطبيقك إرسال رسائل SMS، لن تحتاج إلى إنشاء هذه الوظيفة بنفسك. وبدلاً من ذلك، يمكنك استدعاء أي تطبيق SMS مثبَّت من قبل
لتسليم رسالة إلى المستلم الذي تحدده.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Platform architecture\n\nAndroid is an open source, Linux-based software stack created for a wide\narray of devices and form factors. Figure 1 shows the major\ncomponents of the Android platform.\n\n\n**Figure 1.** The Android software stack.\n\nLinux kernel\n------------\n\n\nThe foundation of the Android platform is the Linux kernel. For example,\n[the Android Runtime (ART)](#art) relies on the Linux kernel for\nunderlying functionalities such as threading and low-level memory management.\n\n\nUsing a Linux kernel lets Android take advantage of [key\nsecurity features](https://source.android.com/security/overview/kernel-security.html) and lets device manufacturers develop hardware\ndrivers for a well-known kernel.\n\nHardware abstraction layer (HAL)\n--------------------------------\n\n\nThe [hardware abstraction layer (HAL)](https://source.android.com/devices/architecture/hal) provides standard interfaces that expose\ndevice hardware capabilities to the higher-level [Java API framework](#api-framework). The HAL consists of multiple library\nmodules, each of which implements an interface for a specific type of hardware\ncomponent, such as the [camera](https://source.android.com/devices/camera/index.html) or [Bluetooth](https://source.android.com/devices/bluetooth.html) module.\nWhen a framework API makes a call to access device hardware, the Android\nsystem loads the library module for that hardware component.\n\nAndroid runtime\n---------------\n\n\nFor devices running Android version 5.0 (API level 21) or higher, each app\nruns in its own process and with its own instance of the [Android Runtime\n(ART)](https://source.android.com/devices/tech/dalvik/index.html). ART is written to run multiple virtual machines on low-memory\ndevices by executing Dalvik Executable\nformat (DEX) files, a bytecode format designed specifically for\nAndroid that's optimized for a minimal memory footprint. Build tools, such\nas [`d8`](/studio/command-line/d8), compile\nJava sources into DEX bytecode, which can run on the Android platform.\n\n\nSome of the major features of ART include the following:\n\n- Ahead-of-time (AOT) and just-in-time (JIT) compilation\n- Optimized garbage collection (GC)\n- On Android 9 (API level 28) and higher, [conversion](/about/versions/pie/android-9.0#art-aot-dex) of an app package's DEX files to more compact machine code\n- Better debugging support, including a dedicated sampling profiler, detailed diagnostic exceptions and crash reporting, and the ability to set watchpoints to monitor specific fields\n\n\nPrior to Android version 5.0 (API level 21), Dalvik was the Android runtime.\nIf your app runs well on ART, then it can work on Dalvik as well, but\n[the reverse might not be\ntrue](/guide/practices/verifying-apps-art).\n\n\nAndroid also includes a set of core runtime libraries that provide most of\nthe functionality of the Java programming language, including some [Java 8 language features](/guide/platform/j8-jack), that the Java\nAPI framework uses.\n\nNative C/C++ libraries\n----------------------\n\n\nMany core Android system components and services, such as ART and HAL, are\nbuilt from native code that requires native libraries written in C and C++.\nThe Android platform provides Java framework APIs to expose the functionality\nof some of these native libraries to apps. For example, you can access\n[OpenGL ES](/develop/ui/views/graphics/opengl/about-opengl) through the\nAndroid framework's [Java OpenGL API](/reference/android/opengl/package-summary) to add\nsupport for drawing and manipulating 2D and 3D graphics in your app.\n\n\nIf you are developing an app that requires C or C++ code, you can use the\n[Android NDK](/ndk) to access some of these [native platform libraries](/ndk/guides/stable_apis) directly from\nyour native code.\n\nJava API framework\n------------------\n\n\nThe entire feature-set of the Android OS is available to you through APIs\nwritten in the Java language. These APIs form the building blocks you need to\ncreate Android apps by simplifying the reuse of core, modular system\ncomponents and services, which include the following:\n\n- A rich and extensible [view\n system](/guide/topics/ui/overview) you can use to build an app's UI, including lists, grids, text boxes, buttons, and even an embeddable web browser\n- A [resource manager](/guide/topics/resources/overview), providing access to non-code resources such as localized strings, graphics, and layout files\n- A [notification\n manager](/guide/topics/ui/notifiers/notifications) that enables all apps to display custom alerts in the status bar\n- An [activity manager](/guide/components/activities/intro-activities) that manages the lifecycle of apps and provides a common [navigation back stack](/guide/components/tasks-and-back-stack)\n- [Content\n providers](/guide/topics/providers/content-providers) that enable apps to access data from other apps, such as the Contacts app, or to share their own data\n\n\nDevelopers have full access to the same [framework APIs](/reference/packages) that Android system apps use.\n\nSystem apps\n-----------\n\n\nAndroid comes with a set of core apps for email, SMS messaging, calendars,\ninternet browsing, contacts, and more. Apps included with the platform have\nno special status among the apps the user chooses to install. So, a\nthird-party app can become the user's default web browser, SMS messenger, or\neven the default keyboard. Some exceptions apply, such as the system's\nSettings app.\n\n\nThe system apps function both as apps for users and to provide key\ncapabilities that developers can access from their own app. For example, if\nyou want your app to deliver SMS messages, you don't need to build that\nfunctionality yourself. You can instead invoke whichever SMS app is already\ninstalled to deliver a message to the recipient you specify."]]