Android هو حزمة برامج مفتوحة المصدر مستندة إلى Linux ومُصمَّمة لمجموعة واسعة من الأجهزة وأشكال الأجهزة. يعرض الشكل 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 مثبَّت من قبل لتسليم رسالة إلى المستلم الذي تحدده.