المطورين

تركيبة نظام الأندرويد وكل فروعه android system

android system

تتمة لشرح اقلاع نظام الاندرويد :  رابط الشرح الاول

لا شك أن اندرويد في هذه الفترة تطور كثيراً وحصل على العديد من التعديلات على ميزاته لكن الشيئ الوحيد الذي بقي ثابتاً تقريباً هو المشغل الافتراضي Dalvik VM الذي يشغل تطبيقات جميع إصدارات اندرويد بما فيها الإصدار اندرويد كيت كات، لكن جوجل ومنذ أكثر من وقت طويل تعمل على استبداله بمشغل افتراضي آخر باسم ART فما الفرق ما بين هذين الاثنين؟

هذا الأخير اختصار لـ Android Run Time وحسب عملاق البحث على شبكة الانترنت سيكون بأداء أسرع وكفاءة أكبر إلى جانب الاستهلاك الأقل للبطارية وتعطيك جوجل الخيار لتشغيله في كيت كات بدلاً من Dalivk من خيارات المطور Developer Options.

Dalvik Virtual Machine يعمل على مترجم من نوع Just In Time Compiler أي الترجمة الآلية لكن في كل مرة يشغل فيها التطبيق وهذا لايتمتع بالكفاءة الكافية إلا أن هذه العملية لا تحتاج إلى عتاد صلب قوي وتعمل على أنواع مختلفة منه. بينما ART يعمل على ترجمة مسبقة للتطبيقات تدعى بـ Ahead Of Time وتحويلها إلى لغة آلة عند تثبيت التطبيق لأول مرة وهذا بالطبع يختصر كثيراً من زمن تشغيل التطبيقات وكذلك تشغيلها بسرعة أكبر.

للأمانة تم اختبار كل من المشغلين بواسطة تطبيقات الاختبار الشهيرة مثل Linpack For Android، Real Pi، Quadrant Standard، و كذلك AnTuTu Benchmark حيث لم تظهر تفوقاً واضحاً لـ ART بل في بعضها تفوق Dalvik، لكن مع ملاحظة أنها لا تعتبر دقيقة بشكل كبير ولا تعطي معيار واضح لكنها تبقى الوسيلة الوحيدة المتوفرة حتى الآن.

تركيبة نظام الأندرويد:

يتكون نظام الأندرويد من 4 طبقات كما هو موضح بالصورة

تركيبة نظام الأندرويدتركيبة نظام الأندرويد

 1- طبقة الـ Linux Kernel: الـ kernel المستخدم في نظام الأندرويد يسمى Monolithic، وهو نسخة معدلة من الـ Linux kernel. تحتوي هذه الطبقة على drivers وهي عبارة عن modules مسؤولة عن التواصل مع عتاد الجهاز (hardware). بالإضافة إلى الـ drivers modules، يوجد module خاص بالـ power management.

2- طبقة الـ Middleware: وهذه الطبقة تحتوي على Android runtime و libraries، وتم تطوير غالبية هذه الطبقة بـ ++C/C:

    أ. الـ Android runtime: هذا الجزء مشابه لبيئة الجافا، ولكن بدلاً عن آلة الجافا الافتراضية (JVM)، يحتوي هذا الجزء على آلة افتراضية تم تطويرها خصيصاً لتتناسب مع محدودية إمكانيات أجهزة الهواتف المحمولة حيث تستهلك أقل كمية ممكنة من الطاقة وتعمل بكفاءة مع ذاكرة عشوائية (RAM) صغيرة الحجم ومعالج (CpU) أقل سرعة من الموجود في أجهزة الحواسيب المكتبية والمحمولة. تسمى هذه الآلة الافتراضية بآلة دالفِك (Dalvik VM). بالإضافة للآلة الافتراضية، نجد المكتبات الأساسية (Class Library) وهي ذاتها مكتبات منصة الجافا Java SE ولكن الـimplementation ليس Hotspot (الخاص بشركة Oracle، وهذا هو الشائع والذي يستخدمه الأغلبية في الجافا) بل نسخة أخرى تسمى Apache Harmony. ولأن نظام الأندرويد كان موجه لأجهزة الهواتف الذكية، فقد تم إزالة بعض المكتبات الخاصة بأنظمة سطح المكتب مثل AWT و Swing.

    ب. الـ libraries: مكتبات مساندة تم تطويرها بـ ++C/C. من أهم هذه المكتبات:

  • Surface Manager: هذه المكتبة هي حلقة الوصل بين تفاعل المستخدم مع الشاشة وبين المكتبة Window Manager الموجودة في الطبقة العلوية.

  • Media Framework: توفر العديد من الكوديك (codec) اللازمة لتشغيل وتسجيل الـ media من فيديو وأصوات.

  • SQLite: عبارة عن database engine للتعامل مع قواعد البيانات من نوع SQLite.

  • OpenGL ES: تستخدم هذه المكتبة للتعامل (rendering) مع الرسوميات 2D و 3D.

  • FreeType: مكتبة للتعامل مع الخطوط (Fonts).

  • WebKit: عبارة عن web browser engine يستخدم لعرض صفحات الإنترنت.

  • SGL: اختصاراً لـ “Scalable Graphics Library” وهي مكتبة تستخدم أيضاً للتعامل (rendering) مع الرسوميات 2D و 3D.

  • SSL: تستخدم لدعم الاتصال عبر بروتوكول الـ SSL.

  • libc: نظام الأندرويد يستخدم نسخة خاصة من مكتبات لغة السي تسمى Bionic بدلاً من BSD’s standard C library، وذلك حتى تتناسب مع إمكانيات أجهزة الهواتف المحدودة.

