Google 致力于为黑人社区推动种族平等。查看具体举措
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

هندسة Android

تحتوي بنية نظام Android على المكونات التالية:

نظرة عامة على بنية نظام Android
الشكل 1. هندسة نظام أندرويد
  • إطار التطبيق . يتم استخدام إطار عمل التطبيق في أغلب الأحيان بواسطة مطوري التطبيقات. بصفتك مطور أجهزة ، يجب أن تكون على دراية بواجهات برمجة التطبيقات للمطورين حيث يتم تعيين العديد من واجهات HAL مباشرة ويمكن أن توفر معلومات مفيدة حول تنفيذ برامج التشغيل.
  • بيندر IPC . تسمح آلية Binder Inter-Process Communication (IPC) لإطار عمل التطبيق بعبور حدود العملية والاتصال برمز خدمات نظام Android. يتيح ذلك لواجهات برمجة التطبيقات عالية المستوى لإطار العمل التفاعل مع خدمات نظام Android. على مستوى إطار عمل التطبيق ، يتم إخفاء هذا الاتصال عن المطور ويبدو أن الأشياء "تعمل فقط".
  • خدمات النظام . خدمات النظام هي مكونات معيارية ومركزة مثل Window Manager أو Search Service أو Notification Manager. الوظيفة التي يكشف عنها إطار عمل التطبيق تتواصل واجهات برمجة التطبيقات مع خدمات النظام للوصول إلى الأجهزة الأساسية. يشتمل Android على مجموعتين من الخدمات: النظام (مثل Window Manager و Notification Manager) والوسائط (الخدمات المتضمنة في تشغيل الوسائط وتسجيلها).
  • طبقة تجريد الأجهزة (HAL) . يحدد HAL واجهة قياسية لبائعي الأجهزة لتطبيقها ، مما يمكّن Android من أن يكون محايدًا بشأن تطبيقات برامج التشغيل ذات المستوى المنخفض. يسمح لك استخدام HAL بتنفيذ الوظائف دون التأثير على نظام المستوى الأعلى أو تعديله. يتم تجميع تطبيقات HAL في وحدات ويتم تحميلها بواسطة نظام Android في الوقت المناسب. للحصول على تفاصيل ، راجع طبقة تجريد الأجهزة (HAL) .
  • نواة لينكس . يشبه تطوير برامج تشغيل جهازك تطوير برنامج تشغيل جهاز Linux نموذجي. يستخدم Android إصدارًا من Linux kernel مع بعض الإضافات الخاصة مثل Low Memory Killer (نظام إدارة ذاكرة أكثر قوة في الحفاظ على الذاكرة) ، وأقفال PowerManager خدمة نظام PowerManager ) ، وبرنامج تشغيل Binder IPC ، وميزات أخرى مهمة لمنصة متنقلة مضمنة. هذه الإضافات مخصصة بشكل أساسي لوظائف النظام ولا تؤثر على تطوير السائق. يمكنك استخدام أي إصدار من النواة طالما أنه يدعم الميزات المطلوبة (مثل برنامج تشغيل Binder). ومع ذلك ، نوصي باستخدام أحدث إصدار من Android kernel. للحصول على تفاصيل ، راجع بناء Kernels .

لغة تعريف واجهة HAL (HIDL)

أعاد Android 8.0 تصميم إطار عمل Android OS (في مشروع يُعرف باسم Treble ) لجعله أسهل وأسرع وأقل تكلفة للمصنعين لتحديث الأجهزة إلى إصدار جديد من Android. في هذه البنية الجديدة ، تحدد لغة تعريف واجهة HAL (HIDL ، تنطق "HAL") الواجهة بين HAL ومستخدميها ، مما يتيح استبدال إطار عمل Android دون إعادة بناء HALs.

يفصل HIDL تنفيذ البائع (برنامج خاص بالجهاز ، منخفض المستوى مكتوب بواسطة مصنعي السيليكون) عن إطار عمل نظام التشغيل Android عبر واجهة بائع جديدة. ينشئ البائعون أو صانعو SOC HALs مرة واحدة ويضعونها في قسم /vendor على الجهاز ؛ يمكن بعد ذلك استبدال إطار العمل ، في القسم الخاص به ، بتحديث عبر الهواء (OTA) دون إعادة تجميع HALs.

يكمن الاختلاف بين بنية Android القديمة والعمارة الحالية القائمة على HIDL في استخدام واجهة البائع:

  • في Android 7.x والإصدارات الأقدم ، لا توجد واجهة بائع رسمية ، لذلك يجب على صانعي الأجهزة تحديث أجزاء كبيرة من رمز Android لنقل الجهاز إلى إصدار أحدث من Android:

    الشكل 2. بيئة تحديث Android القديمة
  • في Android 8.0 والإصدارات الأحدث ، توفر واجهة البائع المستقرة الجديدة الوصول إلى الأجزاء الخاصة بالأجهزة من Android ، بحيث يمكن لصانعي الأجهزة تقديم إصدارات Android الجديدة ببساطة عن طريق تحديث إطار عمل نظام التشغيل Android - دون الحاجة إلى عمل إضافي من الشركات المصنعة للسيليكون:

    الشكل 3. بيئة تحديث Android الحالية

يمكن لجميع الأجهزة الجديدة التي تعمل بنظام Android 8.0 والإصدارات الأحدث الاستفادة من البنية الجديدة. لضمان التوافق المسبق لتطبيقات البائع ، يتم التحقق من صحة واجهة البائع بواسطة Vendor Test Suite (VTS) ، وهو مماثل لمجموعة اختبار التوافق (CTS) . يمكنك استخدام VTS لأتمتة اختبار HAL و OS kernel في كل من بنى Android القديمة والحالية.

موارد العمارة

للحصول على تفاصيل حول بنية Android ، راجع الأقسام التالية:

  • أنواع HAL . يصف HALs المربوطة ، والمرور ، والعملية نفسها (SP) ، و HAL القديمة.
  • HIDL (عام) . يحتوي على معلومات عامة حول الواجهة بين HAL ومستخدميه.
  • HIDL (C ++) . يحتوي على تفاصيل حول إنشاء تطبيقات C ++ لواجهات HIDL.
  • HIDL (جافا) . يحتوي على تفاصيل حول واجهة Java الأمامية لواجهات HIDL.
  • ConfigStore HAL . يصف واجهات برمجة التطبيقات للوصول إلى عناصر التكوين للقراءة فقط المستخدمة لتكوين إطار عمل Android.
  • تراكبات شجرة الجهاز . يوفر تفاصيل حول استخدام تراكبات شجرة الجهاز (DTOs) في Android.
  • مجموعة أدوات التطوير الأصلية للبائع (VNDK) . يصف مجموعة المكتبات الحصرية للبائع لتطبيق HALs للمورد.
  • كائن واجهة البائع (VINTF) . يصف الكائنات التي تجمع المعلومات ذات الصلة بجهاز ما وتوفر هذه المعلومات من خلال واجهة برمجة تطبيقات قابلة للاستعلام.
  • SELinux لنظام Android 8.0 . التفاصيل تغييرات SELinux والتخصيصات.

بالإضافة إلى الموارد الموجودة على هذا الموقع ، نشر أعضاء فريق Treble Treble: تحديثات البرامج السريعة من خلال إنشاء توازن في نظام بيئي نشط للبرامج لأصحاب المصلحة الموزعين عالميًا . الورقة مجانية لأعضاء ACM ويمكن لغير الأعضاء شراء أو قراءة الملخص.