التعرف على كيفية اعداد برنامج Eclipse للعمل على بيئة أندرويد وقمنا بعمل اول برنامج تجريبي لا يوجد به سوى كلمة ترحيبية ، اليوم ومع الدرس الثاني ينقوم بالتعرف على معمارية نظام التشغيل اندرويد سريعاً بدون الخوض في التفاصيل وكذالك التعرف على ركائز البرنامج الأساسية التي يجب الإلمام لها ليعمل برنامجك الخاص بمرونه وعمل برنامج بواجهة تحتوي على مكونات أكثر.
- [rtl]تم بناءه على نواة نظام التشغيل لينكس 2.6[/rtl]
- [rtl]يعمل من خلال Dalvik Virtual Machine في نسخة مخصصة للهواتف[/rtl]
- [rtl]متصفح مبني على Webkit Engine[/rtl]
- [rtl]رسومات ثنائية الأبعاد وثلاثية الأبعاد تعمل من خلال OpenGL[/rtl]
- [rtl]نظام قواعد البيانات يعتمد على SQL Lite[/rtl]
[rtl]
صوره توضيحية لكيفية عمل النظام وطبقاته[/rtl]
[rtl]أنظمة تشغيل أندرويد حتى الآن[/rtl]
- [rtl]اندرويد 1.5 تحت مسمى Cupcake[/rtl]
- [rtl]اندرويد 1.6 تحت مسمى Donut[/rtl]
- [rtl]اندرويد 2.0 و 2.1 تحت مسمى Eclair[/rtl]
- [rtl]اندرويد 2.2 تحت مسمى Froyo[/rtl]
- [rtl]اندرويد 2.3 تحت مسمى Gingerbread (آخر اصدارة للهواتف حتى الآن )[/rtl]
- [rtl]اندرويد 3.0 و 3.1 تحت مسمى Honeycomb (مخصص للأجهزة اللوحية Tablets فقط )[/rtl]
- [rtl]اندرويد 4 تحت مسمى Ice Cream Sandwich ( وسيكون خليط من Gingerbread مع Honeycomb ليعمل على نظام الهواتف والأجهزة اللوحية)[/rtl]
[color][font]
[rtl]
والآن دعونا نتعرف على مكونات أي برنامج على نظام التشغيل اندرويد وأقسامه :[/rtl]
[/font][/color]
- [rtl]الأنشطة ACTIVITIES :[/rtl]
[rtl]وهو من أهم الأجزاء والتي يعتمد عليها المطور بشكل أساسي ، فهي المسئولة عن شاشة العرض ، فعلى سبيل المثال لو لدينا برنامج لشركة وبه أزرار وعند الضغط على كل زر ينقلك من شاشة إلى شاشة أخرى... فكل شاشة في هذه الحالة يطلق عليها Activity ولعمل شاشة أخرى يجب عمل Activity جديدة.[/rtl]
[rtl]معظم التطبيقات تحتوي على أكثر من Activity ، وعند الضغط على زر وتنطلق من شاشة إلى أخرى يتم وقف الشاشة القديمة تلقائياً pause وتقوم الشاشة الجديدة بالبدء start وفي حين لو قمت بعمل رجوع back فترجع الشاشة القديمة اليى الوضع resume مره أخرى.[/rtl]
[rtl]يمكنك التحكم في تصميم الشاشة من خلال كتابة كود بالجافا java برمجياً أو عن طريق اكواد xml ، ويفضل استخدام الـ xml وذالك حتى نفصل التصميم عن الكود البرمجي logic ، نفس الفكرة تماماً لمن له الخبره في الويب ويريد فصل كود الـ PHP مثلاً عن الـ HTML و الـ CSS فيقوم باستخدام Template Engine مثل SMARTY (لا يهم اذا كان هذا المثال غير واضح... دعنا نكمل).[/rtl]
- [rtl]الخدمات SERVICES :[/rtl]
[rtl]الخدمات هي الجزء الذي يعتمد على تشغيل خدمة معينة في الخلفية اثناء عملك على الهاتف او الجهاز ، فهو لا يحتوي على واجهة رسومية ، وكمثال على ذالك تشغيل الموسيقى ، التأكد من اتصال الشبكة . يمكن للخدمة ان تكون مستقلة عن البرنامج او جزء منه بمعنى انه في حالة غلق البرنامج يمكن ان يستمر في العمل او الإغلاق معه.[/rtl]
- [rtl]مزود البيانات CONTENT PROVIDER:[/rtl]
[rtl]لا أعلم ان كانت هذه هي الترجمة الصحيحة لها أم لا... على أية حال هي الجزء المسئول عن امداد التطبيق الخاص بك بالمحتوى الذي يتشارك معه جميع التطبيقات ، وهي ايضاً الطريقة الوحيده التي يمكن استخدام البيانات بين التطبيقات وبعضها ، وهي تعتبر مثل قاعدة بيانات ، ومثال على ذالك هو محتوى دليل الهاتف الخاص بك Contacts أو الرسائل Messages وغيره...[/rtl]
- [rtl]جهة الإستقبال BROADCAST RECIEVER :[/rtl]
[rtl]هناك عدد من الأحداث التي ترسل من الهاتف في حالة حدوث شئ معين على سبيل المثال بعد ترك الهاتف لفترة معينة فإنه يقوم تلقائياً باغلاق الشاشة فهذا يعتبر حدث يرسل من الهاتف اليقوم باغلاق الشاشة ، او مثلا عندما يأتي اتصال فانه يرسل حدث الى جميع التطبيقات ان هناك اتصال قادم وهكذا... ومن حقك ايضاً كمطور لتطبيق ان تقوم بالبدء في عمل الحدث الخاص بك ويمكن ان يكون مجرد تنبيه في قائمة التنبيهات notification bas.[/rtl]
لا اعتاد على ان تكون دروسي بها الكثير من الكلام ولكن النقاط السابقة هامة جداً ، ولا تقلق من عدم فهمك بشكل كبير لأي منها لأن التطبيق عملياً سيكون أفضل بكثير ، قبل انتقال الى الخطوة التالية دعوني اعرض صورة وجدتها اثناء تصفحي لهذا الموقع لتوضيح ما قلته وعلاقة كل شئ بالآخر
[color][font]
[/font][/color]
الآن دعونا ننتقل الى العملي ونكمل ما قد بدأناه في الدرس الأول ولكن لنتعرف سوياً على محتويات المشروع الهامة التي تم انشائه في برنامج Eclipse وظهر هذا النحو:
[color][font]
[/font][/color]
src : وهو المجلد الذي يحتوي على الأكواد التي ستقوم بكتابتها في البرنامج الخاص بك ، أو بمعني آخر كل عملك سيكون من خلال هذا المجلد.
gen : يحتوي على ملفات يقوم الجافا بانشائها تلقائياً والتعديل عليها كالملف المشهور الموجود بداخله R.java والذي يضيف عنوان كودي الى كل مكون تقوم باستخدامه ، هذا الملف لن تستعمله نهائياً في أغلب الأوقات.
Android 2.2 : وهو ما يحتوي على مكتبة الاكواد التي نقوم بالتعامل معها حسب اصدارة اندرويد التي نتعامل معها او نبرمج عليها.
res : وتحتوي على كل المتعلقات من صور وملفات xml لإستخدامها في البرنامج.
AndroidManifest.xml : وهو الملف الرئيسي الذي يقوم بربط مكونات التطبيق ببعض ويحتوي على جميع المعلومات التي تتعلق بالإصداره والتصاريح التي يحتاجها البرنامج للعمل وغيره.
إذن دعونا نبدأ ، لان كثرة الشرح اصابتنا بالملل جميعاً!
لنكمل ما بدأناه في الدرس الأول وقد قمنا بعمل برنامج بسيط واضفنا كود لكتابة رسالة ترحيبية ، وكما سبق وان ذكرت انه لا بفضل استخدام الكود في اضافة مكون مثل النص Text و صور Image وانما يفضل اضافتها من خلال xml ، لنرجع الى الوراء قليلاً... هذا هو الكود الموجود في الملف الموجود داخل مجلد src وهو الملف الرئيسي :
public class HelloWorldActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
شرح سريع لهذا الكود لعلكم تلاحظون ان الـ class المستخدم هو من نوع Activity والذي قمنا بشرحه مسباقاً والذي يفيد انه مسئولة عن شاشة معينة وهي شاشة البدء والـfunction تسمى onCreate وهي تعتبر event اي بمجرد ان يقوم البرنامج بالبدء سيتم تنفيذ الكود بداخله ، اذن هذا الكود مسئول عن انشاء شاشة جديدة بها المحتوى الموجود داخل onCreate ، ننتقل الآن الى ما بداخله وهي
setContentView(R.layout.main);
وهي تخبرني ان محتوى الشاشة سيتم جلبه من الملف R.Layout.main ... ولكن اين يمكنني الحصول على هذا الملف ؟ لو رجعنا قليلاً الى الوراء سنتذكر ان هناك مجلد كان يحتوي على ملفات للصور وملفات xml ... نعم هو مجلد res او resources اذن R ترمز الى res وبعدها layout سنقوم بالدخول على مجلد layout وبعدها main والتي تشير الى main.xml ... هل الأمر واضح ؟ أعتقد إلى الآن بسيط ولا يوجد به مشكلة... قم بالضغط على main وهذا ما سيظهر :
[color][font]
[/font][/color]
ظهرت شاشة بها العديد من المكونات التي يجب ان نستخدمها. فقط قم بتجربة سحب اي من هذه المكونات مثل Radio Button أو Text أو Button او غيره ، وللإنتقال الى كودالـ xml من أسفل يمكنك الذهاب الى تبويب main.xml لترى الكود الخاص بالملف ، وبمجرد وضعك لأي مكون آخر سيتم انشاء الكود تلقائياً... ليكون مثلاً على النحو التالي :
[color][font]
[/font][/color]
ستجد هناك نافذة outline على الجانب الأيسر تحتوي على كل المكونات التي قمت بوضعها ، اذا قمت بالضغط المتتالي على واحد منها ستظهر لك نافذة properties ومن خلالها سيمكن ان نقوم بتغيير خصائص اي مكون من المكونات الي قد استخدمناها بكل سهوبة فعلى سبيل المثال الصورة التالي قمت بتغيير الكلمة الى Welcome to Arabhardware.Net
[color][font]
[/font][/color]
وهناك الكثير من الخصائص الأخرى ادعوك لإستكشافها بنفسك ... واذا وجهتك اي مشكلة يمكن المتابعة من خلال الموضوع في المنتدى وسأقوم بالرد عليك ومساعدتك ، يمكنك الآن ان تقوم بتشغيل البرنامج ورؤية ما قمت بعمله.
[color][font]
[/font][/color]
مبروك برنامجك الآن يعمل بشكل أفضل!