3- طبقة الـ Application Framework: هذه المكتبات صُممت خصيصاً لنظام الأندرويد، وهي عبارة عن APIs تستخدم من قبل مطوري الأندرويد لاستغلال موارد النظام. من ضمنها:

  • Activity Manager: وظيفته التواصل مع الـ activities التي تعمل بالنظام. [سيتم شرح الـ Activity بالتفصيل في درس لاحق]

  • Windows Manager: هو المسؤول عن إنشاء وتنظيم النوافذ بالشاشة، وذلك بالتواصل مع الـ Surface Manager.

  • Content Providers: إدارة عملية مشاركة البيانات بين التطبيقات. [سيتم شرح الـ Content Providers بالتفصيل في درس لاحق]

  • View System: يحتوي على العناصر المكونة لواجهة المستخدم (UI) من buttons وغيرها. بالإضافة إلى خصائص هذه العناصر مثل event handlers.

  • Notification Manager: يستخدم لإرسال إشعارات للمستخدم.

  • Package Manager: يستخدم لجلب معلومات عن التطبيقات، مثل رقم الإصدار وأيضاً التصاريح التي لدى التطبيق.

  • Telephony Manager: يستخدم للتحكم بالمكالمات الصوتية والتفاعل معها.

  • Resource Manager: يستخدم للوصول إلى الموارد المرفقة مع التطبيق كالصور والنصوص وغيرها.

  • Location Manager: يستخدم للتفاعل مع الـ GPS لتحديد الموقع الحالي للمستخدم.

  • XMPP Service: كانت موجودة في الإصدارات الأولية من نظام الأندرويد، وكانت تستخدم فقط لخدماتGoogleTalk (والتي تم استبدالها لاحقاً بخدمة Google+ Hangout)، ولكن تم إلغاؤها لأسباب أمنية (security issues).

4- طبقة الـ Applications: وهذه الطبقة تحتوي على تطبيقات الأندرويد، سواء كانت تطبيقات موجودة مسبقاً في النظام (built-in) مثل تطبيق الأسماء (Contacts)، وتطبيق الاتصال (Phone)، وتطبيق الواجهة الرئيسية (Home)، أو ربما تطبيقات يتم تطويرها من قبل الشركة المصنعة لجهاز الهاتف الذكي، وقد يستبدلون التطبيقات الموجودة في النظام الخام بتطبيقات معدلة، لذلك ستجد إختلاف بين تطبيقات أجهزة الـ Samsung وبين تطبيقات أجهزة الـ HTC، مثلاً. أيضاً، هذه الطبقة تحتوي على التطبيقات التي يتم تنزيلها من متجر Play، وهو المتجر الرسمي لتطبيقات الأندرويد.

سيتم شرح موسع اكثر  للملفات بلمواضيع القادمة وعلاقة الملفات  ببعض

قسم التطوير
THE HELL TEAM

تقييم المستخدمون: 4.17 ( 9 أصوات)
الوسوم
اظهر المزيد

‫5 تعليقات

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

إغلاق