ما هو الأندرويد: الأندرويد (Android) هو نظام تشغيل مفتوح المصدر مبني على لب نظام اللينكس Linux kernel. تم بناؤه في بداية الأمر لكي يعمل على أجهزة الهاتف الذكية المدعّمة بتقنية اللمس، ثم تم تطويره تدريجياً لكي يعمل على الأجهزة اللوحية. حالياً، أصبح نظام الأندرويد موجوداً في العديد من الأجهزة؛ وعلى سبيل المثال لا الحصر: الساعات، النظارات، أجهزة التلفاز، منصات الألعاب، أجهزة حاسوبية، … إلخ. هنا قائمة بالأجهزة التي تعمل بنظام الأندرويد: http://en.wikipedia.org/wiki/Compari...ndroid_devices
في 2005، قامت قوقل (Google) بشراء نظام الأندرويد من شركة ناشئة .Android, Inc والتي أنشئت عام 2003. قامت قوقل بالإعلان عن هذا النظام عام 2007. في 23 سبتمبر من عام 2008، تم إصدار أول نسخة من النظام. في 22 أكتوبر من عام 2008، تم إصدار أول هاتف ذكي يعمل على نظام الأندرويد HTC Dream:
HTC Dream – أول هاتف ذكي بنظام أندرويد
- تركيبة نظام الأندرويد:
يتكون نظام الأندرويد من 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، وهو المتجر الرسمي لتطبيقات الأندرويد.
- إصدارات نظام الأندرويد:
تعطي شركة قوقل اسماً مميزاً (codename) مع كل إصدار من نظام الأندرويد، وعادةً يكون الاسم له علاقة بالحلويات. هنا قائمة بإصدارات نظام الأندرويد:
- الإصدار 1.0: بدون اسم – API 1 – أصدر في 23/9/2008.
- الإصدار 1.1: بدون اسم – API 2 - أصدر في 9/2/2009.
- الإصدار 1.5: يسمى Cupcake الكعك - API 3 - أصدر في 30/4/2009.
- الإصدار 1.6: يسمى Donut الدونات – API 4 - أصدر في 15/9/2009.
- الإصدار 2.0: يسمى Eclair الإكلير - API 5 - أصدر في 26/10/2009.
- الإصدار 2.0.1: يسمى Eclair الإكلير - API 6 - أصدر في 3/12/2009.
- الإصدار 2.1: يسمى Eclair الإكلير - API 7 - أصدر في 12/1/2010.
- الإصدارات 2.2 و 2.2.1 و 2.2.2 و 2.2.3: تسمى Froyo الفرويو - API 8 - أصدرت في 20/5/2010 و 18/1/2011 و 22/1/2011 و 21/11/2011.
- الإصدارات 2.3 و 2.3.1 و 2.3.2: تسمى Gingerbread خبز الزنجبيل - API 9 - أصدرت في 6/12/2010 و 12/2010 و 1/2011.
- الإصدارات 2.3.3 و 2.3.4 و 2.3.5 و 2.3.6 و 2.3.7: تسمى Gingerbread خبز الزنجبيل - API 10 - أصدرت في 9/2/2011 و 28/4/2011 و 25/7/2011 و 2/9/2011 و 21/9/2011.
- الإصدار 3.0: يسمى Honeycomb قرص العسل - API 11 - أصدر في 22/2/2011.
- الإصدار 3.1: يسمى Honeycomb قرص العسل - API 12 - أصدر في 10/5/2011.
- الإصدارات 3.2 و 3.2.1 و 3.2.2 و 3.2.3 و 3.2.4 و 3.2.5 و 3.2.6: تسمى Honeycomb قرص العسل - API 13 - أصدرت في 15/7/2011 و 20/9/2011 و 9/2011 و 9/2011 و 12/2011 و 1/2012 و 2/2012.
- الإصدارات 4.0 و 4.0.1 و 4.0.2: تسمى Ice Cream Sandwich ساندويتش الآيس كريم - API 14 - أصدرت في 19/10/2011 و 21/10/2011 و 28/11/2011.
- الإصدارات 4.0.3 و 4.0.4: تسمى Ice Cream Sandwich ساندويتش الآيس كريم - API 15 - أصدرت في 16/12/2011 و 29/3/2012.
- الإصدارات 4.1 و 4.1.1 و 4.1.2: تسمى Jelly Bean جيلي بين - API 16 - أصدرت في 9/7/2012 و 23/7/2012 و 9/10/2012.
- الإصدارت 4.2 و 4.2.1 و 4.2.2: تسمى Jelly Bean جيلي بين - API 17 - أصدرت في 13/10/2012 و 27/10/2012 و 11/2/2013.
- الإصدارات 4.3 و 4.3.1: تسمى Jelly Bean جيلي بين - API 18 - أصدرت في 24/7/2013 و 3/10/2013.
- الإصدارات 4.4 و 4.4.1 و 4.4.2: تسمى KitKat كتكات - API 19 - أصدرت في 31/10/2013 و 5/12/2013 و 9/12/2013.
لاحظ بأنه مع كل إصدار جديد لنظام الأندرويد، يتم إضافة بعض الميزات الجديدة على الإصدار السابق. لذلك لا يمكن استخدام ميزات الإصدار 4.4 مثلاً عند التطوير بمكتبات الإصدار 2.2. لحسن الحظ، قامت قوقل بتطوير مكتبة خارجية (ملف jar.) تسمى Android Support Library وتستخدم لإضافة مميزات جديدة على الأنظمة القديمة. لاحظ أيضاً بأنه عند برمجة تطبيق بمكتبات الإصدار 4.3 مثلاً، فإنه لا يمكن تشغيل التطبيق على إصدار سابق له (الإصدار 4.0 مثلاً)، ولكن يمكن تشغيل التطبيق على الإصدار 4.4 مثلاً.
قم بزيارة صفحة الـ Dashboard باستمرار لمعرفة الإصدارات المستخدمة حالياً وكم نسبة الاستخدام لكل إصدار: http://developer.android.com/about/d...rds/index.html
مع نهاية العام 2013 – إصدارات نظام الأندرويد ونسب الاستخدام