اولا: ما هو الاندرويدهو منصة برمجيات ونظام تشغيل خاص بالهواتف النقالة، مبني اعتماداً على نواة لينكس، وقامت جوجل بتطويره أولاً، ثم الاتحاد المفتوح للهواتف (بالإنجليزية: Open Handset Alliance). يسمح أندرويد للمطورين بكتابة شفراتهم المصدرية باستخدام لغة جافا، حيث بإمكانهم التحكم بالهاتف باستخدام مكتبات برمجية مكتوبة بلغة جافا، قامت جوجل بتطويرها. من الممكن تجميع البرامج المكتوبة بلغة سي البرمجية واللغات الأخرى، وتشغيلها على نظام التشغيل أندرويد، باستخدام طرق أخرى لا تدعمها جوجل رسمياً. تم الكشف عن منصة أندرويد في 5 نوفمبر 2007 عند إنشاء الاتحاد المفتوح للهواتف، وهو تجمع لثمانية وأربعين شركة اتصالات ومصنعي المعدات والبرمجيات التي تلتزم بتطوير المعايير المفتوحة للهواتف النقالة. قامت جوجل بجعل الجزء كبير من منصة وبرامج أندرويد يخضع لرخصة أباتشي.
ثانيا: ابرز مصنعي الاندرويد Google, HTC, Intel, LG, Motorla, Nvidia, Samsung, Sony Ericsson, Toshipa, Vodafone, T-Mobile, وغيرها …
ثالثا: النظام مفتوح المصدرويمكن لاي مطور ان يستخدم كود البرمجة المتاحة مجانا من خلال موقع Welcome to Android | Android Open Source
رابعا:
ما هي هندسة أندرويد؟ Android Architectureسنوصف بالتفصيل كل قسم من أقسام المكونات الرئيسية لنظام تشغيل أندرويد.
تطبيقات Applications:وستتضمن التطبيقات الأساسية للعميل البريد الإلكتروني، والرسائل القصيرة، والتقويم، والخرائط، المتصفح، والاتصالات، وغيرها. جميع التطبيقات مكتوبة بلغة البرمجة جافا.
إطار التطبيق Applications Framework: يمنح المطورين من الوصول الكامل إلى واجهات برمجة إطار API والتطبيقات نفسها المستخدمة من قبل النواه. الهيكل مصمم لتبسيط إعادة استخدام المكونات, أي تطبيق يمكن نشر قدراته لأي تطبيق آخر ثم يمكن الاستفادة من تلك القدرات (تخضع لقواعد سلامة الإطار) هذه الآلية نفسها تسمح لمكونات لتحل محلها من قبل المستخدم.
مكتبات Libraries: أندرويد يتضمن مجموعة من المكتبات “C/C++” المستخدمة من قبل مختلف مكونات نظام التشغيل . هذه القدرات تعرض للمطورين من خلال إطار تطبيق أندرويد. بعض ما يلي : نظام مكتبة “C” (مكتبة التنفيذ القياسية “C” )، مكتبات الإعلام، ومكتبات الرسومات، “3d”, “SQLite”, وغيرهم.
توقيت التشغيل أندرويد Android Runtime: أندرويد يتضمن مجموعة من المكتبات الأساسية التي تمنحه العديد من الميزات الأساسية المتوفرة في المكتبات الموجودة بلغة البرمجة جافا, كل تطبيق أندرويد يدير عملياته بنفسه، مع النموذج الخاص به من آلة Dalvik الظاهرية. تمت كتابة Dalvik بحيث يمكن للجهاز تشغيل عدة آلات ظاهرية بكفاءة.
Dalvik يدير الملفات في شكل Dalvik القابل للتنفيذ (.dex)، والذي هو الأمثل للذاكرة الدنيا، الآلة الظاهرية مبنية على أساس السجلات، وتدير الطبقات المترجمة التي جمعتها جافا التي تم تحويلها من الشكل format.dex بواسطة الأداة المرفقة “dx”.
نواة - لينكس : أندرويد يعتمد على الإصدار 2.6 لنظام لينكس في الخدمات الأساسية له مثل الأمن، وإدارة الذاكرة، وإدارة العملية، ومكدس الشبكة النموذجية للتعريف, النواة أيضا تقوم بدور طبقة تجريد بين الأجهزة وبقية مكدس البرامج.
التسلسل الهرمي البصري لأندرويد : الفئة او الصنف الرئيسي لأندرويد هو النشاط أو Activity كائن من الدرجة android.app.Activity.
النشاط Activity يقوم بعمل أشياء كثيرة ولكن في حد ذاته لا يقدم أي شيء على الشاشة. للحصول على شيء على شاشة عرض من الضروري تصميم واجهة المستخدم “UI” بواسطة مشاهدات Views أو مشاهدة المجموعات Viewgroups, هذه الطبقات تستخدم لخلق التفاعل بين المستخدم والنظام الأساسي لأندرويد.
المشاهدة Views: تعتبر كائن Object من النوع android.view.View, بل هو بنية البيانات التي تحتوي على خصائص طبقة بيانات ومعلومات محددة في مساحة مستطيلة من الشاشة حيث أن مشهد “View” يحتوي على: التخطيط “Layout”، والرسم Drawing، تغيير التركيز Focus change، والتمرير Scrolling, الخ...
النوع View مفيد كنوع بدائي للـحاجيات أو Widgets وهم عبارة عن فئات فرعية تقوم برسم وتنفيذ بعض العناصر على الشاشة، الحاجيات تتصرف تعتمد على نفسها بالتشغيل ولكن بإمكاننا إستعمالها لنبني بسرعة واجهة المستخدم الذي نريدها بحيث أن قائمة الحجيات الذي يمكننا بأن نستخدمها هي Text, EditText, InputMethod, MovementMethod, Button, RadioButton, CheckBox, ScrollView.
النوع Viewgroups : تعتبر كائن Object من النوع android.view.Viewgroups وكما يوحي إسمها يعتبر كائن عرض خاص وظيفتها الإحتواء والسيطرة على “View” و أنواع “Viewgroups” أخرى، بحيث تسمح لنا ببناء هياكل وبناء واجهة معقدة من عدة عناصر على الشاشة يتم تشريحها من قبل كيان واحد.
الطبقة Viewgroups : تعتبر مفيدة كأساس لطبقة التخطيط Layout التي هي أقسام فرعية منفذة و توفر الأنواع الأكثر شيوعا من تخطيطات الشاشة. وتوفر وسيلة لبناء هيكل للحصول على قائمة Views.
شجرة منظمة لواجهة المستخدم : في منصة أندرويد انت تقوم بتحديد النشاط Activity تعرفه على واجهة المستخدم بواسطة عقد شجرة عرض مركبة من View و Viewgourps، كما نرى في الصورة ادناه. الشجرة يمكن أن تكون بسيطة أو معقدة تعتمد عى الحاجة إليها، ويمكن تطويرها باستخدام الحاجيات والتتخطيطات التي يمنحها أندرويد أو نبني الـ Views الخاصة بنا.