الهيكلة الهندسية لبيئة نظام الاندرويد

Mohammad Laifمنذ 3 سنوات

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

 

قبل كل شئ علينا ان نفهم ونلقي نظرة بسيطة على الهيكلة العامة لنظام الاندرويد, من ماذا يتكون؟ واين يعيش تطبيقنا بداخله!

 

طبقات الهيكلة الهندسية لبيئة نظام الاندرويد

وهي:

  1. Linux Kernel.
  2. Hardware Abstraction Layer.
  3. Native C/C++ Libraries.
  4. Android Runtime (سنركز اكثر على هذه الطبقه).
  5. Java API Framework.
  6. System App.

 

طبقة الـ Linux Kernel

 وهي طبقة نواة اللنكس, وتأتي قبلها طبقة التحكم بالطاقة وادارتها كالتالي:

بالنسبة لطبقة الـ Linux Kernel فالاندرويد يعتبر نظام لينكس مع اختلافات بسيطة لتناسب الجوالات المحمولة. هذة الطبقة تتكون من برامج التغشيل للقطع الموجودة في الجوالات مثل تعريفات الشاشة, تعريفات كرت الصوت, تعريفات لوحة المفاتيح وما الى ذلك.

 

طبقة الـ Hardware Abstraction Layer

وهي عبارة عن طبقه تحتوي على العديد من الواجهات البرمجية ومن خلالها نصنع طبقة الـ Java API Framework لاحقاً. والتي تمكننا من التحكم في قطع الهاتف كالكاميرا والبلوتوث و المستشعرات.

 

طبقة الـ Native C/C++ Libraries

عبارة عن المكاتب الرئيسية التي تمت برمجتها بلغات كالـ C و الـ C++ والتي من خلالها نستطيع التخاطب مع قطع الهاتف باستخدام هذه اللغات.

 

طبقة الـ Android Runtime

هذه الطبقه هي مرادنا. هنا يعيش تطبيقك, عندما يقوم المستخدم بتشغيله! وتكون مصاحبه للطبقه السابقه كالشكل التالي:

تتكون من قسمين بالغالب وهما:

  • اولاً: الـ Android Runtime اختصاراً تسمى ART.
  • ثانياً: الـ Core Libraries.

سنقوم بالتطرق لها في الدرس القادم.

 

طبقة الـ Java API Framework

من خلال الطبقة الثانية Hardware Abstraction Layer تمت صناعة هذه الطبقة للتخاطب مع الـ Android OS والهاتف باستخدام لغة البرمجة الـ Java.

 

طبقة الـ System App

طبقة خاصة بتطبيقات نظام الجوال كتطبيق الاسماء والاتصال والكاميرا التي تأتي مثبته عند شرائك لهاتف جديد.

 

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

 

الان قد رأينا كيف ان نظام الاندرويد مكون من نواة لينكس تحتوي على التعاريف الاساسية للتعامل وتشغيل القطع "Hardware"  الموجودة في جهاز الهاتف, ثم تأتي بعدها طبقة اخرى تربط هذه الطبقه بطبقه خاصة للتعامل مع هذه القطع من خلال استخدام لغات الـ C او C++ "نعم يمكنك برمجة التطبيقات للإندرويد باستخدام هذه اللغات" ثم تتكون لدينا طبقة اخرى خاصة بالجافا للتعامل مع هذه القطع باستخدام لغة الجافا.

 

في الدرس القادم
سنغوص اكثر في طبقة الـ Android Runtime (ART) ونرى العملية Process التي ينشئها النظام ليعيش بداخلها تطبيقك. وماهي دوراة الحياه لها وكيف يتعامل معها الاندرويد وكيف تؤثر في تطبيقك.

 

المصادر والمراجع

 

نهاية الدرس
لاتنسى تتبع الدرس والدورة كذلك لإشعارك عندما يتم التعديل على المتحوى او اضافة المزيد من المعلومات. ايضاً لاتنسى الاعجاب بالدرس ومشاركته مع الاخرين.

المحاضر

Mohammad Laif

محتوى الدورة

تمهيد
1 مقدمة
2 تعرف على التزامن (الـ Concurrency)
3 اخطاء التزامن (الـ Concurrency) الشائعة
العمليات Processes
1 الهيكلة الهندسية لبيئة نظام الاندرويد الدرس الحالي
2 طبقة الـ Android Runtime و العمليات Processes
3 انواع العمليات (Processes)
الخيوط الحاسوبية Threads
1 الخيوط الحاسوبية (Threads)
2 مكونات الخيوط الحاسوبية (Thread)
3 انشاء الخيط الحاسوبي
أنماط التصميم للخيوط الحاسوبية
1 انشاء نمط الـ Handler و Looper و Thread
2 انشاء نمط الـ HandlerThreads
3 ماهو نمط الـ Thread Pools (الـ Executors)
4 استخدام نمط الـ Thread Pools كـ Singleton
5 استخدام الـ Callable مع نمط الـ Thread Pools
6 انشاء بركة خيوط حاسوبية Thread Pools لتسريع قاعدة البيانات
7 انشاء نمط الـ AsyncTask
8 انشاء نمط الـ Loader
الـ Broadcasts
1 تعرف على الـ Broadcast Receiver
2 انشاء الـ Broadcast Receiver بشكل ثابت
3 انشاء الـ Broadcast Receiver بشكل ديناميكي
4 استخدام الـ Local Broadcast للتخاطب بين المكونات
الـ Services
1 تعرف على الـ Services
2 انشاء الـ Started Service
3 انشاء الـ Intent Service
4 انشاء الـ Bound Service
5 استخدام الـ ResultReceiver للتخاطب مع الـ Intent Service
6 استخدام الـ Broadcast للتخاطب مع الـ Started Service
الـ Alarm Manager
1 تعرف على الـ Alarm Manager
2 طرق استخدام الـ Alarm Manager
الـ Jobs
1 استخدام الـ Android JobSchedualer
2 استخدام الـ Firebase JobDispatcher
3 استخدام الـ WorkManager من حزمة JetPack

الكلمات الدليلية

عن الدرس

4 إعجاب
2 متابع
0 مشاركة
3470 مشاهدات
منذ 3 سنوات

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !