1
‫الفهرس‬
.............................................................................................................‫المقدمة‬4
................................................................................................................‫الكاتب‬5
.......................................‫التطبيقات‬ ‫لبرمجة‬ ‫الجافا‬ ‫لغة‬ ‫أو‬ ‫النجليزية‬ ‫اللغة‬ ‫تعلم‬ ‫يجب‬ ‫هل‬6
......................................................................................................‫الندرويد‬ ‫نظام‬7
...........................................................................................‫الندرويد‬ ‫نظام‬ ‫إصدارات‬7
...........................................................................................‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬9
‫إضافات‬ ‫مدير‬SDK‫الندرويد‬..................................................................................10
‫نافذة‬SDK‫الم‬..........................................................................................‫ستقلة‬12
‫المستويات‬API...................................................................................‫النظام‬ ‫في‬13
...................................................‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫للبدء‬ ‫المطلوبة‬ ‫التحميلت‬15
..............................................................‫بها‬ ‫القيام‬ ‫عليك‬ ‫يجب‬ ‫التي‬ ‫الولى‬ ‫الخطوات‬19
............................................................................‫الترحيبية‬ ‫ستوديو‬ ‫الندرويد‬ ‫نافذة‬20
.........................................................................................‫ستوديو‬ ‫الندرويد‬ ‫نافذة‬21
................................................................................ ‫ستوديو‬ ‫الندرويد‬ ‫مع‬ ‫التعامل‬23
............................................................................................‫البرنامج‬ ‫نمط‬ ‫تغيير‬ -23
...............................................................................................‫الذكي‬ ‫المساعد‬ -23
........................................................................‫مفهومة‬ ‫الغير‬ ‫الحرف‬ ‫مشكلة‬ ‫حل‬ -24
............................................................................‫المشروع‬ ‫على‬ ‫التركيز‬ ‫وضعيات‬ -24
.............................................................................‫الدعم‬ ‫لمكاتب‬ ‫تلقائي‬ ‫استيراد‬ -26
.........................................................................................‫البرمجي‬ ‫الكود‬ ‫ترتيب‬ -27
........................................‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫البدأ‬ ‫قبل‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫أمور‬28
..............................................................................‫للندرويد‬ ‫الول‬ ‫مشروعك‬ ‫إنشاء‬29
........................................................................................‫الفتراضية‬ ‫الكواد‬ ‫شرح‬33
.............................................................‫ستوديو‬ ‫للندرويد‬ ‫الكليبس‬ ‫مشاريع‬ ‫استيراد‬35
....................................................................................‫المشروع‬ ‫وملفات‬ ‫مجلدات‬37
‫مجلد‬ ‫شرح‬Values................................................................................‫الفايلوس‬40
‫ملف‬ ‫شرح‬AndroidManifest.xml‫الم‬.........................................................‫ينيفيست‬42
.......................................................................................‫المشروع‬ ‫لموارد‬ ‫الوصول‬43
................................................................................‫للتطبيق‬ ‫العام‬ ‫الستايل‬ ‫تحرير‬44
2
..........................................................................................‫للتطبيق‬ ‫أيقونة‬ ‫إضافة‬46
..........................................................................‫الندرويد‬ ‫جهاز‬ ‫واجهة‬ ‫على‬ ‫التعرف‬49
...................................................................................‫اللياوت‬ ‫واجهة‬ ‫على‬ ‫التعرف‬50
‫إنشاء‬AVD........................................................................‫افتراضي‬ ‫جهاز‬ ‫محاكي‬53
......................................................................... ‫الفتراضي‬ ‫موشن‬ ‫الجيني‬ ‫محاكي‬57
....................................................................‫جوالك‬ ‫على‬ ‫الندرويد‬ ‫مشروعك‬ ‫معاينة‬65
......................................................................................................‫البيانات‬ ‫أنواع‬66
.................................................................................................‫والقيم‬ ‫المتغيرات‬67
.....................................................................................‫اللياوت‬ ‫داخل‬ ‫العناصر‬ ‫أهم‬69
....................................................................................‫العناصر‬ ‫خصائص‬ ‫أهم‬ ‫شرح‬70
......................................................................................‫والرتفاع‬ ‫العرض‬ ‫خاصية‬ -72
..................................................................................................‫التجاه‬ ‫خاصية‬ -74
................................................................................................‫الهامش‬ ‫خاصية‬ -75
.................................................................................................‫الحشو‬ ‫خاصية‬ -76
................................................................................................‫الجاذبية‬ ‫خاصية‬ -77
....................................................................................................‫الوزن‬ ‫خاصية‬ -78
.................................................................................................‫المعرف‬ ‫خاصية‬ -79
‫بال‬ ‫تكرارا‬ ‫وأكثرها‬ ‫البرمجية‬ ‫الكواد‬ ‫أهم‬ ‫على‬ ‫التعرف‬............................................. ‫جافا‬80
......................................................................................‫الكتفتي‬ ‫حياة‬ ‫دورة‬ ‫دوال‬84
: ‫الول‬ ‫المشروع‬1................................................................................ ‫يا‬ ‫مرحبا‬ -87
.....................................................................................‫الندرويد‬ ‫تطبيق‬ ‫تنسيق‬100
..................................................................................................‫الطويل‬ ‫النص‬ -100
.......................................................................‫تشعيبي‬ ‫ارتباط‬ ‫على‬ ‫يحتوي‬ ‫نص‬ -100
.............................................................‫النصي‬ ‫الحقل‬ ‫مل‬ ‫على‬ ‫المستخدم‬ ‫اجبار‬ -100
..............................................................................................‫التوست‬ ‫رسالة‬ -101
......................................................................................‫ملحظة‬ ‫او‬ ‫تنبيه‬ ‫نافذة‬ -102
: ‫الول‬ ‫المشروع‬2...........................................................‫اللغات‬ ‫متعدد‬ .. ‫يا‬ ‫مرحبا‬ -103
.....................................................‫صحيحة‬ ‫بخطوات‬ ‫أندرويد‬ ‫مشاريع‬ ‫بببناء‬ ‫أقوم‬ ‫كيف‬111
‫تطبيق‬ ‫إلى‬ ‫مشروعك‬ ‫تصدير‬Apk.............................................................. ‫أندرويد‬112
...........................................................................................................‫الخاتمة‬116
3
‫المقدمة‬
‫ال‬ ‫أشـرف‬ ‫على‬ ‫والسلم‬ ‫والصـلة‬ ‫الرحيم‬ ‫الرحـمن‬ ‫ال‬ ‫بسم‬‫آله‬ ‫وعلى‬ ‫محمد‬ ‫سيدنا‬ ,,‫والمرسلين‬ ‫نبياء‬
... ‫وبعد‬ .‫وسلم‬ ‫وصحبه‬
‫الندرويـد‬ ‫تطبيقـات‬ ‫برمجـة‬ ‫أسياسـيات‬ ‫علـى‬ ‫يحتـوي‬ ‫والـذي‬ ,‫المتواضـع‬ ‫العمـل‬ ‫هـذا‬ ‫إيـديكم‬ ‫بيـن‬ ‫ضضع‬‫أ‬
‫ـي‬‫ـ‬‫فه‬ ‫ـابقا‬‫ـ‬‫س‬ ‫ـودة‬‫ـ‬‫موج‬ ‫تكن‬ ‫لم‬ ‫الضافات‬ ‫من‬ ‫الكثير‬ ‫فيوجد‬ ,‫المجال‬ ‫في‬ ‫والمتقدمين‬ ‫المبتدئين‬ ‫ويحتاجه‬
‫ـي‬‫ـ‬‫ل‬ ‫ال‬ ‫ـدعو‬‫ـ‬‫ي‬ ‫ـاب‬‫ـ‬‫الكت‬ ‫ـذا‬‫ـ‬‫ه‬ ‫ـرأ‬‫ـ‬‫يق‬ ‫ـدما‬‫ـ‬‫عن‬ ‫شخص‬ ‫كل‬ ‫من‬ ‫إتمنى‬ ‫كما‬ ,‫عليها‬ ‫التعرف‬ ‫الفضل‬ ‫لذلك‬ ‫جديدة‬
‫ـد‬‫ـ‬‫مفي‬ ‫علــم‬ ‫إي‬ ‫بنشر‬ ‫تبخل‬ ‫ل‬ ‫فإذا‬ ,‫قليل‬ ‫إل‬ ‫أوتينا‬ ‫ما‬ ,‫عمل‬ ‫من‬ ‫بلغنا‬ ‫فمهما‬ ,‫والرحمة‬ ‫بالتوفيق‬ ‫ولوالدي‬
,‫ـنا‬‫ـ‬‫لنفس‬ ‫ـوم‬‫ـ‬‫العل‬ ‫ـر‬‫ـ‬‫نحتك‬ ‫ـا‬‫ـ‬‫زلن‬ ‫ومـا‬ ,‫ـا‬‫ـ‬‫أنواعه‬ ‫بشتى‬ ‫العلوم‬ ‫فيه‬ ‫تتسابق‬ ‫زمن‬ ‫في‬ ‫فنحن‬ ,‫للخرين‬ ‫وصالح‬
‫والتي‬ ‫بداخلك‬ ‫العلوم‬ ‫من‬ ‫الكثير‬ ‫تجد‬ ‫سوف‬ ‫الكريم‬ ‫أخي‬ ‫نفسك‬ ‫راجع‬ .. !‫؟‬ ‫راحل‬ ‫إنك‬ ‫يوما‬ ‫تسائلت‬ ‫فهل‬
‫إن‬ ‫ـا‬‫ـ‬‫كم‬ ,‫ال‬ ‫ـد‬‫ـ‬‫بع‬ ‫ـن‬‫ـ‬‫م‬ ‫ـل‬‫ـ‬‫والفض‬ ‫بذلك‬ ‫الجر‬ ‫لك‬ ‫فيكون‬ ‫إستخدامها‬ ‫يحسن‬ ‫لعله‬ ‫للغير‬ ‫بها‬ ‫التبرع‬ ‫تستطيع‬
‫ـن‬‫ـ‬‫ع‬ ‫ـذر‬‫ـ‬‫إعت‬ ‫ـا‬‫ـ‬‫كم‬ ,‫للجميع‬ ‫وسلس‬ ‫وافي‬ ‫شرح‬ ‫ليكون‬ ‫بنفسي‬ ‫اجتهد‬ ‫إن‬ ‫المكان‬ ‫قدر‬ ‫حاولت‬ ‫الكتاب‬ ‫هذا‬
‫تختلف‬ ‫النظر‬ ‫وجهات‬ ‫إن‬ ‫منها‬ ‫لسباب‬ ,‫صغيرة‬ ‫كانت‬ ‫ولو‬ ‫أخطاء‬ ‫هناك‬ ‫يكون‬ ‫إن‬ ‫فلبد‬ ‫إخطاء‬ ‫إي‬ ‫عن‬ ‫وجود‬
‫ـإي‬‫ـ‬‫ب‬ ‫ـرع‬‫ـ‬‫متس‬ ‫أحيانا‬ ‫نفسي‬ ‫وعن‬ ,‫الحجم‬ ‫بهذا‬ ‫أكتبه‬ ‫لي‬ ‫كتاب‬ ‫أول‬ ‫إنه‬ ‫وكما‬ ,‫وأشخاص‬ ‫جوانب‬ ‫عدة‬ ‫من‬
‫ـدا‬‫ـ‬‫غ‬ ‫ـا‬‫ـ‬‫م‬ ‫ـا‬‫ـ‬‫يوم‬ ‫لعل‬ ,‫به‬ ‫أقوم‬ ‫باللذي‬ ‫مؤمن‬ ‫أنا‬ ‫ذلك‬ ‫ومع‬ ,‫لها‬ ‫انتبه‬ ‫ل‬ ‫أخطاء‬ ‫لذلك‬ ,‫بأغلبها‬ ‫أو‬ ‫به‬ ‫أقوم‬ ‫عمل‬
‫هذا‬ ‫إن‬ ‫يرى‬ ‫الكثير‬ ,‫الغرب‬ ‫من‬ ‫منافسيها‬ ‫أمام‬ ‫تذكر‬ ‫التي‬ ‫العمال‬ ‫تلك‬ ‫لديهم‬ ‫أصبح‬ ‫العرب‬ ‫المطورين‬ ‫أرى‬
‫ـه‬‫ـ‬‫إن‬ ‫ـرق‬‫ـ‬‫الف‬ ,‫ل‬ ‫ـد‬‫ـ‬‫بالتأكي‬ ! ‫لدينا‬ ‫يوجد‬ ‫ل‬ ‫و‬ ‫عقول‬ ‫لديهم‬ ‫هل‬ ‫تسائلت‬ ‫لو‬ ‫ولكن‬ ,‫له‬ ‫وصلوا‬ ‫لما‬ ‫نصل‬ ‫إن‬ ‫حلم‬
‫ـا‬‫ـ‬‫قلته‬ ,,‫ـتخدم‬‫ـ‬‫ونس‬ ‫ـجع‬‫ـ‬‫نش‬ ‫ـن‬‫ـ‬‫ونح‬ ‫ـنع‬‫ـ‬‫يص‬ ‫فهو‬ ,‫ومهاراته‬ ‫وقته‬ ‫من‬ ‫بالستفادة‬ ‫يقوم‬ ‫كيف‬ ‫صغره‬ ‫منذ‬ ‫تعلم‬
‫الــتي‬ ‫الدول‬ ‫إن‬ ‫لحظ‬ ‫أحد‬ ‫هل‬ ,‫مثل‬ ‫القدم‬ ‫كرة‬ ‫يتابع‬ ‫منا‬ ‫الكثير‬ ,‫متفرجة‬ ‫عناصر‬ ‫أغلبنا‬ ‫إن‬ ‫أقولها‬ ‫زلت‬ ‫وما‬
‫ـات‬‫ـ‬‫للولي‬ ‫ـيب‬‫ـ‬‫نص‬ ‫ـن‬‫ـ‬‫يك‬ ‫ـم‬‫ـ‬‫ل‬ ‫ـاذا‬‫ـ‬‫لم‬ ‫ـم‬‫ـ‬‫لحظت‬ ‫ـل‬‫ـ‬‫ه‬ ,‫!؟‬ ‫ـرى‬‫ـ‬‫آخ‬ ‫ـالت‬‫ـ‬‫مج‬ ‫بعدة‬ ‫متفوقة‬ ‫تكن‬ ‫القدم‬ ‫بكرة‬ ‫تفوقت‬
‫الصـغيرة‬ ‫بأفكـارك‬ ‫ابـدأ‬ ,‫ـر‬‫ـ‬‫لتفكي‬ ‫يحتـاج‬ ‫الكـون‬ .. ‫؟‬ ‫القـدم‬ ‫بكـرة‬ ‫كبير‬ ‫نصيب‬ ‫المتحدة‬ ‫المملكة‬ ‫او‬ ‫المتحدة‬
‫العمــال‬ ‫من‬ ‫الكتير‬ ‫فيوجد‬ ,‫بدون‬ ‫او‬ ‫بإرداتك‬ ‫تصل‬ ‫سوف‬ ‫تستحق‬ ‫كانت‬ ‫فلو‬ ‫للعالم‬ ‫وانشرها‬ ,‫بها‬ ‫وانطلق‬
‫ـل‬‫ـ‬‫بك‬ ‫ـال‬‫ـ‬‫ب‬ ‫ـتعن‬‫ـ‬‫واس‬ ," ‫ـارغ‬‫ـ‬‫ف‬ " ‫ـان‬‫ـ‬‫إنس‬ ‫ـن‬‫ـ‬‫تك‬ ‫فل‬ ,‫ـحابها‬‫ـ‬‫أص‬ ‫وفاة‬ ‫بعد‬ ‫إل‬ ‫تشتهر‬ ‫لم‬ ‫عالية‬ ‫شهرة‬ ‫لها‬ ‫التي‬
‫فـي‬ ‫والعافيـة‬ ‫الصـحة‬ ‫ودوام‬ ‫التوفيـق‬ ‫ولكـم‬ ‫لـي‬ ‫ال‬ ‫أسـئل‬ ‫و‬ ,‫سـبحانه‬ ‫عليه‬ ‫توكل‬ ‫من‬ ‫خاب‬ ‫فما‬ ‫أمورك‬
.‫والولد‬ ‫والمال‬ ‫الجسد‬
4
‫الكاتب‬
‫عليوي‬ ‫عبدالقادر‬)Abboudi Aliwi(‫إلى‬ ‫أصلها‬ ‫ينحدر‬ ‫عائلة‬ ‫من‬ ,‫دمشق‬ ‫مدينة‬ ‫مواليد‬ ‫من‬
‫للعمل‬ ‫العالمي‬ ‫اليوم‬ ‫في‬ ‫ولدت‬ ,‫الزور-سوريا‬ ‫دير‬ ‫في‬ ‫الميادين‬ ‫مدينة‬1‫آيار‬1996.
‫العمر‬ ‫من‬ ‫وأبلغ‬ ‫الكتاب‬ ‫هذا‬ ‫بكتابة‬ ‫أقوم‬19‫المجالت‬ ‫لجميع‬ ‫عاشق‬ ‫إني‬ ‫إل‬ ‫نفسي‬ ‫عن‬ ‫أقول‬ ‫ل‬ ,‫عاما‬
‫والثقة‬ ‫الذات‬ ‫تطوير‬ ‫وكتب‬ ,‫الحديثة‬ ‫العلوم‬ ‫قراءة‬ ‫وأحب‬ ,‫منها‬ ‫استطعت‬ ‫ما‬ ‫تعلم‬ ‫وأحاول‬ ,‫الحاسوب‬ ‫في‬
‫وال‬ ‫اللغات‬ ‫بتعلم‬ ‫طموح‬ ‫ولدي‬ ,‫المنوعة‬ ‫الدينية‬ ‫والكتب‬ ‫بالنفس‬.‫المختلفة‬ ‫ثقافات‬
: ‫بوك‬ ‫الفيس‬ ‫على‬ ‫معي‬ ‫للتواصل‬https://fb.com/Abboudi.Aliwi
‫مشكلة‬ ‫أو‬ ‫استفسار‬ ‫ولي‬ ,‫ملحظة‬ ‫أو‬ ‫اقتراح‬ ‫ولوجود‬ ‫للضرورة‬ ‫فقط‬ ‫معي‬ ‫التواصل‬ ‫رجاءا‬
: ‫بوك‬ ‫الفيس‬ ‫على‬ ‫قروبنا‬ ‫في‬ ‫إضافتها‬ ‫تستطيع‬
https://fb.com/groups/Programming.Android.apps/
.‫الخرين‬ ‫وأجابات‬ ‫خبرات‬ ‫من‬ ‫وتستفيد‬ ‫تفيد‬ ‫لكي‬
,‫والسداد‬ ‫بالتوفيق‬ ‫ولوالدي‬ ‫لي‬ ‫الدعاء‬ ,,‫ا‬‫إناث‬ ‫أو‬ ,‫ل‬‫رجا‬ ,,‫ا‬‫كبير‬ ‫أو‬ ,‫ا‬‫صغير‬ ,‫شخص‬ ‫كل‬ ‫من‬ ,‫ا‬‫رجاء‬
‫بلقائه‬ ‫والفوز‬ ‫بالنجاة‬ ‫لنا‬ ,‫ا‬‫سبب‬ ‫تكون‬ ‫لعلها‬ ‫ل‬ ‫خالصة‬ ‫بنية‬ ‫الدعاء‬ ,‫والرحمة‬ ‫والمغفرة‬
.‫سبحانه‬
‫ال‬ ‫تم‬‫بتاريخ‬ ‫الكتاب‬ ‫هذا‬ ‫إعداد‬ ‫من‬ ‫نتهاء‬18-11-2015.‫مـ‬
5
‫الج‬ ‫لغة‬ ‫أو‬ ‫النجليزية‬ ‫اللغة‬ ‫تعلم‬ ‫يجب‬ ‫هل‬ #: ‫التطبيقات‬ ‫لبرمجة‬ ‫افا‬
‫كثيرا‬ ‫تكررت‬ ‫هذه‬ ‫السئلة‬‫تطبيقات‬ ‫برمجة‬ ‫أستطيع‬ ‫لكي‬ ,‫ل‬‫أو‬ ‫الجافا‬ ‫لغة‬ ‫تعلم‬ ‫يجب‬ ‫هل‬ -
‫؟‬ ‫الندرويد‬
‫؟‬ ‫والبرمجة‬ ‫الجافا‬ ‫تعلم‬ ‫أستطيع‬ ‫لكي‬ ‫النجليزية‬ ‫اللغة‬ ‫أتعلم‬ ‫إن‬ ‫يجب‬ ‫هل‬ -
,‫الجافا‬ ‫بلغة‬ ‫معرفتك‬ ‫زادت‬ ‫كلما‬ ‫ولكن‬ ,‫البسيطة‬ ‫التطبيقات‬ ‫لنجاز‬ ,‫مهمة‬ ‫ليست‬ ,‫ل‬ ‫يكون‬ ‫سوف‬ ‫الجواب‬
‫جميع‬ ‫في‬ ‫معك‬ ‫تتكرر‬ ‫عامة‬ ‫كلمات‬ ‫فهناك‬ ‫النجليزية‬ ‫اللغة‬ ‫وكذلك‬ ,‫تطبيقاتك‬ ‫في‬ ‫الحترافية‬ ‫زادت‬ ‫كلما‬
‫معك‬ ‫تتكرر‬ ‫سوف‬ ‫معرفتها‬ ‫يجب‬ ‫مصطلحات‬ ‫وهناك‬ ‫بالجافا‬ ‫خاصة‬ ‫مصطلحات‬ ‫وهناك‬ ‫البرمجية‬ ‫اللغات‬
‫الندرويد‬ ‫بيئة‬ ‫في‬ ‫معرفتها‬ ‫تحتاج‬ ‫مصطلحات‬ ‫كذلك‬ ‫وهناك‬ ,‫الصغيرة‬ ‫التطبيقات‬ ‫وبرمجة‬ ‫إنشاء‬ ‫في‬
.‫معها‬ ‫تتعامل‬ ‫كيف‬ ‫تعرف‬ ‫لكي‬ ‫ستوديو‬
‫هي‬ ‫لنها‬ ,‫النجليزية‬ ‫والدورات‬ ‫الشروحات‬ ‫متابعة‬ ‫تستطيع‬ ‫لكي‬ ‫تعلمها‬ ‫لك‬ ‫الفضل‬ ‫النجليزية‬ ‫واللغة‬
‫إن‬ ‫لتستطيع‬ ‫تعلمها‬ ‫عليك‬ ‫يجب‬ ‫العلوم‬ ‫من‬ ‫مجال‬ ‫إي‬ ‫تتقن‬ ‫لكي‬ ‫لذلك‬ ,‫الحديثة‬ ‫للعلوم‬ ‫الم‬ ‫اللغة‬ ‫حاليا‬
‫تحتاج‬ ‫ما‬ ‫أو‬ ‫يخص‬ ‫ما‬ ‫منه‬ ‫تعلم‬ ,‫واسع‬ ‫بحر‬ ‫الجافا‬ ‫لغة‬ ‫و‬ ‫المصدر‬ ‫من‬ ‫إي‬ ,‫ألسنتهم‬ ‫من‬ ‫المعلومات‬ ‫تأخذ‬
‫أكثر‬ ‫لك‬ ‫أصبحت‬ ‫أكثر‬ ‫منها‬ ‫تعلمت‬ ‫ما‬ ‫كل‬ ‫عام‬ ‫بشكل‬ ‫البرمجة‬ ‫لغات‬ ‫وكذلك‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫بناء‬ ‫في‬
.‫برمجيا‬ ‫تفكيرا‬ ‫تملك‬ ‫دمت‬ ‫ما‬ ‫الخرى‬ ‫اللغات‬ ‫مع‬ ‫التعامل‬ ‫سهولة‬
‫المصطلحات‬ ‫من‬ ‫العديد‬ ‫يوجد‬ ‫إنه‬ ‫تذكر‬ ,‫المجال‬ ‫هذا‬ ‫في‬ ‫للبدأ‬ ‫تخضع‬ ‫أن‬ ‫قبل‬ ‫لك‬ ‫الفضل‬ ‫من‬ ‫لذلك‬
‫لها‬ ‫لن‬ ‫تماما‬ ‫معناها‬ ‫لتعرف‬ ‫تستخدمها‬ ‫إن‬ ‫عليك‬ ‫يجب‬ ‫ولكن‬ ‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ‫النجليزية‬
.‫بالنجليزية‬ ‫الحرفي‬ ‫معناها‬ ‫عن‬ ‫برمجيا‬ ‫تختلف‬ ‫أحيانا‬ ‫معاني‬
‫الجافا‬ ‫أساسيات‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫الكتب‬ ‫من‬ ‫بعض‬ ‫بتحميل‬ ‫أنصحك‬ ‫و‬OOP‫تعلمها‬ ‫أساسيات‬ ‫فهي‬ ,
.‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫لعالم‬ ‫الدخول‬ ‫في‬ ‫إنطلق‬ ‫ثم‬ ‫ومن‬ ‫جيدا‬
‫نصيحة‬ #‫ويتم‬ ‫فيها‬ ‫إعلنته‬ ‫ووضع‬ ‫الكواد‬ ‫بشراء‬ ‫يقوم‬ ‫فقط‬ ,‫عربيا‬ ‫البرمجة‬ ‫يدعى‬ ‫ممن‬ ‫الكثير‬ ‫يوجد‬
‫المتجر‬ ‫وللسف‬ ,‫نشرها‬Google Play‫عن‬ ‫ابتعد‬ ‫لذلك‬ ‫المتكررة‬ ‫التطبيقات‬ ‫بهذه‬ ‫سخيف‬ ‫من‬ ‫أكثر‬ ‫أصبح‬
‫فهكذا‬ ,‫رفعها‬ ‫إعادة‬ ‫إما‬ ‫مشكلة‬ ‫ل‬ ‫منها‬ ‫بالكواد‬ ‫أستعن‬ ‫فقط‬ ,‫يذكر‬ ‫وتطوير‬ ‫تعديل‬ ‫دون‬ ‫التطبيقات‬ ‫رفع‬
‫تدرك‬ ‫سوف‬ ‫ما‬ ‫يوما‬ ‫وأعتقد‬ .‫متجره‬ ‫من‬ ‫التحميل‬ ‫أو‬ ‫الندرويد‬ ‫بيئة‬ ‫استخدام‬ ‫من‬ ‫الناس‬ ‫تنفر‬ ‫أنت‬
.‫المتكررة‬ ‫التطبيقات‬ ‫كل‬ ‫بإزالة‬ ‫تقوم‬ ‫وسوف‬ ‫المشكلة‬ ‫هذه‬ ‫الندرويد‬
6
) ‫الندرويد‬ ‫نظام‬Android - operating system(
‫كونه‬ ,‫المختلفة‬ ‫الشركات‬ ‫من‬ ‫وللعديد‬ ,‫الذكية‬ ‫الهواتف‬ ‫على‬ ‫يعمل‬ ‫النظام‬ ‫هذا‬ ‫إن‬ ‫هو‬ ‫معرفته‬ ‫يهمنا‬ ‫ما‬
‫عام‬ ‫وفي‬ ,‫مجاني‬ ‫إنه‬ ‫إلى‬ ‫بالضافة‬ ,‫المصدر‬ ‫مفتوح‬ ‫نظام‬2005‫لشركة‬ ‫للك‬‫م‬ ‫أصبح‬ ‫م‬Google Inc.
‫عام‬ ‫في‬ ‫عليه‬ ‫العمل‬ ‫بدأ‬2003‫عام‬ ‫في‬ ‫التجريبية‬ ‫نسخه‬ ‫إطلق‬ ‫وتم‬ .‫م‬2007‫تجربة‬ ‫أول‬ ‫وحظى‬ ,‫م‬
‫شركة‬ ‫من‬ ‫جهاز‬ ‫على‬HTC.
‫عام‬ ‫أواخر‬ ‫والن‬2015‫الندرويد‬ ‫نظام‬ ‫تستخدم‬ ‫التي‬ ‫الشركات‬ ‫أشهر‬ ,‫م‬
: ‫هي‬ ‫أجهزتها‬ ‫في‬
Google Nexus, HTC, Samsung, LG, Sony, Motorola, Huawei, Lenovo,
.‫معروفة‬ ‫والغير‬ ‫الصينية‬ ‫الشركات‬ ‫من‬ ‫الكثير‬ ‫وغيرها‬
‫النسخة‬ ‫مع‬ ‫بدأ‬ ‫كثيرة‬ ‫إصدارات‬ ‫على‬ ‫يحتوي‬ ‫النظام‬1.5‫كيك‬ ‫كب‬‫الحرف‬ ‫مع‬ ‫اسمها‬ ‫تبدأ‬ ‫وإصداراته‬
‫هو‬ ‫إصدار‬ ‫آخر‬ ‫الن‬ ‫وحتى‬ ,‫النجليزية‬ ‫الهجائية‬6.0‫مارشميلو‬.
) : ‫الندرويد‬ ‫نظام‬ ‫إصدارات‬Android History(
Android 1.0 Alpha
2008/9/23.‫م‬
Android 1.1 Beta
2009/2/9.‫م‬
Android 1.5 Cupcake
2009/4/27‫لوحة‬ + ‫للكاميرا‬ ‫الفيديو‬ ‫تصوير‬ ‫دعم‬ ‫الضافات‬ ‫ومن‬ .‫م‬
‫المتصفح‬ ‫من‬ ‫واللصق‬ ‫النسخ‬ + ‫الشاشة‬ ‫على‬ ‫المفاتيح‬
7
Android 1.6 Donut
2009/9/15.‫م‬‫الس‬ ‫البحث‬ ‫مربع‬ ‫الضافات‬ ‫ومن‬‫تحسين‬ + ‫ريع‬
‫قياس‬ ‫يدعم‬ + ‫المعرض‬ ‫إلى‬ ‫بالضافة‬ ‫لها‬ ‫خيارات‬ ‫و‬ ‫الكاميرا‬
‫اتصال‬ + ‫بلي‬ ‫جوجل‬ ‫متجر‬ + ‫المختلفة‬ ‫الشاشات‬vpn.‫إلخ‬
Android 2.1 Eclair
2009/10/26‫للبريد‬ ‫مختلفة‬ ‫منصات‬ ‫دعم‬ ‫الضافات‬ ‫ومن‬ .‫م‬
+ ‫الكاميرا‬ ‫في‬ ‫الفلش‬ ‫و‬ ‫جوجل‬ ‫مع‬ ‫متعددة‬ ‫وحسابات‬ ‫اللكتروني‬
‫المفضلة‬ + ‫المفاتيح‬ ‫بلوحة‬ ‫المتعدد‬ ‫اللمس‬ + ‫الرسائل‬ ‫داخل‬ ‫البحث‬
‫بالمتصفح‬
Android 2.2 Froyo
2010/5/20‫الفيديو‬ ‫تشغيل‬ ‫بلير‬ ‫الفلش‬ ‫دعم‬ ‫الضافات‬ ‫ومن‬ .‫م‬
‫في‬ ‫الحتياطي‬ ‫للنسخ‬ ‫والبريد‬ ‫التصال‬ ‫جهات‬ ‫دعم‬ + ‫بالمتصفح‬
‫على‬ ‫تغيرات‬ + ‫فاي‬ ‫الواي‬ ‫لمشاركة‬ ‫الوصول‬ ‫نقطة‬ + ‫جوجل‬ ‫خوادم‬
‫بلوتوث‬ ‫الصوتي‬ ‫التصال‬ + ‫المتصفح‬
Android 2.3 Gingerbread
2010/12/6‫خيارات‬ ‫يساعدك‬ ‫مؤشر‬ + ‫الطاقة‬ ‫توفير‬ ‫الضافات‬ ‫ومن‬ .‫م‬
‫نظام‬ + ‫النص‬ ‫ونسخ‬ ‫لتحديد‬NFC‫في‬ ‫التطبيقات‬ ‫عمل‬ ‫توافق‬ +
‫التنزيلت‬ ‫مدير‬ + ‫الفيديو‬ ‫لمكالمات‬ ‫المامية‬ ‫الكاميرا‬ ‫دعم‬ + ‫الخلفية‬
Android 3.0 Honeycomb
2011/2/22‫شاشات‬ ‫مع‬ ‫المصغرة‬ ‫التطبيقات‬ ‫توافق‬ ‫الضافات‬ ‫ومن‬ .‫م‬
‫بين‬ ‫التبديل‬ + ‫ويوتيوب‬ ‫جوجل‬ ‫بريد‬ ‫مثل‬ ‫أساسية‬ ‫تطبيقات‬ + ‫مختلفة‬
‫علمات‬ ‫و‬ ‫الخفي‬ ‫التصفح‬ + ‫المفاتيح‬ ‫لوحة‬ ‫في‬ ‫والرقام‬ ‫الحرف‬
‫التبويب‬
Android 4.0 Ice Cream Sandwich
2011/10/18+ ‫بالمتصفح‬ ‫أكبر‬ ‫وسلسة‬ ‫سرعة‬ ‫الضافات‬ ‫ومن‬ .‫م‬
+ ‫بار‬ ‫بالكشن‬ ‫الخيارات‬ ‫إزرار‬ + ‫حد‬ ‫لتعيين‬ ‫البيانات‬ ‫استخدام‬ ‫نظام‬
‫للتطبيقات‬ ‫مساحة‬ ‫توفير‬ + ‫القفل‬ ‫لفتح‬ ‫الوجه‬ ‫بصمة‬ ‫على‬ ‫التعرف‬
Android 4.1 Jelly Bean
2012/7/9‫التقاطها‬ ‫تم‬ ‫التي‬ ‫الصور‬ ‫مشاهدة‬ + ‫الن‬ ‫جوجل‬ ‫تطبيق‬ .‫م‬
+ ‫أكثر‬ ‫معلومات‬ ‫على‬ ‫تحتوي‬ ‫الشعارات‬ + ‫التمرير‬ ‫خلل‬ ‫من‬ ‫الن‬
+ ‫السئلة‬ ‫على‬ ‫اجابات‬ ‫حتى‬ ‫تشمل‬ ‫جوجل‬ ‫بحث‬ ‫نتائج‬
8
Android 4.4 KitKat
2013/10/31‫تطبيق‬ ‫ترقية‬ + ‫الن‬ ‫جوجل‬ ‫تحسين‬ ‫الضافات‬ ‫ومن‬ .‫م‬
Hangouts‫وشريط‬ ‫الزرار‬ ‫اخفاء‬ ‫اي‬ ‫للتطبيق‬ ‫الشاشة‬ ‫مل‬ ‫وضع‬ +
‫مثل‬ ‫التخزين‬ ‫بتطبيقات‬ ‫اكبر‬ ‫بشكل‬ ‫التحكم‬ + ‫بار‬ ‫والكشن‬ ‫الحالة‬
‫المخزنة‬ ‫الملفات‬ ‫لدارة‬ ‫درايف‬ ‫جوجل‬
Android 5.0 Lollipop
2014/11/12‫الحديث‬ ‫التصميم‬ ‫نظام‬ ‫وأهمها‬ ‫الضافات‬ ‫ومن‬ .‫م‬
‫عمر‬ + ‫عليها‬ ‫الشعارات‬ ‫تظهر‬ ‫جديد‬ ‫قفل‬ ‫شاشة‬ + ‫ديزاين‬ ‫الماتريال‬
‫زائر‬ ‫إضافة‬ + ‫العدادات‬ ‫في‬ ‫بحث‬ + ‫الطاقة‬ ‫توفير‬ ‫مع‬ ‫للبطارية‬ ‫اطول‬
+ ‫الشاشة‬ ‫الوان‬ ‫تغيير‬ + ‫محدودة‬ ‫بأمكانيات‬ ‫جهازك‬ ‫ليتصفح‬ ‫لجهازك‬
‫اسرع‬ ‫وصول‬ + ‫الجهاز‬ ‫اطفاء‬ ‫بعد‬ ‫حتى‬ ‫الخيرة‬ ‫للتطبيقات‬ ‫الوصول‬
‫إلخ‬ ‫والبطارية‬ ‫الذاكرة‬ ‫واستخدام‬ ‫للعدادات‬
Android 6.0 Marshmallow
2015/10/05‫قارئ‬ ‫دعم‬ + ‫للتطبيق‬ ‫الصلحيات‬ ‫حد‬ ‫الضافات‬ ‫ومن‬ .‫م‬
‫لطالة‬ ‫جديدة‬ ‫تقنية‬ + ‫معه‬ ‫التعامل‬ ‫للمبرمجين‬ ‫متاح‬ ‫ليصبح‬ ‫البصمة‬
‫اداء‬ ‫مراقبة‬ + ‫تلقائي‬ ‫احتياطي‬ ‫نسخ‬ + ‫الطاقة‬ ‫وحفظ‬ ‫البطارية‬ ‫عمر‬
‫للذاكرة‬ ‫واستهلكها‬ ‫التطبيقات‬
‫سوف‬ ‫والذي‬ .. ‫القادم‬ ‫الصدار‬ ‫بنتظار‬‫يكون‬‫الـ‬ ‫بحرف‬ ‫ويبدأ‬ ‫لحلوى‬ ‫اسم‬ ‫كذلك‬ ‫بالتأكيد‬N.
) : ‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬Android Studio(
‫برنامج‬ ‫نستخدم‬ ‫كنا‬ ‫سابقا‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫لبرمجة‬ ‫نستخدمه‬ ‫سوف‬ ‫الذي‬ ‫البرنامج‬ ‫هو‬‫الكليبس‬
Eclipse‫الدوات‬ ‫تطوير‬ ‫إيقاف‬ ‫إعلن‬ ‫تم‬ ‫إنه‬ ‫العلم‬ ‫مع‬ ,‫يستخدمه‬ ‫البعض‬ ‫الن‬ ‫إلى‬ ‫زال‬ ‫وما‬ADT
‫في‬ ‫للكليبس‬ ‫اندرويد‬ ‫بنظام‬ ‫الخاصة‬‫عام‬ ‫نهاية‬2015‫م‬.
‫لكي‬ ‫وذلك‬‫الشركة‬ ‫تعطي‬‫وال‬ ‫الوقت‬ ‫المكان‬ ‫قدر‬‫والتفكير‬ ‫جهد‬‫جعل‬ ‫على‬
‫الكليبس‬ ‫بينما‬ ,‫فقط‬ ‫المجال‬ ‫لهذا‬ ‫واحترافية‬ ‫تقدم‬ ‫أكثر‬ ‫ستوديو‬ ‫الندرويد‬
.‫آخرى‬ ‫برمجية‬ ‫وأعمال‬ ‫لغات‬ ‫في‬ ‫أستخدامه‬ ‫تستطيع‬
‫في‬ ‫إطلقه‬ ‫تم‬Google I/0‫لعام‬2013‫التحديثات‬ ‫من‬ ‫العديد‬ ‫يتلقى‬ ‫زال‬ ‫ما‬ ‫الن‬ ‫إلى‬ ‫إنه‬ ‫كما‬ .‫م‬
.‫والتطويرات‬
‫هو‬ ‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫إصدار‬ ,‫الكتاب‬ ‫هذا‬ ‫في‬ ‫المستخدم‬ ‫الشرح‬ ‫حسب‬Android Studio 1.4
9
) ‫الندرويد‬ ‫إضافات‬ ‫مدير‬SDK Manager(
‫لـ‬ ‫اختصارا‬Software Development Kit,‫للمطورين‬ ‫أندرويد‬ ‫توفرها‬ ‫التي‬ ‫والضافات‬ ‫والحزم‬ ‫الدوات‬ ‫هي‬
‫برمجة‬ ‫أجل‬ ‫من‬ ‫تحديثات‬ ‫بعمل‬ ‫تقوم‬ ,‫الندرويد‬ ‫لنظام‬ ‫جديد‬ ‫إصدار‬ ‫هناك‬ ‫حال‬ ‫في‬ ‫منها‬ ‫وتستفيد‬
‫أجعلها‬ ‫دائما‬ .‫ستوديو‬ ‫الندرويد‬ ‫مع‬ ‫تلقائيا‬ ‫ربطها‬ ‫ويتم‬ ‫مهمة‬ ‫فهي‬ ‫الصدارات‬ ‫آخر‬ ‫يدعم‬ ‫لكي‬ ‫التطبيق‬
.‫جديد‬ ‫تحديث‬ ‫إي‬ ‫لوجود‬ ‫لتنبيهك‬ ‫ستوديو‬ ‫الندرويد‬ ‫داخل‬ ‫بإعداد‬ ‫تقوم‬ ‫إن‬ ‫يمكنك‬ ‫كما‬ ‫إصدار‬ ‫لخر‬ ‫محدثة‬
‫الـ‬ ‫نافذة‬ ‫لفتح‬SDK:
‫أختر‬ ‫الترحيب‬ ‫شاشة‬ ‫ومن‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫بتشغيل‬ ‫قم‬Configure‫ثم‬Settings‫يتم‬ ‫سوف‬
‫أختر‬ ‫اليسرى‬ ‫الجهة‬ ‫من‬ ,‫البرنامج‬ ‫بإعدادات‬ ‫جديدة‬ ‫نافذة‬ ‫فتح‬
Appearance & Behavior > System Settings > Android SDK
‫اليقونة‬ ‫على‬ ‫إضغط‬ ,‫العلوي‬ ‫القائمة‬ ‫شريط‬ ‫من‬ ,‫المشاريع‬ ‫أحد‬ ‫على‬ ‫تعمل‬ ‫كنت‬ ‫إذا‬ ‫فتحها‬ ‫تستطيع‬ ‫أو‬
‫بـ‬ ‫الخاصة‬SDK
‫العلوي‬ ‫الشريط‬ ‫من‬ ‫أو‬
Tools > Android > SDK Manager
10
‫تنزيل‬ ‫في‬ ‫مشكلة‬ ‫لديهم‬ ‫الخوة‬ ‫من‬ ‫البعض‬ ‫لدى‬ ‫يوجد‬SDK‫إستخدام‬ ‫أو‬ ,‫البرنامج‬ ‫عن‬ ‫منفصلة‬SDK
‫الـ‬ ‫مسار‬ ‫من‬ ‫دائما‬ ‫تأكد‬ ‫لذلك‬ ,‫إستخدامها‬ ‫يريدوا‬ ‫الجهاز‬ ‫في‬ ‫سابقة‬SDK‫السابقة‬ ‫الصورة‬ ‫في‬‫رقم‬1.
‫رقم‬ ‫نقطة‬ ‫السابقة‬ ‫الصورة‬ ‫حسب‬2:
‫يعمل‬ ‫جهاز‬ ‫إي‬ ‫مع‬ ‫جهازك‬ ‫ليتوافق‬ ‫إصدار‬ ‫أعلى‬ ‫أخترت‬ ‫إنك‬ ‫من‬ ‫تأكد‬ ‫دائما‬
‫إصدار‬ ‫على‬ ‫يحتوي‬ ‫إن‬ ‫الضروري‬ ‫ومن‬ ‫إنه‬ ‫إلى‬ ‫بالضافة‬ ,‫اندرويد‬ ‫نظام‬ ‫على‬
‫ال‬ ‫على‬ ‫واحد‬.‫المشاريع‬ ‫إنشاء‬ ‫في‬ ‫البدء‬ ‫لتستطيع‬ ‫قل‬
SDK Platforms
‫ال‬ ‫ليدعمها‬ ‫إضافات‬‫يتم‬ ‫سوف‬ ,‫مشاريعك‬ ‫في‬ ‫واستخدامها‬ ‫ستوديو‬ ‫ندرويد‬
‫محدثة‬ ‫إي‬ ‫الخير‬ ‫الصدار‬ ‫لديك‬ ‫إن‬ ‫تأكد‬ ,‫قادمة‬ ‫نقاط‬ ‫في‬ ‫منها‬ ‫المهم‬ ‫شرح‬
.‫دائما‬
SDK Tools
‫الخ‬ ‫بعض‬ ‫يوجد‬‫رابط‬ ‫تعطيك‬ ‫والتي‬ ‫الشركات‬ ‫او‬ ‫المواقع‬ ‫تقدمها‬ ‫التي‬ ‫دمات‬
‫بها‬ ‫الخاصة‬ ‫المنصات‬ ‫على‬ ‫يحتوي‬SDK‫وسوف‬ ,‫هنا‬ ‫الرابط‬ ‫إضافة‬ ‫تستطيع‬
.‫يحتوي‬ ‫كان‬ ‫إذا‬ ‫الخرى‬ ‫القسام‬ ‫في‬ ‫إضافته‬ ‫تظهر‬
SDK Update Sites
‫رقم‬ ‫للنقطة‬ ‫بالنسبة‬3:
‫داخله‬ ‫التي‬ ‫الحزم‬ ‫بكامل‬ ‫الصدار‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ‫عليها‬ ‫الضغط‬ ‫بعد‬ ‫مثل‬ ,‫أكثر‬ ‫تفاصيل‬ ‫لك‬ ‫لتظهر‬ ‫فهي‬
.‫إصدار‬ ‫كل‬ ‫من‬ ‫تحميله‬ ‫يجب‬ ‫ما‬ ‫أهم‬ ‫قادمة‬ ‫نقاط‬ ‫في‬ ‫أشرح‬ ‫وسوف‬
‫للنقطة‬ ‫بالنسبة‬ ‫وأما‬4:
‫الـ‬ ‫نافذة‬ ‫لفتح‬ ‫فهي‬SDK‫الس‬ ‫الصدارات‬ ‫في‬ ‫عليها‬ ‫تعودنا‬ ‫التي‬ ‫النافذة‬ ‫وهي‬ ,‫مستقل‬ ‫بشكل‬‫و‬ ‫ابقة‬
‫بشكل‬ ‫فتحها‬ ‫إلغاء‬ ‫يتم‬ ‫كبير‬ ‫احتمال‬ ‫ولكن‬ ‫ستوديو‬ ‫وإندرويد‬ ,‫إكليبس‬ ‫في‬ ‫موجودة‬ ‫الن‬ ‫إلى‬ ‫زالت‬ ‫ما‬
.‫السابقة‬ ‫بالصورة‬ ‫لنا‬ ‫ظهرت‬ ‫كما‬ ‫سهولة‬ ‫أكثر‬ ‫أصبحت‬ ‫لنها‬ ,‫مستقل‬
‫نافذة‬ ‫عن‬ ‫سريعة‬ ‫لمحة‬ ‫إعطاء‬ ‫يتم‬ ‫سوف‬SDK‫لمراجعة‬ ,‫منها‬ ‫تحميله‬ ‫يجب‬ ‫ما‬ ‫أهم‬ ‫وما‬ ‫المستقلة‬
: ‫المر‬ ‫هذا‬ ‫في‬ ‫سابقة‬http://andrody.com/?p=70
11
) ‫نافذة‬Standalone SDK Manager(
‫الس‬ ‫الصورة‬ ‫في‬ ‫تحميله‬ ‫تم‬ ‫قد‬ ‫ما‬‫للـ‬ ‫كان‬ ‫سواء‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬ ,‫ابقة‬SDK,‫المستقلة‬ ‫او‬ ‫الحديثة‬
‫أحدث‬ ‫دائما‬ ‫تكون‬ ‫أن‬ ‫على‬ ‫أحرص‬ ‫ولكن‬ ,‫بنا‬ ‫الخاصة‬ ‫المشاريع‬ ‫ببرمجة‬ ‫البدء‬ ‫أجل‬ ‫من‬ ‫يهمنا‬ ‫الذي‬ ‫وهو‬
.‫منها‬ ‫لديك‬ ‫الصدارات‬
Android SDK Tools//‫ال‬ ‫بعض‬ ‫تطوير‬ ‫أو‬ ‫تحديث‬ ‫أو‬ ‫بإصلح‬ ‫تأتي‬ ‫فهي‬ ,‫فترة‬ ‫كل‬ ‫تحديثها‬ ‫يتم‬‫مور‬
‫تبقى‬ ‫يفضل‬ ‫لذلك‬ .‫إلخ‬ ‫الفتراضي‬ ‫المحاكي‬ ‫في‬ ‫مشكلة‬ ,‫معين‬ ‫استايل‬ ‫في‬ ‫مشكلة‬ ‫مثل‬ ,‫بالبرنامج‬
.‫دائما‬ ‫إصدار‬ ‫أعلى‬ ‫تستخدم‬ ‫إنك‬ ‫متأكد‬
Platform, Build-tools//‫إن‬ ‫تأكد‬Rev‫الـ‬ ‫مع‬ ‫يتوافق‬ .API‫بدون‬ ‫العمل‬ ‫تستطيع‬ ‫لكي‬ ‫لديك‬ ‫الخير‬
‫مشاكل,تحديدا‬Build-tools.‫الول‬ ‫بمشروعنا‬ ‫البرمجة‬ ‫نبدأ‬ ‫عندما‬ ‫إليها‬ ‫أشير‬ ‫سوف‬
SDK Platforms//‫إصدار‬ ‫أحدث‬ ‫ويفضل‬ ‫منها‬ ‫واحدة‬ ‫القل‬ ‫على‬ ‫يحتوي‬ ‫إن‬ ‫يجب‬ ‫سابقا‬ ‫ذكرت‬ ‫كما‬
.‫الجهزة‬ ‫أحدث‬ ‫على‬ ‫تطبيقك‬ ‫يعمل‬ ‫لكي‬
‫تجد‬ ‫سوف‬ ‫حزمة‬ ‫كل‬ ‫داخل‬System Image‫افتراضي‬ ‫جهاز‬ ‫وتركيب‬ ‫إعداد‬ ‫أردت‬ ‫حال‬ ‫في‬ ‫اختيارية‬ ‫وهي‬
.( ‫قادمة‬ ‫نقاط‬ ‫في‬ ‫المحاكي‬ ‫عن‬ ‫نتكلم‬ ‫سوف‬ ) .‫نشرها‬ ‫قبل‬ ‫عليه‬ ‫تطبيقاتك‬ ‫بتجربة‬ ‫تقوم‬ ‫محاكي‬
12
Android Support Library//‫الـ‬ ‫منها‬ ‫كثيرة‬ ‫إضافات‬ ‫لدعم‬ ‫مهمة‬fragments‫حال‬ ‫في‬ ‫تحتاجها‬ ‫كذلك‬
.‫وبكفاءة‬ ‫سابقة‬ ‫إصدار‬ ‫على‬ ‫عليها‬ ‫تعمل‬ ‫التي‬ ‫اللياوت‬ ‫معاينة‬ ‫أردت‬
Android Support Repository//‫غنى‬ ‫ل‬ ‫والتي‬ ‫الدعم‬ ‫مكاتب‬ ‫من‬ ‫العديد‬ ‫على‬ ‫تحتوي‬ ‫لنها‬ ‫مطلوبة‬
.‫مشروع‬ ‫إي‬ ‫برمجة‬ ‫في‬ ‫عنها‬
Google Play services//‫جوجل‬ ‫وسحابة‬ ‫جوجل‬ ‫اعلنات‬ ‫مثل‬ ,‫أمثلتها‬ ‫مع‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬ ‫لدعم‬
.‫وغيرها‬ ‫جوجل‬ ‫واحصائيات‬
Google Repository//.‫بجوجل‬ ‫الخاصة‬ ‫الدعم‬ ‫مكاتب‬ ‫على‬ ‫يحتوي‬
) ‫النظام‬ ‫في‬ ‫المستويات‬API Level(
‫ال‬ ‫نظام‬ ‫في‬ ‫البرمجة‬ ‫أي‬ ,‫إصدار‬ ‫لكل‬ ‫المستوى‬ ‫هو‬ ‫معرفته‬ ‫يهم‬ ‫ما‬‫ندرويد‬‫الـ‬ ‫مثل‬ ,‫مستويات‬ ‫على‬API
‫هو‬ ‫مارشميلو‬ ‫الخير‬ ‫للصدار‬23‫والـ‬ .API‫هو‬ ‫كات‬ ‫الكت‬ ‫لصدار‬19‫أقل‬ ‫تحدد‬ ‫إنت‬ ‫البرمجة‬ ‫أثناء‬ ‫إذا‬ .
‫في‬ ‫لديك‬ ‫إصدار‬ ‫آخر‬ ‫هو‬ ‫إصدار‬ ‫أعلى‬ ‫جدا‬ ‫الطبيعي‬ ‫ومن‬ ‫إصدار‬ ‫أعلى‬ + ‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫إصدار‬
‫الـ‬ ‫حزمة‬SDK‫وكلما‬ .‫الندرويد‬ ‫لنظام‬ ‫الحديثة‬ ‫الصدارات‬ ‫على‬ ‫يعمل‬ ‫سوف‬ ‫تطبيقك‬ ‫إن‬ ‫تضمن‬ ‫لكي‬ .
‫الـ‬ ‫أقل‬ ‫أصبح‬API‫ولكن‬ . ‫الصدارات‬ ‫جميع‬ ‫على‬ ‫يعمل‬ ‫لكي‬ ‫تطبيقك‬ ‫يأخذها‬ ‫التي‬ ‫الملفات‬ ‫عدد‬ ‫زادت‬
‫او‬ ‫ليفل‬ ‫تختار‬ ‫إن‬ ‫لك‬ ‫فالفضل‬ ,‫الحديثة‬ ‫الصدارات‬ ‫إل‬ ‫تقبل‬ ‫ل‬ ‫التي‬ ‫المميزات‬ ‫بعض‬ ‫تمنع‬ ‫سوف‬ ‫هكذا‬
‫ال‬ ‫للجوالت‬ ‫موافق‬ ‫مستوى‬‫جميع‬ ‫تستخدم‬ ‫بالغالب‬ ‫الضخمة‬ ‫التطبيقات‬ ‫بينما‬ .‫حاليا‬ ‫انتشار‬ ‫كثر‬
‫وكذا‬ ‫كذا‬ ‫ليفل‬ ‫على‬ ‫يعمل‬ ‫الجوال‬ ‫كان‬ ‫إذا‬ ‫البرمجة‬ ‫أثناء‬ ‫شرط‬ ‫تضع‬ ‫المميزات‬ ‫لتفعيل‬ ‫ولكن‬ ‫المستويات‬
‫فقط‬ ‫المعلومة‬ ‫هذه‬ ‫بقراءة‬ ‫تقلق‬ ‫ل‬ .‫الجهزة‬ ‫لجميع‬ ‫متوافق‬ ‫تطبيقهم‬ ‫يكون‬ ‫أن‬ ‫أجل‬ ‫من‬ .. ‫وهكذا‬ .. ‫إذا‬
‫المقصود‬ ‫ما‬ ‫نبين‬ ‫سوف‬ ‫الكتاب‬ ‫هذا‬ ‫وفي‬ ‫أدق‬ ‫بشكل‬ ‫عليها‬ ‫تتعرف‬ ‫سوف‬ ‫البرمجة‬ ‫أثناء‬ .. ‫للمعرفة‬
.‫تطبيق‬ ‫أول‬ ‫إنشائنا‬ ‫خلل‬ ‫من‬ ‫هذا‬ ‫بقولنا‬
‫أندرويد‬ ‫نظام‬ .‫اندرويد‬ ‫إصدار‬ – ‫الجهاز‬ ‫حول‬ – ‫الضبط‬ ‫فتح‬ ‫بعد‬ ,‫اندرويد‬ ‫جهاز‬ ‫إي‬ ‫إستخدامك‬ ‫عند‬ ‫شك‬ ‫فل‬
.‫مختلفة‬ ‫اصدارات‬ ‫عدة‬ ‫على‬ ‫يحتوي‬ ‫فهو‬ ‫ذكرت‬ ‫كما‬
‫الموجود‬ ‫حسب‬ ‫أصدار‬ ‫وأعلى‬ ,‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫إصدار‬ ‫أقل‬ ‫تعطيه‬ ‫سوف‬ ,‫مشروعك‬ ‫برمجة‬ ‫أثناء‬
‫بـ‬ ‫لديك‬SDK.
13
‫مثل‬ ‫نظامه‬ ‫الندرويد‬ ‫جهازك‬ ‫لو‬Android 3.0‫ويحمل‬ ‫هونيكومب‬ ‫العسل‬ ‫قرص‬ ‫إصدار‬ ‫إنه‬ ‫يعني‬ ‫هذا‬API
Level = 11.
‫ليفل‬ ‫أقل‬ ‫حديث‬ ‫تطبيق‬ ‫ببرمجة‬ ‫قمت‬ ‫وأنت‬16‫ليفل‬ ‫وأعلى‬23‫على‬ ‫يعمل‬ ‫لن‬ ‫التطبيق‬ ‫هذا‬ ‫إذا‬ .
: ‫لها‬ ‫والمستويات‬ ‫الصدارات‬ ‫على‬ ‫للتعرف‬ ‫الجدول‬ ‫هذا‬ ‫لك‬ ‫مهم‬ ‫لذلك‬ .‫جهازك‬
‫المستوى‬‫الصدار‬
1Android 1.0
2Android 1.1
3Android 1.5 Cupcake
4Android 1.6 Donut
5Android 2.0 Eclair
6Android 2.0.1 Eclair
7Android 2.1 Eclair
8Android 2.2–2.2.3 Froyo
9Android 2.3–2.3.2 Gingerbread
10Android 2.3.3–2.3.7 Gingerbread
11Android 3.0 Honeycomb
12Android 3.1 Honeycomb
13Android 3.2 Honeycomb
14Android 4.0–4.0.2 Ice Cream Sandwich
15Android 4.0.3–4.0.4 Ice Cream Sandwich
16Android 4.1 Jelly Bean
17Android 4.2 Jelly Bean
18Android 4.3 Jelly Bean
19Android 4.4 KitKat
20Android 4.4 KitKat with wearable extensions
21Android 5.0–5.0.2 Lollipop
22Android 5.1–5.1.1 Lollipop
23Android 6.0 Marshmallow
14
‫ال‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫للبدء‬ ‫المطلوبة‬ ‫التحميلت‬‫ندرويد‬
‫برنامج‬ ‫إلى‬ ‫بالضافة‬ ‫لجهازك‬ ‫الجافا‬ ‫منصة‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫تبدأ‬ ‫لكي‬ ‫تحميله‬ ‫يتطلب‬ ‫ما‬
‫الـ‬ ‫حزمة‬ ‫معه‬ ‫يأتي‬ ‫والذي‬ ‫ستوديو‬ ‫الندرويد‬SDK.
: ‫بكفاءة‬ ‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫تشغيل‬ ‫ليتم‬ ‫جهازك‬ ‫يتطلبه‬ ‫ما‬ #
// ‫الويندوز‬ ‫نظام‬ ‫لجهزة‬
‫للنواتين‬ ‫أحدث‬ ‫أو‬ ‫فيستا‬ ‫ويندوز‬ ‫مايكروسوفت‬ ‫نظام‬ -64‫و‬32‫بت‬
‫أدنى‬ ‫كحد‬ ‫الرام‬ -2‫ويفضل‬4‫فوق‬ ‫ما‬
-400‫ديسك‬ ‫الهارد‬ ‫مساحة‬ ‫من‬ ‫فارغ‬ ‫فوق‬ ‫فما‬ ‫ميغا‬
‫يتجاوز‬ ‫ما‬ -1‫الـ‬ ‫حزمة‬ ‫أجل‬ ‫من‬ ‫جيجا‬SDK
‫الشاشة‬ ‫دقة‬ ‫أدنى‬ ‫كحد‬ -800×1280
‫الجافا‬ ‫تطوير‬ ‫أدوات‬ -JDK 7‫فوق‬ ‫فما‬
// ‫إس‬ ‫أو‬ ‫ماك‬ ‫نظام‬ ‫لجهزة‬
‫إس‬ ‫أو‬ ‫ماك‬ -10.8.5‫أعلى‬ ‫أو‬
‫أدنى‬ ‫كحد‬ ‫الرام‬ -2‫ويفضل‬ ‫جيجا‬4
‫كذلك‬ -1‫الـ‬ ‫حزمة‬ ‫أجل‬ ‫من‬ ‫مساحة‬ ‫جيجا‬SDK
‫أدنى‬ ‫كحد‬ ‫الشاشة‬ ‫دقة‬ -800×1280
‫جافا‬ ‫بيئة‬ -JRE 6‫فوق‬ ‫فما‬
‫الجافا‬ ‫تطوير‬ ‫أدوات‬ -JDK 7‫فوق‬ ‫فما‬
// ‫اللينكس‬ ‫نظام‬ ‫لجهزة‬
‫كدي‬ ‫أو‬ ‫جينومي‬ ‫ليكنس‬ -
‫مكتبة‬ -GNU C 2.15‫أعلى‬ ‫أو‬
‫رام‬ -2‫ويفضل‬ ‫جيجا‬4
-400‫القرص‬ ‫من‬ ‫فارغة‬ ‫مساحة‬
‫كذلك‬ -1‫الـ‬ ‫حزمة‬ ‫أجل‬ ‫من‬ ‫مساحة‬ ‫جيجا‬SDK
‫أدنى‬ ‫كحد‬ ‫كذلك‬ ‫الشاشة‬ ‫دقة‬ -800×1280
‫الجافا‬ ‫تطوير‬ ‫أدوات‬ ‫أوراكل‬ -JDK 7.‫فوق‬ ‫فما‬
15
‫البحث‬ ‫محرك‬ ‫افتح‬ ,‫ستوديو‬ ‫الندرويد‬ ‫لتحميل‬Google: ‫البحث‬ ‫شريط‬ ‫في‬ ‫واكتب‬Android SDK
: ‫التالي‬ ‫الرابط‬ ‫اتبع‬ ‫أو‬http://developer.android.com/sdk/
‫زر‬ ‫على‬ ‫إضغط‬ ‫الرابط‬ ‫فتح‬ ‫بعد‬ -DOWNLOAD ANDROID STUDIO
-1‫والحكم‬ ‫الشروط‬ ‫على‬ ‫للموافقة‬ ( ‫بوكس‬ ‫التشيك‬ ) ‫على‬ ‫أضغط‬ ‫ثم‬2‫زر‬ ‫لديك‬ ‫يصبح‬ ‫سوف‬ ‫بعدها‬
) ‫التنزيل‬ ‫لبدء‬ ‫عليه‬ ‫اضغط‬ ‫الزرق‬ ‫باللون‬ ‫التحميل‬DOWNLOAD ANDROID STUDIO(
.. ‫النتهاء‬ ‫حتى‬ ‫ننتظره‬ ,‫بالتنزيل‬ ‫يبدء‬ ‫سوف‬ ‫الن‬
‫النسخة‬ ‫تحميل‬ ‫تستطيع‬ ,‫جوجل‬ ‫مطوري‬ ‫موقع‬ ‫عنها‬ ‫المحجوب‬ ‫للدول‬ ++1.4:
‫الول‬ ‫الجزء‬572/ ‫ميغابايت‬http://goo.gl/2cXkFa
‫الثاني‬ ‫الجزء‬551/ ‫ميغابايت‬http://goo.gl/bP8Koc
: ‫الضغط‬ ‫فك‬ ‫سر‬ ‫كلمة‬andrody.com
16
) ‫لجهازنا‬ ‫الجافا‬ ‫مطوري‬ ‫أدوات‬ ‫تحميل‬ ‫علينا‬ ‫يجب‬ ‫الن‬JDK: ‫التالي‬ ‫الرابط‬ ‫نتبع‬ (http://goo.gl/Lp9A6i
‫بجانب‬ ‫التنزيل‬ ‫زر‬ ‫على‬ ‫نضغط‬ -JDK
‫الترخيص‬ ‫اتفاقية‬ ‫قبول‬ ‫على‬ ‫الضغط‬ ‫ثم‬ -
17
‫جهازنا‬ ‫نظام‬ ‫توافق‬ ‫التي‬ ‫النسخة‬ ‫بجانب‬ ‫التنزيل‬ ‫رابط‬ ‫على‬ ‫نضغط‬ ‫ثم‬ -
: ‫هنا‬ ‫من‬ ‫خارجية‬ ‫بروابط‬ ‫تحميلها‬ ‫تستطيع‬ ‫للموقع‬ ‫حظر‬ ‫أو‬ ‫صعوبة‬ ‫يواجه‬ ‫ولمن‬ ,‫بالتنزيل‬ ‫يبدأ‬ ‫سوف‬
‫ويندوز‬ ‫نظام‬ ‫لجهزة‬ -64/ ‫بت‬http://goo.gl/iNmqaG
‫ويندوز‬ ‫نظام‬ ‫لجهزة‬ -32/ ‫بت‬http://goo.gl/Znr1xm
: ‫الن‬ ‫لدينا‬ ‫النهائي‬ ‫والناتج‬ . . ‫المطلوبة‬ ‫التنزيلت‬ ‫من‬ ‫أنتهينا‬ ‫نكون‬ ‫هكذا‬
‫بتحميل‬ ‫أول‬ ‫وقم‬ .‫النتهاء‬ ‫حتى‬ .. ‫التالي‬ ‫زر‬ ‫على‬ ‫والضغط‬ ‫فتحها‬ ‫فقط‬ ,‫سهولة‬ ‫بكل‬ ‫بتثبيتها‬ ‫قم‬ ‫والن‬
‫الجافا‬ ‫مطوري‬ ‫أدوات‬JDK‫ثم‬ ‫من‬‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬.
18
‫بها‬ ‫القيام‬ ‫عليك‬ ‫يجب‬ ‫التي‬ ‫الولى‬ ‫الخطوات‬
,‫بالتالي‬ ‫قم‬ ,‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫تشغيل‬ ‫وقبل‬ ‫البداية‬ ‫في‬‫للجافا‬ ‫جهازك‬ ‫وصول‬ ‫تعيين‬,
‫أندرويد‬ ‫تشغيل‬ ‫يتم‬ ‫لم‬ ‫حال‬ ‫في‬ ‫مشكلة‬ ‫يواجه‬ ‫لمن‬ ‫فقط‬ ‫ضرورية‬ ‫غير‬ ) ‫الويندوز‬ ‫لنظام‬ ‫التالية‬ ‫بالخطوات‬
( ‫ستوديو‬
‫اختر‬ ‫اليسار‬ ‫على‬ ‫التي‬ ‫النافذة‬ ‫من‬ ‫ثم‬ ,‫خصائص‬ ‫واختر‬ ‫الكمبيوتر‬ ‫جهاز‬ ‫على‬ ‫اليمن‬ ‫بالزر‬ ‫اضغط‬ –
Advanced system setting.
‫اسمه‬ ‫العلى‬ ‫في‬ ‫خيار‬ ‫ضمنها‬ ‫من‬ ,‫صغيرة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ –Advanced‫اسمه‬ ‫يوجد‬ ‫داخله‬ ‫من‬ ,
Environment Variables.‫كذلك‬ ‫جديدة‬ ‫نافذة‬ ‫لك‬ ‫تخرج‬ ‫سوف‬ ,‫عليه‬ ‫اضغط‬
‫العلى‬ ‫في‬ ,‫قسمين‬ ‫الجديدة‬ ‫النافذة‬ –User variables for‫السفل‬ ‫وفي‬System Variables‫الجزء‬ ‫في‬ ,
‫زر‬ ‫على‬ ‫اضغط‬ ‫السفلي‬New.‫جديدة‬ ‫نافذة‬ ‫لك‬ ‫تخرج‬ ‫سوف‬ ,
‫خانتين‬ ‫من‬ ‫مكونة‬ ‫صغيرة‬ ‫نافذة‬ –Variable name‫و‬Variable value: ‫ضع‬ ‫السم‬ ‫داخل‬ ‫في‬ ,
JAVA_HOME: ‫مثال‬ – ‫جهازك‬ ‫في‬ ‫لديك‬ ‫الجافا‬ ‫ملف‬ ‫مسار‬ – : ‫ضع‬ ‫القيمة‬ ‫داخل‬ ‫في‬ ‫وأما‬
C:Program FilesJavajdk1.8.0_40.‫لديك‬ ‫المتوفر‬ ‫الصدار‬ ‫رقم‬ ‫تغيير‬ ‫مع‬
‫اضغط‬ –OK‫لم‬ ‫وإذا‬ ,‫عليك‬ ‫مبروك‬ ‫سليم‬ ‫بشكل‬ ‫اشتغل‬ ‫إذا‬ ‫البرنامج‬ ‫تشغيل‬ ‫جرب‬ ‫بعدها‬ .‫الحفظ‬ ‫وتم‬
: ‫التالي‬ ‫ونفذ‬ .‫المكان‬ ‫لنفس‬ ‫ارجع‬ ,‫يعمل‬
‫العلوي‬ ‫الجزء‬ ‫في‬ –User variables for‫خانة‬ ‫على‬ ‫اضغط‬ ,PATH‫عليها‬ ‫متكرر‬ ‫بشكل‬ ‫او‬ ,‫تعديل‬ ‫واضغط‬
; ‫المنقوطة‬ ‫الفاصلة‬ ‫وضعط‬ ‫آخرها‬ ‫اذهب‬ ,‫موجودة‬ ‫سطور‬ ‫تجد‬ ‫القيم‬ ‫خانة‬ ‫في‬ .. ‫التعديل‬ ‫قائمة‬ ‫لتظهر‬
‫خانة‬ ‫في‬ ‫وضعته‬ ‫الذي‬ ‫المسار‬ ‫نفس‬ ‫ثم‬ ‫ومن‬JAVA_HOME ‫بإضافة‬ ‫ولكن‬bin: ‫مثال‬C:Program
FilesJavajdk1.8.0_40bin
‫اضغط‬ –OK.‫كمسؤول‬ ‫تشغيله‬ ‫جرب‬ ‫ستوديو‬ ‫اندرويد‬ ‫يعمل‬ ‫لم‬ ‫حال‬ ‫في‬ .
‫الن‬ ‫و‬“ ! ‫انتبه‬ "‫الـ‬ ‫لحزمة‬ ‫التوجه‬ ‫عليك‬ ‫يجب‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫بفتح‬ ‫تقوم‬ ‫أن‬ ‫قبل‬SKD
|| ‫موضوع‬ ‫في‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬ ‫منك‬ ‫المطلوب‬ ‫وتحميل‬) : ‫الندرويد‬ ‫إضافات‬ ‫مدير‬SDK Manager(||
‫الـ‬ ‫من‬ ‫الحزم‬ ‫بتنزيل‬ ‫قيامك‬ ‫بعد‬SDK‫الحزم‬ ‫معها‬ ‫تأتي‬ ‫ستوديو‬ ‫الندرويد‬ ‫من‬ ‫نسخ‬ ‫يوجد‬ ‫العلم‬ ‫مع‬ ,
‫تتردد‬ ‫ل‬ ‫مشكلة‬ ‫إي‬ ‫واجهتك‬ ‫إذا‬ .‫التالية‬ ‫للمواضيع‬ ‫النتقال‬ ‫بعدها‬ ‫تستطيع‬ , ‫أول‬ ‫بنفسك‬ ‫تأكد‬ ‫ولكن‬
. ‫معنا‬ ‫بالتواصل‬
19
‫الترحيبية‬ ‫ستوديو‬ ‫الندرويد‬ ‫نافذة‬
‫حال‬ ‫في‬ ,‫ستوديو‬ ‫الندرويد‬ ‫تشغيل‬ ‫بداية‬ ‫لك‬ ‫تظهر‬ ‫التي‬ ‫النافذة‬ ‫هي‬ ,‫بالصورة‬ ‫الموضوحة‬ ‫النافذة‬ ‫هذه‬
.‫النافذة‬ ‫هذه‬ ‫لك‬ ‫لتظهر‬ ‫إغلقه‬ ‫يجب‬ ‫مسبقا‬ ‫فتحه‬ ‫تم‬ ‫مشروع‬ ‫يوجد‬ ‫كان‬ ‫وإذا‬ ,‫مفتوحة‬ ‫مشاريع‬ ‫يوجد‬ ‫ل‬
) ‫النقطة‬ ‫عند‬1// (.‫جديد‬ ‫مشروع‬ ‫بإنشاء‬ ‫البدأ‬
) ‫النقطة‬ ‫عند‬ ‫و‬2// (.‫ستوديو‬ ‫الندرويد‬ ‫على‬ ‫بنائه‬ ‫تم‬ ‫وقد‬ ,‫مسبقا‬ ‫موجود‬ ‫مشروع‬ ‫فتح‬
) ‫النقطة‬ ‫وعند‬3// (‫لذلك‬ ‫الستخدام‬ ‫في‬ ‫معينة‬ ‫طريقة‬ ‫له‬ ‫منها‬ ‫كل‬ ,‫مواقع‬ ‫عدة‬ ‫من‬ ‫مشاريع‬ ‫جلب‬
.‫لحقة‬ ‫لتدوينات‬ ‫شرحه‬ ‫يترك‬ ‫سوف‬
) ‫النقطة‬ ‫وعند‬4// (‫في‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬ ,‫اكليبس‬ ‫برنامج‬ ‫على‬ ‫المبنية‬ ‫اندرويد‬ ‫مشاريع‬ ‫استيراد‬
.‫مستقل‬ ‫موضوع‬
) ‫النقطة‬ ‫وعند‬5// (.‫جاهزة‬ ‫قصيرة‬ ‫أو‬ ‫بسيطة‬ ‫للندرويد‬ ‫أكواد‬ ‫نماذج‬ ‫استيراد‬
) ‫النقطة‬ ‫وعند‬6// (‫الـ‬ ,‫العداد‬ ‫مرحلة‬SDK.‫إلخ‬ ‫والعدادات‬ ‫والضافات‬
20
) ‫النقطة‬ ‫وعند‬7// (‫بيئة‬ ‫استخدام‬ ‫لكيفية‬ ‫وشروحات‬ ‫تعليمات‬IntelliJ‫يعمل‬ ‫التي‬ ‫وهي‬ ‫إيديا‬ ‫إنتيليج‬ ,
.‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫عليها‬
) ‫النقطة‬ ‫وعند‬8// (.‫للبرنامج‬ ‫تحديثات‬ ‫إي‬ ‫وجود‬ ‫من‬ ‫للتحقق‬ ‫و‬ ,‫لديك‬ ‫الحالي‬ ‫الصدار‬
) ‫النقطة‬ ‫وعند‬9// (.‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫على‬ ‫مؤخرا‬ ‫فتحها‬ ‫تم‬ ‫التي‬ ‫المشاريع‬
‫ستوديو‬ ‫الندرويد‬ ‫نافذة‬
‫سريع‬ ‫بشكل‬ ‫عليها‬ ‫نتعرف‬ ‫سوف‬ ,‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫على‬ ‫لمشروعك‬ ‫الرئيسية‬ ‫النافذة‬ ‫هذه‬
.‫سلسة‬ ‫بكل‬ ‫البرنامج‬ ‫استخدام‬ ‫تستطيع‬ ‫لكي‬
21
: ‫بشرحها‬ ‫أقوم‬ ‫سوف‬ ,‫السابقة‬ ‫الصورة‬ ‫في‬ ‫الموضحة‬ ‫الرقام‬ ‫حسب‬
1) ‫الرئيسية‬ ‫القائمة‬ //Main menu: (
,‫المشاريع‬ ‫وإنشاء‬ ‫وحفظ‬ ‫فتح‬ ‫منها‬ ,‫مختلفة‬ ‫أوامر‬ ‫عدة‬ ‫على‬ ‫وتحتوي‬ ,‫للبرنامج‬ ‫الرئيسية‬ ‫القائمة‬
. ‫لملف‬ ‫وتصديره‬ ,‫بنائه‬ ‫وإعادة‬ ‫المشروع‬ ‫وتنظيف‬ ,‫والعدادات‬apk‫وغيرها‬ ‫البرنامج‬ ‫وتحديث‬ ‫والدوات‬
..‫الكثير‬
2) ‫الدوات‬ ‫شريط‬ //Main toolbar: (
,‫المشروع‬ ‫حفظ‬ ‫منها‬ .‫جدا‬ ‫مهمة‬ ‫وهي‬ ,‫استخداما‬ ‫الكثر‬ ‫الزرار‬ ‫على‬ ‫ويحتوي‬ ,‫الرئيسي‬ ‫الدوات‬ ‫شريط‬
‫المشروع‬ ‫وتشغيل‬ ‫واللصق‬ ‫النسخ‬ ‫امر‬ ‫و‬ ,‫تلقائي‬ ‫بشكل‬ ‫الملفات‬ ‫يحفظ‬ ‫ستوديو‬ ‫الندرويد‬ ‫إن‬ ‫العلم‬ ‫مع‬
‫الـ‬ ‫وفتح‬ ‫التطبيق‬ ‫وبناء‬SDK‫إلخ‬
3) ‫التصفح‬ ‫شريط‬ //Navigation bar: (
.‫لتحريرها‬ ‫بينها‬ ‫والتنقل‬ ‫المشروع‬ ‫لملفات‬ ‫السريع‬ ‫للوصول‬ ‫التنقل‬ ‫أو‬ ‫التصفح‬ ‫شريط‬
4) ‫الخيارات‬ ‫قائمة‬ //Context menus: (
‫عليه‬ ‫ضغطت‬ ‫الذي‬ ‫الموقع‬ ‫حسب‬ ‫وتختلف‬ ‫للفأرة‬ ‫اليمن‬ ‫بالزر‬ ‫الضغط‬ ‫بعد‬ ‫تظهر‬ ‫قائمة‬
5) ‫المنبثقة‬ ‫القائمة‬ //Pop-up menus: (
‫زر‬ ‫على‬ ‫بالضغط‬ ‫إظهارها‬ ‫تستطيع‬ ‫قائمة‬Alt + Insert‫دوال‬ ‫او‬ ‫أكواد‬ ‫لضافة‬ ‫مثل‬ ‫تفيدك‬ ‫رائعة‬ ‫من‬ ‫أكثر‬
‫في‬ ‫لديك‬ ‫الموجود‬ ‫حسب‬ ‫المفتوح‬ ‫الملف‬ ‫على‬ ‫حقوقك‬ ‫ادراج‬ ‫تستطيع‬ ‫كذلك‬ ,‫المفتوح‬ ‫الملف‬ ‫حسب‬
.‫البرنامج‬ ‫اعدادات‬
6) ‫الحالة‬ ‫شريط‬ //Status bar: (
.‫الدوات‬ ‫شريط‬ ‫في‬ ‫موجود‬ ‫عليه‬ ‫تؤشر‬ ‫زر‬ ‫لي‬ ‫أكثر‬ ‫تفاصيل‬ ‫او‬ ,‫عملية‬ ‫تنفيذ‬ ‫مدة‬ ‫لك‬ ‫يظهر‬ ‫شريط‬
‫جعله‬ ‫إي‬ ‫التعديل‬ ‫من‬ ‫الملف‬ ‫وتقفيل‬ ,‫الحالي‬ ‫الملف‬ ‫ترميز‬ ‫تغيير‬ ‫تستطيع‬ ,‫كذلك‬ ‫الحالة‬ ‫شريط‬ ‫في‬
‫مثال‬ ‫رأسيتان‬ ‫نقطتان‬ ‫بينهم‬ ‫تفصل‬ ‫رقمين‬ ‫يوجد‬ ‫كم‬ ,‫مؤقت‬ ‫بشكل‬ ‫فقط‬ ‫للقراءة‬1:2‫للدللة‬ ‫واحد‬ ‫رقم‬
‫والرقم‬ ,‫الول‬ ‫السطر‬ ‫في‬ ‫إنك‬ ‫على‬2.‫الول‬ ‫السطر‬ ‫من‬ ‫الثاني‬ ‫الحرف‬ ‫أو‬ ‫الخانة‬ ‫عند‬ ‫إنك‬ ‫على‬ ‫للدللة‬
22
‫ستوديو‬ ‫الندرويد‬ ‫مع‬ ‫التعامل‬
‫التي‬ ‫العمليات‬ ‫بعض‬ ‫علينا‬ ‫تسهل‬ ‫وإضافات‬ ‫وخصائص‬ ‫طرق‬ ‫نتناول‬ ‫سوف‬ ‫ال‬ ‫شاء‬ ‫إن‬ ‫الموضوع‬ ‫هذا‬ ‫في‬
.‫بها‬ ‫القيام‬ ‫نريد‬
: ‫ستوديو‬ ‫الندرويد‬ ‫ببرنامج‬ ‫الخاص‬ ‫الستايل‬ ‫أو‬ ‫الثيم‬ ‫تغيير‬ #
‫وهي‬ ‫ستوديو‬ ‫لندرويد‬ ‫أساسية‬ ‫ثيمات‬ ‫لديك‬ ‫يوجد‬IntelliJ‫و‬Darcula.‫يناسبك‬ ‫ما‬ ‫منها‬ ‫أستخدم‬ ,
‫على‬ ‫بالضغط‬ ‫البرنامج‬ ‫إعدادات‬ ‫إلى‬ ‫توجه‬ ‫الثيم‬ ‫لتغيير‬Ctrl + Alt + S: ‫أو‬File => Settings
: ‫على‬ ‫إضغط‬ ‫اليسرى‬ ‫الجهة‬ ‫من‬ ,‫العدادات‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬Appearance & Behavior‫ثم‬
Appearance‫ثم‬UI Options / Theme.
,‫المفاتيح‬ ‫اختصارات‬ ,‫الخط‬ ‫نوع‬ ,‫المحرر‬ ‫ألوان‬ ,‫الخط‬ ‫حجم‬ ,‫يدويا‬ ‫شيء‬ ‫كل‬ ‫تغيير‬ ‫تستطيع‬ : ‫ملحظة‬
.‫إلخ‬ ‫الدوات‬ ‫ترتيب‬
: ‫المساعد‬ #
‫القيام‬ ‫تريد‬ ‫أمر‬ ‫بإي‬ ‫مساعدتك‬ ‫المساعد‬ ‫بإمكان‬ .. !‫؟‬ ‫تجده‬ ‫إين‬ ‫تعلم‬ ‫ل‬ ‫ولكن‬ ,‫ما‬ ‫بأمرا‬ ‫بالقيام‬ ‫تفكر‬ ‫هل‬
‫على‬ ‫بالضغط‬ ‫قم‬ ‫فقط‬ .‫خيار‬ ‫أو‬ ‫أمر‬ ‫كان‬ ‫سواء‬ ‫به‬Ctrl + Shift + A: ‫للتوضيح‬ ‫صورة‬ ‫وهذه‬ ,
23
: ‫ستوديو‬ ‫الندرويد‬ ‫داخل‬ ‫مفهومة‬ ‫الغير‬ ‫الحرف‬ ‫مشكلة‬ #
‫إنه‬ ‫المشروع‬ ‫ترميز‬ ‫من‬ ‫دائما‬ ‫تأكد‬ ‫لذلك‬ ,‫بالترميز‬ ‫تتعلق‬ ‫مفهومة‬ ‫الغير‬ ‫الحرف‬ ‫مشكلة‬UTF-8‫وكذلك‬
.‫الترميز‬ ‫نفس‬ ‫إنه‬ ‫الحالي‬ ‫الملف‬ ‫من‬
File → Settings → File Encoding:
Project Encoding = UTF-8
IDE Encoding = UTF-8
‫إنه‬ ‫تأكد‬ ‫الترميز‬ ‫يوجد‬ ,‫يسارا‬ ‫السفلى‬ ‫الزاوية‬ ‫من‬ ‫الحالي‬ ‫والملف‬UTF-8.
: ‫مشروعك‬ ‫على‬ ‫التركيز‬ ‫وضعيات‬ #
1.full screen mode:
‫اختر‬ ‫القائمة‬ ‫من‬ ,‫البرنامج‬ ‫على‬ ‫أكثر‬ ‫للتركيز‬ ‫الشاشة‬ ‫مل‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫لجعل‬View‫ثم‬
Enter Full Screen‫اختر‬ ‫كذلك‬ ‫منه‬ ‫للخروج‬ ‫و‬Exit Full Screen.
24
2.presentation mode:
‫برمجية‬ ‫سطور‬ ‫يكتب‬ ‫لمن‬ ‫مهمة‬ ‫وهي‬ ,‫فتحه‬ ‫تم‬ ‫الذي‬ ‫الكود‬ ‫على‬ ‫تماما‬ ‫فالتركيز‬ ‫الوضعية‬ ‫هذه‬ ‫إما‬
‫اختر‬ ‫القائمة‬ ‫من‬ ‫الوضع‬ ‫هذا‬ ‫لتفعيل‬ ,‫واحد‬ ‫اكتفتي‬ ‫في‬ ‫كثيرة‬View‫ثم‬Enter Presentation Mode‫و‬
‫اختر‬ ‫كذلك‬ ‫منه‬ ‫للخروج‬Exit Presentation Mode.
,‫حرية‬ ‫بكل‬ ‫الخرى‬ ‫البرامج‬ ‫واستخدام‬ ‫الكود‬ ‫على‬ ‫التركيز‬ ‫يريد‬ ‫لمن‬ ‫جدا‬ ‫مناسبة‬ ‫فهي‬ ‫الوضعية‬ ‫هذه‬ ‫اما‬
‫اختر‬ ‫القائمة‬ ‫من‬ ‫الوضع‬ ‫هذا‬ ‫لتفعيل‬ ,‫التنقل‬ ‫سهولة‬ ‫اي‬View‫ثم‬Enter Distraction-Free Mode‫و‬
‫اختر‬ ‫كذلك‬ ‫منه‬ ‫للخروج‬Exit Distraction-Free Mode.
25
: ‫للمكاتب‬ ‫تلقائي‬ ‫استيراد‬ #
‫قمت‬ ‫وقد‬ ‫ستوديو‬ ‫الندرويد‬ ‫على‬ ‫او‬ ,‫الكليبس‬ ‫برنامج‬ ‫على‬ ‫السابقين‬ ‫المبرمجين‬ ‫من‬ ‫كنت‬ ‫إذا‬
‫الكلمات‬ ‫من‬ ‫الكثير‬ ‫تجد‬ ‫سوف‬ ‫البرنامج‬ ‫الى‬ ‫مثل‬ ‫موقع‬ ‫من‬ ‫أكواد‬ ‫نسخ‬ ‫بعملية‬ ‫قمت‬ ‫ما‬ ‫ويوما‬ ‫بمشاريع‬
‫له‬ ‫وتعمل‬ ‫منها‬ ‫واحد‬ ‫على‬ ‫للضغط‬ ‫وتحتاج‬ ,‫لدعمها‬ ‫مكاتب‬ ‫إلى‬ ‫تحتاج‬ ‫إنها‬ ‫ويعني‬ ,‫أخطاء‬ ‫إي‬ ‫أحمر‬ ‫لونها‬
‫له‬ ‫العناصر‬ ‫بعض‬ ‫حال‬ ‫في‬ ‫إل‬ ‫تلقائيا‬ ‫الستيراد‬ ‫يتم‬ ‫فسوف‬ ‫الطريقة‬ ‫بهذه‬ ‫إما‬ ,‫الكتفتي‬ ‫داخل‬ ‫استيراد‬
‫عموما‬ .‫للخرة‬ ‫احداها‬ ‫من‬ ‫بالتأكد‬ ‫فرق‬ ‫فيوجد‬ ‫تفضل‬ ‫ما‬ ‫لتختار‬ ‫لك‬ ‫الستيراد‬ ‫تجعل‬ ‫لذلك‬ ‫مكتبة‬ ‫من‬ ‫اكثر‬
‫اختر‬ ‫العلى‬ ‫في‬ ‫الخيارات‬ ‫في‬ ,‫التلقائي‬ ‫التفعيل‬ ‫بميزة‬ ‫لتقوم‬File‫ثم‬Settings‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ .
‫اختر‬ ‫اليسر‬ ‫الجانب‬ ‫من‬ .‫بالبرنامج‬ ‫الخاصة‬ ‫العدادت‬ ‫فيها‬ ‫صغيرة‬Editor‫ثم‬General‫ثم‬Auto Import.
: ‫الصورة‬ ‫في‬ ‫للتوضيح‬ .‫الصح‬ ‫بعلمة‬ ‫امامك‬ ‫الخيارات‬ ‫جميع‬ ‫بتفعيل‬ ‫وقم‬
26
: ‫البرمجي‬ ‫الكود‬ ‫ترتيب‬ #
‫المر‬ ‫هذا‬ ‫يتولى‬ ‫البرنامج‬ ‫لذلك‬ .. ‫لترتيبها‬ ‫تهتم‬ ‫ول‬ .. ‫بسرعة‬ ‫الكواد‬ ‫بكتابة‬ ‫تقوم‬ ‫أحيانا‬ .. ‫الفرق‬ ‫لحظ‬
‫على‬ ‫بالضغط‬ ‫فقط‬ ‫عنك‬Ctrl + Alt + L.
‫من‬ ‫ونادرا‬ ‫عميق‬ ‫جدا‬ ‫ووجدته‬ ‫شروحاته‬ ‫في‬ ‫القليل‬ ‫دخلت‬ ,‫واسع‬ ‫بحر‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ++
‫الهامة‬ ‫المعلومات‬ ‫نذكر‬ ‫وسوف‬ ,‫عليه‬ ‫البرمجة‬ ‫خلل‬ ‫من‬ ‫تتعلمها‬ ‫لذلك‬ ‫ومميزاته‬ ‫اضافاته‬ ‫جميع‬ ‫يحصى‬
.‫التطبيقات‬ ‫ببرمجة‬ ‫البدأ‬ ‫خلل‬ ‫من‬
27
‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫البدأ‬ ‫قبل‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫أمور‬
‫الجافا‬ ‫بلغة‬ ‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫نقوم‬ ‫سوف‬ #Java.
. ‫ملفات‬ ‫في‬ ‫تكتب‬ ‫الجافا‬ ‫بلغة‬ ‫البرمجية‬ ‫الكواد‬ #java‫أنواع‬ ‫منها‬ ‫الكلسات‬ ,‫كلس‬ ‫عليها‬ ‫ونطلق‬
‫سوف‬ ‫إذا‬ .‫معها‬ ‫ويتفاعل‬ ‫المستخدم‬ ‫يراها‬ ‫واجهة‬ ‫او‬ ‫بشاشة‬ ‫يرتبط‬ ‫الذي‬ ‫الكتفتي‬ ‫ومنها‬ ,‫مختلفة‬
– ‫اسم‬ ‫باللياوت‬ ‫ومرتبط‬ ‫الجافا‬ ‫اكواد‬ ‫بداخله‬ ‫البرمجي‬ ‫الملف‬ ‫على‬ ‫نطلق‬Activity.-
‫اللياوت‬ #Layout‫بلغة‬ ‫ومبنية‬ ,‫للمستخدم‬ ‫تظهر‬ ‫التي‬ ‫الواجهة‬ ‫هي‬xml‫نستخدم‬ ‫سوف‬ ‫إذا‬xml
‫الجافا‬ ‫و‬ ‫والتنسيق‬ ‫للتصميم‬java.‫الوامر‬ ‫اعطاء‬ ‫إي‬ ‫للبرمجة‬
.‫إلخ‬ ‫والحجم‬ ‫والعرض‬ ‫الطول‬ ‫منها‬ ‫خصائص‬ ‫له‬ ,‫إلخ‬ ‫النص‬ ‫او‬ ‫الصورة‬ ‫او‬ ‫الزر‬ ‫مثل‬ ‫كائن‬ ‫أو‬ ‫عنصر‬ ‫كل‬ #
‫خاصية‬ ‫داخله‬ ‫نضع‬ ‫إن‬ ‫يجب‬ ‫أوامر‬ ‫واعطائه‬ ‫برمجيا‬ ‫استخدامه‬ ‫نريد‬ ‫عنصر‬ ‫كل‬ #id‫بملف‬ ‫بربطه‬ ‫لنقوم‬
.‫المعرف‬ ‫هذا‬ ‫خلل‬ ‫من‬ ‫الجافا‬
‫معرف‬ ‫تضع‬ ‫ل‬ #id.‫عنصر‬ ‫من‬ ‫لكثر‬ ‫السم‬ ‫نفس‬ ‫متكرر‬
.‫بها‬ ‫مرتبط‬ ‫اكتفتي‬ ‫لها‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫للمستخدم‬ ‫اظهارها‬ ‫تريد‬ ‫واجهة‬ ‫او‬ ‫لياوت‬ ‫كل‬ #
‫اسمه‬ ‫ملف‬ ‫في‬ ‫إضافته‬ ‫يجب‬ ‫مشروعك‬ ‫في‬ ‫اكتفتي‬ ‫كل‬ #AndroidManifest.xml‫شرح‬ ‫يتم‬ ‫سوف‬
.‫منفصل‬ ‫درس‬ ‫في‬ ‫الكتفتي‬ ‫فيه‬ ‫نضع‬ ‫ولماذا‬ ‫الملف‬
‫الحرف‬ ‫غير‬ ‫استخدام‬ ‫تجنب‬ ,‫إلخ‬ ‫اللياوت‬ ‫او‬ ‫الكتفتي‬ ‫او‬ ‫الملفات‬ ‫او‬ ‫للعناصر‬ ‫تضعها‬ ‫التي‬ ‫السماء‬ #
.‫الفراغات‬ ‫تستخدم‬ ‫ول‬ ,‫بالرقام‬ ‫السماء‬ ‫تبدأ‬ ‫ل‬ ‫كذلك‬ ,‫النجليزية‬
‫تحاول‬ ‫الذي‬ ‫للكود‬ ‫إكمال‬ ‫خيارات‬ ‫لك‬ ‫ليظهر‬ ‫التلقائي‬ ‫الكمال‬ ‫استخدام‬ ‫الكواد‬ ‫كتابة‬ ‫إثناء‬ ‫تستطيع‬ #
‫استخدم‬ , ‫واحدة‬ ‫كلمة‬ ‫كان‬ ‫ولو‬ ‫كتابته‬Ctrl + Space.
‫فلغة‬ ,‫العناصر‬ ‫في‬ ‫والبن‬ ‫الب‬ ‫قولنا‬ ‫من‬ ‫تستغرب‬ ‫ل‬ #xml‫وتستخدم‬ ,‫وأبناء‬ ‫آباء‬ ‫الشجري‬ ‫النظام‬ ‫تتبع‬
‫مصطلح‬ ‫هنا‬Parent.‫المقصود‬ ‫العنصر‬ ‫يحتويه‬ ‫الذي‬ ‫الكبر‬ ‫العنصر‬ ‫أو‬ ‫الب‬ ‫إلى‬ ‫للشارة‬
.‫المزايا‬ ‫بعض‬ ‫في‬ ‫منها‬ ‫لتستفيد‬ ‫لمشروعك‬ ‫تضيفها‬ ‫التي‬ ‫الجاهزة‬ ‫المكاتب‬ ‫من‬ ‫الكثير‬ ‫يوجد‬ #
‫تقدم‬ ‫مواقع‬ ‫او‬ ‫شركات‬ ‫يوجد‬ #API‫أو‬SDK.‫تطبيقاتك‬ ‫في‬ ‫الموقع‬ ‫خدمات‬ ‫من‬ ‫لتستفيد‬
28
‫للندرويد‬ ‫الول‬ ‫مشروعك‬ ‫إنشاء‬
.‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫للبدأ‬ ,‫فارغ‬ ‫جديد‬ ‫مشروع‬ ‫بإنشاء‬ ‫نقوم‬ ‫كيف‬ ‫نتعلم‬ ‫سوف‬ ‫الموضوع‬ ‫هذا‬ ‫في‬
‫الول‬ ‫الخيار‬ ‫اختر‬ ,‫الترحيبية‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ,‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫تشغيل‬ ‫وبعد‬ ‫البداية‬ ‫في‬
‫وهو‬Start a new Android Studio project.‫المشروع‬ ‫لعدادات‬ ‫أخرى‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ .
29
: ‫السابقة‬ ‫الصورة‬ ‫حسب‬
1.‫التطبيق‬ ‫عنوان‬ /
2‫الموقع‬ ‫اسم‬ ‫لن‬ .‫آخر‬ ‫بموقع‬ ‫تشابه‬ ‫عدم‬ ‫لضمان‬ ‫موقعك‬ ‫عنوان‬ ‫وضع‬ ‫والمعروف‬ ,‫بك‬ ‫خاص‬ ‫اسم‬ /
.- ‫الباكيج‬ – ‫الحزمة‬ ‫بإسم‬ ‫بالتأثير‬ ‫تقوم‬ ‫التطبيق‬ ‫واسم‬
3,‫آخر‬ ‫تطبيق‬ ‫إي‬ ‫مع‬ ‫يتشابه‬ ‫ل‬ ‫أن‬ ‫يجب‬ ‫المعرف‬ ‫هذا‬ ,‫ذكرت‬ ‫كما‬ ‫الحزمة‬ ‫اسم‬ ‫وهو‬ ‫التطبيق‬ ‫معرف‬ /
‫على‬ ‫بوك‬ ‫الفيس‬ ‫تطبيق‬ ‫مثل‬ .‫المتجر‬ ‫على‬ ‫التطبيق‬ ‫رابط‬ ‫او‬ ‫عنوان‬ ‫على‬ ‫نتعرف‬ ‫المعرف‬ ‫هذا‬ ‫ومن‬
: ‫المتجر‬https://play.google.com/store/apps/details?id=com.facebook.katana
: ‫هو‬ ‫بوك‬ ‫الفيس‬ ‫بتطبيق‬ ‫الخاص‬ ‫المعرف‬ ‫إذا‬com.facebook.katana.
4.........… ‫التالي‬ ‫نتابع‬ .‫جهازك‬ ‫على‬ ‫المشروع‬ ‫حفظ‬ ‫مسار‬ /
30
‫والساعة‬ ,‫والتابلت‬ ‫الجوال‬ ‫لجهزة‬ ,‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫التي‬ ‫الجهزة‬ ‫نوعية‬ ‫لختيار‬ ,‫السابقة‬ ‫الصورة‬
‫والتابلت‬ ‫الجوال‬ ‫لجهزة‬ ‫فقط‬ ‫يهمنا‬ ‫ما‬ .‫الذكية‬ ‫النظارات‬ ‫و‬ ‫للسيارات‬ ‫ايتو‬ ‫نظام‬ ‫و‬ ‫التلفاز‬ ‫وشاشة‬ ‫الذكية‬
.‫الكتاب‬ ‫في‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬ ‫ما‬ ‫وهذا‬
‫يخص‬ ‫بما‬ ‫أما‬Minimum SDK‫هذا‬ ‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫للندرويد‬ ‫إصدار‬ ‫أقل‬ ‫سابقا‬ ‫شرحنا‬ ‫كما‬ ‫فهو‬
‫على‬ ‫الضغط‬ ‫بـ‬ ‫الستعانة‬ ‫وتستطيع‬ .‫بإنشائه‬ ‫تقوم‬ ‫الذي‬Help me choose‫بها‬ ‫يوجد‬ ‫نافذة‬ ‫لتظهر‬
‫في‬ ‫الجهزة‬ ‫من‬ ‫الكمية‬ ‫كم‬ ‫معرفة‬ ‫تستطيع‬ ‫وهكذا‬ ‫نظام‬ ‫لكل‬ ‫الجهزة‬ ‫عدد‬ ‫وكم‬ ‫الندرويد‬ ‫نظام‬ ‫اصدارات‬
‫موضح‬ ‫فالصورة‬ ,‫تطبيقك‬ ‫استخدام‬ ‫تستطيع‬ ‫التي‬ ‫العالم‬API 15‫نظام‬ ‫اي‬4.0.3‫يستطيعوا‬ ‫فقط‬ ‫وأعلى‬
‫تقريبا‬ ‫والنسبة‬ ,‫تطبيقي‬ ‫استخدام‬94.‫ممتاز‬ ‫وهذا‬ ‫تطبيقي‬ ‫عليها‬ ‫يعمل‬ ‫سوف‬ ‫الندرويد‬ ‫أجهزة‬ ‫من‬ %
.. ‫التالي‬ ‫نتابع‬ .‫التكنولوجيا‬ ‫تطور‬ ‫مع‬ ‫انقراض‬ ‫في‬ ‫كلها‬ ‫السابقة‬ ‫فالصدارات‬
31
‫سوف‬ ‫ما‬ ‫ولكن‬ .. ‫عليها‬ ‫بالبرمجة‬ ‫للبدأ‬ ‫الجاهزة‬ ‫النماذج‬ ‫من‬ ‫بعض‬ ‫لنا‬ ‫يظهر‬ ‫فهنا‬ ‫السابقة‬ ‫الصورة‬ ‫حسب‬
‫هو‬ ‫نختاره‬Empty Activity… ‫التالي‬ ‫نتابع‬ .
1/‫الذي‬ ‫السم‬ ‫ضع‬ .‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫معك‬ ‫تعمل‬ ‫سوف‬ ‫التي‬ ‫بالكتفتي‬ ‫الخاص‬ ‫العنوان‬
.– ‫كبتل‬ – ‫كبير‬ ‫حرف‬ ‫أول‬ ‫وضع‬ ‫مع‬ ‫تريد‬
2/‫سمول‬ – ‫صغير‬ ‫حرف‬ ‫اول‬ ‫ولكن‬ ‫الكتفتي‬ ‫اسم‬ ‫نفس‬ ‫تكون‬ ‫أن‬ ‫عليه‬ ‫المتعارف‬ ‫ومن‬ ‫اللياوت‬ ‫عنوان‬
.‫الكتفتي‬ ‫بهذا‬ ‫المرتبطة‬ ‫اللياوت‬ ‫وهي‬ –
‫انتهاء‬ ‫إضغط‬ ‫و‬ ‫هي‬ ‫كما‬ ‫اتركها‬ ‫حاليا‬Finish.‫عليه‬ ‫البرمجة‬ ‫لتبدأ‬ ‫مشروعك‬ ‫بتجهيز‬ ‫البرنامج‬ ‫لبدأ‬
32
: ‫فارغ‬ ‫اندرويد‬ ‫تطبيق‬ ‫مشروع‬ ‫أول‬ ‫إنشاء‬ ‫بعد‬ ‫النتيجة‬
‫اندرويد‬ ‫تطبيق‬ ‫مشروع‬ ‫إنشاء‬ ‫بداية‬ ‫لك‬ ‫تظهر‬ ‫التي‬ ‫الفتراضية‬ ‫الكواد‬ ‫شرح‬
‫يتم‬ ‫التي‬ ‫الكتفتي‬ ‫وهي‬ ‫لنا‬ ‫مفتوحة‬ ‫جاهزة‬ ‫ملفات‬ ‫لدينا‬ ‫إنه‬ ‫نلحظ‬ ,‫لنا‬ ‫أندرويد‬ ‫تطبيق‬ ‫أول‬ ‫إنشاء‬ ‫بعد‬
‫تظهر‬ ‫سوف‬ ‫التي‬ ‫الواجهة‬ ‫أو‬ ‫باللياوت‬ ‫مرتبطة‬ ‫كذلك‬ ‫هي‬ ‫والتي‬ ‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تشغيلها‬
.‫للمستخدم‬
‫نجد‬ ‫سوف‬MainActivity.‫الكتفتي‬ /
.‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تنفيذها‬ ‫يتم‬ ,‫الجافا‬ ‫بلغة‬ ‫أكواد‬ ‫على‬ ‫يحتوي‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬ ‫ملف‬
‫للعناصر‬ ‫الدعم‬ ‫مكاتب‬ ‫ثم‬ ‫ومن‬ ,‫للتطبيق‬ ‫حددناه‬ ‫كما‬ ‫الباكيج‬ ‫اسم‬ ‫له‬ ‫الول‬ ‫السطر‬ ‫يأتي‬ ‫والكود‬
33
.‫الدوال‬ ‫وداخله‬ ‫الكلس‬ ‫ثم‬ ‫ومن‬ ,‫الكتفتي‬ ‫هذه‬ ‫في‬ ‫المستخدمة‬
: ‫الرئيسية‬ ‫للكتقتي‬ ‫الفتراضي‬ ‫الكود‬
// ‫دي‬ ‫الي‬ ‫او‬ ‫المعرف‬ ‫إي‬ ‫للتطبيق‬ ‫الباكيج‬ ‫اسم‬
package com.andrody.myapplication;
// ‫عددها‬ ‫إزداد‬ ‫عناصر‬ ‫أضفنا‬ ‫وكلما‬ ‫الدعم‬ ‫لمكاتب‬ ‫استيراد‬
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
// ‫الس‬ ‫للصدارات‬ ‫الماتريال‬ ‫تصميم‬ ‫يدعم‬ ‫لكي‬ ‫اكتفتي‬ ‫كومبات‬ ‫اب‬ ‫من‬ ‫مشتق‬ ‫ثم‬ ‫من‬ ‫واسمه‬ ‫الكلس‬‫يستخدم‬ ‫الغالب‬ ‫وفي‬ ‫ابقة‬
‫اكتفتي‬ ‫من‬ ‫مشتق‬
public class MainActivity extends AppCompatActivity {
// ‫ال‬ ‫دالة‬‫الكتفتي‬ ‫هذه‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫الدالة‬ ‫وهي‬ ‫كريت‬ ‫ون‬
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ‫ال‬ ‫بهذا‬ ‫ربطها‬ ‫يتم‬ ‫التي‬ ‫اللياوت‬‫كتفتي‬
setContentView(R.layout.activity_main);
}
// ‫ال‬ ‫دالة‬ ‫في‬ ‫استدعائها‬ ‫يتم‬ ‫حتى‬ ‫تنفيذها‬ ‫يتم‬ ‫ل‬ ‫والتي‬ ‫الكلس‬ ‫هذا‬ ‫داخل‬ ‫أخرى‬ ‫دوال‬ ‫استخدام‬ ‫نستطيع‬ ‫هنا‬‫كريت‬ ‫ون‬
}
‫كذلك‬ ‫و‬activity_main.xml.‫اللياوت‬ /
‫الواجهة‬ ‫هو‬ ‫اللياوت‬ ‫وهذا‬ ,‫للواجهة‬ ‫التنسيق‬ ‫او‬ ‫التصميم‬ ‫ملف‬ ‫هو‬ ‫اخرى‬ ‫مرة‬ ‫نذكر‬ ‫وسوف‬ ‫ذكرنا‬ ‫اللياوت‬
‫هذه‬ ‫ان‬ ‫يعني‬ ‫اي‬ ‫الرئيسية‬ ‫الجافا‬ ‫ملف‬ ‫الكتفتي‬ ‫قبل‬ ‫من‬ ‫استدعائها‬ ‫يتم‬ ‫سوف‬ ‫التي‬ ‫الرئيسية‬
.‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫للمستخدم‬ ‫تظهر‬ ‫سوف‬ ‫التي‬ ‫هي‬ ‫الواجهة‬
: ‫اللياوت‬ ‫الواجهة‬ ‫داخل‬ ‫الموجود‬ ‫الكود‬
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
‫لغة‬XML‫عناصر‬ ‫داخلها‬ ‫او‬ ‫اسفلها‬ ‫تحتوي‬ ‫عناصر‬ ‫بمعنى‬ ‫إي‬ ,‫التنسيق‬ ‫في‬ ‫الشجري‬ ‫النمط‬ ‫تستخدم‬
34
‫وهي‬ ‫للب‬ ‫النهاية‬ ‫ووسم‬ ‫البداية‬ ‫وسم‬ ‫لحظ‬ ‫الكود‬ ‫في‬ ‫لنا‬ ‫ظاهر‬ ‫هو‬ ‫وكما‬ .. ‫وابناء‬ ‫اب‬ ‫بمعنى‬ ,‫اخرى‬
‫نوع‬ ‫من‬ ‫الرئيسية‬ ‫اللياوت‬RelativeLayout‫العناصر‬ ‫وضع‬ ‫تستطيع‬ ‫اي‬ ‫النوع‬ ‫وهذا‬ ‫اخرى‬ ‫انواع‬ ‫ويوجد‬
‫نوع‬ ‫من‬ ‫عنصر‬ ‫وبداخله‬ .‫الشاشة‬ ‫على‬ ‫مكان‬ ‫إي‬ ‫في‬ ‫حر‬ ‫بشكل‬ ‫داخلها‬TextView‫ومكتوب‬ ‫نص‬ ‫إي‬
‫عبارة‬ ‫داخله‬Hello World‫بالنسبة‬ ‫وأما‬ ,‫مشروع‬ ‫اول‬ ‫لنشاء‬ ‫السابقة‬ ‫النتيجة‬ ‫صورة‬ ‫في‬ ‫شاهدنا‬ ‫كما‬
.‫مستقل‬ ‫بشكل‬ ‫شرحها‬ ‫يتم‬ ‫سوف‬ ‫العناصر‬ ‫لكل‬ ‫الخرى‬ ‫للخصائص‬
‫لك‬ ‫لتوضح‬ ‫فقط‬ ‫صغيرة‬ ‫مشاريع‬ ‫بإنشاء‬ ‫نقوم‬ ‫ثم‬ ‫من‬ ,‫الخرى‬ ‫الساسيات‬ ‫بعض‬ ‫نتعلم‬ ‫سوف‬ ‫الن‬ ‫أما‬
.. ‫المسير‬ ‫تكمل‬ ‫وأنت‬ ‫المجال‬ ‫بهذا‬ ‫المبدأ‬
‫ستوديو‬ ‫للندرويد‬ ‫الكليبس‬ ‫مشاريع‬ ‫استيراد‬
‫على‬ ‫بنائها‬ ‫تم‬ ‫أغلبها‬ ‫النترنت‬ ‫على‬ ‫الجاهزة‬ ‫فالمشاريع‬ ,‫الجاهزة‬ ‫المشاريع‬ ‫بتحميل‬ ‫يقوم‬ ‫منا‬ ‫الكثير‬
‫جدا‬ ‫إنها‬ ‫العلم‬ ‫مع‬ ‫الكليبس‬ ‫مشاريع‬ ‫استيراد‬ ‫كيفية‬ ‫تعرف‬ ‫جدا‬ ‫المهم‬ ‫من‬ ‫لذلك‬ ,‫الكليبس‬ ‫برنامج‬
.. ‫الكيفية‬ ‫عن‬ ‫يتساؤل‬ ‫الكثير‬ ‫ولكن‬ ‫سهلة‬
‫اختر‬ ‫الترحيبية‬ ‫النافذة‬ ‫في‬ ‫ستوديو‬ ‫الندرويد‬ ‫لبرنامج‬ ‫تشغيلك‬ ‫عند‬ ‫البداية‬ ‫في‬Import project (Eclipse
ADT, Gradle, etc: ‫الصورة‬ ‫في‬ ‫كما‬ (.
‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬ ‫بتحديد‬ ‫تقوم‬ ,‫المشروع‬ ‫مجلد‬ ‫لختيار‬ ‫صغيرة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬
‫المجلدات‬res + src. ‫وغيرها‬
35
‫يضع‬ ‫سوف‬ ‫الذي‬ ‫الجديد‬ ‫المسار‬ ‫لتحديد‬ ‫خيار‬ ‫لك‬ ‫يظهر‬ ‫سوف‬ ‫ثم‬ ‫ومن‬ ‫أوك‬ ‫اضغط‬ ,‫المشروع‬ ‫اختيار‬ ‫بعد‬
.‫الجديدة‬ ‫بملفاته‬ ‫المشروع‬ ‫فيه‬
.‫معه‬ ‫يتناسب‬ ‫الذي‬ ‫الجديد‬ ‫للشكل‬ ‫الملفات‬ ‫بتحويل‬ ‫تلقائيا‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫يقوم‬ ‫سوف‬
: ‫هذه‬ ‫مثل‬ ‫خطأ‬ ‫رسالة‬ ‫لك‬ ‫تظهر‬ ‫الغالب‬ ‫في‬ ,‫المعالجة‬ ‫انتهاء‬ ‫بعد‬
‫هو‬ ‫فيه‬ ‫إصدار‬ ‫أعلى‬ ‫المشروع‬ ‫إن‬ ‫معناه‬ ‫وهذا‬API 19‫تستخدم‬ ‫أصبحت‬ ‫متقدم‬ ‫عصر‬ ‫في‬ ‫الن‬ ‫وأنت‬
API 23.‫أصدار‬ ‫أعلى‬ ‫مع‬ ‫يتوافق‬ ‫وتجعله‬ ‫للمشروع‬ ‫تذهب‬ ‫فقط‬ ‫المشكلة‬ ‫لحل‬ ,‫أعلى‬ ‫أو‬
" ‫الملف‬ ‫تفتح‬build.gradle‫مجلد‬ ‫بداخل‬ ‫الذي‬ ”app‫بالشكل‬ ‫تجده‬ ‫سوف‬ ,‫المطلوب‬ ‫بتعديل‬ ‫وتقوم‬ ,
: ‫التالي‬
‫بتعديل‬ ‫قم‬19‫بداخل‬ ‫والعلى‬ ‫لديك‬ ‫تستخدمه‬ ‫الذي‬ ‫الصدار‬ ‫إلى‬SDK‫هو‬ ‫الموجود‬ ‫وحسب‬ ,23.
‫الصفر‬ ‫الشريط‬ ‫في‬ ‫أو‬ ‫مزامنة‬ ‫زر‬ ‫على‬ ‫أضغط‬ ‫التعديل‬ ‫من‬ ‫النتهاء‬ ‫بعد‬Try Again
36
.‫النص‬ ‫وألوان‬ ‫الملفات‬ ‫ترتيب‬ ‫أصبح‬ ‫كيف‬ ‫لحظ‬ : ‫الشكل‬ ‫بهذا‬ ‫الملف‬ ‫ليصبح‬
‫ما‬ ‫لذلك‬ ,‫مختلفة‬ ‫دعم‬ ‫مكاتب‬ ‫تستخدم‬ ‫المشاريع‬ ‫بعض‬ ‫ولكن‬ ,‫الستيراد‬ ‫عملية‬ ‫من‬ ‫أنتهينا‬ ‫هكذا‬ ‫نكون‬
‫فقط‬ ‫واحد‬ ‫سطر‬ ‫بإضافة‬ ‫جديد‬ ‫من‬ ‫إضافتها‬ ‫مشكلة‬ ‫ل‬ ‫جوجل‬ ‫مكاتب‬ ‫كانت‬ ‫إذا‬ ,‫به‬ ‫القيام‬ ‫عليك‬ ‫يجب‬
‫تستطيع‬ ‫لذلك‬ ,‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫خطأ‬ ‫ويعطي‬ ‫استيرادها‬ ‫يتم‬ ‫ل‬ ‫مكاتب‬ ‫يوجد‬ ‫ولكن‬ ,‫الملف‬ ‫بهذا‬
‫الندرويد‬ ‫على‬ ‫استيراد‬ ‫تعمل‬ ‫ثم‬ ‫من‬ ,‫مؤقت‬ ‫بشكل‬ ‫المكاتب‬ ‫وإلغاء‬ ‫اكليبس‬ ‫على‬ ‫المشروع‬ ‫فتح‬
.‫تحتاجها‬ ‫كنت‬ ‫إن‬ ‫للمشروع‬ ‫المكاتب‬ ‫إرجاع‬ ‫ستوديو‬
‫المشروع‬ ‫وملفات‬ ‫مجلدات‬
‫على‬ ‫الول‬ ‫المشروع‬ ‫إنشاء‬ ‫بعد‬ ‫لحظتم‬ ‫لو‬
‫والمجلدات‬ ‫الملفات‬ ‫لنا‬ ‫ظهرت‬ ‫ستوديو‬ ‫الندرويد‬
.‫الصورة‬ ‫في‬ ‫كما‬ << ‫لمشروعنا‬ ‫التالية‬
37
‫مجلد‬ ‫لـ‬ ‫بالنسبة‬Values‫ملف‬ +AndroidManifest.xml.‫مستقل‬ ‫بشكل‬ ‫منها‬ ‫كل‬ ‫شرح‬ ‫يتم‬ ‫سوف‬
‫مجلد‬java/
‫يتم‬ ‫سوف‬ ‫ولكن‬ ,‫مشروعك‬ ‫داخل‬ ‫حزمة‬ ‫من‬ ‫أكثر‬ ‫إضافة‬ ‫تستطيع‬ ,‫الباكيج‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬
.‫مشروعك‬ ‫في‬ ‫أستخدامها‬ ‫تحتاج‬ ‫ممكن‬ ‫والخرى‬ ‫الرئيسية‬ ‫منها‬ ‫واحدة‬ ‫تشغيل‬
‫كلس‬ ‫مثل‬ ,‫راحتك‬ ‫على‬ ‫كلسات‬ ‫كتابة‬ ‫تستطيع‬ ,‫منوعة‬ ‫كلسات‬ ,‫الجافا‬ ‫ملفات‬ ‫على‬ ‫يحتوي‬ ‫الباكيج‬
.‫وهكذا‬ ,‫المشروع‬ ‫كامل‬ ‫في‬ ‫لتستخدمها‬ ‫فقط‬ ‫نصوص‬ ‫على‬ ‫يحتوي‬
‫منها‬ ‫نتصل‬ ‫سوف‬ ‫التي‬ ‫هي‬ ‫الجافا‬ ‫بلغة‬ ‫الكتفتي‬ ‫وهذه‬ ,‫الباكيج‬ ‫داخل‬ ‫الكتفتي‬ ‫إنه‬ ‫لدينا‬ ‫والمهم‬
.‫إلخ‬ ‫والعناصر‬ ‫وللدوات‬ ‫للتطبيق‬ ‫البرمجية‬ ‫الوامر‬ ‫بإعطاء‬ ‫لنبدأ‬ ‫بالواجهات‬ ‫او‬ ‫باللياوت‬
‫مجلد‬res/
‫بمعنى‬resources‫المستخدم‬ ‫يراه‬ ‫ما‬ ‫كل‬ ‫آخر‬ ‫بمعنى‬ ,‫تطبيق‬ ‫في‬ ‫تستخدمها‬ ‫التي‬ ‫المصادر‬ ‫او‬ ‫الموارد‬
‫في‬ ‫المستخدمة‬ ‫الصور‬ ,‫التطبيق‬ ‫ايقونة‬ ,‫الخيارات‬ ‫قائمة‬ ,‫الواجهات‬ ,‫التطبيق‬ ‫تصفح‬ ‫أثناء‬ ‫أمامه‬
‫إلخ‬ ‫الستايل‬ ‫أو‬ ‫الثيم‬ ,‫النصوص‬ ,‫اللوان‬ ,‫التأثيرات‬ ‫او‬ ‫الحركات‬ ,‫الصوتيات‬ ,‫التطبيق‬
: ‫التالي‬ ‫بالشكل‬ ,‫الموارد‬ ‫هذه‬ ‫لتوزيع‬ ‫مجلدات‬ ‫عدة‬ ‫على‬ ‫يحتوي‬ ‫وهو‬
–drawable/‫ملفات‬ + ‫التطبيق‬ ‫في‬ ‫استخدامها‬ ‫تريد‬ ‫التي‬ ‫الصور‬ ‫فيه‬ ‫تضع‬ ‫الذي‬ ‫المجلد‬xml
‫صورة‬ ‫تكرار‬ ‫أو‬ ,‫اللوان‬ ‫متعددة‬ ‫للتطبيق‬ ‫خلفية‬ ‫أو‬ ,‫عليه‬ ‫الضغط‬ ‫بعد‬ ‫الزر‬ ‫تأثير‬ ‫مثل‬ ,‫للتنسيق‬
.‫إلخ‬ ‫للخلفية‬ ‫باترن‬
–layout/‫وهو‬ ‫للمستخدم‬ ‫تظهر‬ ‫التي‬ ‫الواجهات‬ ‫أو‬ ‫اللياوت‬ ‫ملفات‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬
.‫باللياوت‬ ‫له‬ ‫شرحنا‬ ‫في‬ ‫كثيرا‬ ‫نكرر‬ ‫وسوف‬ .‫تستخدمها‬ ‫سوف‬ ‫التي‬ ‫المجلدات‬ ‫أكثر‬ ‫من‬
–mipmap/‫لوضع‬ ‫استخدامه‬ ‫تستطيع‬ ‫كما‬ ,‫المجلد‬ ‫هذا‬ ‫في‬ ‫التطبيق‬ ‫أيقونة‬ ‫وضع‬ ‫تلقائيا‬ ‫يتم‬
.‫إلخ‬ ‫البحث‬ ‫زر‬ ‫الخيارات‬ ‫قائمة‬ ‫زر‬ ‫مثل‬ ‫تستخدمها‬ ‫التي‬ ‫اليقونات‬
–values/.‫مستقل‬ ‫بشكل‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬
38
‫لك‬ ‫اختياري‬: ‫الشكل‬ ‫بهذا‬ ‫أخرى‬ ‫مجلدات‬ ‫إنشاء‬ ,
.‫مختصر‬ ‫وبشرح‬ ,‫فقط‬ ‫منها‬ ‫المهم‬ ‫على‬ ‫أركز‬ ‫سوف‬
‫مجلد‬ ‫في‬ ‫إنشائها‬ ‫تستطيع‬ ‫التي‬ ‫المجلدات‬ ‫من‬res: ‫مثال‬
raw:.‫الميديا‬ ‫ملفات‬ ‫داخله‬ ‫لوضع‬
menu:.‫الخيارات‬ ‫قائمة‬ ‫ملفات‬ ‫داخله‬ ‫لوضع‬
anim:.‫الحركات‬ ‫أو‬ ‫التأثيرات‬ ‫ملفات‬ ‫داخله‬ ‫لوضع‬
color:‫عليه‬ ‫الضغط‬ ‫وبعد‬ ‫أصفر‬ ‫يصبح‬ ‫عليه‬ ‫التركيز‬ ‫تم‬ ‫إذا‬ ‫أحمر‬ ‫الزر‬ ‫لون‬ ‫مثل‬ ‫اللوان‬ ‫بطبقات‬ ‫للتحكم‬
.‫أزرق‬
xml:.‫للتطبيق‬ ‫اعدادات‬ ‫مثل‬ ,‫والعدادات‬ ‫التكوين‬ ‫ملفات‬ ‫داخله‬ ‫الغالب‬ ‫في‬
39
‫أما‬‫مجلد‬assets/,‫بيانات‬ ‫قواعد‬ ,‫ملفات‬ ,‫صوت‬ ,‫صور‬ ,‫الخام‬ ‫المواد‬ ‫تضع‬ ‫فيه‬ ,‫للكثيرين‬ ‫مهم‬ ‫فهو‬
.‫التطبيق‬ ‫في‬ ‫استخدامها‬ ‫تريد‬ ‫التي‬ ‫الخطوط‬ ‫أنواع‬ ‫إضافته‬ ‫يتم‬ ‫ما‬ ‫وأكثر‬ .‫إلخ‬ ‫الويب‬ ‫صفحات‬
‫مجلد‬ ‫يعيب‬ ‫وما‬assets): ‫وسرقتها‬ ‫إليها‬ ‫الوصول‬ ‫شخص‬ ‫إي‬ ‫يستطيع‬ ‫بداخله‬ ‫ما‬ ‫جميع‬ ‫إن‬
‫لوحة‬ ‫مع‬ ‫لين‬ ‫اون‬ ‫تطبيقك‬ ‫لجعل‬ ‫مثل‬ ,‫متقدمة‬ ‫مراحل‬ ‫في‬ ‫تحتاجها‬ ,‫مهمة‬ ‫غير‬ ‫المجلدات‬ ‫بقية‬ ‫أما‬
.‫وغيرها‬ ‫للعبين‬ ‫جوجل‬
: ‫مهم‬ ‫من‬ ‫أكثر‬ ‫فهو‬ ‫التكوين‬ ‫ملف‬ ‫لـ‬ ‫وبالنسبة‬Gradle
build.gradle/‫يهمنا‬ ‫ما‬Module: app‫بنصف‬ ‫قام‬ ‫وهو‬ ,‫للمشروع‬ ‫أساسية‬ ‫قيم‬ ‫نضع‬ ‫بداخله‬ ‫والذي‬
‫أقل‬ + ‫بالتطبيق‬ ‫الخاص‬ ‫المعرف‬ ‫داخله‬ ‫مثل‬ .‫الكليبس‬ ‫في‬ ‫المينيفيست‬ ‫لملف‬ ‫كانت‬ ‫التي‬ ‫المهام‬
‫تستخدمها‬ ‫التي‬ ‫المكاتب‬ ‫لجميع‬ ‫داخله‬ ‫الشارة‬ ‫يجب‬ ‫و‬ ‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫أندرويد‬ ‫إصدار‬ ‫وأعلى‬
.‫مشروعك‬ ‫لدعم‬
‫الفايلوس‬ ‫مجلد‬ ‫شرح‬Values
‫قيمة‬ ‫داخله‬ ‫نضع‬ ‫مثل‬ ‫النوع:السم:القيمة‬ .. ‫والمتغيرات‬ ‫القيم‬ ‫على‬ ‫يحتوي‬ ‫مجلد‬ ‫هو‬ ‫الفايلوس‬ ‫مجلد‬
‫الحمر‬ ‫اللون‬ ‫كود‬ ‫هي‬ ‫والقيمة‬ ‫أحمر‬ ‫واسمها‬ ‫لون‬ ‫نوع‬ ‫من‬ff0000#.. ‫وهكذا‬
‫ملفات‬ ‫هي‬ ‫الفايلوس‬ ‫مجلد‬ ‫يحتويه‬ ‫ما‬xml‫او‬ ‫دمجها‬ ‫تستطيع‬ ‫إنك‬ ‫العلم‬ ‫مع‬ ,‫معين‬ ‫استخدام‬ ‫منها‬ ‫لكل‬
,‫إليها‬ ‫للوصول‬ ‫بداخلها‬ ‫ما‬ ‫يهم‬ ‫الفايلوس‬ ‫ملفات‬ ‫فقط‬ .. ‫اسمائها‬ ‫تغيير‬ ‫أو‬ ‫واحد‬ ‫ملف‬ ‫في‬ ‫كلها‬ ‫جعلها‬
.( ‫المشروع‬ ‫لموارد‬ ‫الوصول‬ ) ‫مستقل‬ ‫درس‬ ‫في‬ ‫لها‬ ‫الوصول‬ ‫يتم‬ ‫كيف‬ ‫نتعرف‬ ‫وسوف‬
: ‫الفايلوس‬ ‫مجلد‬ ‫يحتويها‬ ‫التي‬ ‫الملفات‬ ‫أهم‬ ‫من‬
-strings.xml:,‫التطبيق‬ ‫اسم‬ ‫داخله‬ ‫تجده‬ ‫ما‬ ‫حاليا‬ ‫مهم‬ ‫من‬ ‫أكثر‬ ‫وهو‬ ,‫النصوص‬ ‫أو‬ ‫القيم‬ ‫ملف‬
.‫تريد‬ ‫التي‬ ‫النصوص‬ ‫إضافة‬ ‫حرية‬ ‫لك‬ ‫ثم‬ ‫ومن‬ ,‫داخله‬ ‫من‬ ‫تغييره‬ ‫تستطيع‬
‫بإسم‬ ‫داخله‬ ‫قيمة‬ ‫لدينا‬ ‫مثل‬ ‫منه‬ ‫والفائدة‬Abboudi‫المشروع‬ ‫في‬ ‫تستطيع‬ ‫إذا‬ ,‫عبدالقادر‬ ‫لها‬ ‫والقيمة‬
‫سترنج‬ ‫نص‬ ‫استخدام‬Abboudi.‫وهكذا‬ ‫عبدالقادر‬ ‫إنه‬ ‫على‬ ‫طباعته‬ ‫يتم‬ ‫وسوف‬
‫الريس‬ ‫في‬ ‫والسترنج‬res: ‫ثلثة‬ ‫أنواع‬ ‫عدة‬ ‫على‬String‫النصوص‬ ‫من‬ ‫لسلسلة‬ ‫أما‬ ,‫المفرد‬ ‫للنص‬ ‫وهو‬
‫فنستخدم‬String Array‫فنستخدم‬ ‫والجموع‬ ‫للكميات‬ ‫وأما‬Plurals.
40
‫بين‬ ‫الفرق‬ ‫يوضح‬ ‫كود‬ ‫وهذا‬‫منها‬ ,‫ل‬‫ك‬:
// String
<string name="string_name">text_string</string>
// String Array
<string-array
name="string_array_name">
<item>text_string</item>
</string-array>
// Quantity Strings (Plurals)
<plurals
name="plural_name">
<item quantity=["zero" | "one" | "two" | "few" | "many" | "other"]>text_string</item>
</plurals>
-styles.xml:‫ملفات‬ ‫في‬ ‫معرف‬ ‫استايل‬ ‫نضع‬ ‫الغالب‬ ‫في‬ ,‫للتطبيق‬ ‫المستخدم‬ ‫الثيم‬ ‫او‬ ‫الستايل‬ ‫ملف‬
‫منها‬ ‫كثيرة‬ ‫أمور‬ ‫في‬ ‫منه‬ ‫الستفادة‬ ‫وتستطيع‬ ,‫لمشروعنا‬ ‫به‬ ‫الخاصة‬ ‫القيم‬ ‫يعطي‬ ‫وهو‬ ‫الندرويد‬
.‫مستقل‬ ‫بموضوع‬ ‫عليه‬ ‫نتعرف‬ ‫وسوف‬ .‫إلخ‬ ‫واللوان‬ ‫بمشروعك‬ ‫النص‬ ‫بالحجم‬ ‫التحكم‬
-colors.xml:‫لها‬ ‫ونضع‬ ‫الوان‬ ‫مجموعة‬ ‫نضع‬ ‫مثل‬ ,‫مشروعك‬ ‫في‬ ‫واستخدامها‬ ‫لللوان‬ ‫قيم‬ ‫لوضع‬ ‫ملف‬
.‫وضعناها‬ ‫التي‬ ‫القيمة‬ ‫على‬ ‫التعرف‬ ‫ويتم‬ ‫المشروع‬ ‫في‬ ‫السم‬ ‫فقط‬ ‫نستخدم‬ ‫ثم‬ ‫من‬ ,‫اسماء‬
‫يخرجها‬ ‫التي‬ ‫والنواع‬ ,‫استخدامها‬ ‫خلل‬ ‫من‬ ‫عليها‬ ‫وتتعرف‬ ‫تتعلم‬ ‫سوف‬ ‫التي‬ ‫الملفات‬ ‫من‬ ‫وغيرها‬
: ‫هي‬ ‫الفايلوس‬ ‫مجلد‬
Bool – Color – Dimension – ID – Integer – Integer Array – Typed Array
‫تقوم‬ ‫اخرى‬ ‫ملفات‬ ‫بإستخدام‬ ‫وذلك‬ ,‫عنها‬ ‫الستغناء‬ ‫تستطيع‬ ‫والمجلدات‬ ‫الملفات‬ ‫من‬ ‫الكثير‬ ‫ويوجد‬
.‫الترتيب‬ ‫أجل‬ ‫من‬ ‫وضعت‬ ‫ولكنها‬ .‫المهمة‬ ‫بنفس‬
‫تكرار‬ ‫تستطيع‬ ,‫مشروعك‬ ‫في‬ ‫تستخدم‬ ‫ما‬ ‫جميع‬ ‫فيه‬ ‫تضع‬ ‫عندما‬ ‫إنك‬ ,‫الفايلوس‬ ‫مجلد‬ ‫يميز‬ ‫ما‬ ‫أهم‬
‫وسوف‬ ,‫اللغات‬ ‫متعدد‬ ‫تطبيق‬ ‫برمجة‬ ‫تستطيع‬ ‫وهكذا‬ ‫داخله‬ ‫القيم‬ ‫وتغيير‬ ,‫اخرى‬ ‫للغة‬ ‫الفايلوس‬ ‫مجلد‬
.‫مستقل‬ ‫موضوع‬ ‫في‬ ‫اللغات‬ ‫متعدد‬ ‫تطبيق‬ ‫بناء‬ ‫كيفية‬ ‫نشرح‬
41
‫ملف‬ ‫شرح‬AndroidManifest.xml
‫ملف‬ ‫مع‬ ‫يتقاسها‬ ‫أصبح‬ ‫ستوديو‬ ‫الندرويد‬ ‫مع‬ ‫ولكن‬ ,‫كثيرة‬ ‫صلحيات‬ ‫يمتلك‬ ‫كان‬ ‫هذا‬ ‫الملف‬
build.gradle‫يصلح‬ ‫ل‬ .‫المشروع‬ ‫وثيقة‬ ‫ملف‬ ‫إنه‬ ‫إعتباره‬ ‫تستطيع‬ ‫مهم‬ ‫جدا‬ ‫هو‬ ‫الملف‬ ‫هذا‬ ‫الن‬ ‫و‬
.‫دونه‬ ‫من‬ ‫المشروع‬
‫بوضع‬ ‫نقوم‬ ‫إننا‬ ‫وهي‬ ,‫داخله‬ ‫يوجد‬ ‫ما‬ ‫أهم‬ ‫نذكر‬ ‫سوف‬ ‫لكن‬ ,‫كثيرة‬ ‫وسوم‬ ‫داخله‬ ‫استخدام‬ ‫وتستطيع‬
‫تم‬ ‫حال‬ ‫وفي‬ ,‫الموجودة‬ ‫غير‬ ‫على‬ ‫التعرف‬ ‫يتم‬ ‫لن‬ ,‫كلها‬ ‫نضعها‬ ‫لم‬ ‫لو‬ ,‫بالمشروع‬ ‫لدينا‬ ‫اكتفتي‬ ‫إي‬
‫وطريقة‬ .‫داخله‬ ‫الموجودة‬ ‫غير‬ ‫على‬ ‫يتعرف‬ ‫لم‬ ‫لن‬ .‫العمل‬ ‫عن‬ ‫التطبيق‬ ‫يتم‬ ‫سوف‬ ‫بالمشروع‬ ‫تطلبها‬
: ‫أبسطها‬ ,‫سهلة‬ ‫جدا‬ ‫الكتفتي‬ ‫إضافة‬
<activity android:name=".Activity" />
(: ‫الكلسات‬ ‫وليس‬ ‫الكتفتي‬ ,‫لديك‬ ‫الكتفتي‬ ‫جميع‬ ‫اسماء‬ ‫وضع‬ ‫مع‬ ‫الطريقة‬ ‫بنفس‬
‫الوصول‬ ,‫للملفات‬ ‫الوصول‬ ‫مثل‬ ,‫تطبيقنا‬ ‫من‬ ‫نريدها‬ ‫التي‬ ‫الصلحيات‬ ‫نضع‬ ‫الملف‬ ‫هذا‬ ‫في‬ ‫كذلك‬ ‫و‬
.‫المختلفة‬ ‫الصلحيات‬ ‫من‬ ‫إلخ‬ ‫الكاميرا‬ ‫استخدام‬ ,‫بالنترنت‬ ‫والتصال‬
: ‫الشبكة‬ ‫لحالة‬ ‫الوصول‬ ‫صلحية‬ ‫مثال‬
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
‫دون‬ ‫من‬ ‫تعمل‬ ‫ل‬ ‫الكواد‬ ,‫التصال‬ ‫حالة‬ ‫من‬ ‫تتحقق‬ ‫لكي‬ ‫الكواد‬ ‫إلى‬ ‫تحتاج‬ ,‫فقط‬ ‫الصلحية‬ ‫هذه‬ ‫طبعا‬
‫حالة‬ ‫من‬ ‫للتحقق‬ ‫يحتاج‬ ‫انه‬ ‫التثبيت‬ ‫قبل‬ ‫مسبقا‬ ‫الجهاز‬ ‫يخبر‬ ‫لم‬ ‫تطبيقك‬ ‫ولكن‬ ‫تعمل‬ ‫لنها‬ ,‫الصلحية‬
.‫الشبكة‬
.‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تعمل‬ ‫سوف‬ ‫التي‬ ‫الكتفتي‬ ‫هي‬ ‫ما‬ ‫نحدد‬ ‫أن‬ ‫نستطيع‬ ‫الملف‬ ‫هذا‬ ‫من‬
,‫كذلك‬ ‫التطبيق‬ ‫ومعرف‬ ,‫وصلحيات‬ ‫اكتفتي‬ ‫من‬ ‫لديك‬ ‫ما‬ ‫كل‬ ‫فيه‬ ‫تضع‬ ‫إن‬ ‫مهم‬ ‫الملف‬ ‫هذا‬ ‫باختصار‬
‫يتجاوز‬ ‫حجمه‬ ‫تطبيقك‬ ‫كان‬ ‫لو‬ ‫مثل‬ ‫والسبب‬50‫لذلك‬ ,‫صعبة‬ ‫جدا‬ ‫تصبح‬ ‫سوف‬ ‫بالمتجر‬ ‫فقرائته‬ ,‫ميغا‬
‫به‬ ‫الخاص‬ ‫المعرف‬ ‫وما‬ ‫اسمه‬ ‫وما‬ ‫التطبيق‬ ‫ايقونة‬ ‫هي‬ ‫ما‬ ‫داخله‬ ‫من‬ ‫لنتعرف‬ ‫فقط‬ ‫الملف‬ ‫هذا‬ ‫قراءة‬ ‫يتم‬
‫من‬ ‫التحقق‬ ‫يتم‬ ‫بسهولة‬ ‫وهكذا‬ ..‫يحتاجها‬ ‫التي‬ ‫الصلحيات‬ ‫هي‬ ‫وما‬ ‫اكتفتي‬ ‫من‬ ‫لديك‬ ‫يوجد‬ ‫وما‬
.‫بالمتجر‬ ‫نشره‬ ‫على‬ ‫والموافقة‬ ‫تطبيقك‬
42
‫المشروع‬ ‫لموارد‬ ‫الوصول‬
.‫الصور‬ ‫مجلد‬ ‫بداخل‬ ‫موجودة‬ ‫وهي‬ ‫تطبيقك‬ ‫في‬ ‫لستخدامها‬ ‫مثل‬ ‫صورة‬ ‫إلى‬ ‫تصل‬ ‫كيف‬ ‫بمعنى‬
‫مثل‬ ‫محدد‬ ‫عنوان‬ ‫نستخدم‬ ‫ما‬ ‫موقع‬ ‫إلى‬ ‫الوصول‬ ‫عند‬ ‫المعروف‬ ‫من‬www.andrody.com‫معين‬ ‫لملف‬ ‫أو‬
.‫محدد‬ ‫مسار‬ ‫له‬ ‫الجهاز‬ ‫في‬
.‫برمجيا‬ ‫تستخدمها‬ ‫لكي‬ ‫مشروعك‬ ‫بداخل‬ ‫للملفات‬ ‫الوصول‬ ‫كيفية‬ ‫لمعرفة‬ ‫تحتاج‬ ‫كذلك‬
‫اسمه‬ ‫بمجلد‬ ‫جميعها‬ ‫الموارد‬ ‫إن‬ ‫سابقا‬ ‫ذكرنا‬ ‫بالتأكيد‬res‫بحرف‬ ‫إليه‬ ‫نشير‬ ‫وبرمجيا‬R.
‫عدا‬ ‫بإسمها‬ ‫إليها‬ ‫الوصول‬ ‫يتم‬ ‫المجلدات‬ ‫إن‬ ,‫النقاط‬ ‫بعض‬ ‫لنعرف‬ ‫المستقل‬ ‫الشرح‬ ‫هذا‬ ‫وضع‬ ‫ولكن‬
‫ما‬ ‫إلى‬ ‫الوصول‬ ‫يتم‬ ‫لذلك‬ ,‫إليها‬ ‫الضافة‬ ‫أو‬ ‫ملفاته‬ ‫اسماء‬ ‫تغيير‬ ‫تستطيع‬ ‫بداخله‬ ‫فالذي‬ ‫الفايلوس‬ ‫مجلد‬
.‫بداخله‬ ‫التي‬ ‫الملفات‬ ‫بداخل‬ ‫ما‬ ‫طريق‬ ‫عن‬ ‫بداخله‬
‫عدا‬ ‫الصيغة‬ ‫او‬ ‫اللحقة‬ ‫دون‬ ‫بإسمها‬ ‫المشروع‬ ‫مجلدات‬ ‫بداخل‬ ‫الملفات‬ ‫جميع‬ ‫إلى‬ ‫الوصول‬ ‫يتم‬ ‫كذلك‬
‫مجلد‬ ‫و‬ ‫المختلفة‬ ‫الوصول‬ ‫طرق‬ ‫بعض‬assets‫إضافة‬ ‫تستطيع‬ ‫بداخله‬ ‫لنك‬ ‫الملف‬ ‫صيغة‬ ‫تحدد‬ ‫أن‬ ‫يجب‬
.‫ومجلدات‬ ‫ملفات‬ ‫من‬ ‫تريد‬ ‫ما‬
: ‫مثال‬
‫إسمها‬ ‫صورة‬ ‫لدينا‬ -image.jpg‫مجلد‬ ‫في‬ ‫وضعناها‬drawable.
: ‫هكذا‬ ‫إليها‬ ‫الوصول‬ ‫يتم‬R.drawable.image
‫معرف‬ ‫لدينا‬ -id‫اسمه‬ ‫مثل‬ ‫عنصر‬ ‫لي‬test.
: ‫إليه‬ ‫الوصول‬ ‫يتم‬R.id.test
: ‫بالكتفتي‬ ‫لربطها‬ ‫اللياوت‬ ‫الواجهات‬ ‫ملفات‬ ‫إلى‬ ‫الوصول‬ -R.layout.activity_main
‫بداخل‬ ‫ما‬ ‫بشأن‬ ‫وأما‬‫مجلد‬Values:
‫قيمة‬ ‫مثل‬string‫اسمها‬app_name‫اسمه‬ ‫ملف‬ ‫بداخل‬test.xml‫مجلد‬ ‫بداخل‬values.
: ‫القيمة‬ ‫لهذه‬ ‫الوصول‬R.string.app_name
43
.‫والسم‬ ‫النوع‬ ‫فقط‬ .‫المجلد‬ ‫ول‬ ‫الملف‬ ‫اسم‬ ‫ل‬ ‫يهمنا‬ ‫لم‬ ‫لحظ‬
‫بداخل‬ ‫الموارد‬ ‫بشأن‬ ‫وأما‬‫مجلد‬assets:
‫بداخل‬ ‫ليس‬ ‫المجلد‬ ‫هذا‬ ‫إن‬ ‫لحظ‬res,‫تستخدمها‬ ‫التي‬ ‫الطريقة‬ ‫حسب‬ ‫يختلف‬ ‫إليه‬ ‫الوصول‬ ‫لذلك‬
.‫منه‬ ‫الوصول‬ ‫تحتاج‬ ‫الذي‬ ‫الموقع‬ ‫بحسب‬ ‫الطريقة‬ ‫تختلف‬ .‫جدا‬ ‫كثيرا‬ ‫طرق‬ ‫ويوجد‬
‫ويب‬ ‫لصفحة‬ ‫الوصول‬ : ‫مثال‬html‫عنصر‬ ‫بداخل‬ ‫هذه‬ ‫الويب‬ ‫صفحة‬ ‫استخدام‬ ‫ونحتاج‬ ,‫المجلد‬ ‫هذا‬ ‫داخل‬
: ‫كسترنج‬ ‫إليها‬ ‫نصل‬ ‫الجافا‬ ‫من‬ .‫فيو‬ ‫ويب‬
"file:///android_asset/name.html"
‫إسمه‬ ‫مثل‬ ‫خط‬ ‫ملف‬ ‫إلى‬ ‫الوصول‬ ‫أو‬test.ttf‫الجافا‬ ‫من‬ ‫برمجيا‬ ‫خط‬ ‫تعريف‬ ‫في‬ ‫الخط‬ ‫نحتاج‬ ‫سوف‬ ‫إذا‬
: ‫الشكل‬ ‫بهذا‬
getAssets(),"test.ttf"
.‫والنوع‬ ‫الستخدام‬ ‫حسب‬ ‫على‬ ‫وهكذا‬
‫ملفات‬ ‫في‬ ‫لستخدامها‬ ‫إما‬ ,‫الجافا‬ ‫في‬ ‫برمجيا‬ ‫الموارد‬ ‫لستخدام‬ ‫هو‬ ‫الموضوع‬ ‫هذا‬ ‫في‬ ‫سبق‬ ‫ما‬ ‫كل‬
xml: ‫التالية‬ ‫بالطريقة‬
@ : ‫للسترنج‬ ‫الوصول‬string/app_name
@ : ‫لستايل‬ ‫الوصول‬style/AppTheme
@ : ‫لصورة‬ ‫الوصول‬drawable/image
.‫أكبر‬ ‫بشكل‬ ‫عليه‬ ‫تتعرف‬ ‫سوف‬ ‫الستخدام‬ ‫مع‬ ‫فقط‬ .. ‫بسيط‬ ‫جدا‬ ‫جدا‬ ‫المر‬ ‫وهكذا‬
‫للتطبيق‬ ‫العام‬ ‫الستايل‬ ‫تحرير‬
: ‫التالي‬ ‫بالشكل‬ ‫كان‬ ‫مشروع‬ ‫أول‬ ‫إنشاء‬ ‫بعد‬ ‫الستايل‬ ‫ملف‬ ‫لحظنا‬ ‫لو‬
44
– ‫يوجد‬ ‫للخطار‬ ‫العلوية‬ ‫الزاوية‬ ‫في‬ ‫لحظ‬Open editor: ‫المحرر‬ ‫لك‬ ‫يفتح‬ ‫سوف‬
‫او‬ ‫لغة‬ ‫من‬ ‫لكثر‬ ‫معاينة‬ ‫وتستطيع‬ . ‫ديزاين‬ ‫الماتريال‬ ‫تصميم‬ ‫هو‬ ‫وهذا‬ ,‫يناسبك‬ ‫بما‬ ‫الختيار‬ ‫تستطيع‬
‫بالـ‬ ‫لديك‬ ‫المحمل‬ ‫حسب‬ ‫إلخ‬ ‫والتجاه‬ ‫اصدار‬SDK.‫مختلفة‬ ‫وقياسات‬ ‫إصدارات‬ ‫من‬
@ ‫الستايل‬ ‫لديك‬ ‫يعمل‬ ‫ل‬ ‫ومن‬style/Theme.AppCompat.NoActionBar
‫الـ‬ ‫من‬ ‫يتأكد‬build.gradle: ‫الدعم‬ ‫مكتبة‬ ‫مضاف‬ ‫لديه‬ ‫إن‬
compile 'com.android.support:appcompat-v7:23.1.0'
‫الرقم‬ ‫يتغير‬ ‫لديك‬ ‫الصدار‬ ‫حسب‬23.1.0.
‫وكذلك‬ .‫للتطبيق‬ ‫الكامل‬ ‫بالتعديل‬ ‫تستطيع‬ ‫لكي‬ ‫أساسيات‬ ‫وإضافة‬ ‫يدويا‬ ‫الستايل‬ ‫تعديل‬ ‫يمكنك‬ ‫كما‬
‫اعتبرها‬ ‫ولكن‬ ‫إلخ‬ ‫معينة‬ ‫للغة‬ ‫أو‬ ‫معين‬ ‫لجهاز‬ ‫كان‬ ‫إن‬ ‫بالكامل‬ ‫تعديله‬ ‫الستايل‬ ‫خلل‬ ‫من‬ ‫تستطيع‬
‫لحقة‬ ‫كتب‬ ‫في‬ ‫شرحها‬ ‫يتم‬ ‫ال‬ ‫شاء‬ ‫إن‬ .‫ما‬ ‫نوعا‬ ‫متقدمة‬ ‫مراحل‬
45
‫للتطبيق‬ ‫أيقونة‬ ‫إضافة‬
‫الصورة‬ ‫وضع‬ ‫تستطيع‬ ‫طبعا‬ ,‫سابقا‬ ‫إنشائه‬ ‫كما‬ ‫الول‬ ‫لتطبيقنا‬ ‫أيقونة‬ ‫إضافة‬ ‫كيفية‬ ‫الن‬ ‫نتعلم‬ ‫سوف‬
‫فبرنامج‬ ,‫الجهزة‬ ‫لجميع‬ ‫الدقة‬ ‫حيث‬ ‫من‬ ‫متوافقة‬ ‫اليقونة‬ ‫لتجعل‬ ‫قليل‬ ‫متعب‬ ‫المر‬ ‫لكن‬ ‫يدوي‬ ‫بشكل‬
.‫ذلك‬ ‫عنك‬ ‫يستلم‬ ‫ستوديو‬ ‫الندرويد‬
‫لمجلد‬ ‫فتحنا‬ ‫عند‬ ‫البداية‬ ‫في‬mipmap‫سوف‬ .‫اليقونات‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬ ‫انه‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬
: ‫الصورة‬ ‫في‬ ‫كما‬ ‫مرات‬ ‫خمس‬ ‫متكررة‬ ‫للتطبيق‬ ‫الفتراضية‬ ‫اليقونة‬ ‫نجد‬
‫الحجام‬ ‫بمختلف‬ ‫تكرراها‬ ‫تم‬ ‫اليقونة‬ ‫هذه‬
‫الجهزة‬ ‫مختلف‬ ‫مع‬ ‫لتتناسب‬ ‫والقياسات‬
.‫صغيرة‬ ‫أو‬ ‫كبيرة‬ ‫كانت‬ ‫سواء‬
.‫منها‬ ‫نسخ‬ ‫الخمسة‬ ‫حذف‬ ‫ليتم‬ ‫الصورة‬ ‫هذه‬ ‫بحذف‬ ‫نقوم‬ ‫الن‬
‫ونختار‬ ‫اليمن‬ ‫بالزر‬ ‫المجلد‬ ‫على‬ ‫بالضغط‬ ‫نقوم‬ : ‫الحذف‬ ‫بعد‬New‫ثم‬Image Asset.
: ‫التالية‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬
46
: ‫الموضحة‬ ‫للرقام‬ ‫بالنسبة‬ ‫أما‬ ,‫لليقونة‬ ‫معاينة‬ ‫لك‬ ‫يظهر‬ ‫النافذة‬ ‫من‬ ‫اليمن‬ ‫الجزء‬ ‫في‬
1‫لشريط‬ ‫أو‬ ‫التابات‬ ‫و‬ ‫بار‬ ‫للكشن‬ ‫ازرار‬ ‫أو‬ ,‫للتطبيق‬ ‫ايقونة‬ ‫هي‬ ‫هل‬ .. ‫؟‬ ‫اليقونة‬ ‫هذه‬ ‫تريد‬ ‫لماذا‬ /
.‫الشعارات‬
2.. !‫؟‬ ‫نص‬ ‫أو‬ ,‫البرنامج‬ ‫من‬ ‫تختارها‬ ‫فنية‬ ‫قصاصة‬ ‫أو‬ ,‫جهازك‬ ‫من‬ ‫صورة‬ ‫تريدها‬ ‫هل‬ /
3.‫جهازك‬ ‫من‬ ‫الصورة‬ ‫مسار‬ ‫منه‬ ‫لتختار‬ ‫المسار‬ /
4.‫تقليصها‬ ‫بتم‬ ‫بالصورة‬ ‫فارغة‬ ‫مساحة‬ ‫في‬ ‫كان‬ ‫إذا‬ /
5.‫اليقونة‬ ‫وتصغير‬ ‫تكبير‬ ‫آخر‬ ‫بمعنى‬ ‫الصورة‬ ‫بحشو‬ ‫التحكم‬ /
6‫قص‬ ‫يتم‬ ‫او‬ ‫الشكل‬ ‫وسط‬ ‫لتصبح‬ ‫الصورة‬ ‫تقليص‬ ‫يتم‬ ‫هل‬ ‫شكل‬ ‫داخل‬ ‫الصورة‬ ‫وضعنا‬ ‫لو‬ ‫بمعنى‬ /
.‫الشكل‬ ‫لتناسب‬ ‫الصورة‬
7.‫النص‬ ‫او‬ ‫الصورة‬ ‫او‬ ‫القصاصة‬ ‫وداخله‬ ‫كإطار‬ ‫إلخ‬ ‫مربع‬ ‫أو‬ ‫دائرة‬ ,‫شكل‬ ‫لتحديد‬ /
8.‫الشكل‬ ‫لون‬ ‫أو‬ ‫خلفية‬ /
47
9.‫للتطبيق‬ ‫اليقونة‬ ‫استخدم‬ ‫أردت‬ ‫إن‬ ‫هو‬ ‫كما‬ ‫واتركه‬ ‫اليقونة‬ ‫اسم‬ /
: ‫كمثال‬ ‫النص‬ ‫استخدمنا‬ ‫لو‬ ‫مثل‬ .‫اخرى‬ ‫خيارات‬ ‫اختيار‬ ‫مع‬ ‫تختلف‬ ‫أحيانا‬ ‫الخيارات‬ ‫جميع‬ ‫إن‬ ‫العلم‬ ‫مع‬
: ‫بالبرنامج‬ ‫حاليا‬ ‫الموجودة‬ ‫الفنية‬ ‫القصاصات‬ ‫وأما‬
‫التالي‬ ‫على‬ ‫إضغط‬ ‫تريد‬ ‫التي‬ ‫اليقونة‬ ‫إنشاء‬ ‫بعد‬Next‫انتهاء‬ ‫ثم‬Finish.‫بنجاح‬ ‫الضافة‬ ‫وتم‬ .
48
‫الندرويد‬ ‫جهاز‬ ‫واجهة‬ ‫على‬ ‫التعرف‬
‫زر‬ ‫الول‬ , ‫هاردوير‬ ‫إي‬ ,‫الشاشة‬ ‫خارج‬ ‫أزرار‬ ‫ثلث‬ ‫فيها‬ ‫يوجد‬ ‫الندرويد‬ ‫جوالت‬ ‫في‬ ‫إن‬ ‫معرفته‬ ‫يهمنا‬ ‫ما‬
‫زر‬ ‫هو‬ ‫الثالث‬ ‫والزر‬ ,‫النظام‬ ‫لرئيسية‬ ‫النتقال‬ ‫او‬ ‫الهوم‬ ‫او‬ ‫المنزل‬ ‫زر‬ ‫والوسط‬ ,‫للخلف‬ ‫الرجوع‬ ‫زر‬ ‫او‬ ‫الباك‬
‫نوافذ‬ ‫لعرض‬ ‫زر‬ ‫لصبح‬ ‫هذه‬ ‫مهتمه‬ ‫عن‬ ‫الستغناء‬ ‫يبدأ‬ ‫الحديثة‬ ‫الجوالت‬ ‫في‬ ‫حاليا‬ ‫الثالث‬ ‫والزر‬ ,‫القائمة‬
.‫بار‬ ‫الكشن‬ ‫يسمى‬ ‫التطبيق‬ ‫على‬ ‫شريط‬ ‫في‬ ‫أساسا‬ ‫موجود‬ ‫القائمة‬ ‫زر‬ ‫ويصبح‬ .‫الخيرة‬ ‫التطبيقات‬
‫الزرار‬ ,‫خارجية‬ ‫أزرار‬ ‫لديها‬ ‫يوجد‬ ‫ل‬ ‫أخرى‬ ‫أجهزة‬ ‫يوجد‬ ‫ولكن‬ ‫السامسونج‬ ‫جوالت‬ ‫عنه‬ ‫أتكلم‬ ‫الذي‬
‫والبعض‬ ‫بار‬ ‫الكشن‬ ‫شريط‬ ‫على‬ ‫تجده‬ ‫الجهزة‬ ‫بعض‬ ‫مثل‬ ‫القائمة‬ ‫فزر‬ .‫الشاشة‬ ‫على‬ ‫تصبح‬ ‫نفسها‬
.‫أساسي‬ ‫السفل‬ ‫في‬ ‫الشاشة‬ ‫على‬ ‫زر‬ ‫والبعض‬ ‫للجهاز‬ ‫خارجي‬ ‫زر‬ ‫في‬ ‫منها‬
‫الرجوع‬ ‫لزر‬ ‫نريدها‬ ‫التي‬ ‫الوامر‬ ‫إعطاء‬ ‫فنستطيع‬ .‫برمجيا‬ ‫معها‬ ‫نتعامل‬ ‫سوف‬ ‫لننا‬ ‫المعلومات‬ ‫هذه‬ ‫ونذكر‬
.‫للرئيسية‬ ‫الساسي‬ ‫الزر‬ ‫وحتى‬ ‫القائمة‬ ‫زر‬ ‫وكذلك‬ ,‫أخرى‬ ‫مهام‬ ‫ممكن‬ ‫به‬ ‫يقوم‬ ‫الذي‬ ‫ما‬
49
‫واجهة‬ ‫على‬ ‫التعرف‬Layouts
‫لغة‬ ‫على‬ ‫تعتمد‬ ‫إنها‬ ‫سابقا‬ ‫ذكرنا‬ ‫الواجهة‬ ‫أو‬ ‫اللياوت‬XML‫كيف‬ ‫نتعرف‬ ‫سوف‬ ‫الن‬ ‫ولكن‬ ‫البناء‬ ‫في‬
‫كيف‬ ‫نتعلم‬ ‫سوف‬ ‫القادمة‬ ‫الدروس‬ ‫في‬ ‫ثم‬ ‫من‬ . ‫العناصر‬ ‫وإضافة‬ ‫بتحريرها‬ ‫نقوم‬ ‫وكيف‬ ‫معها‬ ‫نتعامل‬
.‫حقيقي‬ ‫بشكل‬ ‫الواجهات‬ ‫هذه‬ ‫بمعاينة‬ ‫نقوم‬
1.‫حاليا‬ ‫المفتوحة‬ ‫الملفات‬ ‫توجد‬ ‫الولى‬ ‫النقطة‬ ‫عند‬ /
2‫وارتفاع‬ ‫عرض‬ ‫مساحة‬ ‫تكبير/تقليص‬ + ,‫إلخ‬ ‫يسار‬ ‫يمين‬ ‫العنصر‬ ‫جهة‬ ‫يوجد‬ ‫الثانية‬ ‫النقطة‬ ‫عند‬ /
.‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫وفتح‬ ,‫العرض‬ ‫شاشة‬ ‫وتصغير‬ ‫تكبير‬ ,‫الثانية‬ ‫للنقطة‬ ‫اليمن‬ ‫الطرف‬ ‫ومن‬ , .‫العنصر‬
3‫هذه‬ ‫معاينة‬ ,‫اللياوت‬ ‫لهذه‬ ‫مختلفة‬ ‫قياسات‬ ‫إنشاء‬ ,‫اللياوت‬ ‫لهذه‬ ‫أفقية‬ ‫جهة‬ ‫إنشاء‬ ,‫أزرار‬ ‫عدة‬ ‫يوجد‬ /
,‫والعكس‬ ‫اليسار‬ ‫الى‬ ‫اليمين‬ ‫من‬ ‫مختلف‬ ‫اتجاه‬ ‫على‬ ‫اللياوت‬ ‫معاينة‬ ,‫القياسات‬ ‫مختلف‬ ‫على‬ ‫اللياوت‬
‫تغيير‬ ,‫اللياوت‬ ‫لهذه‬ ‫مؤقتة‬ ‫لمعاينة‬ ‫معين‬ ‫جهاز‬ ‫اختيار‬ ,‫الندرويد‬ ‫إصدارات‬ ‫مختلف‬ ‫على‬ ‫معاينتها‬ ‫كذلك‬
‫ربط‬ ,‫جافا‬ ‫بملف‬ ‫اللياوت‬ ‫هذه‬ ‫ربط‬ ,‫استايلت‬ ‫عدة‬ ‫على‬ ‫العمل‬ ‫معاينة‬ ,‫الفقي‬ ‫للتجاه‬ ‫اللياوت‬ ‫اتجاه‬
‫لغات‬ ‫عدة‬ ‫على‬ ‫اللياوت‬ ‫معاينة‬ ,‫اللياوت‬ ‫هذه‬ ‫عن‬ ‫المسؤول‬ ‫الجافا‬ ‫ملف‬ ‫هو‬ ‫إين‬ ‫لتتذكر‬ ‫فقط‬ ‫وهمي‬
‫حزم‬ ‫في‬ ‫لديك‬ ‫تنزيلها‬ ‫تم‬ ‫التي‬ ‫الصدارات‬ ‫حسب‬ ‫إندرويد‬ ‫إصدارات‬ ‫على‬ ‫ومعاينتها‬SDK.
50
4.‫إلخ‬ ,‫المختلفة‬ ‫اللياوت‬ ‫وأنواع‬ ‫والزر‬ ‫والصورة‬ ‫النص‬ ‫مثل‬ ,‫اللياوت‬ ‫في‬ ‫تستخدمها‬ ‫سوف‬ ‫التي‬ ‫العناصر‬ /
5‫متداخلها‬ ‫العناصر‬ ‫إضافة‬ ‫تستطيع‬ ,, ‫وأبن‬ ‫أب‬ ‫عن‬ ‫قلنا‬ ‫ما‬ ‫وهذا‬ ,‫للعناصر‬ ‫الشجري‬ ‫النمط‬ ‫تجد‬ ‫هنا‬ /
.‫اخرى‬ ‫عناصر‬ ‫داخلها‬ ‫تضع‬ ‫إن‬ ‫تسمح‬ ‫من‬ ‫هي‬ ‫فقط‬ ‫العناصر‬ ‫من‬ ‫اللياوت‬ ‫وأنواع‬ ,‫ببعضها‬
6.‫إلخ‬ ‫والمعرف‬ ‫والتجاه‬ ‫والحجم‬ ‫واللون‬ ‫والنص‬ ‫والعرض‬ ‫الطول‬ ‫مثل‬ ,‫عليه‬ ‫المحدد‬ ‫للعنصر‬ ‫الخصائص‬ /
7‫التصميم‬ ‫واجهة‬ ‫أو‬ ‫التصميم‬ ‫شاشة‬ ‫بمعنى‬ ‫إي‬ ,‫فيو‬ ‫والتكست‬ ‫فيو‬ ‫الديزاين‬ ‫شاشة‬ ‫بين‬ ‫ما‬ ‫التنقل‬ /
‫الكتابة‬ ‫على‬ ‫فتعتمد‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫إما‬ ,‫العناصر‬ ‫وحذف‬ ‫بإضافة‬ ‫للمبتدئين‬ ‫سهلة‬ ‫هي‬ ‫والتي‬
‫أكواد‬XML.‫شئت‬ ‫كيف‬ ‫هنا‬ ‫أو‬ ‫هنا‬ ‫من‬ ‫التعديل‬ ‫تستطيع‬ ‫إي‬ ,‫اللياوت‬ ‫لنفس‬ ‫والثنين‬ .
‫استخدامها‬ ‫عند‬ ‫منفصل‬ ‫بشكل‬ ‫السابقة‬ ‫النقاط‬ ‫أغلب‬ ‫شرح‬ ‫يتم‬ ‫سوف‬
: ‫بالعرض‬ ‫الخاصة‬ ‫بالزرار‬ ‫التحكم‬ ‫خلل‬ ‫من‬ ‫نماذج‬ ‫عدة‬
51
‫في‬ ‫أكبر‬ ‫صلحية‬ ‫تعطيني‬ ,‫المعاينة‬ ‫مع‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫هي‬ ,‫أفضلها‬ ‫وضعية‬ ‫أكثر‬ ‫لي‬ ‫بالنسبة‬
: ‫الصورة‬ ‫في‬ ‫كما‬ ,‫معها‬ ‫يتعامل‬ ‫وكيف‬ ‫الخصائص‬ ‫يعرف‬ ‫لمن‬ ‫ومفيدة‬ ,‫التعديل‬
‫ويوجد‬ ,‫داخلها‬ ‫الخصائص‬ ‫هي‬ ‫وما‬ ,‫فائدتها‬ ‫وما‬ ,‫العناصر‬ ‫هذه‬ ‫على‬ ‫قادمة‬ ‫دروس‬ ‫في‬ ‫نتعرف‬ ‫سوف‬
‫على‬ ‫اقرأ‬ ‫تتسرع‬ ‫ل‬ ‫القارئ‬ ‫أخي‬ ‫ولكن‬ .. ‫جميعها‬ ‫عليها‬ ‫نتعرف‬ ‫سوف‬ ,‫العناصر‬ ‫لبعض‬ ‫أساسية‬ ‫خصائص‬
.‫تماما‬ ‫جديدة‬ ‫هي‬ ‫غيرك‬ ‫على‬ ‫ولكن‬ ,‫وبسيطة‬ ‫سهلة‬ ‫المور‬ ‫هذه‬ ‫كانت‬ ‫ولو‬ ‫حتى‬ ,‫بإحكام‬ ‫وطبق‬ ‫مهلك‬
‫ومن‬ ,‫اللياوت‬ ‫شاشة‬ ‫على‬ ‫ووضعه‬ ‫العنصر‬ ‫بسحب‬ ‫قم‬ ‫فقط‬ ,‫فيو‬ ‫الديزاين‬ ‫شاشة‬ ‫من‬ ‫العناصر‬ ‫لضافة‬
‫تريدها‬ ‫التي‬ ‫الخصائص‬ ‫كتابة‬ ‫بعد‬ ‫إغلقه‬ ‫مع‬ ‫تريد‬ ‫الذي‬ ‫العنصر‬ ‫>وسم‬ ‫بفتح‬ ‫قم‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬
.‫داخله‬
52
‫محاكي‬ ‫إنشاء‬AVD
‫والتأكد‬ ‫للمعاينة‬ ‫تطبيقنا‬ ‫عليه‬ ‫تشغيل‬ ‫لنستطيع‬ ‫افتراضي‬ ‫محاكي‬ ‫بإنشاء‬ ‫نقوم‬ ‫كيف‬ ‫الن‬ ‫نتعلم‬ ‫سوف‬
‫من‬ ‫المحاكي‬ ‫بإنشاء‬ ‫تقوم‬ ‫أن‬ ‫قبل‬ .‫أندرويد‬ ‫جهاز‬ ‫لديه‬ ‫ليس‬ ‫لمن‬ ‫جدا‬ ‫ومهم‬ ,‫أخطاء‬ ‫إي‬ ‫من‬ ‫خلوه‬ ‫من‬
‫من‬ ‫كبيرة‬ ‫كمية‬ ‫يأخذ‬ ‫وإن‬ ‫بطئه‬ ‫من‬ ‫اشتكو‬ ‫الكثيرون‬ ‫يوجد‬ ‫إنه‬ ‫أوضح‬ ‫إن‬ ‫أحب‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬
‫للدرس‬ ‫وأنتقل‬ ‫الدرس‬ ‫هذا‬ ‫بتخطي‬ ‫قم‬ ,‫العالية‬ ‫بالمواصفات‬ ‫ليس‬ ‫جهازك‬ ‫كان‬ ‫إذا‬ ‫لذلك‬ ,‫إلخ‬ ‫الذاكرة‬
‫المحاكي‬ ‫عن‬ ‫يغنيك‬ ‫فهو‬ ‫ستوديو‬ ‫الندرويد‬ ‫في‬ ‫واستخدامه‬ ‫موشن‬ ‫الجيني‬ ‫محاكي‬ ‫تثبيت‬ ‫في‬ ‫القادم‬
.‫ستوديو‬ ‫الندرويد‬ ‫من‬ ‫الفتراضي‬
‫حزمة‬ ‫بفتح‬ ‫نقوم‬ ‫البداية‬ ‫في‬SDK‫أعلى‬ ‫عليه‬ ‫تعمل‬ ‫الذي‬ ‫الحالي‬ ‫للصدار‬ ‫ونذهب‬API‫وتقوم‬ ,‫لديك‬
‫بتحميل‬Google APIs ARM EABI v7a System Image‫دعم‬ ‫تحميل‬ ‫عدم‬ ‫أجل‬ ‫من‬ ‫لك‬ ‫أفضلها‬ ‫هذا‬
‫من‬ ‫بعض‬ ‫تجربة‬ ‫في‬ ‫تحتاجها‬ ,‫المحاكي‬ ‫في‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬ ‫تشغيل‬ ‫إلى‬ ‫بالضافة‬ ‫انتل‬ ‫لمعالج‬
.‫إلخ‬ ‫للتراسل‬ ‫جوجل‬ ‫سحابة‬ ‫او‬ ‫جوجل‬ ‫خرائط‬ ‫مثل‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬
‫إلى‬ ‫توجه‬ .. ‫التحميل‬ ‫من‬ ‫النتهاء‬ ‫بعد‬AVD.‫ستوديو‬ ‫الندرويد‬ ‫في‬ ‫به‬ ‫الخاصة‬ ‫اليقونة‬ ‫خلل‬ ‫من‬
: ‫إلى‬ ‫التوجه‬ ‫خلل‬ ‫من‬ ‫أو‬Tools >
Android > AVD Manager
‫في‬ ‫كما‬ ‫جديدة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬
<< ‫الصورة‬
: ‫على‬ ‫على‬ ‫اضغط‬
Create Virtual Device
53
.‫يناسبك‬ ‫الذي‬ ‫الحجم‬ ‫أو‬ ‫الشاشة‬ ‫منها‬ ‫اختار‬ ,‫أخرى‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬
.‫تطبيقك‬ ‫لمعاينة‬ ‫الجهزة‬ ‫لمختلف‬ ‫محاكي‬ ‫اختيار‬ ‫تستطيع‬ ‫لحظ‬ ‫طبعا‬
‫التالي‬ ‫اضغط‬ ‫الختيار‬ ‫بعد‬ .‫الصورة‬ ‫في‬ ‫ترى‬ ‫كما‬ ‫اخترت‬ ‫وأنا‬ ‫الموبايل‬ ‫لجهزة‬ ‫يهمنا‬ ‫ما‬Next.
54
‫التالي‬ ‫واضغط‬ ,‫بتحميله‬ ‫قمت‬ ‫ما‬ ‫اختر‬Next.
‫انتهاء‬ ‫على‬ ‫واضغط‬ ,‫هي‬ ‫كما‬ ‫الخيارات‬ ‫اترك‬Finish.
‫لتحربة‬ ‫محاكي‬ ‫من‬ ‫أكثر‬ ‫إنشاء‬ ‫تستطيع‬ ,‫إنشائها‬ ‫تم‬ ‫التي‬ ‫الجهزة‬ ‫جميع‬ ‫وفيها‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬
.‫المختلفة‬ ‫الشاشات‬ ‫وأحجام‬ ‫الجهزة‬ ‫مختلف‬ ‫على‬ ‫تطبيقك‬
‫وفي‬ , ‫كثيرا‬ ‫تنتظر‬ ‫سوف‬ ‫تشغيل‬ ‫مرة‬ ‫أول‬ ‫في‬ .‫المحاكي‬ ‫بتشغيل‬ ‫للبدء‬ ,‫الخضر‬ ‫المثلث‬ ‫على‬ ‫اضغط‬
.‫جهازك‬ ‫سرعة‬ ‫حسب‬ ‫وذلك‬ .‫الولى‬ ‫المرة‬ ‫من‬ ‫أقل‬ ‫لكن‬ ‫كذلك‬ ‫تنتظر‬ ‫سوف‬ ‫مرة‬ ‫كل‬
55
‫لنا‬ ‫محاكي‬ ‫أول‬ ‫إنشاء‬ ‫بعد‬ ‫هي‬ ‫والنتيجة‬AVD:
‫التشغيل‬ ‫علمة‬ ‫على‬ ‫نضغط‬ ‫فقط‬ ,‫الماضية‬ ‫الدروس‬ ‫في‬ ‫إنشئناه‬ ‫كما‬ ‫الول‬ ‫المشروع‬ ‫لتشغيل‬ ‫الن‬ ‫و‬
: ‫التالية‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫عليه‬ ‫الضغط‬ ‫بعد‬ .‫اللون‬ ‫أخضر‬ ‫مثلث‬ ,‫الدوات‬ ‫شريط‬ ‫من‬
56
‫أميوليتر‬ ‫كانت‬ ‫سواء‬ ,‫عليها‬ ‫تطبيقك‬ ‫معاينة‬ ‫وتستطيع‬ ‫الن‬ ‫تعمل‬ ‫التي‬ ‫الجهزة‬ ‫جميع‬ ‫النافذة‬ ‫هذه‬ ‫في‬
‫الحقيقي‬ ‫جهازك‬ ‫أو‬ ‫موشن‬ ‫الجيني‬ ‫محاكي‬ ‫أو‬usb: ‫النتيجة‬ ‫نرى‬ ‫الفتراضي‬ ‫المحاكي‬ ‫اختيار‬ ‫بعد‬ .
‫كيفية‬ ‫وكذلك‬ ,‫ستوديو‬ ‫الندرويد‬ ‫داخل‬ ‫من‬ ‫افتراضي‬ ‫محاكي‬ ‫إنشاء‬ ‫كيفية‬ ‫تعلمنا‬ ‫قد‬ ‫نكون‬ ‫وهكذا‬
.‫عليه‬ ‫المشروع‬ ‫تشغيل‬
‫موشن‬ ‫الجيني‬ ‫محاكي‬
‫من‬ ‫صحيح‬ ‫نعم‬ .. ‫الكثير‬ ‫وبشهادة‬ ,‫والسرع‬ ‫القوى‬ ‫بإنه‬ ‫نفسه‬ ‫وصف‬ ‫كما‬ ‫موشن‬ ‫الجيني‬ ‫اميوليتر‬
‫البعض‬ ‫أعتقد‬ ‫لذلك‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬ ‫يدعم‬ ‫ل‬ ‫إنه‬ ‫تنسى‬ ‫ل‬ ‫لكن‬ .. ‫رآئعة‬ ‫جدا‬ ‫كانت‬ ‫به‬ ‫تجربتي‬ ‫خلل‬
‫التطبيقات‬ ‫معاينة‬ ‫أجل‬ ‫من‬ ‫موشن‬ ‫الجيني‬ ‫استخدام‬ ‫يستطيع‬ ‫أو‬ ,‫معا‬ ‫الثنين‬ ‫يحتاج‬ ‫سوف‬ ‫منكم‬
‫المحاكي‬ ‫تحتاج‬ ‫وسوف‬ .‫جوجل‬ ‫خدمات‬ ‫مع‬ ‫تتعامل‬ ‫التي‬ ‫التطبيقات‬ ‫أجل‬ ‫من‬ ‫الحقيقي‬ ‫والجوال‬
‫جهاز‬ ‫من‬ ‫لكثر‬ ‫تحتاج‬ ‫هكذا‬ ,‫للتراسل‬ ‫جوجل‬ ‫سحابة‬ ‫على‬ ‫تشات‬ ‫بعمل‬ ‫قمت‬ ‫مثل‬ ‫حال‬ ‫في‬ ‫الفتراضي‬
57
.‫لذلك‬ ‫بالغرض‬ ‫يفي‬ ‫سوف‬ ‫الفتراضي‬ ‫والمحاكي‬
‫الجيني‬ ‫موقع‬ ‫إلى‬ ‫الذهاب‬ ‫علينا‬ ‫يجب‬ ‫البداية‬ ‫في‬ ,‫بالمطلوب‬ ‫نقوم‬ ‫سوف‬ ‫عليك‬ ‫الحديث‬ ‫أطيل‬ ‫ل‬ ‫كي‬
.‫لديه‬ ‫مجاني‬ ‫حساب‬ ‫وفتح‬ ‫موشن‬
: ‫موشن‬ ‫الجيني‬ ‫موقع‬ ‫إلى‬ ‫للدخول‬https://www.genymotion.com
‫زر‬ ‫على‬ ‫اضغط‬Sign in
‫حساب‬ ‫إنشاء‬ ‫على‬ ‫أضغط‬ ‫ثم‬Create account
.‫للتسجيل‬ ‫بك‬ ‫الخاصة‬ ‫المعلومات‬ ‫بمل‬ ‫قم‬
58
‫على‬ ‫اضغط‬ ,‫البيانات‬ ‫من‬ ‫النتهاء‬ ‫بعد‬Create account
‫التحميل‬ ‫صفحة‬ ‫إلى‬ ‫ندخل‬ ,‫الحساب‬ ‫تسجيل‬ ‫بعد‬https://www.genymotion.com/#!/download
.‫الكاملة‬ ‫النسخة‬ ‫تحميل‬ ‫على‬ ‫ونضغط‬ ,‫جهازنا‬ ‫نظام‬ ‫نختار‬
59
‫برنامج‬ ‫بفتح‬ ‫نقوم‬ ‫التثبيت‬ ‫بعد‬ .‫آخر‬ ‫برنامج‬ ‫كإي‬ ‫جهازنا‬ ‫على‬ ‫بتثبيته‬ ‫نقوم‬ ,‫موشن‬ ‫الجيني‬ ‫تحميل‬ ‫بعد‬
‫موشن‬ ‫الجيني‬
.‫المرور‬ ‫وكلمة‬ ‫اليميل‬ ,‫الموقع‬ ‫في‬ ‫بها‬ ‫سجلت‬ ‫التي‬ ‫المعلومات‬ ‫منك‬ ‫يطلب‬ ‫سوف‬ ‫البرنامج‬ ‫فتح‬ ‫بعد‬
.‫نعم‬ ‫له‬ ‫تقول‬ ‫؟‬ ‫جهاز‬ ‫إضافة‬ ‫تريد‬ ‫هل‬ ‫جهاز‬ ‫إي‬ ‫لديك‬ ‫يوجد‬ ‫ل‬ ‫إنه‬ ‫يخبرك‬ ‫الدخال‬ ‫بعد‬
‫اضافة‬ ‫على‬ ‫بالضغط‬ ‫قم‬ ‫أو‬Add
‫المستوى‬ ‫حسب‬ ,‫يناسبك‬ ‫ما‬ ‫منها‬ ‫اختر‬ ,‫أجهزة‬ ‫عدة‬ ‫فيها‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬API‫الحجم‬ ‫او‬
‫اجهزة‬ ‫ويوجد‬ . ‫والدقة‬
‫و‬ ‫وسوني‬ ‫سامسونج‬
htc.‫وغيرها‬
‫اضغط‬ ‫الختيار‬ ‫بعد‬
‫التالي‬Next.
60
‫النتهاء‬ ‫وبعد‬ .‫النترنت‬ ‫من‬ ‫المحاكي‬ ‫بهذا‬ ‫الخاصة‬ ‫الملفات‬ ‫تنزيل‬ ‫يتم‬ ‫سوف‬ .. ‫التالي‬ ‫كذلك‬ ‫اضغط‬
: ‫التشغيل‬ ‫نافذة‬ ‫في‬ ‫لك‬ ‫يظهر‬ ‫سوف‬
‫خيار‬ ‫من‬ ,‫مشاكل‬ ‫واجهت‬ ‫وإن‬Settings‫ثم‬ADB‫بحزمة‬ ‫متصل‬ ‫إن‬SDK‫لديك‬ ‫كانت‬ ‫فإن‬ ,‫الفتراضية‬
‫بشكل‬ ‫بتحديدها‬ ‫قم‬ ‫المسار‬ ‫مختلفة‬ ‫جهازك‬ ‫في‬
.‫يدوي‬
‫زر‬ ‫على‬ ‫بالضغط‬ ‫قم‬ ‫الن‬ ‫و‬Start‫تشغيل‬ ‫لبدأ‬
<< : ‫والنتيجة‬ .… ‫المحاكي‬
61
‫سوف‬ ‫المشروع‬ ‫تشغيل‬ ‫زر‬ ‫على‬ ‫والضغط‬ ‫ستوديو‬ ‫الندرويد‬ ‫في‬ ‫لمشروعنا‬ ‫الذهاب‬ ‫عند‬ ‫الن‬ ‫لحظ‬
.. ‫جهازين‬ ‫وفيها‬ ‫التشغيل‬ ‫نافذة‬ ‫تظهر‬
.. ‫موشن‬ ‫الجيني‬ ‫محاكي‬ ‫والثاني‬ .. ‫الفتراضي‬ ‫المحاكي‬ ‫الول‬ ‫الجهاز‬
: ‫موشن‬ ‫الجيني‬ ‫على‬ ‫التطبيق‬ ‫تشغيل‬ ‫وتجربة‬ .. ‫الن‬ ‫يعملن‬ ‫الثنين‬ ‫لنهما‬ ‫الثنين‬ ‫لك‬ ‫وعرضت‬
62
.. ‫المحاكي‬ ‫تشغيل‬ ‫ثم‬ ‫من‬ ‫موشن‬ ‫الجيني‬ ‫برنامج‬ ‫تشغيل‬ ‫علينا‬ ‫يجب‬ ‫إنه‬ ‫متعبة‬ ‫نجدها‬ ‫سوف‬ ‫والن‬
‫بشكل‬ ‫موشن‬ ‫الجيني‬ ‫تشغيل‬ ‫خلله‬ ‫من‬ ‫لنستطيع‬ ‫الندرويد‬ ‫لبرنامج‬ ‫إضافة‬ ‫بتنصيب‬ ‫نقوم‬ ‫سوف‬ ‫لذلك‬
.‫أسرع‬
‫على‬ ‫إضغط‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫من‬File‫اختر‬ ‫ثم‬Settings‫اختر‬ ,‫العدادات‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ,
‫الضافات‬ ‫منها‬Plugins.
‫زر‬ ‫على‬ ‫نضغط‬Browse repositories‫البحث‬ ‫شريط‬ ‫في‬ ‫داخلها‬ ‫ونكتب‬ ‫جديدة‬ ‫نافذة‬ ‫لنا‬ ‫لتخرج‬ ,geny
63
‫موشن‬ ‫الجيني‬ ‫نختار‬ ‫ثم‬ ‫من‬Genymotion‫على‬ ‫ونضغط‬Install plugin.
‫على‬ ‫اضغط‬ ‫التحميل‬ ‫بعد‬Restart Android Studio.‫نفسه‬ ‫تشغيل‬ ‫بإعادة‬ ‫استوديو‬ ‫الندرويد‬ ‫ليقوم‬
‫لك‬ ‫لتفتح‬ ‫عليه‬ ‫اضغط‬ ,‫موشن‬ ‫الجيني‬ ‫شعار‬ ‫الدوات‬ ‫شريط‬ ‫في‬ ‫تجد‬ ‫سوف‬ ‫جديد‬ ‫من‬ ‫التشغيل‬ ‫وبعد‬
‫واضغط‬ ‫تريده‬ ‫الذي‬ ‫الجهاز‬ ‫على‬ ‫اضغط‬ ,‫موشن‬ ‫الجيني‬ ‫على‬ ‫إنشئتها‬ ‫التي‬ ‫الجهزة‬ ‫فيها‬ ‫صغيرة‬ ‫نافذة‬
‫التشغيل‬ ‫زر‬Start: ‫الصورة‬ ‫في‬ ‫كما‬
.‫بسهولة‬ ‫ستوديو‬ ‫الندرويد‬ ‫من‬ ‫الجهزة‬ ‫وتشغيل‬ ‫إضافة‬ ‫تستطيع‬ ‫وهكذا‬
64
‫جوالك‬ ‫على‬ ‫الندرويد‬ ‫مشروعك‬ ‫معاينة‬
, ‫موشن‬ ‫الجيني‬ ‫ومحاكي‬ ‫الفتراضي‬ ‫المحاكي‬ ‫على‬ ‫الندرويد‬ ‫مشروعنا‬ ‫معاينة‬ ‫كيفية‬ ‫تعلمنا‬ ‫ما‬ ‫بعد‬
.‫الحقيقي‬ ‫جوالنا‬ ‫أو‬ ‫جهازنا‬ ‫على‬ ‫التطبيق‬ ‫معاينة‬ ‫كيفية‬ ‫نتعلم‬ ‫سوف‬ ‫الدرس‬ ‫هذا‬ ‫في‬
‫تصحيح‬ ‫بتفعيل‬ ‫القيام‬ ‫علينا‬ ‫يجب‬ ‫البداية‬ ‫في‬usb‫أو‬USB debugging‫الج‬ ‫إعدادات‬ ‫من‬‫إلى‬ ‫نذهب‬ ,‫وال‬
‫تصحيح‬ ‫بتفعيل‬ ‫نقوم‬ ‫ثم‬ ‫من‬ , ‫المطور‬ ‫خيارات‬ – ‫الضبط‬USB.
‫قم‬ ,‫الصدار‬ ‫رقم‬ – ‫الهاتف‬ ‫حول‬ – ‫الضبط‬ ‫إلى‬ ‫إذهب‬ ,‫جهازك‬ ‫في‬ ‫المطور‬ ‫خيارات‬ ‫تجد‬ ‫لم‬ ‫حال‬ ‫وفي‬
.‫لك‬ ‫ظهرت‬ ‫قد‬ ‫المطور‬ ‫خيارات‬ ‫تجد‬ ‫للخلف‬ ‫أرجع‬ ‫ثم‬ .. ‫متتالية‬ ‫مرات‬ ‫سبع‬ ‫عليه‬ ‫بالضغط‬
‫يتعرف‬ ‫أن‬ ‫يجب‬ ) ‫بالكمبيوتر‬ ‫جهازك‬ ‫بتوصيل‬ ‫قم‬ .‫بي‬ ‫إس‬ ‫يو‬ ‫تصحيح‬ ‫وتفعيل‬ ‫المطور‬ ‫خيارات‬ ‫تفعيل‬ ‫بعد‬
.( ‫بالحاسوب‬ ‫موجودة‬ ‫بجهازك‬ ‫الخاصة‬ ‫التعاريف‬ ‫إي‬ ‫جهازك‬ ‫على‬ ‫الحاسوب‬
‫تشغيل‬ ‫يتم‬ ‫وسوف‬ ‫باختياره‬ ‫قم‬ ‫التشغيل‬ ‫نافذة‬ ‫في‬ ‫جهازك‬ ‫تجد‬ ‫سوف‬ ‫التشغيل‬ ‫زر‬ ‫إنقر‬ ‫ثم‬ ‫ومن‬
.‫عليها‬ ‫وافق‬ ‫للجهاز‬ ‫الحاسوب‬ ‫لوصول‬ ‫تصريح‬ ‫تطلب‬ ‫حماية‬ ‫عليها‬ ‫جوالت‬ ‫يوجد‬ .‫جوالك‬ ‫على‬ ‫التطبيق‬
‫ملف‬ ‫في‬ ‫التالي‬ ‫المر‬ ‫تضع‬ ‫إن‬ ‫جرب‬ ‫مشاكل‬ ‫واجهتك‬ ‫وإن‬AndroidManifest.xml:
: ‫البليكيشن‬ ‫أوسمة‬ ‫داخل‬
android:debuggable="true"
. ‫سليم‬ ‫بشكل‬ ‫معك‬ ‫يعمل‬ ‫سوف‬ ‫ال‬ ‫شاء‬ ‫وإن‬
‫أجهزة‬ ,‫جوجل‬ ‫شركة‬ ‫من‬ ‫جهازك‬ ‫كان‬ ‫إذا‬Nexus,‫الـ‬ ‫حزمة‬ ‫من‬ ,‫جهازك‬ ‫على‬ ‫لتعريفها‬SDK‫بتنزيل‬ ‫قم‬
Google USB Driver.
65
‫البيانات‬ ‫أنواع‬
‫لكن‬ ‫اللغات‬ ‫بعض‬ ‫في‬ ‫أسمائها‬ ‫تختلف‬ ,‫الحاسوب‬ ‫في‬ ‫الذاكرة‬ ‫مع‬ ‫بها‬ ‫نتعامل‬ ‫سوف‬ ‫التي‬ ‫البيانات‬ ‫أنواع‬
.‫التطبيقات‬ ‫برمجة‬ ‫أثناء‬ ‫بكثرة‬ ‫استخدامها‬ ‫يتم‬ ‫فسوف‬ ‫مبتدئ‬ ‫لكل‬ ‫معرفتها‬ ‫يجب‬ ‫و‬ ,‫واحد‬ ‫الهدف‬
.‫مبدئيا‬ ‫نحتاجه‬ ‫ما‬ ‫مختصر‬ ‫بشكل‬ ‫هنا‬ ‫أذكر‬ ‫سوف‬ ‫ولكن‬ ,‫موسع‬ ‫بشكل‬ ‫عنها‬ ‫تبحث‬ ‫أن‬ ‫لك‬ ‫الفضل‬ ‫من‬
‫النوع‬‫مثال‬--
int1000‫صحيح‬ ‫عدد‬
double5.2‫عشري‬ ‫عدد‬
charA‫حرف‬
BooleanTrue or False‫منطقية‬ ‫قيمة‬
‫من‬ ‫هي‬ ‫والنصوص‬‫نوع‬String‫من‬ ‫مصفوفة‬ ‫أو‬ ‫مجموعة‬ ‫هي‬char.‫الساسية‬ ‫النواع‬ ‫من‬ ‫تعد‬ ‫ل‬ ‫لذلك‬
: ‫مثال‬ ‫استخداما‬ ‫الكثر‬ ‫هي‬ ‫ولكن‬
String AnyName = “Abboudi_Aliwi”
.. ‫وتختلف‬ ‫القيم‬ ‫حيث‬ ‫من‬ ‫أنواع‬ ‫الصحيحة‬ ‫العداد‬ ‫إن‬ ‫أوضح‬ ‫إن‬ ‫أحب‬ ‫القارئ‬ ‫أخي‬ ‫كذلك‬
‫مثل‬byte- ‫من‬ ‫داخله‬ ‫التخزين‬ ‫تستطيع‬128‫إلى‬127‫نوع‬ ‫الجدول‬ ‫في‬ ‫وذكرت‬ ‫أخرى‬ ‫أنواع‬ ‫ويوجد‬ ,int
.‫استخدام‬ ‫أو‬ ‫انتشار‬ ‫الكثر‬ ‫هو‬ ‫ولكن‬ ,‫منه‬ ‫أكبر‬ ‫ويوجد‬ ‫كبيرة‬ ‫قيمة‬ ‫تخزين‬ ‫يستطيع‬ ‫لنه‬
‫فالـ‬int‫بين‬ ‫ما‬ ‫تخزين‬ ‫يستطيع‬2147483648‫إلى‬ -2147483647‫لذلك‬ ‫جدا‬ ‫كبيرة‬ ‫قيمة‬ ‫فهي‬
‫منه‬ ‫أكبر‬ ‫ويوجد‬ ‫الصحيحة‬ ‫للعداد‬ ‫سهولة‬ ‫بكل‬ ‫استخدامه‬ ‫تستطيع‬long.
‫حاليا‬ ‫ولكن‬ .. ‫بنفسك‬ ‫الموضوع‬ ‫عن‬ ‫أبحث‬ ,‫تخزينية‬ ‫سعة‬ ‫أو‬ ‫قيمة‬ ‫له‬ ‫منها‬ ‫وكل‬ .. ‫كثيرة‬ ‫أنواع‬ ‫هي‬
‫اي‬ ‫انتجر‬ - ‫انت‬ ‫أو‬ ,‫نص‬ ‫إي‬ ‫سترنج‬ ‫استخدم‬ ‫لك‬ ‫قلت‬ ‫حال‬ ‫في‬ .. ‫الجدول‬ ‫بداخل‬ ‫ما‬ ‫تعرف‬ ‫أن‬ ‫لك‬ ‫المهم‬
‫ولها‬ ,‫بالجافا‬ ‫الذاكرة‬ ‫في‬ ‫استخدام‬ ‫له‬ ‫لنها‬ ,‫سترنج‬ ‫كلمة‬ ‫كثيرة‬ ‫معنا‬ ‫تتكرر‬ ‫وسوف‬ .‫وهكذا‬ ‫صحيح‬ ‫عدد‬
‫ملفات‬ ‫بداخل‬ ‫وكذلك‬ ‫عام‬ ‫بشكل‬ ‫بالندرويد‬ ‫مختلف‬ ‫استخدام‬xml.
‫وقيمة‬Boolean‫وإن‬ ,‫التالي‬ ‫المر‬ ‫نفذ‬ ‫ترو‬ ‫كانت‬ ‫إن‬ ‫القيمة‬ ‫هذه‬ ‫يفحص‬ ‫زر‬ ‫نبرمج‬ ‫مثل‬ ,‫مهمة‬ ‫من‬ ‫أكثر‬
‫والكثير‬ ‫اختبارات‬ ‫عمل‬ ‫تستطيع‬ ‫وبذلك‬ .‫القيمة‬ ‫بهذه‬ ‫تتحكم‬ ‫أخرى‬ ‫أزرار‬ ‫و‬ ,‫مختلف‬ ‫أمر‬ ‫نفذ‬ ‫فولس‬ ‫كانت‬
.‫رائعة‬ ‫من‬ ‫الكثر‬ ‫القيمة‬ ‫هذه‬ ‫من‬ ‫فقط‬
66
‫والقيم‬ ‫المتغيرات‬
‫برمجة‬ ‫تستطيع‬ ‫لكي‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫معلومات‬ ‫ولكن‬ ,‫الجافا‬ ‫في‬ ‫أكثر‬ ‫أدخل‬ ‫أن‬ ‫عليي‬ ‫يجب‬ ‫كان‬ ‫ما‬
.‫ال‬ ‫شاء‬ ‫إن‬ ‫مشاكل‬ ‫إي‬ ‫دون‬ ‫الندرويد‬ ‫تطبيقات‬
‫عدة‬ ‫في‬ ‫معروف‬ ‫أعتقد‬ ‫الشيء‬ ‫وهذا‬ ,‫المتغير‬ ‫هذا‬ ‫قيمة‬ ‫ثم‬ ‫المتغير‬ ‫ثم‬ ‫النوع‬ ‫نذكر‬ ‫ما‬ ‫دائما‬ ‫الجافا‬ ‫في‬
.‫الجافا‬ ‫فقط‬ ‫ليس‬ ‫لغات‬
.‫التسمية‬ + ‫الكيفية‬ ,‫هنا‬ ‫ذكره‬ ‫أريد‬ ‫الذي‬ ‫السبب‬ ‫و‬
: ‫أوضح‬ ‫بشكل‬ ‫أتكلم‬ ‫ماذا‬ ‫عن‬ ‫لتفهم‬ ‫أمثلة‬
String myname = "Abboudi Aliwi";
‫النوع‬‫هو‬String‫و‬‫المتغير‬‫هو‬myname‫و‬‫القيمة‬Abboudi Aliwi
‫المتغير‬ ‫و‬ ,‫البيانات‬ ‫أنواع‬ ‫السابق‬ ‫الدرس‬ ‫في‬ ‫بعضها‬ ‫ذكرنا‬ ‫وقد‬ ‫معدودة‬ ‫أنواع‬ ‫هي‬ ‫النوع‬ ‫إن‬ : ‫نلحظه‬ ‫ما‬
‫بالضافة‬ "" ‫داخل‬ ‫وضعها‬ ‫يجب‬ ‫إي‬ ‫سترنج‬ ‫دامت‬ ‫وما‬ ‫للنوع‬ ‫تبعا‬ ‫فهي‬ ‫القيمة‬ ‫إما‬ ,‫اختياره‬ ‫في‬ ‫قواعد‬ ‫له‬
.‫والرقام‬ ‫الحروف‬ ‫من‬ ‫وغيرها‬ ‫الفراغات‬ ‫بوجود‬ ‫مشكلة‬ ‫ل‬ ‫إلى‬
: ‫المتغير‬ ‫أسم‬ ‫اختيار‬
.$ ‫أو‬ _ ‫علمة‬ ‫أو‬ ‫بحرف‬ ‫يبتدأ‬ ‫مشكلة‬ ‫ل‬ ,‫برقم‬ ‫يبتدأ‬ ‫إن‬ ‫يجب‬ ‫ل‬ -
.‫المتغير‬ ‫نهاية‬ ‫او‬ ‫وسط‬ ‫في‬ ‫الرقام‬ ‫كتابة‬ ‫في‬ ‫مشكلة‬ ‫ل‬ -
.$ ‫أو‬ _ ‫عدا‬ ‫العلمات‬ ‫المتغيرات‬ ‫اسماء‬ ‫في‬ ‫تستخدم‬ ‫ل‬ -
.‫والصغيرة‬ ‫الكبيرة‬ ‫الحرف‬ ‫بحالة‬ ‫وتتأثر‬ ‫تختلف‬ ‫المتغيرات‬ -
: ‫مثال‬int Abboudi‫متغير‬ ‫عن‬ ‫تماما‬ ‫مختلف‬ ‫هو‬int abboudi.
.‫الواحد‬ ‫الحرف‬ ‫من‬ ‫المتغيرات‬ ‫عن‬ ‫البتعاد‬ ‫الفضل‬ -
( ‫للجافا‬ ‫اساسية‬ ‫كلمات‬ ) : ‫المتغيرات‬ ‫اسماء‬ ‫في‬ ‫التالية‬ ‫الكلمات‬ ‫عن‬ ‫ابتعد‬ -
abstract - assert - boolean - break - byte - case - catch - char - class - const - default - do -
double - else - enum - extends - final - finally - float - for - goto - -if - implements - import -
67
instanceof - int - long - native - new - package - private - protected - public - return - short -
static - strictfp - super - switch - synchronized - this - throw - throws - transient - try - void -
volatile - while - false - null - true
* *,‫ـوع‬‫ـ‬‫الن‬ ‫ـة‬‫ـ‬‫كتاب‬ ‫تكرر‬ ‫ل‬ ,‫عليها‬ ‫التأثير‬ ‫او‬ ‫سابقا‬ ‫تعريفها‬ ‫تم‬ ‫التي‬ ‫المتغيرات‬ ‫أحد‬ ‫قيمة‬ ‫تغيير‬ ‫تريد‬ ‫عندما‬
.‫الجديدة‬ ‫وقيمته‬ ‫المتغير‬ ‫فقط‬
: ‫ستوديو‬ ‫الندرويد‬ ‫داخل‬ ‫من‬ ‫المتغيرات‬ ‫على‬ ‫للتعرف‬ ‫مثال‬
‫ـاريع‬‫ـ‬‫بالمش‬ ‫ـل‬‫ـ‬‫العم‬ ‫أثنـاء‬ ‫ـا‬‫ـ‬‫عليه‬ ‫ـرف‬‫ـ‬‫نتع‬ ‫ـوف‬‫ـ‬‫وس‬ .. ‫الجافا‬ ‫في‬ ‫المتغيرات‬ ‫عن‬ ‫أكثر‬ ‫قراءة‬ ‫عليك‬ ‫يجب‬ ‫والن‬
.. ‫البسيطة‬
‫ـذا‬‫ـ‬‫ه‬ ‫المتغير‬ ‫إن‬ ‫يعني‬ ‫هذا‬ - ‫الرمادي‬ ‫اللون‬ - ‫مختلف‬ ‫بلون‬ ‫السابقة‬ ‫الصورة‬ ‫في‬ ‫كما‬ ‫متغير‬ ‫وجود‬ ‫عند‬ **
.‫لونه‬ ‫يتغير‬ ‫سوف‬ ‫له‬ ‫استخدامك‬ ‫وعند‬ .‫المشروع‬ ‫هذا‬ ‫في‬ ‫مستخدم‬ ‫غير‬ ‫إي‬ ‫كعدمه‬ ‫وجوده‬
68
‫اللياوت‬ ‫داخل‬ ‫العناصر‬ ‫أهم‬
‫تتكرر‬ ‫والتي‬ ‫العناصر‬ ‫أهم‬ ‫نأخذ‬ ‫سوف‬ ‫وهنا‬ ,‫الول‬ ‫مشروعنا‬ ‫نطور‬ ‫سوف‬ ‫منها‬ ‫التي‬ ‫بالدروس‬ ‫نبدأ‬ ‫الن‬
.‫برمجيا‬ ‫اسمها‬ ‫تحفظ‬ ‫إن‬ ‫جدا‬ ‫ومهم‬ .‫أغلبها‬ ‫أو‬ ‫التطبيق‬ ‫جميع‬ ‫في‬ ‫وموجود‬
‫العنصر‬‫ال‬‫البرمجي‬ ‫سم‬
‫النص‬TextView
‫الزر‬Button
‫الصورة‬ImageView
‫من‬ ‫الهم‬ ‫العنصر‬ ‫يعتبر‬ ‫فيو‬ ‫التكست‬ ‫أو‬ ‫فالنص‬ ‫لذلك‬ ,‫النصوص‬ ‫من‬ ‫تطبيق‬ ‫إي‬ ‫يخلو‬ ‫ل‬ ‫إنه‬ ‫شك‬ ‫ل‬
‫والدللة‬ ‫الشارات‬ ‫توضيح‬ ‫خللها‬ ‫من‬ ‫فتستطيع‬ .‫التطبيق‬ ‫لمستخدم‬ ‫تعرض‬ ‫التي‬ ‫الواجهات‬ ‫في‬ ‫العناصر‬
,‫أزرار‬ ‫من‬ ‫تطبيق‬ ‫يخلو‬ ‫ول‬ ,‫التطبيق‬ ‫أرجاء‬ ‫بين‬ ‫التنقل‬ ‫تستطيع‬ ‫فبواسطته‬ ‫الزر‬ ‫وأما‬ ,‫معينة‬ ‫إشياء‬ ‫إلى‬
.‫التطبيق‬ ‫منظر‬ ‫وتحسين‬ ‫جمالية‬ ‫تزيد‬ ‫فهي‬ ‫الصور‬ ‫وأما‬
: ‫اوضح‬ ‫بشكل‬ ‫هذه‬ ‫العناصر‬ ‫معرفة‬ ‫تستطيع‬ ‫التالي‬ ‫الصورة‬ ‫في‬
69
‫العناصر‬ ‫خصائص‬ ‫أهم‬ ‫شرح‬
: ‫هو‬ ‫بالخصائص‬ ‫أقصده‬ ‫ما‬ ‫أصدقائي‬ ‫البداية‬ ‫في‬
‫المستخدمة‬ ‫الخصائص‬ ‫جميع‬ ‫العنصر‬ ‫أسفل‬ ‫تظهر‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫من‬ ,‫عنصر‬ ‫لكل‬ ‫الخائص‬ ‫هي‬
‫الخصائص‬ ‫بعض‬ ‫وتتغير‬ .‫منها‬ ‫تحتاج‬ ‫ما‬ ‫وتستخدم‬ ‫الخصائص‬ ‫جميع‬ ‫لك‬ ‫تظهر‬ ‫الديزاين‬ ‫شاشة‬ ‫من‬ ‫اما‬ ,‫له‬
.‫تحديده‬ ‫تم‬ ‫الذي‬ ‫العنصر‬ ‫حسب‬ ‫على‬
: ‫هي‬ ‫عنا‬ ‫الستغناء‬ ‫تستطيع‬ ‫ول‬ ‫العناصر‬ ‫لجميع‬ ‫المشتركة‬ ‫الخصائص‬
‫العنصر‬ ‫عرض‬android:layout_width""=
‫العنصر‬ ‫ارتفاع‬android:layout_height""=
.‫العنصر‬ ‫حسب‬ ‫تختلف‬ .‫له‬ ‫اجبارية‬ ‫كذلك‬ ‫به‬ ‫خاصة‬ ‫خصائص‬ ‫العناصر‬ ‫لبعض‬ ‫يوجد‬ ‫و‬
.‫المعرف‬ ‫خاصية‬ ‫هي‬ ‫برمجيا‬ ‫به‬ ‫التحكم‬ ‫تريد‬ ‫عنصر‬ ‫لكل‬ ‫استخدامها‬ ‫تجب‬ ‫التي‬ ‫الخاصية‬ ‫و‬
‫للعنصر‬ ‫معرف‬android:id""=
.‫تحملها‬ ‫التي‬ ‫والقيمة‬ ‫وشرحها‬ ‫الخصائص‬ ‫الن‬ ‫أذكر‬ ‫وسوف‬
70
: ‫الشكل‬ ‫بهذا‬ ‫الخصائص‬ ‫أغلب‬ ,‫الخصائص‬ ‫أهم‬ ‫بشرح‬ ‫ابدأ‬ ‫إن‬ ‫قبل‬
android:layout_gravity="center"
: ‫لياوت‬ ‫بدون‬ ‫استخدامها‬ ‫تستطيع‬ ‫بعضها‬ ‫ولكن‬ ,‫لياوت‬ ‫بـ‬ ‫تبدأ‬
android:gravity="center"
‫العنصر‬ ‫نقصد‬ ‫لياوت‬ ‫كلمة‬ ‫ما‬ .. ‫الحدود‬ ‫بداخل‬ ‫وما‬ ‫للنص‬ ‫حدود‬ ‫مثل‬ ,‫حد‬ ‫عنصر‬ ‫لكل‬ ‫إن‬ ,‫هو‬ ‫والفرق‬
: ‫الصورة‬ ‫في‬ ‫مثال‬ .‫نص‬ ‫العنصر‬ ‫بداخل‬ ‫ما‬ ‫وغالبا‬ ‫العنصر‬ ‫بداخل‬ ‫ما‬ ‫إي‬ ‫لياوت‬ ‫وبدون‬ ,‫بالكامل‬
‫وكذلك‬ ,‫كامل‬ ‫الملف‬ ‫فيها‬ ‫نقصد‬ ‫لياوت‬ ‫وكلمة‬ ,‫نقصده‬ ‫كامل‬ ‫العنصر‬ ‫إي‬ ‫العنصر‬ ‫لياوت‬ ‫قلنا‬ ‫مثل‬ ‫لو‬ ‫يعني‬
.‫العناصر‬ ‫جميع‬ ‫داخله‬ ‫يحتوي‬ ‫الذي‬ ‫الملف‬ ‫بهذا‬ ‫عنصر‬ ‫أول‬ ‫أو‬ ‫الملف‬ ‫لهذا‬ ‫الول‬ ‫الب‬ ‫فيها‬ ‫نقصد‬
71
: ‫والرتفاع‬ ‫العرض‬ ‫خاصية‬
android:layout_gravity=""
android:layout_width=""
‫قيمة‬ ‫يحتوي‬ ‫ل‬ ‫الذي‬ ‫فالعنصر‬ ,‫استثناء‬ ‫دون‬ ‫العناصر‬ ‫لجميع‬ ‫أساسية‬ ‫إنها‬ ,‫قلت‬ ‫كما‬ ‫الخاصيات‬ ‫هذه‬
.‫عدد‬ ‫إلى‬ ‫بالضافة‬ ‫قيم‬ ‫ثلث‬ ‫تأخذ‬ ‫وهي‬ ,‫شيء‬ ‫ل‬ ‫إي‬ ‫صفرا‬ ‫يساوي‬ ‫ارتفاعه‬ ‫او‬ ‫لعرضه‬
, ‫عربي‬ ‫اندرودي‬ ‫مدونة‬ ‫من‬ ‫مراجعتها‬ ‫تستطيع‬ ‫بينها‬ ‫والفرق‬ ‫الوحدات‬ ‫إلى‬ ‫أتطرق‬ ‫لن‬ ‫للعداد‬ ‫بالنسبة‬
‫عنصر‬ ‫لي‬ ‫عددية‬ ‫قيمة‬ ‫وضع‬ ‫عند‬ ‫فقط‬ ‫تعرفه‬ ‫أن‬ ‫يهم‬ ‫ما‬ ‫كثيرا‬ ‫مهمة‬ ‫ليست‬ ‫لنها‬ ‫هنا‬ ‫أذكرها‬ ‫ولم‬
‫الوحدة‬ ‫العدد‬ ‫بعد‬ ‫استخدام‬dp‫استخدم‬ ‫النص‬ ‫حجم‬ ‫أجل‬ ‫من‬ ‫الوحدة‬ ‫كانت‬ ‫وإن‬sp.
: ‫القيم‬ ‫داخله‬ ‫تأخذ‬wrap_content, match_parent, fill_parent."" ‫بداخل‬ ‫هذه‬ ‫القيمة‬ ‫وتوضع‬ ,
‫لقيمة‬ ‫بالنسبة‬fill_parent‫المستوى‬ ‫بعد‬ ‫إهمالها‬ ‫تم‬API 8‫هي‬ ‫أصبحت‬ ‫و‬match_parent.
match_parent.‫له‬ ‫الب‬ ‫العنصر‬ ‫حسب‬ ‫الرتفاع‬ ‫أو‬ ‫العرض‬ ‫العنصر‬ ‫يأخذ‬ /
wrap_content.‫فقط‬ ‫يحتاجه‬ ‫الذي‬ ‫الرتفاع‬ ‫أو‬ ‫العرض‬ ‫العنصر‬ ‫يأخذ‬ /
: ‫الفرق‬ ‫لكم‬ ‫فيه‬ ‫أوضح‬ ‫الصور‬ ‫هذه‬
72
‫وضعنا‬ ‫لو‬ ‫مثل‬ ‫لننا‬ ,‫العنصر‬ ‫لهذا‬ ‫الب‬ ‫اللياوت‬ ‫أو‬ ‫بالعنصر‬ ‫تتأثر‬ ‫كلها‬ ‫السابقة‬ ‫القيم‬ ‫لجميع‬ ‫بالنسبة‬
wrap_content‫ليعطيه‬ ‫كافي‬ ‫لديه‬ ‫ليس‬ ‫صغير‬ ‫جدا‬ ‫العنصر‬ ‫لهذا‬ ‫الب‬ ‫ولكن‬ ,‫يحتاجه‬ ‫ما‬ ‫يأخذ‬ ‫إي‬ ‫للعنصر‬
‫الوحدة‬ ‫إن‬ ‫ننسى‬ ‫ول‬ ,‫أصغر‬ ‫يصبح‬ ‫لذلك‬ ‫حجمه‬dp.‫المتاح‬ ‫الشاشة‬ ‫قياس‬ ‫أو‬ ‫المساحة‬ ‫بحسب‬ ‫تتأثر‬
.‫له‬ ‫الب‬ ‫حدود‬ ‫عن‬ ‫يخرج‬ ‫إن‬ ‫للعنصر‬ ‫يمكن‬ ‫ول‬ ‫بينها‬ ‫تفرق‬ ‫كيف‬ ‫تتعلم‬ ‫سوف‬ ‫الستخدام‬ ‫مع‬
73
: ‫التجاه‬ ‫خاصية‬
android:orientation=""
‫لـ‬ ‫اجبارية‬ ‫تعتبر‬ ‫التي‬ ‫الخاصية‬ ‫وهي‬LinearLayout‫له‬ ‫الفتراضية‬ ‫القيمة‬ ,‫الخطي‬ ‫الترتيب‬ ‫أو‬ ‫النمط‬ ‫إي‬
‫هي‬horizontal‫جميع‬ ‫الحقيقة‬ ‫في‬ ‫إن‬ ‫بهذا‬ ‫ونقصد‬ ‫افتراضية‬ ‫قيم‬ ‫لها‬ ‫الخرى‬ ‫الخصائص‬ ‫وجميع‬
‫إذا‬ ‫استخدمتها‬ ‫فلو‬ ‫الفتراضية‬ ‫القيمة‬ ‫تأخذ‬ ‫لنها‬ ‫ظاهرة‬ ‫غير‬ ‫ولكن‬ ‫للعنصر‬ ‫موجودة‬ ‫او‬ ‫مفعلة‬ ‫الخصائص‬
. ‫لها‬ ‫الفتراضية‬ ‫القيمة‬ ‫تغيير‬ ‫تريد‬ ‫أنت‬
‫اللياوت‬ ‫كانت‬ ‫إذا‬ ‫وجودها‬ ‫مهم‬ ‫غير‬ ‫وهي‬LinearLayout‫تأخذ‬ ‫سوف‬ ‫لنها‬ ,‫واحد‬ ‫عنصر‬ ‫سوا‬ ‫تحتوى‬ ‫ل‬
‫أحد‬ ‫بداخلها‬ ‫وتحدد‬ ‫استخدامها‬ ‫يجب‬ ‫كثيرة‬ ‫عناصر‬ ‫كانت‬ ‫لو‬ ‫ولكن‬ ,‫الفقي‬ ‫الترتيب‬ ‫لك‬ ‫ذكرت‬ ‫كما‬
: ‫القيمتين‬horizontal‫أو‬vertical.
horizontal.‫بعضها‬ ‫بجانب‬ ‫إي‬ ‫للعناصر‬ ‫الفقي‬ ‫الترتيب‬ /
vertical.‫بعضها‬ ‫فوق‬ ‫إي‬ ‫للعناصر‬ ‫العمودي‬ ‫الترتيب‬ /
: ‫بينها‬ ‫والفرق‬ ‫للتوضيح‬ ‫صورة‬ ‫وهذه‬
74
: ‫الهامش‬ ‫خاصية‬
android:layout_margin=""
‫جدا‬ ‫لنها‬ ,‫عنصر‬ ‫أو‬ ‫تطبيق‬ ‫إي‬ ‫في‬ ‫عنها‬ ‫الستغناء‬ ‫أستطيع‬ ‫ل‬ ‫نفسي‬ ‫وعن‬ ‫مميزة‬ ‫خاصية‬ ‫الهامش‬
‫ما‬ ‫المسافة‬ ‫إنها‬ ‫أوضح‬ ‫بشكل‬ ,‫حدوده‬ ‫من‬ ‫ليست‬ ‫التي‬ ‫العنصر‬ ‫هوامش‬ ‫فهي‬ ,‫التطبيق‬ ‫لتنسيق‬ ‫مهمة‬
.‫معينة‬ ‫جهة‬ ‫من‬ ‫أو‬ ‫الجهات‬ ‫جميع‬ ‫من‬ ‫الهامش‬ ‫لتحديد‬ ‫استخدامها‬ ‫وتستطيع‬ ,‫حولها‬ ‫ما‬ ‫بين‬ ‫وما‬ ‫بينها‬
: ‫استخدامها‬ ‫لكم‬ ‫توضح‬ ‫الصورة‬ ‫هذه‬
‫كان‬ ‫سواء‬ ‫الندرويد‬ ‫برمجة‬ ‫في‬ ‫للجهات‬ ‫بالنسبة‬ **java‫أو‬xml‫وفي‬ ‫كبيرة‬ ‫الحرف‬ ‫الجافا‬ ‫في‬ ‫لكن‬ .
xml.‫صغيرة‬ ‫الحرف‬
top‫العلى‬ /bottom‫السفل‬ /
right‫اليمين‬ /left‫اليسار‬ /
75
: ‫الحشو‬ ‫خاصية‬
android:padding=""
‫الهامش‬ ‫فهي‬ ,‫عكسي‬ ‫بشكل‬ ‫ولكن‬ ‫الهامش‬ ‫خاصية‬ ‫تشبه‬ ‫تقريبا‬ ‫وهي‬ ,‫كذلك‬ ‫مفيدة‬ ‫هذه‬ ‫الخاصية‬
‫يحجزها‬ ‫التي‬ ‫المساحة‬ ‫إن‬ ‫والفرق‬ .‫داخله‬ ‫وما‬ ‫العنصر‬ ‫أطراف‬ ‫بين‬ ‫ما‬ ,‫حوله‬ ‫وما‬ ‫العنصر‬ ‫بين‬ ‫ليس‬ ‫ولكن‬
‫هنا‬ ‫اضغط‬ ,‫نص‬ ‫لدينا‬ ‫مثل‬ ‫فلو‬ ,‫العنصر‬ ‫ضمن‬ ‫من‬ ‫فهي‬ ‫الحشو‬ ‫إما‬ ,‫العنصر‬ ‫ضمن‬ ‫من‬ ‫تعتبر‬ ‫ل‬ ‫الهامش‬
‫لو‬ ‫منه‬ ‫تعتبر‬ ‫الحشو‬ ‫مساحة‬ ‫لكن‬ ,‫حدود‬ ‫له‬ ‫ليس‬ ‫النص‬ ‫لن‬ ‫ظاهر‬ ‫وليس‬ ,‫كبير‬ ‫جدا‬ ‫به‬ ‫الخاص‬ ‫والحشو‬
.‫للنص‬ ‫اعطائه‬ ‫تم‬ ‫الذي‬ ‫المر‬ ‫ينفذ‬ ‫فسوف‬ ‫فيها‬ ‫مكان‬ ‫إي‬ ‫على‬ ‫ضغطنا‬
.‫الهامش‬ ‫مثل‬ ‫تماما‬ ‫التجاهات‬ ‫جميع‬ ‫من‬ ‫أو‬ ‫تريد‬ ‫اتجاه‬ ‫إي‬ ‫من‬ ‫للعنصر‬ ‫الحشو‬ ‫إعطاء‬ ‫تستطيع‬ ‫كذلك‬
: ‫الصورة‬ ‫هذه‬ ‫في‬ ‫أكثر‬ ‫للتوضيح‬
76
: ‫الجاذبية‬ ‫خاصية‬
android:gravity=""
android:layout_gravity=""
: ‫التالية‬ ‫الصورة‬ ,‫ا‬‫سابق‬ ‫وضحت‬ ‫قد‬
‫والقيم‬ ,‫الستخدام‬ ‫كثيرة‬ ‫كذلك‬ ‫خاصية‬ ‫وهي‬ ,‫إليه‬ ‫ينجذب‬ ‫الذي‬ ‫التجاه‬ ‫إي‬ ,‫العنصر‬ ‫جاذبية‬ ‫خاصية‬
.‫اخرى‬ ‫وقيم‬ ,‫يسار‬ ‫يمين‬ ‫أسفل‬ ‫اعلى‬ ,‫التجاهات‬ ‫هي‬ ‫تأخذها‬ ‫التي‬
‫لـ‬ ‫بالنسبة‬android:layout_gravity.‫له‬ ‫الب‬ ‫العنصر‬ ‫من‬ ‫الحرة‬ ‫بالمساحة‬ ‫يتحرك‬ ‫فالعنصر‬
‫أما‬android:gravity.‫العنصر‬ ‫هذا‬ ‫من‬ ‫له‬ ‫المتاحة‬ ‫المساحة‬ ‫في‬ ‫العنصر‬ ‫بداخل‬ ‫ما‬ ‫فيتحرك‬
77
: ‫الوزن‬ ‫خاصية‬
android:layout_weight=""
‫والصور‬ .‫نصيبه‬ ‫يأخذ‬ ‫منها‬ ‫لكل‬ ,‫للعناصر‬ ‫اللياوت‬ ‫أو‬ ‫الشاشة‬ ‫لتقسيم‬ ,‫التقسيم‬ ‫خاصية‬ ‫أسميها‬ ‫بما‬ ‫أو‬
‫القيمة‬ ‫فإستخدم‬ ‫الخاصية‬ ‫هذه‬ ‫العناصر‬ ‫بإعطاء‬ ‫قمت‬ ‫إذا‬ ,‫الخاصية‬ ‫هذه‬ ‫ما‬ ‫تشرح‬ ‫أن‬ ‫تستطيع‬ ‫فقط‬ ‫هي‬
‫تحت‬ ‫ما‬1‫مثل‬ .‫عليهم‬ ‫لتتقسم‬0.1‫أو‬0.5‫مئة‬ ‫من‬ ‫أو‬ ..0.55‫أو‬0.20‫تحت‬ ‫أو‬ ..10‫مثل‬ ,1‫أو‬4
‫قيمة‬ ‫عنصر‬ ‫تعطي‬ ‫ل‬ ‫القصد‬ .‫وهكذا‬50‫آخر‬ ‫وعنصر‬0.50.
: ‫الصور‬ ‫في‬ ‫مثال‬
78
: ‫المعرف‬ ‫خاصية‬ID
android:id=""
‫إلخ‬ ‫نص‬ ‫أو‬ ‫صورة‬ ‫كان‬ ‫سواء‬ ,‫برمجيا‬ ‫معه‬ ‫للتعامل‬ ‫يميزه‬ ‫إسم‬ ‫تعطيه‬ ‫لكي‬ ,‫للعنصر‬ ‫المعرف‬ ‫خاصية‬
.‫الجافا‬ ‫بلغة‬ ‫العنصر‬ ‫بهذا‬ ‫التحكم‬ ‫أو‬ ‫الوامر‬ ‫إعطاء‬ ‫نستطيع‬ ‫المعرف‬ ‫هذا‬ ‫طريق‬ ‫عن‬ .‫العناصر‬ ‫من‬ ‫وغيرها‬
: ‫التالي‬ ‫بالشكل‬ ‫ويكتب‬
android:id="@+id/button"
‫واستبدل‬button+ ‫ومعنى‬ ,‫تريده‬ ‫بالذي‬id‫للموارد‬ ‫المعرف‬ ‫هذا‬ ‫اضف‬ ‫إي‬R‫يصبح‬ + ‫بدون‬ ‫إن‬ ‫كما‬ ,
.‫الستخدام‬ ‫خلل‬ ‫من‬ ‫اكثر‬ ‫عليها‬ ‫تتعرف‬ ‫وسوف‬ .‫كذا‬ ‫اسمه‬ ‫الذي‬ ‫المعرف‬ ‫استخدم‬ ‫المعنى‬
**‫لون‬ ‫لـ‬ ‫بالنسبة‬ .‫إلخ‬ ‫ولونه‬ ‫النص‬ ‫وحجم‬ ‫النص‬ ‫لكتابة‬ ,‫النص‬ ‫المعنى‬ ‫واضحة‬ ‫الخرى‬ ‫الخصائص‬ ‫اغلب‬
‫مباشرة‬ ‫للون‬ ‫الكود‬ ‫استخدام‬ ‫او‬ ‫بالفايلوس‬ ‫اللوان‬ ‫ملف‬ ‫في‬ ‫معرفة‬ ‫الوان‬ ‫استخدام‬ ‫تستطيع‬ ,‫النص‬
‫داخل‬ ‫اكتب‬ ‫للتوضيح‬ ,‫السهل‬ ‫الصيغة‬ ‫استخدام‬ ‫تستطيع‬ ‫صيغ‬ ‫بعدة‬ ‫أكواد‬ ‫ولللوان‬textColor‫القيمة‬
#000‫ملفات‬ ‫داخل‬ ‫وبجانبه‬ ,‫للنص‬ ‫السود‬ ‫اللون‬ ‫يظهر‬ ‫سوف‬xml‫واختر‬ ‫عليه‬ ‫اضغط‬ ‫اسود‬ ‫صغير‬ ‫مربع‬
.‫اختياره‬ ‫تم‬ ‫الذي‬ ‫اللون‬ ‫لكود‬ ‫الرقم‬ ‫يتغير‬ ‫سوف‬ ‫وتلقائي‬ ‫تريد‬ ‫الذي‬ ‫اللون‬
79
,‫ا‬‫تكرار‬ ‫وأكثرها‬ ‫البرمجية‬ ‫الكواد‬ ‫أهم‬ ‫على‬ ‫التعرف‬Java
‫اثناء‬ ‫الجافا‬ ‫إستخدام‬ ‫في‬ ‫معك‬ ‫تتكرر‬ ‫سوف‬ ‫التي‬ ‫الدوال‬ ‫أو‬ ‫الكواد‬ ‫أو‬ ‫العمليات‬ ‫أكثر‬ ‫ما‬ ‫الن‬ ‫نتعلم‬ ‫سوف‬
‫أذكرها‬ ‫سوف‬ ‫منها‬ ‫والبعض‬ .‫وبكثرة‬ ‫تحتاجها‬ ‫سوف‬ ‫لنك‬ ‫تعرفها‬ ‫أن‬ ‫لك‬ ‫ومهم‬ .‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬
.‫تماما‬ ‫وتحفظه‬ ‫المر‬ ‫عليك‬ ‫ليسهل‬ ‫مرة‬ ‫من‬ ‫أكثر‬ ‫الدرس‬ ‫هذا‬ ‫بمراجعة‬ ‫وأنصحك‬ ,‫تحتاجها‬ ‫سوف‬ ‫لنك‬
: ‫الصورة‬ ‫هذه‬ ‫شاهد‬ .‫بالندرويد‬ ‫الكتفتي‬ ‫أو‬ ‫الكلس‬ ‫كيفية‬ ‫أو‬ ‫صيغة‬ ‫على‬ ‫تتعرف‬ ‫أن‬ ‫يجب‬ ‫البداية‬ ‫في‬
‫بشكل‬ ‫عليها‬ ‫نتعرف‬ ‫سوف‬ ‫المشاريع‬ ‫بإنشاء‬ ‫البدأ‬ ‫مع‬ ‫مشكلة‬ ‫ل‬ ,‫الصورة‬ ‫في‬ ‫نقطة‬ ‫إي‬ ‫لك‬ ‫يوضح‬ ‫لم‬ ‫إذا‬
.‫أوضح‬
.‫والدوال‬ ‫المتغيرات‬ ‫بداخله‬ ‫ثم‬ ,‫الكلس‬ ‫ثم‬ ,‫الدعم‬ ‫مكاتب‬ ‫ثم‬ ‫الباكيج‬ ‫اسم‬ ,‫الترتيب‬ ‫لحظ‬
.‫برمجيا‬ ‫معها‬ ‫للتعامل‬ ‫اجبارية‬ ‫فالمتغيرات‬ ,‫المتغيرات‬ ‫إضافة‬ ‫هو‬ ‫برمجيا‬ ‫معك‬ ‫يتكرر‬ ‫سوف‬ ‫ما‬ ‫أكثر‬
80
‫بكتابة‬ ‫تعريفها‬ ‫يكون‬ ,‫الدوال‬ ‫وخارج‬ ‫الكلس‬ ‫داخل‬ ,‫الصورة‬ ‫في‬ ‫لكم‬ ‫حددته‬ ‫الذي‬ ‫المتغيرات‬ ‫موقع‬ ‫حسب‬
‫الدعم‬ ‫مكاتب‬ ‫باستيراد‬ ‫تلقائيا‬ ‫يقوم‬ ‫ستوديو‬ ‫الندرويد‬ ‫تجعل‬ ‫إن‬ ‫تنسى‬ ‫ول‬ ; ‫علمة‬ ‫ثم‬ ‫المتغير‬ ‫ثم‬ ‫النوع‬
.‫النوع‬ ‫لهذا‬ ‫الخاصة‬ ‫المكتبة‬ ‫وضع‬ ‫ليتم‬ ,‫الكتاب‬ ‫في‬ ‫سابقا‬ ‫تعلمنا‬ ‫ما‬ ‫مثل‬
: ‫زر‬ ‫تعريف‬ ‫مثال‬ ,‫الشكل‬ ‫بهذا‬ ‫يكون‬ ‫التعريف‬ ‫عموما‬
Button Abboudi;
‫واسمه‬ ‫زر‬ ‫لدينا‬ ‫إن‬ ‫الكلس‬ ‫أخبرنا‬ ,‫بسيط‬ ‫جدا‬ ‫المر‬Abboudi‫قمنا‬ ‫الذي‬ ‫الزر‬ ‫هذا‬ ‫ربط‬ ‫لمرحلة‬ ‫ننتقل‬ ‫ثم‬
.‫بالزر‬ ‫الخاص‬ ‫المعرف‬ ‫بواسطة‬ .‫اللياوت‬ ‫داخل‬ ‫الموجود‬ ‫الزر‬ ‫مع‬ ‫بتعريفه‬
: ‫الشكل‬ ‫بهذا‬
Abboudi = (Button)findViewById(R.id.button);
.‫الكتفتي‬ ‫تشغيل‬ ‫بعد‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫بداخل‬ ‫يكون‬ ‫الربط‬ ‫تذكر‬ ‫ولكن‬
‫تذكره‬ ‫لذلك‬ ‫معك‬ ‫يتكرر‬ ‫سوف‬ ‫كود‬ ‫أكثر‬ ‫هو‬ ,‫الن‬ ‫لكم‬ ‫صورة‬ ‫في‬ ‫أضعه‬ ‫سوف‬ ‫الذي‬ ‫و‬ , ‫السابق‬ ‫الكود‬ ‫إذا‬
.‫لديك‬ ‫الموجود‬ ‫حسب‬ ‫النوع‬ ‫وكذلك‬ ‫تريد‬ ‫كما‬ ‫المتغير‬ ‫اسم‬ ‫اختلف‬ ‫مع‬ ‫جيدا‬
81
‫المتغير‬ ‫إن‬ ‫له‬ ‫قلنا‬ ,‫الربط‬ ‫مرحلة‬ ‫في‬ ,‫السابقة‬ ‫الصورة‬ ‫في‬ ‫أنسى‬ ‫ل‬Abboudi‫نوع‬ ‫من‬ ‫هو‬Button
‫اسمه‬ ‫الذي‬ ‫المعرف‬ ‫يحمل‬ ‫الذي‬ ‫العنصر‬ ‫لنا‬ ‫وأوجد‬button‫المعرف‬ ‫يمتلك‬ ‫الزر‬ ‫إن‬ ‫وتأكد‬button‫وسوف‬ .
.‫زر‬ ‫نوع‬ ‫من‬ ‫بعنصر‬ ‫وربطته‬ ‫نص‬ ‫نوع‬ ‫من‬ ‫متغير‬ ‫بتعريف‬ ‫قمت‬ ‫إن‬ ‫المشروع‬ ‫تشغيل‬ ‫في‬ ‫مشاكل‬ ‫لك‬ ‫تظهر‬
‫ولكن‬ ,‫بها‬ ‫أدخل‬ ‫لن‬ ‫لذلك‬ .‫مختلفة‬ ‫وهي‬ ‫تريدها‬ ‫التي‬ ‫البرمجية‬ ‫الوامر‬ ‫تأتي‬ ,‫والربط‬ ‫التعريف‬ ‫مرحلة‬ ‫بعد‬
.‫الصغيرة‬ ‫المشاريع‬ ‫ببرمجة‬ ‫البدء‬ ‫أثناء‬ ‫منها‬ ‫البعض‬ ‫نتعلم‬ ‫سوف‬
‫على‬ ‫نتعرف‬ ‫سوف‬ ‫الن‬‫الـ‬get‫و‬set.
‫من‬ ‫والمعنى‬ ‫بكثيرة‬ ‫تستخدمهم‬ ‫سوف‬ ‫الكلمتين‬ ‫هذه‬get‫أو‬ ‫بالعنصر‬ ‫الخاص‬ ‫بالقيمة‬ ‫لنا‬ ‫أتي‬ ‫مثل‬
‫وأما‬ ,.. ‫أو‬ ‫بالمتغير‬set.‫القيمة‬ ‫هذه‬ ‫بتعديل‬ ‫قم‬
.‫التطبيق‬ ‫في‬ ‫نص‬ ‫داخل‬ ‫التاريخ‬ ‫هذا‬ ‫بوضع‬ ‫وقم‬ ,‫اليوم‬ ‫تاريخ‬ ‫بجلب‬ ‫قم‬ ‫مثال‬
: ‫صغير‬ ‫بتطبيق‬ ‫لنقوم‬ ‫مثل‬
‫وموقعه‬ ,‫حاجته‬ ‫حسب‬ ‫والرتفاع‬ ,‫الشاشة‬ ‫كامل‬ ‫إي‬ ,‫له‬ ‫الب‬ ‫كعرض‬ ‫له‬ ‫العرض‬ ,‫الخصائص‬ ‫هنا‬ ‫لحظ‬
‫له‬ ‫والهامش‬ ,‫الوسط‬ ‫في‬20‫النص‬ ‫و‬Hi‫النص‬ ‫وحجم‬ ‫فسفوري‬ ‫واللون‬25‫المعرف‬ ‫خاصية‬ ‫وأهم‬
textView
82
: ‫التطبيق‬ ‫تشغيل‬ ‫بعد‬ ‫النتيجة‬ ‫لحظ‬ ‫الن‬
83
‫الـ‬ ‫أهمها‬ ‫ومن‬ ,‫تستخدمها‬ ‫سوف‬ ‫لنك‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫كثيرة‬ ‫أخرى‬ ‫أمور‬ ‫يوجد‬if‫وأكثر‬ ,‫شرط‬ ‫لوضع‬
‫الدوال‬ ‫استخدام‬ ‫كيفية‬ ‫وكذلك‬ ‫الشرط‬ ‫وجواب‬ ‫برمجيا‬ .. ‫و‬ ‫أو‬ ‫أي‬ ‫واستخدام‬ ‫الوقت‬ ‫نفس‬ ‫في‬ ‫شرط‬ ‫من‬
‫لكي‬ ‫وتحتاجها‬ ‫كثيرة‬ ‫جدا‬ ‫أمور‬ ‫إلخ‬ .. ‫بها‬ ‫للتحكم‬ ‫المشروع‬ ‫كامل‬ ‫في‬ ‫متغيرات‬ ‫واستخدام‬ ‫وتنفيذها‬
.‫متوسطة‬ ‫من‬ ‫أكثر‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫خبرتك‬ ‫تزداد‬
. ‫ال‬ ‫شاء‬ ‫إن‬ ‫الكواد‬ ‫على‬ ‫أكثر‬ ‫أركز‬ ‫سوف‬ ‫المشاريع‬ ‫إنشاء‬ ‫مع‬
‫الكتفتي‬ ‫حياة‬ ‫دورة‬ ‫دوال‬
‫في‬ ‫ينفذ‬ ‫سوف‬ ‫منها‬ ‫وكل‬ ,‫منك‬ ‫استدعاء‬ ‫دون‬ ‫تنفذ‬ ‫سوف‬ ‫التي‬ ,‫الساسية‬ ‫الدوال‬ ‫نتعلم‬ ‫سوف‬ ‫هنا‬
‫لذلك‬ .‫بسهولة‬ ‫النقاط‬ ‫لهذه‬ ‫الوصول‬ ‫تستطيع‬ ‫ل‬ ‫لنك‬ ‫منها‬ ‫وتستفيد‬ ‫وتحتاجها‬ ,‫معينة‬ ‫نقطة‬ ‫أو‬ ‫موقع‬
.‫للكتفتي‬ ‫أساسية‬ ‫دوال‬ ‫بعدة‬ ‫عليك‬ ‫سهل‬ ‫المر‬
.. ‫الكلس‬ ‫وليس‬ ‫الكتفتي‬ ‫مع‬ ‫إنشائها‬ ‫يتم‬ ‫أساسية‬ ‫دالة‬ ‫داخلها‬ ‫شاهدنا‬ ‫الكتفتي‬ ‫في‬ ‫تتذكر‬ ‫هل‬
‫في‬ ‫نضعها‬ ‫ولكن‬ .. ‫كريت‬ ‫الون‬ ‫دالة‬ ‫داخله‬ ‫تكون‬ ‫ل‬ ‫كلس‬ ‫إنشاء‬ ‫عند‬ .. ‫المر‬ ‫لك‬ ‫وضح‬ ‫هكذا‬ ‫اعتقد‬
.. ‫بالندرويد‬ ‫معينة‬ ‫دوال‬ ‫عدة‬ ‫ولتنفيذ‬ ‫باللياوت‬ ‫ربطه‬ ‫يتم‬ ‫اكتفتي‬ ‫لتصبح‬ ‫الكلس‬
‫القادمة‬ ‫الصفحة‬ ‫في‬ ‫الصورة‬ ‫شاهد‬ ‫البداية‬ ‫في‬
84
: ‫استخدمها‬ ‫موقع‬ ‫وأين‬ ‫للكتفتي‬ ‫الساسية‬ ‫جميعها‬ ‫الدوال‬ ‫عن‬ ‫تعبر‬ ‫الصورة‬ ‫هذه‬
85
: ‫الشرح‬ ‫تابع‬ ‫جيدا‬ ‫تفهمها‬ ‫لم‬ ‫إذا‬http://goo.gl/KXeTp4
: ‫الدوال‬ ‫هذه‬ ‫عن‬ ‫مختصر‬ ‫نبذة‬ ‫وهذه‬
‫انطلق‬ ‫بعد‬ ‫استدعائها‬ ‫يتم‬ ‫التي‬ ‫الساسية‬ ‫الدالة‬
‫داخلها‬ ‫يتم‬ ‫التي‬ ‫الدالة‬ ‫وهي‬ ,‫الكتفتي‬ ‫تشغيل‬ ‫او‬
. ‫إلخ‬ ‫البرمجة‬ ‫الوامر‬ ‫واعطاء‬ ‫المتغيرات‬ ‫تعريف‬
‫ستارت‬ ‫اون‬ ‫دالة‬ ‫تنفذ‬ ‫يتم‬ ‫بعدها‬ ‫ومن‬
onCreate():
‫يتوقف‬ ‫إن‬ ‫بعد‬ .. ‫الدالة‬ ‫هذه‬ ‫في‬ ‫الوامر‬ ‫تنفيذ‬ ‫يتم‬
‫مرة‬ ‫التطبيق‬ ‫تشغيل‬ ‫عند‬ ‫العمل‬ ‫عن‬ ‫تطبيقك‬
‫ستارت‬ ‫اون‬ ‫دالة‬ ‫تنفذ‬ ‫يتم‬ ‫بعده‬ ‫ومن‬ .. ‫اخرى‬
onRestart():
‫التطبيق‬ ‫يصبح‬ ‫إن‬ ‫بعد‬ ‫الدالة‬ ‫هذه‬ ‫تنفيذ‬ ‫ويتم‬
‫دالة‬ ‫تنفيذ‬ ‫يتم‬ ‫بعدها‬ ‫ومن‬ ‫المستخدم‬ ‫أمام‬ ‫ظاهر‬
‫يتم‬ ‫أو‬ ,‫التطبيق‬ ‫داخل‬ ‫زلت‬ ‫ما‬ ‫كنت‬ ‫إذا‬ ‫ريزوم‬ ‫اون‬
‫تطبيق‬ ‫فتحت‬ ‫أو‬ ‫ذهبت‬ ‫إذا‬ ‫ستوب‬ ‫اون‬ ‫دالة‬ ‫تنفيذ‬
‫آخر‬
onStart():
‫مع‬ ‫بالتفاعل‬ ‫المستخدم‬ ‫يبدأ‬ ‫عندما‬ ‫تنفيذها‬ ‫يتم‬
‫باز‬ ‫اون‬ ‫بعدها‬ ‫من‬ ‫تنفيذ‬ ‫ويتم‬ ,‫التطبيق‬
onResume():
‫إذا‬ ‫للتطبيق‬ ‫الرجوع‬ ‫يتم‬ ‫عندما‬ ‫الدالة‬ ‫هذه‬ ‫تحدث‬
‫كثيرة‬ ‫أوامر‬ ‫تضع‬ ‫ل‬ ‫إنك‬ ‫وتأكد‬ ‫اخر‬ ‫نشاط‬ ‫في‬ ‫كنت‬
‫هنا‬
onPause ():
‫ظاهر‬ ‫غير‬ ‫التطبيق‬ ‫يصبح‬ ‫عندما‬ ‫الدالة‬ ‫هذه‬ ‫تحدث‬
‫للمستخدم‬
onStop():
‫أو‬ ‫التطبيق‬ ‫إجبار‬ ‫يتم‬ ‫عندما‬ ‫الدالة‬ ‫هذه‬ ‫وتحدث‬
‫اجباري‬ ‫بشكل‬ ‫توقفه‬
onDestroy():
: ‫صغير‬ ‫مثال‬
‫بداية‬ ‫مع‬ ‫القاعدة‬ ‫إنشاء‬ ‫ويتم‬ ,‫الرسائل‬ ‫من‬ ‫كبير‬ ‫كم‬ ‫لتخزين‬ ‫التطبيق‬ ‫في‬ ‫بيانات‬ ‫قواعد‬ ‫يوجد‬ ‫مثل‬
‫الجباري‬ ‫والتوقف‬ ‫التوقف‬ ‫دالة‬ ‫تستخدم‬ ‫إي‬ ‫التطبيق‬ ‫من‬ ‫الخروج‬ ‫يتم‬ ‫عندما‬ ‫يفضل‬ ‫إذا‬ ,‫التطبيق‬ ‫تشغيل‬
‫عملية‬ ‫كل‬ ‫مع‬ ‫الرسائل‬ ‫مل‬ ‫يتم‬ ‫وأحيانا‬ ,‫الجهاز‬ ‫على‬ ‫ثقيل‬ ‫الحمل‬ ‫يصبح‬ ‫ل‬ ‫كي‬ ,‫القاعدة‬ ‫هذه‬ ‫لتفريغ‬
.‫القواعد‬ ‫مع‬ ‫التعامل‬ ‫في‬ ‫خبرتك‬ ‫حسب‬ ‫على‬ ‫فتح‬
: ‫السابقة‬ ‫الدوال‬ ‫أحد‬ ‫كتابة‬ ‫طريقة‬
public void onDestroy() {
super.onDestroy();
// ‫الوامر‬ ‫تنفيذ‬ ‫يتم‬ ‫هنا‬ .
}
86
: ‫آخر‬ ‫بشكل‬ ‫الدوال‬ ‫لكم‬ ‫توضح‬ ‫الصورة‬ ‫وهذه‬
‫الول‬ ‫المشروع‬1.. ‫يا‬ ,‫ا‬‫مرحب‬ -
‫حقل‬ ‫عن‬ ‫عبارة‬ ‫يكون‬ ‫سوف‬ ,‫بسيط‬ ‫مشروع‬ ‫بناء‬ ‫وهي‬ ‫ينتظرها‬ ‫منكم‬ ‫الكثير‬ ,‫بالخطوة‬ ‫نقوم‬ ‫سوف‬ ‫الن‬
‫وعرض‬ ‫الخرى‬ ‫للكتفتي‬ ‫النتقال‬ ‫يتم‬ ,‫الزر‬ ‫على‬ ‫الضغط‬ ‫ثم‬ ‫ومن‬ ‫اسمك‬ ‫بادخال‬ ‫تقوم‬ , ‫وزر‬ ‫نصي‬
.‫بإدخاله‬ ‫قمت‬ ‫الذي‬ ‫اسمك‬
‫الضغط‬ ‫بعد‬ ‫أوامر‬ ‫تنفيذ‬ ,‫الشاشة‬ ‫على‬ ‫عناصر‬ ‫وضع‬ ‫منها‬ ,‫أمور‬ ‫عدة‬ ‫نتعلم‬ ‫سوف‬ ‫المشروع‬ ‫هذا‬ ‫ومن‬
‫كيفية‬ ,‫بداخله‬ ‫ما‬ ‫وجلب‬ ‫النصي‬ ‫الحقل‬ ‫مع‬ ‫التعامل‬ ,‫اخرى‬ ‫ولياوت‬ ‫اخرى‬ ‫اكتفتي‬ ‫إنشاء‬ ,‫الزر‬ ‫على‬
.. ‫اخرى‬ ‫وامور‬ ,‫اخرى‬ ‫الى‬ ‫اكتفتي‬ ‫من‬ ‫النتقال‬
.‫له‬ ‫مشروع‬ ‫أول‬ ‫يكون‬ ‫سوف‬ ‫للبعض‬ ‫تقريبا‬ ‫لنه‬ .. ‫وبالصور‬ ‫بالترتيب‬ ‫الخطوات‬ ‫نأخذ‬ ‫وشوف‬
‫نبدأ‬ ‫ثم‬ ‫من‬ ‫سريعة‬ ‫فقط‬ ‫صور‬ ‫أضع‬ ‫سوف‬ ,‫لك‬ ‫مشروع‬ ‫اول‬ ‫إنشاء‬ ‫سابق‬ ‫درس‬ ‫في‬ ‫أخذنا‬ ‫إننا‬ ‫بما‬ ‫ولكن‬
.‫الشرح‬
.‫الصور‬ ‫تابع‬ .. ‫جديد‬ ‫مشروع‬ ‫إنشاء‬ ‫على‬ ‫والضغط‬ .. ‫ستوديو‬ ‫الندرويد‬ ‫بفتح‬ ‫نقوم‬ ‫البداية‬ ‫في‬
87
‫زر‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ‫والن‬Finish.. ‫بالتجهيز‬ ‫المشروع‬ ‫يبدأ‬ ‫سوف‬
88
.‫واللياوت‬ ‫الكتفتي‬ .. ‫مفتوحين‬ ‫ملفين‬ ‫هناك‬ ‫إن‬ ‫نشاهد‬ ‫سوف‬ ‫المشروع‬ ‫فتح‬ ‫بعد‬
‫الموجود‬ ‫النص‬ ‫بحذف‬ ‫نقوم‬ ‫اللياوت‬ ‫مع‬ ‫نبدأ‬Hello World‫لوحة‬ ‫من‬ ‫الضغط‬ ‫ثم‬ ‫عليه‬ ‫بالنقر‬ ‫وذلك‬ , !
‫زر‬ ‫على‬ ‫المفاتيح‬Delete.
‫على‬ ‫بالضغط‬ ‫نقوم‬ ‫من‬ ‫ذلك‬ ‫بعد‬Text‫في‬ ‫كما‬ .‫اللياوت‬ ‫من‬ ‫السفل‬ ‫في‬ ‫اليسرى‬ ‫الزاوية‬ ‫في‬ ‫الموجودة‬
: ‫الصورة‬
‫البرمجية‬ ‫باللغة‬ ‫او‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫او‬ ‫النصي‬ ‫بالعرض‬ ‫ولكن‬ ‫النافذة‬ ‫هذه‬ ‫لنا‬ ‫فتح‬ ‫يتم‬ ‫لكي‬XML,
: ‫منها‬ ‫التالية‬ ‫السطر‬ ‫بحذف‬ ‫نقوم‬ ‫معدودة‬ ‫أكواد‬ ‫لنا‬ ‫يظهر‬ ‫سوف‬
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
89
‫ولكن‬ ,‫داخلها‬ ‫والعناصر‬ ‫الشاشة‬ ‫اطراف‬ ‫بين‬ ‫ما‬ ‫هامش‬ ‫لجعل‬ ‫وذلك‬ , ‫الحشو‬ ‫خاصية‬ ‫هي‬ ‫السطر‬ ‫هذه‬
.‫حاليا‬ ‫نحتاجها‬ ‫ل‬
: ‫التالية‬ ‫الكلمة‬ ‫بتغيير‬ ‫كذلك‬ ‫ونقوم‬RelativeLayout‫إلى‬LinearLayout.
: ‫التالي‬ ‫بالشكل‬ ‫الكود‬ ‫ليصبح‬
‫على‬ ‫انقر‬ ‫السفل‬ ‫في‬ ‫اليسرى‬ ‫الزاوية‬ ‫من‬ ‫كذلك‬ , ‫فيو‬ ‫الديزاين‬ .. ‫العرض‬ ‫شاشة‬ ‫إلى‬ ‫نرجع‬ ‫الن‬
Desgin.
‫اسمها‬ ‫خاصية‬ ‫يوجد‬ ,‫الخصائص‬ ‫اليمين‬ ‫على‬ ‫السفل‬ ‫في‬ ‫يوجد‬ ,‫فيو‬ ‫الديزاين‬ ‫شاشة‬ ‫إلى‬ ‫الرجوع‬ ‫بعد‬
orientation‫واختر‬ ‫عليها‬ ‫اضغط‬vertical: ‫الصورة‬ ‫في‬ ‫كما‬ .
90
.‫البعض‬ ‫بعضها‬ ‫فوق‬ ‫العناصر‬ ‫تصبح‬ ‫لكي‬ ,‫العمودي‬ ‫بالتجاه‬ ‫لياوت‬ ‫اللينر‬ ‫اتجاه‬ ‫بتحديد‬ ‫قمنا‬ ‫هكذا‬
‫عنصر‬ ‫على‬ ‫بالضغط‬ ‫نقوم‬ ‫سوف‬ ‫والن‬Plain Text‫نوع‬ ‫من‬ ‫وهو‬EditText‫قم‬ ‫فقط‬ ‫عليه‬ ‫الضغط‬ ‫بعد‬
‫عنصر‬ ‫على‬ ‫بالضغط‬ ‫نقوم‬ ‫ثم‬ ,‫اللياوت‬ ‫على‬ ‫بالنقر‬Button‫ليتم‬ ‫اللياوت‬ ‫على‬ ‫بالنقر‬ ‫نقوم‬ ‫وكذلك‬
.‫ادراجهم‬
: ‫التالي‬ ‫الشكل‬ ‫لدينا‬ ‫يخرج‬ ‫سوف‬
‫ومن‬ ,‫السابقة‬ ‫الصورة‬ ‫في‬ ‫كما‬ ‫اللياوت‬ ‫عنصر‬ ‫على‬ ‫بالتحديد‬ ‫نبدأ‬ .‫منها‬ ‫كل‬ ‫بتنسيق‬ ‫نقوم‬ ‫سوف‬ ‫الن‬
‫خاصية‬ ‫إلى‬ ‫نذهب‬ ,‫اليمين‬ ‫على‬ ‫الخصائص‬ ‫قائمة‬padding‫ثم‬all‫داخلها‬ ‫ونضع‬20dp.
‫عنصر‬ ‫على‬ ‫بالنقر‬ ‫نقوم‬ ‫ثم‬editText‫خاصية‬ ‫غلى‬ ‫نذهب‬ ‫الخصائص‬ ‫ومن‬ ,id‫داخلها‬ ‫ونضع‬put_name‫ثم‬
‫خاصية‬hint."‫فضلك‬ ‫من‬ ‫هنا‬ ‫اسمك‬ ‫"اكتب‬ ‫داخلها‬ ‫ونضع‬
‫الـ‬ ‫بتغير‬ ‫نقوم‬ ‫الخصائص‬ ‫ومن‬ ,‫الزر‬ ‫على‬ ‫الضغط‬ ‫او‬ ‫بتحديد‬ ‫نقوم‬ ‫والن‬id‫إلى‬enter‫خاصية‬ ‫عند‬ ‫وكذلك‬ .
layout:gravity‫عند‬ ‫داخلها‬ ‫ثم‬center‫نختار‬horizontal‫خاصية‬ ‫وعند‬ .text. ‫بالدخول‬ ‫تفضل‬ ‫نكتب‬
91
: ‫هي‬ ‫والنتيجة‬
‫الكود‬ ‫ونتيجة‬xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/put_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="‫فضلك‬ ‫من‬ ‫هنا‬ ‫اسمك‬ ‫"اكتب‬ />
<Button
android:id="@+id/enter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="‫بالدخول‬ ‫"تفضل‬ />
</LinearLayout>
92
‫لياوت‬ ‫إنشاء‬ ‫هو‬ ,‫الن‬ ‫بفعله‬ ‫نقوم‬ ‫سوف‬ ‫ما‬ .‫البرمجي‬ ‫للجانب‬ ‫ننتقل‬ ‫ثم‬ ‫من‬ ,‫أفضل‬ ‫اللياوت‬ ‫لنكمل‬ ‫والن‬
.‫بالدخول‬ ‫تفضل‬ ‫زر‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ‫إليها‬ ‫النتقال‬ ‫ليتم‬ ,‫آخرى‬
‫مجلد‬ ‫على‬ ‫اليمن‬ ‫بالزر‬ ‫نضغط‬ ,‫أخرى‬ ‫لياوت‬ ‫بإنشاء‬ ‫لنقوم‬layout‫ثم‬ ‫ومن‬new‫ثم‬Layout resource file
‫حقل‬ ‫فقط‬ ‫هي‬ ‫كما‬ ‫الخيارات‬ ‫اترك‬ ,‫صغيرة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ‫الن‬File name‫اللياوت‬ ‫اسم‬ ‫فيه‬ ‫ضع‬
: ‫التطبيق‬ ‫هذا‬ ‫في‬ ‫نحن‬ ‫نضع‬ ‫وسوف‬second_activity.
: ‫اثنين‬ ‫لياوت‬ ‫الن‬ ‫لدينا‬
.‫الثانية‬ ‫اللياوت‬ ‫بفتح‬ ‫نقوم‬ ‫سوف‬ ‫الن‬ ,‫بالكامل‬ ‫بتجهيزها‬ ‫قمنا‬ ‫الولى‬ ‫اللياوت‬
‫عنصر‬ ‫بوضع‬ ‫نقوم‬ ‫سوف‬Plain TextView‫نوع‬ ‫من‬TextView‫الخصائص‬ ‫بتعديل‬ ‫لنقوم‬ ‫عليه‬ ‫ونضغط‬ ,
.‫به‬ ‫الخاصة‬
‫الـ‬ ‫تعديل‬ ‫البداية‬ ‫في‬ ‫نقوم‬ ‫الخصائص‬ ‫قائمة‬ ‫من‬id‫إلى‬welcome‫خاصية‬ ‫ثم‬ .layout:margin‫من‬ ‫ثم‬
‫داخلها‬all‫القيمة‬ ‫ونضع‬40dp‫الخاصية‬ ‫كذلك‬ .layout:gravity‫عند‬ ‫داخلها‬ ‫ثم‬center‫نختار‬horizontal.
‫الخاصية‬ ‫و‬textColor# ‫نضع‬f00‫الخاصية‬ ‫وعند‬textSize‫نضع‬25sp.
: ‫هي‬ ‫النتيجة‬
93
‫والكود‬xml: ‫الثانية‬ ‫للياوت‬
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/welcome"
android:layout_gravity="center_horizontal"
android:layout_margin="40dp"
android:textColor="#f00"
android:textSize="25sp" />
</LinearLayout>
‫الجافا‬ ‫بلغة‬ ‫البرمجي‬ ‫للجزء‬ ‫نذهب‬ ‫سوف‬ .. ‫اللياوت‬ ‫من‬ ‫أنتهينا‬ ‫نكون‬ ‫هكذا‬java.
‫مجلد‬ ‫من‬ ,‫الثانية‬ ‫الكتفتي‬ ‫بإنشاء‬ ‫أول‬ ‫نقوم‬ ‫سوف‬java‫اليمن‬ ‫بالزر‬ ‫عليها‬ ‫واضغط‬ ‫الحزمة‬ ‫على‬ ‫حدد‬
‫واختر‬new‫ثم‬Java Class.
: ‫التالي‬ ‫السم‬ ‫نضع‬ ‫صغيرة‬ ‫نافذة‬ ‫تخرج‬ ‫سوف‬Second_Activity
.‫للترتيب‬ ‫ولكن‬ ‫بالتسمية‬ ‫مشكلة‬ ‫ل‬ ,‫كبير‬ ‫حرف‬ ‫اول‬ ‫ولكن‬ ‫اللياوت‬ ‫اسم‬ ‫مثل‬ ‫تماما‬
: ‫الشكل‬ ‫بهذا‬ ‫الكلس‬ ‫لنا‬ ‫يظهر‬ ‫سوف‬
package com.andrody.welcome;
/**
* Created by Abboudi_Aliwi on 11/9/2015.
*/
public class Second_Activity {
}
.‫الثانية‬ ‫باللياوت‬ ‫ربطه‬ ‫ويتم‬ ‫اكتفتي‬ ‫ليصبح‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫داخله‬ ‫وضع‬ ‫يجب‬ ‫الن‬ ,‫تماما‬ ‫فارغ‬
94
‫يعرفها‬ ‫ل‬ ‫ولمن‬ ,‫جيد‬ ‫هذا‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫داخله‬ ‫ويضع‬ ‫اكتفتي‬ ‫وجعله‬ ‫الكلس‬ ‫تعديل‬ ‫كيفية‬ ‫حفظ‬ ‫من‬
‫واسمه‬ ‫الرئيسية‬ ‫الكتفتي‬ ‫إلى‬ ‫يذهب‬MainActivity.
: ‫التالي‬ ‫بالشكل‬ ‫الكود‬ ‫بنسخ‬ ‫نقوم‬ ‫داخله‬ ‫ومن‬
: ‫الصورة‬ ‫في‬ ‫كما‬ ,‫الثاني‬ ‫الكلس‬ ‫في‬ ‫الكود‬ ‫بلصق‬ ‫نقوم‬ ‫و‬
95
‫السطر‬ ‫بتغيير‬ ‫نقوم‬ ‫سوف‬ ‫لذلك‬ ,‫الرئيسية‬ ‫باللياوت‬ ‫مرتبطة‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫إن‬ ‫لحظ‬ ,‫اللصق‬ ‫بعد‬ ‫الن‬
‫رقم‬14: ‫من‬
setContentView(R.layout.activity_main);
: ‫الثانية‬ ‫اللياوت‬ ‫إلى‬
setContentView(R.layout.second_activity);
: ‫الن‬ ‫لدينا‬ ‫ما‬ ‫نراجع‬ ,‫البرمجية‬ ‫الوامر‬ ‫بإضافة‬ ‫نقوم‬ ‫أن‬ ‫قبل‬ ,‫تمام‬
‫لدينا‬2+ ‫اكتفتي‬2.‫لياوت‬
.‫ببعضها‬ ‫ربطها‬ ‫وتم‬
.‫اللياوت‬ ‫من‬ ‫النتهاء‬ ‫تم‬ ‫كذلك‬
.‫لبرمجتها‬ ‫الكتفتي‬ ‫ملفات‬ ‫لدينا‬ ‫باقي‬
: ‫الول‬ ‫الكتفتي‬ ‫مع‬ ‫الن‬ ‫نبدأ‬ ‫سوف‬ ‫حسنا‬MainActivity
‫وربطها‬ ,‫زر‬ + ‫نصي‬ ‫حقل‬ ‫لدينا‬ ‫إن‬ ‫الكتفتي‬ ‫إخبار‬ , ‫هو‬ ‫به‬ ‫نقوم‬ ‫سوف‬ ‫ما‬ ‫البداية‬ ‫في‬ ‫داخله‬ ‫من‬
‫طريق‬ ‫عن‬ ‫اللياوت‬ ‫داخل‬ ‫من‬ ‫بالعناصر‬id‫الثانية‬ ‫الكتفتي‬ ‫إلى‬ ‫بنا‬ ‫بالنتقال‬ ‫قم‬ ‫للزر‬ ‫أمر‬ ‫إعطاء‬ ‫وكذلك‬
.‫النصي‬ ‫الحقل‬ ‫بداخل‬ ‫المستخدم‬ ‫وضعه‬ ‫الذي‬ ‫النص‬ ‫معك‬ ‫وخذ‬
, ‫نصي‬ ‫حقل‬ ‫نوع‬ ‫من‬ ‫ومتغير‬ ‫زر‬ ‫نوع‬ ‫من‬ ‫متغير‬ ‫نضع‬ ‫سوف‬ ,‫المتغيرات‬ ‫بوضع‬ ‫نقوم‬ ‫كيف‬ ‫سابقا‬ ‫تعلمنا‬ ‫كما‬
: ‫التالي‬ ‫نضع‬ .‫الكلس‬ ‫وبداخل‬ ‫الدوال‬ ‫خارج‬ ‫نضعها‬
EditText your_name;
Button go_to;
96
: ‫التالي‬ ‫بالشكل‬ ‫اللياوت‬ ‫داخل‬ ‫بالعناصر‬ ‫المتغيرات‬ ‫هذه‬ ‫بربط‬ ‫نقوم‬ ‫سوف‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫بداخل‬ ‫والن‬
your_name = (EditText)findViewById(R.id.put_name);
go_to = (Button)findViewById(R.id.enter);
‫أوامر‬ ‫بتنفيذ‬ ‫ليقوم‬ ‫عليه‬ ‫الضغط‬ ‫تم‬ ‫حال‬ ‫في‬ .. ‫للزر‬ ‫كليك‬ ‫اون‬ ‫دالة‬ ‫بإنشاء‬ ‫نقوم‬ ,‫الربط‬ ‫عملية‬ ‫أسفل‬ ‫و‬
: ‫الزر‬ ‫لبرمجة‬ ‫الكود‬ ‫هذا‬ .‫معينة‬
go_to.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ‫الزر‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ‫بها‬ ‫القيام‬ ‫نريد‬ ‫التي‬ ‫البرمجية‬ ‫الوامر‬ ‫نضع‬ ‫هنا‬
}
});
: ‫التالية‬ ‫الوامر‬ ‫بوضع‬ ‫نقوم‬ ‫الن‬ ‫و‬
Intent i = new Intent(MainActivity.this,Second_Activity.class);
i.putExtra("text", your_name.getText().toString());
startActivity(i);
‫انتنت‬ ‫أمر‬ ‫بإعطاء‬ ‫قمنا‬Intent‫في‬ ‫أكبر‬ ‫بشكل‬ ‫النتنت‬ ‫على‬ ‫تتعرف‬ ‫سوف‬ ,‫انتقال‬ ‫بمعنى‬ ‫وبالندرويد‬
.‫مستقل‬ ‫درس‬
‫اسمه‬ ‫متغير‬ ‫النتنت‬ ‫هذا‬i‫كتبنا‬ ‫المثال‬ ‫حسب‬ ‫ولكن‬ ,‫تريد‬ ‫ما‬ ‫كتابة‬ ‫تستطيع‬i‫جديد‬ ‫انتنت‬ ‫إنه‬ ‫عرفنا‬ ‫ثم‬
‫فيها‬ ‫نحن‬ ‫التي‬ ‫الكتفتي‬ ‫أو‬ ‫المكان‬ ‫من‬ ‫أنتقال‬ ‫عملية‬ ‫وداخله‬MainActivity.this‫الثانية‬ ‫الكتفتي‬ ‫إلى‬
Second_Activity.class‫النتنت‬ ‫أخبرنا‬ ‫و‬ .i‫بداخل‬ ‫الموجود‬ ‫النص‬ ‫قيمة‬ ‫وهي‬ ,‫قيمة‬ ‫معه‬ ‫يأخذ‬ ‫إن‬
your_name.‫النتنت‬ ‫هذا‬ ‫لتنفيذ‬ ‫الزر‬ ‫بداخل‬ ‫أمر‬ ‫أعطينا‬ ‫وبعدها‬ ,‫سترنج‬ ‫إلى‬ ‫وتحويلها‬
‫سوف‬ ‫بعدها‬ ‫من‬ ‫ثم‬ ,‫الثانية‬ ‫الكتفتي‬ ‫إلى‬ ‫ننتقل‬ ‫والن‬ ,‫الرئيسية‬ ‫الكتفتي‬ ‫الن‬ ‫من‬ ‫أنتهينا‬ ‫نكون‬ ‫هكذا‬
.‫النتهاء‬ ‫بعد‬ ‫كاملة‬ ‫والثانية‬ ‫الولى‬ ‫الكتفتي‬ ‫أكواد‬ ‫لكم‬ ‫أطرح‬
: ‫الثانية‬ ‫الكتفتي‬ ‫لـ‬ ‫بالنسبة‬Second_Activity.
‫في‬ ‫وضعه‬ ‫ثم‬ ‫الولى‬ ‫الكتفتي‬ ‫من‬ ‫النص‬ ‫يستقبل‬ ‫ويجعله‬ ,‫بداخله‬ ‫النص‬ ‫تغيير‬ ,‫فقط‬ ‫به‬ ‫نقوم‬ ‫سوف‬ ‫ما‬
.‫فيو‬ ‫التكست‬ ‫هذا‬
97
‫الون‬ ‫دالة‬ ‫في‬ ‫مشكلة‬ ‫ل‬ ,‫كثيرة‬ ‫ودوال‬ ‫برمجية‬ ‫أوامر‬ ‫لدينا‬ ‫ليس‬ ‫إنه‬ ‫وبما‬ ,‫الثانية‬ ‫الكتفتي‬ ‫بفتح‬ ‫نقوم‬
.‫الجديد‬ ‫النص‬ ‫ليستقبل‬ ‫أمر‬ ‫اعطائه‬ ‫ثم‬ ‫ومن‬ ‫وربطه‬ ‫النص‬ ‫بتعريف‬ ‫نقوم‬ ‫كريت‬
: ‫التالي‬ ‫ضع‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫في‬
TextView Welcome = (TextView) findViewById(R.id.welcome);
‫للمراجعة‬Welcome‫نوع‬ ‫من‬ ‫المتغير‬ ‫هو‬TextView‫المعرف‬ ‫والعنصر‬ ,id‫هو‬ ‫به‬ ‫الخاص‬welcome.
‫بوضع‬ ‫نقوم‬ ‫سوف‬ ‫الن‬ ‫و‬set: ‫التالي‬ ‫بالكود‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬ ‫لتعديله‬ ‫للنص‬
Welcome.setText("‫مرحبا‬ "+getIntent().getStringExtra("text"));
‫استخدمنا‬setText‫الجديد‬ ‫البرمجي‬ ‫بإسمه‬ ‫للنص‬Welcome,‫داخله‬ ‫الجديد‬ ‫النص‬ ‫وجعلنا‬Welcome
.‫الولى‬ ‫الكتفتي‬ ‫من‬ ‫معه‬ ‫النتنت‬ ‫جلبه‬ ‫الذي‬ ‫النص‬ +
‫سوف‬ ‫الستخدام‬ ‫خلل‬ ‫ومن‬ ‫كثيرا‬ ‫معك‬ ‫تتكرر‬ ‫وسوف‬ ‫سهلة‬ ‫لنها‬ ‫سبق‬ ‫ما‬ ‫بشرح‬ ‫أتعمق‬ ‫لم‬
.‫تستخدمها‬
: ‫الرئيسية‬ ‫الكتيفتي‬ ‫كود‬MainActivity
package com.andrody.welcome;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText your_name;
Button go_to;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
your_name = (EditText)findViewById(R.id.put_name);
go_to = (Button)findViewById(R.id.enter);
go_to.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Second_Activity.class);
i.putExtra("text", your_name.getText().toString());
startActivity(i);
}
});
}
}
98
: ‫الثانية‬ ‫الكتفتي‬ ‫كود‬ ‫وأما‬Second_Activity
package com.andrody.welcome;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
/**
* Created by Abboudi_Aliwi on 11/9/2015.
*/
public class Second_Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
TextView Welcome = (TextView) findViewById(R.id.welcome);
Welcome.setText(" ‫مرحبا‬ "+getIntent().getStringExtra("text"));
}
}
: ‫التطبيق‬ ‫نتيجة‬ ‫و‬
99
‫الندرويد‬ ‫تطبيق‬ ‫تنسيق‬
.‫للتطبيق‬ ‫جمالية‬ ‫أكثر‬ ‫لمسة‬ ‫لعطاء‬ ,‫وصغيرة‬ ‫بسيطة‬ ‫طرق‬ ‫نأخذ‬ ‫سوف‬ ,‫ال‬ ‫شاء‬ ‫إن‬ ‫الدرس‬ ‫هذا‬ ‫في‬
: ‫طويل‬ ‫النص‬ #
‫ما‬ ‫اختر‬ ,‫خيارات‬ ‫بعدة‬ ‫هنا‬ ‫أساعدك‬ ‫سوف‬ ,‫تطبيقك‬ ‫في‬ ‫إضافتها‬ ‫وتريد‬ ,‫كثيرة‬ ‫نصوص‬ ‫لديك‬ ‫كان‬ ‫إذا‬
‫داخل‬ ,‫منه‬ ‫سطر‬ ‫أو‬ ‫فقرة‬ ‫كل‬ ‫ضع‬ .‫مهم‬ ‫جدا‬ ‫النص‬ ‫كان‬ ‫إذا‬ ,‫منها‬ ‫يناسبك‬TextView‫من‬ ‫برمجيا‬ ‫او‬
‫الجافا‬String‫تشفير‬ ‫فك‬ ‫في‬ ‫صعب‬ ‫يجد‬ ‫سوف‬ ‫المحتوى‬ ‫سرقة‬ ‫أردات‬ ‫شخص‬ ‫حال‬ ‫في‬ ,‫سطر‬ ‫لكل‬
‫داخل‬ ‫سطر‬ ‫كل‬ ‫يجد‬ ‫سوف‬ ‫استطاع‬ ‫وإن‬ ‫التطبيق‬TextView‫سوف‬ ‫لذلك‬ ‫مختلفة‬ ‫خصائص‬ ‫منها‬ ‫ولكل‬
‫سوف‬ ‫منفصلة‬ ‫منها‬ ‫واحد‬ ‫كل‬ ‫كانت‬ ‫إذا‬ ,‫النص‬ ‫لتنسيق‬ ‫إما‬ ,‫الكثيرة‬ ‫النصوص‬ ‫جمع‬ ‫في‬ ‫شديد‬ ‫ملل‬ ‫يجد‬
‫الطويلة‬ ‫النصوص‬ ‫وضع‬ ‫لسهولة‬ ‫لذلك‬ ,‫منها‬ ‫واحد‬ ‫على‬ ‫بالتعديل‬ ‫تحتاج‬ ‫لنك‬ ,‫التنسيق‬ ‫في‬ ‫صعوبة‬ ‫تجد‬
) ‫علمة‬ ‫فقرة‬ ‫كل‬ ‫بعد‬ ‫أستخدم‬n‫ملفات‬ ‫في‬ (xml.‫متتالية‬ ‫وليست‬ ‫فقرات‬ ‫في‬ ‫النصوص‬ ‫لتجعل‬ .
‫من‬ ‫عنصر‬ ‫او‬ ‫اداة‬ ‫استخدام‬ ‫عليك‬ ‫يجب‬ ‫لذلك‬ ,‫النص‬ ‫كامل‬ ‫ظهور‬ ‫عدم‬ ‫من‬ ‫يعاني‬ ‫المبتدئين‬ ‫أغلب‬ ‫كذلك‬
‫نوع‬ScrollView.‫والعلى‬ ‫للسفل‬ ‫التمرير‬ ‫بخاصية‬ ‫بأكلمه‬ ‫النص‬ ‫عرض‬ ‫ليتم‬
: ‫إلخ‬ ‫ايميلت‬ - ‫أرقام‬ ‫أو‬ ‫روابط‬ ‫على‬ ‫يحتوي‬ ‫نص‬ #
.‫إلخ‬ ‫خرائط‬ ‫احداثيات‬ ‫أو‬ ,‫إيميلت‬ ‫أو‬ ,‫انترنت‬ ‫روابط‬ ‫أو‬ ,‫هواتف‬ ‫أرقام‬ ‫على‬ ‫يحتوي‬ ‫نص‬ ‫لديك‬ ‫كان‬ ‫إذا‬
: ‫للنص‬ ‫التالية‬ ‫الخاصية‬ ‫استخدم‬
android:autoLink="all"
.‫عليها‬ ‫الضغط‬ ‫للمستخدم‬ ‫ليسمح‬
: ‫النصي‬ ‫الحقل‬ ‫تعبئة‬ ‫على‬ ‫المستخدم‬ ‫اجبار‬ #
‫نصي‬ ‫فراغ‬ ‫او‬ ‫نصي‬ ‫حقل‬ ‫لديك‬ ‫يوجد‬ ‫كان‬ ‫إذا‬EditText‫ول‬ ,‫اسمه‬ ‫ادخال‬ ‫المستخدم‬ ‫من‬ ‫مثل‬ ‫وتريد‬
‫شرط‬ ‫تستخدم‬ ,‫الحقل‬ ‫هذا‬ ‫مل‬ ‫دون‬ ‫المتابعة‬ ‫على‬ ‫الضغط‬ ‫يستطيع‬if‫الحرف‬ ‫عدد‬ ‫تحديد‬ ‫وتستطيع‬ ,
.‫إلخ‬ ‫كتابتها‬ ‫المستخدم‬ ‫من‬ ‫تريد‬ ‫التي‬ ‫الكلمة‬ ‫او‬ ‫السم‬ ‫أو‬ ,‫تريدها‬ ‫التي‬
‫الحقل‬ ‫من‬ ‫التحقق‬ ‫شرط‬ ‫نستطيع‬ ,‫داخله‬ ‫شيء‬ ‫إي‬ ‫كتابة‬ ‫يجب‬ ‫تماما‬ ‫فاضي‬ ‫يكون‬ ‫ل‬ ‫إن‬ ‫هنا‬ ‫يهمنا‬ ‫ما‬
100
: ‫التالي‬ ‫بالشكل‬ .‫فارغ‬ ‫يكون‬ ‫ل‬ ‫أن‬
if(your_name.getText().toString().equals("")){
// ‫فارغ‬ ‫الحقل‬ ‫كان‬ ‫إذا‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫الوامر‬
}else {
// ‫فارغا‬ ‫الحقل‬ ‫يكن‬ ‫لم‬ ‫إذا‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫الوامر‬
}
‫أن‬ ‫علما‬your_name.‫كذلك‬ ‫اخرى‬ ‫طرق‬ ‫ويوجد‬ .‫النصي‬ ‫بالحقل‬ ‫الخاص‬ ‫المتغير‬ ‫هو‬
: ‫مصغرة‬ ‫تنبيه‬ ‫رسالة‬ ‫او‬ ‫توست‬ ‫رسالة‬ ‫إظهار‬ #
.‫الشاشة‬ ‫أسفل‬ ‫تكون‬ ‫ما‬ ‫وغالبا‬ ,‫مؤقت‬ ‫بشكل‬ ‫الشاشة‬ ‫على‬ ‫تظهر‬ ‫التي‬ ‫هي‬ ‫التوست‬ ‫رسالة‬
‫كتابة‬ ‫فقط‬ ‫سريع‬ ‫بشكل‬ ‫إنشائها‬ ‫تستطيع‬Toast‫ستوديو‬ ‫الندرويد‬ ‫في‬ ,‫الجافا‬ ‫البرمجية‬ ‫الكواد‬ ‫داخل‬
‫اقتراح‬ ‫يعطيك‬ ‫وسوف‬Create a new Toast.‫تلقائي‬ ‫بشكل‬ ‫انشائها‬ ‫يتم‬ ‫وسوف‬ ‫عليه‬ ‫اضغط‬
: ‫التالي‬ ‫بالشكل‬ ‫وهي‬
Toast.makeText(MainActivity.this, "‫هنا‬ ‫تريدها‬ ‫التي‬ ‫الرسالة‬ ‫,"اكتب‬ Toast.LENGTH_SHORT).show();
‫إن‬ ‫علما‬MainActivity‫و‬ ,‫الن‬ ‫فيها‬ ‫نحن‬ ‫التي‬ ‫الكتفتي‬ ‫اسم‬ ‫هو‬LENGTH_SHORT‫التي‬ ‫الزمنية‬ ‫المدة‬ ‫هي‬
‫و‬ ‫التوست‬ ‫ظهور‬ ‫مدة‬ ‫بمعنى‬ ‫للختفاء‬ ‫التوست‬ ‫يحتاجها‬LENGTH_SHORT) ‫الثواني‬ ‫من‬ =2‫وأما‬ (
LENGTH_LONG) ‫الثواني‬ ‫من‬ =3.5.‫إلخ‬ ‫أطول‬ ‫لمدة‬ ‫الرسالة‬ ‫إظهار‬ ‫تستطيع‬ ‫اخرى‬ ‫وبطرق‬ . (
: ‫عليها‬ ‫لتتعرف‬ ‫التوست‬ ‫هذه‬ ‫من‬ ‫وصورة‬
101
‫ملحظة‬ ‫تنبيه‬ ‫نافذة‬ ‫إظهار‬ #alert dialog:
‫؟‬ ‫التطبيق‬ ‫من‬ ‫الخروج‬ ‫من‬ ‫متأكد‬ ‫هل‬ ,‫استخدامها‬ ‫أمثلة‬ ‫من‬ ,‫النافذة‬ ‫هذه‬ ‫على‬ ‫تحتوي‬ ‫كثيرة‬ ‫تطبيقات‬
.‫إلخ‬ ‫ملحظة‬ ! .. ‫يوجد‬ ‫تحذير‬ ‫؟‬ ‫من‬ ‫متأكد‬ ‫هل‬ ‫؟‬ .. ‫تحميل‬ ‫تريد‬ ‫هل‬
: ‫الناقذة‬ ‫هذه‬ ‫على‬ ‫للتعرف‬ ‫صورة‬
‫على‬ ‫الضغط‬ ‫بعد‬ ,‫اكتفتي‬ ‫تشغيل‬ ‫بعد‬ ,‫خروجها‬ ‫تريد‬ ‫أنت‬ ‫مخير‬ ‫أنت‬ ‫لذلك‬ ,‫لظهورها‬ ‫أمر‬ ‫عن‬ ‫عبارة‬ ‫هي‬
.‫إلخ‬ ‫الزر‬
: ‫بها‬ ‫الخاص‬ ‫الكود‬
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this);
builder.setTitle(" ‫التطبيق‬ ‫إغل ق‬"(;//‫العنوان‬
builder.setMessage(" ‫التطبيق‬ ‫من‬ ‫خروج‬ ‫من‬ ‫متأكد‬ ‫هل‬"):(;//‫المحتوى‬
builder.setPositiveButton(" ‫نعم‬",//‫الول‬ ‫الزر‬
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// ‫الاول‬ ‫الزر‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ‫تحدث‬ ‫التي‬ ‫الوامر‬
}
});
builder.setNegativeButton(" ‫ل‬",//‫الثاني‬ ‫الزر‬
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// ‫الثاني‬ ‫الزر‬ ‫اوامر‬
}
});
builder.show();}
‫الزرار‬ ‫زيادة‬ ‫او‬ ‫تقليل‬ ‫وتستطيع‬ ,‫والزرار‬ ‫والمحتوى‬ ‫العنوان‬ ,‫راحتك‬ ‫على‬ ‫الكود‬ ‫بتعديل‬ ‫قم‬1,3.
102
‫الول‬ ‫المشروع‬2‫اللغات‬ ‫متعدد‬ .. ‫يا‬ ,‫ا‬‫مرحب‬ -
‫الخطوات‬ ‫ببعض‬ ‫نقوم‬ ‫وسوف‬ .. ‫يا‬ ‫مرحبا‬ ,‫السابق‬ ‫الول‬ ‫مشروعنا‬ ‫تطوير‬ ,‫الدرس‬ ‫هذا‬ ‫في‬ ‫نكمل‬ ‫رح‬
‫شيء‬ ‫أقل‬ ‫اسم‬ ‫وضع‬ ‫على‬ ‫المستخدم‬ ‫إجبار‬ ‫منها‬3‫متعدد‬ ‫التطبيق‬ ‫يكون‬ ‫أن‬ ‫إلى‬ ‫بالضافة‬ ,‫احرف‬
.‫النجليزية‬ ‫هي‬ ‫الساسية‬ ‫اللغة‬ ‫لن‬ ,‫العربية‬ ‫اللغة‬ ‫ونضيف‬ ‫النجليزية‬ ‫باللغة‬ ‫نجعله‬ ‫وسوف‬ ‫اللغات‬
‫الرئيسية‬ ‫الكتفتي‬ ‫إلى‬ ‫رجعنا‬ ‫لو‬ ‫البداية‬ ‫في‬MainActivity‫تنفيذها‬ ‫يتم‬ ‫أوامر‬ ‫وداخله‬ ‫زر‬ ‫هناك‬ ‫إن‬ ‫نجد‬ ,
‫ثم‬ ,‫فارغا‬ ‫ليس‬ ‫الحقل‬ ‫إن‬ ‫أول‬ ‫التحقق‬ ‫يتم‬ ‫أي‬ ,‫شرط‬ ‫بداخل‬ ‫الوامر‬ ‫هذه‬ ‫نجعل‬ ‫سوف‬ ,‫عليه‬ ‫الضغط‬ ‫بعد‬
.‫الثانية‬ ‫للكتفتي‬ ‫النتقال‬ ‫وهو‬ ‫المر‬ ‫هذا‬ ‫تنفيذ‬ ‫ليتم‬ ‫ثلث‬ ‫من‬ ‫أكثر‬ ‫داخله‬ ‫الحرف‬ ‫أن‬ ‫يتأكد‬
: ‫كانت‬ ‫الزر‬ ‫برمجة‬
go_to.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Second_Activity.class);
i.putExtra("text", your_name.getText().toString());
startActivity(i);
}
});
: ‫هكذا‬ ‫نجعلها‬ ‫وسوف‬
go_to.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(your_name.getText().toString().isEmpty()){
Toast.makeText(MainActivity.this, "‫اسمك‬ ‫أكتب‬ ‫فضلك‬ ‫,"من‬
Toast.LENGTH_SHORT).show();
}else if (your_name.getText().toString().trim().length() < 3){
Toast.makeText(MainActivity.this, "‫صحيح‬ ‫اسم‬ ‫ادخال‬ ‫يجب‬ ‫,"عفوا‬
Toast.LENGTH_SHORT).show();
}else {
Intent i = new Intent(MainActivity.this,Second_Activity.class);
i.putExtra("text", your_name.getText().toString());
startActivity(i);
}
}
});
103
: ,‫ا‬‫مع‬ ‫السابق‬ ‫الكود‬ ‫لنراجع‬
.. ‫فضلك‬ ‫من‬ ‫التوست‬ ‫رسالة‬ ‫بإظهار‬ ‫قم‬ (‫فارغا‬ ‫الحقل‬ ‫بداخل‬ ‫النص‬ ‫كان‬ ) ,‫إذا‬ ‫البداية‬ ‫في‬
.‫وتوقف‬ ,‫إلخ‬
‫عدد‬ ‫الحقل‬ ‫بداخل‬ ‫النص‬ ‫كان‬ ) ‫إذا‬ ,‫الثاني‬ ‫الشرط‬ ‫إلى‬ ‫إنتقل‬ ,‫ا‬‫فارغ‬ ‫يكن‬ ‫لم‬ ‫حال‬ ‫في‬
‫من‬ ‫أقل‬ ‫داخله‬ ‫الحرف‬3.‫وتوقف‬ .‫إلخ‬ .. ‫إدخال‬ ‫يجب‬ ,‫ا‬‫عفو‬ ‫التوست‬ ‫رسالة‬ ‫إظهر‬ ( ‫أحرف‬
‫من‬ ‫أكثر‬ ‫الحرف‬ ‫وعدد‬ ,‫ا‬‫فارغ‬ ‫ليس‬ ‫الحقل‬ ‫إن‬ ‫بمعنى‬ ,‫السابقين‬ ‫الشرطين‬ ‫تخطى‬ ‫إذا‬3,
.‫الثانية‬ ‫الكتفتي‬ ‫الى‬ ‫النتقال‬ ‫وهي‬ ‫طلبناها‬ ‫التي‬ ‫الوامر‬ ‫ينفذ‬
if (your_name.getText().toString().isEmpty()){
Toast.makeText(MainActivity.this, "‫اسمك‬ ‫أكتب‬ ‫فضلك‬ ‫,"من‬
Toast.LENGTH_SHORT).show();
}else if (your_name.getText().toString().trim().length() < 3){
Toast.makeText(MainActivity.this, "‫صحيح‬ ‫اسم‬ ‫ادخال‬ ‫يجب‬ ‫,"عفوا‬
Toast.LENGTH_SHORT).show();
}else {
Intent i = new Intent(MainActivity.this,Second_Activity.class);
i.putExtra("text", your_name.getText().toString());
startActivity(i);
}
‫كان‬ ‫إذا‬ ‫الشرط‬ ‫بمعنى‬ .‫عكسه‬ ‫بمعنى‬ ,‫الشرط‬ ‫قبل‬ ! ‫التعجب‬ ‫علمة‬ ‫بوضع‬ ‫الشرط‬ ‫عكس‬ ‫تستطيع‬
104
.‫فارغا‬ ‫الحقل‬ ‫يكن‬ ‫لم‬ ‫إذا‬ ‫معناها‬ ‫الشرط‬ ‫قبل‬ ‫التعجب‬ ‫علمة‬ ,‫فارغ‬ ‫الحقل‬
‫اللغة‬ ‫وتكون‬ ,‫له‬ ‫العربية‬ ‫اللغة‬ ‫نضيف‬ ‫سوف‬ ,‫لغة‬ ‫من‬ ‫أكثر‬ ‫التطبيق‬ ‫جعل‬ ‫لكيفية‬ ‫ننتقل‬ ‫رح‬ ‫والن‬
.‫للعربية‬ ‫النصوص‬ ‫تتغير‬ ‫سوف‬ ,‫عربية‬ ‫الجهاز‬ ‫لغة‬ ‫كانت‬ ‫لو‬ ‫ولكن‬ ‫الجهزة‬ ‫لجميع‬ ‫الفتراضية‬ ‫النجليزية‬
‫فيجب‬ ‫الجافا‬ ‫في‬ ‫النصوص‬ ‫أما‬ .‫النجليزية‬ ‫للغة‬ ‫النصوص‬ ‫جميع‬ ‫وتغيير‬ ‫للتطبيق‬ ‫نرجع‬ ‫رح‬ ‫البداية‬ ‫في‬
‫ملف‬ ‫إلى‬ ‫إضافتها‬strings.xml.
: ‫داخله‬ ‫ما‬ .‫الملف‬ ‫هذا‬ ‫بفتح‬ ‫نقوم‬
<resources>
<string name="app_name">Welcome</string>
</resources>
app_name.‫المستخدم‬ ‫جهاز‬ ‫على‬ ‫يظهر‬ ‫الذي‬ ‫التطبيق‬ ‫اسم‬ /
: ‫كالتالي‬ ‫وهي‬ .‫الطريقة‬ ‫بنفس‬ ‫هنا‬ ‫النصوص‬ ‫جميع‬ ‫بإضافة‬ ‫نقوم‬ ‫سوف‬
<resources>
<string name="app_name">Welcome App</string>
<string name="text1">Write your name here please</string>
<string name="text2">log in</string>
<string name="text3">Please enter your name</string>
<string name="text4">Please enter a valid name</string>
<string name="text5">Welcome</string>
</resources>
.‫يظهر‬ ‫سوف‬ ‫الذي‬ ‫النص‬ ‫فهي‬ ‫القيمة‬ ‫وأما‬ ,‫اختيارها‬ ‫حرية‬ ‫لك‬ ‫السماء‬ ‫أو‬ ‫المتغيرات‬
‫استخدامنا‬ ‫أين‬ ‫تتعرف‬ ‫سوف‬ ‫ومنها‬ ,‫بالكامل‬ ‫الدرس‬ ‫أكواد‬ ‫لكم‬ ‫أعرض‬ ‫سوف‬ ‫الدرس‬ ‫نهاية‬ ‫بعد‬
‫هذه‬ ‫المتغيرات‬text1,text2.‫إلخ‬
‫ملفات‬ ‫بداخل‬xml: ‫التالية‬ ‫بالصورة‬
@string/text1
‫ملفات‬ ‫بداخل‬java: ‫التالية‬ ‫بالصورة‬
getString(R.string.text3)
105
‫ملف‬ ‫بفتح‬ ‫نقوم‬ ,‫العربية‬ ‫اللغة‬ ‫بإضافة‬ ‫نقوم‬ ‫سوف‬ ‫والن‬styles.xml‫تنبيه‬ ‫شريط‬ ‫يوجد‬ ‫العلى‬ ‫وفي‬ ,
‫على‬ ‫اضغط‬ ,‫صغير‬open editor.
: ‫نافذة‬ ‫لك‬ ‫تفتح‬ ‫سوف‬
.‫العربية‬ ‫اللغة‬ ‫واختر‬ ‫عليها‬ ‫بالنقر‬ ‫قم‬ ‫صغيرة‬ ‫ارضية‬ ‫كرة‬ ‫صورة‬ ,‫يمين‬ ‫العلى‬ ‫في‬ ‫داخلها‬ ‫يوجد‬
106
: ‫الشكل‬ ‫بهذا‬ ,‫العربية‬ ‫باللغة‬ ‫جديد‬ ‫من‬ ‫الكلمات‬ ‫بكتابة‬ ‫قم‬ ,‫العربية‬ ‫للغة‬ ‫جديد‬ ‫عمود‬ ‫إضافة‬ ‫يتم‬ ‫سوف‬
‫ملف‬ ‫أن‬ ‫تلحظ‬ ‫سوف‬ .. ‫انتهينا‬ ‫هكذا‬ ‫فقط‬styles.xml: ‫المشروع‬ ‫في‬ ‫لديك‬ ‫أثنين‬ ‫أصبح‬
. ‫النجليزية‬ ‫للغة‬ ‫والخر‬ ‫العربية‬ ‫للغة‬ ‫منها‬ ‫واحد‬
: ‫النجليزية‬ ‫لغته‬ ‫وآخر‬ ‫العربية‬ ‫لغته‬ ‫جهاز‬ ‫على‬ ‫النتيجة‬ ‫أعرض‬ ‫سوف‬ ‫والن‬
107
108
109
‫لكم‬ ‫أضع‬ ‫أن‬ ‫الفضل‬ ‫من‬ ‫لذلك‬ ,‫زيادة‬ ‫صفحات‬ ‫الكتاب‬ ‫يأخذ‬ ‫سوف‬ ,‫هنا‬ ‫الكواد‬ ‫بعرض‬ ‫قمت‬ ‫لو‬ ‫بصراحة‬
.‫مباشر‬ ‫بشكل‬ ‫المشروع‬ ‫لتحميل‬ ‫رابط‬
: ‫الول‬ ‫المشروع‬.‫اللغات‬ ‫متعدد‬ .. ‫يا‬ ‫مرحبا‬
: ‫من‬ ‫نستفيد‬ ‫المشروع‬ ‫هذا‬ ‫من‬
.‫المتغيرات‬ ‫تعريف‬ ‫كيفية‬ -
.‫عليه‬ ‫الضغط‬ ‫تم‬ ‫إذا‬ ‫الزر‬ ‫برمجة‬ ‫كيفية‬ -
.‫النصي‬ ‫الحقل‬ ‫بداخل‬ ‫الذي‬ ‫النص‬ ‫جلب‬ -
‫شرط‬ ‫وضع‬ -if.‫منها‬ ‫التحقق‬ ‫يتم‬ ‫شرط‬ ‫من‬ ‫أكثر‬ ‫كذلك‬
.‫أخرى‬ ‫إلى‬ ‫واجهة‬ ‫من‬ ‫النتقال‬ -
.‫للتطبيق‬ ‫لغات‬ ‫إضافة‬ -
.‫أخرى‬ ‫إلى‬ ‫واجهة‬ ‫من‬ ‫بيانات‬ ‫نقل‬ -
.‫ل‬ ‫أو‬ ‫فارغا‬ ‫كان‬ ‫إذا‬ ‫الحقل‬ ‫من‬ ‫التحقق‬ -
.‫الحرف‬ ‫عدد‬ ‫من‬ ‫التحقق‬ -
: ‫المشروع‬ ‫لتحميل‬http://goo.gl/RMgXGT
110
‫صحيحة‬ ‫بخطوات‬ ‫أندرويد‬ ‫مشاريع‬ ‫بببناء‬ ‫أقوم‬ ‫كيف‬
‫أغلب‬ ‫تتجنب‬ ‫لكي‬ ‫طرق‬ ‫عدة‬ ‫تتبع‬ ‫أن‬ ‫لك‬ ‫الفضل‬ ‫من‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫بناء‬ ‫في‬ ‫لتقوم‬
.‫المشروع‬ ‫بناء‬ ‫أثناء‬ ‫والخطاء‬ ‫المشاكل‬
‫الذي‬ ‫وما‬ ,‫به‬ ‫قمت‬ ‫ما‬ ‫وتعيين‬ ,‫به‬ ‫تقوم‬ ‫سوف‬ ‫ما‬ ‫كل‬ ‫لتسجيل‬ ‫القلم‬ ‫استخدام‬ ‫هي‬ ‫الطرق‬ ‫أفضل‬ ‫ومن‬
.‫المشاريع‬ ‫لبناء‬ ‫الفضل‬ ‫و‬ ‫الفصح‬ ‫هو‬ ‫البياني‬ ‫والرسم‬ .‫به‬ ‫القيام‬ ‫عليك‬ ‫يتوجب‬
.‫المبتدئين‬ ‫بدراسته‬ ‫يقوم‬ ‫أن‬ ‫أفضل‬ ‫تطبيق‬ ‫أكثر‬ ‫وهذا‬ ,‫الدعية‬ ‫أو‬ ‫للذكارات‬ ‫تطبيق‬ ‫ببناء‬ ‫القيام‬ ‫نريد‬ ‫مثال‬
‫حصرا‬ ‫للمبتدئين‬ ‫متابعتها‬ ‫أتمنى‬ ‫لذلك‬ , ‫اليوتيوب‬ ‫على‬ ‫مسجلة‬ ‫فيديو‬ ‫دروس‬ ‫في‬ ‫التطبيق‬ ‫بناء‬ ‫شرح‬ ‫تم‬
.‫هنا‬ ‫كاملة‬ ‫الطريقة‬ ‫ذكر‬ ‫عدم‬ ‫الكتاب‬ ‫لختصار‬ ‫ونظرا‬ ,‫بالتأكيد‬ ‫منها‬ ‫تستفيد‬ ‫سوف‬ ,
1//‫الول‬ ‫الجزء‬ -‫على‬ ‫يحتوي‬ ,‫للمبتدئين‬ ‫بسيط‬ ‫اندرويد‬ ‫تطبيق‬ ‫ببرمجة‬ ‫للبدء‬ ‫وتجهيز‬ ‫تمهيد‬
.‫كامل‬ ‫الول‬ ‫تطبيقه‬ ‫بناء‬ ‫كيفية‬ ‫في‬ ‫مبتدئ‬ ‫كل‬ ‫منها‬ ‫يستفيد‬ ‫عديدة‬ ‫خصائص‬
https://youtu.be/RqOQTvREJsw
2//‫الثاني‬ ‫الجزء‬ -~ ‫جدا‬ ‫مهم‬ .‫عليه‬ ‫والعمل‬ ‫ببرمجته‬ ‫البدأ‬ ‫قبل‬ ‫وتجهيزيه‬ ‫للتطبيق‬ ‫ورسم‬ ‫مخطط‬
https://youtu.be/DHI1z0MH5Qw
3//‫الثالث‬ ‫الجزء‬ -.‫ببعضها‬ ‫وربطها‬ ‫المطلوبة‬ ‫واللياوت‬ ‫الكتفتي‬ ‫إنشاء‬
https://youtu.be/U_bqbLN3Exo
4//‫الرابع‬ ‫الجزء‬ -.‫وبرمجتها‬ ‫عليها‬ ‫الزرار‬ ‫ووضع‬ ‫الرئيسية‬ ‫تجهيز‬
https://youtu.be/M-gqL6BjD4s
5//‫الخامس‬ ‫الجزء‬ -.‫بالذكارات‬ ‫الخاصة‬ ‫الولى‬ ‫الصفحة‬ ‫وتنسيق‬ ‫تجهيز‬
https://youtu.be/h_7mhy6DeJI
6//‫السادس‬ ‫الجزء‬ -.‫النص‬ ‫وتصغير‬ ‫تكبير‬ ,‫الصوت‬ ‫وايقاف‬ ‫تشغيل‬ ,‫الذكارات‬ ‫صفحة‬ ‫برمجة‬
http://youtu.be/SJR8lpZkyg0
7//‫السابع‬ ‫الجزء‬ -‫تقييم‬ ,‫اليميل‬ ,‫الهاتف‬ ‫رقم‬ ,‫الموقع‬ ‫لينك‬ ,‫التطبيق‬ ‫حول‬ ‫صفحة‬ ‫وبرمجة‬ ‫تجهيز‬
.‫المبرمج‬ ‫تطبيقات‬ ‫من‬ ‫المزيد‬ ,‫التطبيق‬
https://youtu.be/P0O_0a2nx2E
8//‫الثامن‬ ‫الجزء‬ -,‫المصدر‬ ‫مفتوح‬ ‫كامل‬ ‫المشروع‬ ‫تحميل‬ ,‫الذكارات‬ ‫تطبيق‬ ‫برمجة‬ ‫في‬ ‫الخير‬ ‫الجزء‬
‫لملف‬ ‫المشروع‬ ‫تصدير‬ ,‫التطبيق‬ ‫اغلق‬ ‫تأكيد‬ ‫كود‬apk.‫للمتجر‬ ‫للرفع‬ ‫جاهز‬
https://youtu.be/ld6f87xqJUc
111
‫أندرويد‬ ‫تطبيق‬ ‫إلى‬ ‫مشروعك‬ ‫تصدير‬Apk
‫ملف‬ ‫ترسل‬ ‫وتريد‬ ‫المشروع‬ ‫من‬ ‫النتهاء‬ ‫بعد‬apk‫توجد‬ ,‫جهازك‬ ‫إلى‬ ‫ارساله‬ ‫او‬ ,‫لتجربته‬ ‫الصدقاء‬ ‫لحد‬
‫الذي‬ ‫المسار‬ ‫او‬ ‫المشروع‬ ‫خصائص‬ ‫من‬ ‫او‬ ,‫النافذة‬ ‫أعلى‬ ‫تجده‬ ‫المشروع‬ ‫ومسار‬ ‫المشروع‬ ‫مجلد‬ ‫إلى‬
‫إسمه‬ ‫مجلد‬ ‫يوجد‬ ‫المشروع‬ ‫مسار‬ ‫إلى‬ ‫توجد‬ ,‫التطبيق‬ ‫انشاء‬ ‫بداية‬ ‫في‬ ‫عليه‬ ‫التطبيق‬ ‫إنشاء‬ ‫تم‬app
 ‫للمسار‬ ‫توجه‬ ‫بداخله‬buildoutputsapk
‫ملف‬ ‫تجد‬ ‫سوف‬apk+ ‫المشروع‬ ‫اسم‬ - ‫بعنوان‬debug.apk,‫بتجربته‬ ‫وقم‬ ‫جهاز‬ ‫إي‬ ‫إلى‬ ‫بإرساله‬ ‫قم‬ .
.‫للمتجر‬ ‫رفعه‬ ‫تستطيع‬ ‫لن‬ ‫ولكن‬
‫أعلى‬ ‫من‬ ,‫المشروع‬ ‫من‬ ‫النشاء‬ ‫بعد‬ ,‫المتجر‬ ‫على‬ ‫كـتطبيق‬ ‫ورفعه‬ ‫المشروع‬ ‫بتصدير‬ ‫تقوم‬ ‫لكي‬
‫نافذة‬ ‫اختر‬ ‫البرنامج‬Build‫ثم‬Generate Signed APK
: ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ‫الن‬
112
‫بإنشاء‬ ‫نقوم‬ ‫سوف‬ ‫النافذة‬ ‫هذه‬ ‫في‬Key Store‫و‬ ,‫للمبرمج‬ ‫واحدة‬ ‫مرة‬Key alias.‫بنا‬ ‫خاص‬ ‫تطبيق‬ ‫لكل‬
‫من‬ ‫أكثر‬ ‫إنشاء‬ ‫تستطيع‬ ‫راحتك‬ ‫على‬Key Store‫حماية‬ ‫ما‬ ‫نوعا‬ ‫تعتبر‬ ‫الفكرة‬ ‫هي‬ ‫لكن‬ ‫عموما‬ .
‫مثل‬ ,‫لتطبيقك‬Key Store‫بصيغة‬ ‫ملف‬ ‫وهي‬jsk‫تطبيق‬ ‫لكل‬ ‫مفتاح‬ ‫بحفظ‬ ‫تقوم‬ ,‫بإنشائه‬ ‫القيام‬ ‫بعد‬ .
‫شخص‬ ‫لو‬ .‫المفتاح‬ ‫نفس‬ ‫على‬ ‫التعديل‬ ‫بحفظ‬ ‫تقوم‬ ‫إجباري‬ ‫بتعديلت‬ ‫قمت‬ ‫حال‬ ‫في‬ ,‫الملف‬ ‫هذا‬ ‫داخل‬
.‫الطريقة‬ ‫بهذه‬ ‫تطبيقك‬ ‫على‬ ‫تطبيق‬ ‫رفع‬ ‫إعادة‬ ‫يستطيع‬ ‫لن‬ ‫حسابك‬ ‫إلى‬ ‫تسلسل‬ ‫ما‬
: ‫السابقة‬ ‫الصورة‬ ‫في‬ ‫الموضحة‬ ‫الرقام‬ ‫حسب‬ ,‫لنكمل‬ ‫عموما‬
1‫شفرة‬ ‫لنشاء‬ /Key Store.
2.‫الجهاز‬ ‫على‬ ‫لدينا‬ ‫مسبقا‬ ‫موجودة‬ ‫شفرة‬ ‫لختيار‬ /
3.‫الشفرة‬ ‫لهذه‬ ‫المرور‬ ‫كلمة‬ /
4.‫الشفرة‬ ‫هذه‬ ‫من‬ ‫تريده‬ ‫الذي‬ ‫التطبيق‬ ‫لختيار‬ /
5.‫التطبيق‬ ‫هذا‬ ‫لمفتاح‬ ‫المرور‬ ‫كلمة‬ /
‫شفرة‬ ‫إنشاء‬ ‫على‬ ‫نضغط‬ ‫سوف‬Key: ‫التالية‬ ‫النافذة‬ ‫تظهر‬ ‫سوف‬ .‫واحد‬ ‫الرقم‬ ‫على‬
113
: ‫السابقة‬ ‫الصورة‬ ‫في‬ ‫الموضحة‬ ‫الرقام‬ ‫حسب‬
1/‫الشفرة‬ ‫ملف‬ ‫واسم‬ ‫حفظ‬ ‫مكان‬jks.
2/.‫الشفرة‬ ‫لهذه‬ ‫المرور‬ ‫كلمة‬
3/.‫المرور‬ ‫كلمة‬ ‫تأكيد‬
.‫المبرمج‬ ‫شفرة‬ ‫إنشاء‬ ‫من‬ ‫انتهينا‬ ‫هكذا‬ ---
4/‫المفتاح‬ ‫وهو‬ .‫التطبيق‬ ‫لهذا‬ ‫للدللة‬ ‫او‬ ‫للتطبيق‬ ‫معين‬ ‫اسم‬
5/.‫التطبيق‬ ‫لمفتاح‬ ‫المرور‬ ‫كلمة‬
6/.‫المرور‬ ‫كلمة‬ ‫تاكيد‬
7/‫لـ‬ ‫بالنسبة‬25‫غير‬ ‫الخرى‬ ‫والمعلومات‬ ,‫هو‬ ‫كما‬ ‫اتركه‬ ‫مشكلة‬ ‫ل‬ ‫المفتاح‬ ‫هذا‬ ‫صلحية‬ ‫عمر‬ ‫سنة‬
.‫الول‬ ‫الحقل‬ ‫في‬ ‫شيء‬ ‫إي‬ ‫او‬ ‫اسمك‬ ‫اكتب‬ ‫فقط‬ ‫مهمة‬
‫على‬ ‫اضغط‬ ‫المعلومات‬ ‫مل‬ ‫بعد‬OK.
: ‫فيها‬ ‫جاهزة‬ ‫المعلومات‬ ‫ولكن‬ ,‫السابقة‬ ‫النافذة‬ ‫إلى‬ ‫بنا‬ ‫الرجوع‬ ‫يتم‬ ‫سوف‬
: ‫للشفرة‬ ‫المرور‬ ‫كلمة‬ ‫واكتب‬ ‫التالي‬ ‫اضغط‬
‫حفظ‬ ‫يتم‬ ‫سوف‬ ‫الذي‬ ‫المسار‬ ‫تحدد‬ ‫هنا‬
‫التطبيق‬ ‫ملف‬ ‫داخله‬APK.
‫إن‬ ‫تتأكد‬ ‫ان‬ ‫جدا‬ ‫ضروري‬ ‫وكذلك‬Build Type
‫على‬ ‫محدد‬release
114
‫اضغط‬ ‫الن‬Finish: ‫نافذة‬ ‫لك‬ ‫تخرج‬ ‫سوف‬ ‫النتهاء‬ ‫وعند‬ ‫التصدير‬ ‫عملية‬ ‫تبدأ‬ ‫وسوف‬
‫على‬ ‫اضغط‬Show in Explorer.‫داخله‬ ‫التطبيق‬ ‫حفظ‬ ‫تم‬ ‫الذي‬ ‫المسار‬ ‫لعرض‬
‫بإنشاء‬ ‫وقم‬ ‫الشفرة‬ ‫ملف‬ ‫نفس‬ ‫اختر‬ ‫فقط‬ ,‫أخرى‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫قمت‬ ‫حال‬ ‫في‬Key Alias‫داخل‬
.‫الجديدة‬ ‫للتطبيق‬ ‫جديدة‬ ‫الشفرة‬ ‫هذه‬
‫المفتاح‬ ‫نفس‬ ‫و‬ ‫الشفرة‬ ‫نفس‬ ‫اختر‬ ,‫مسبقا‬ ‫نشرها‬ ‫تم‬ ‫التي‬ ‫المشاريع‬ ‫بعض‬ ‫تطوير‬ ‫أردت‬ ‫حال‬ ‫وفي‬
.‫للتطبيق‬
‫ملف‬ ‫لديك‬ ‫ظهر‬ ‫الن‬Apk‫اندرويد‬ ‫جهاز‬ ‫إي‬ ‫إلى‬ ‫إرساله‬ ‫وتستطيع‬ ,‫للتطبيق‬ ‫التشغيل‬ ‫ملف‬ ‫وهو‬ .
‫متجر‬ ‫على‬ ‫مباشرة‬ ‫رفعه‬ ‫وكذلك‬ ,‫لتجربته‬Google Play‫ماركت‬ ‫ون‬ ‫أمازون‬ ‫مثل‬ ‫المتاجر‬ ‫من‬ ‫وغيرها‬ .
.‫إلخ‬ ‫سامسونج‬ ‫متجر‬ ‫موبايل‬
115
**‫أذكر‬ ‫سوف‬ ‫وهنا‬ ,‫عليها‬ ‫ويتعلم‬ ‫ويتدرب‬ ,‫الكواد‬ ‫في‬ ‫منها‬ ‫يستفيد‬ ‫جاهزة‬ ‫لمشاريع‬ ‫يحتاج‬ ‫منا‬ ‫الكثير‬
.‫الندرويد‬ ‫لمشروعات‬ ‫الجاهزة‬ ‫المشاريع‬ ‫لك‬ ‫يقدم‬ ‫موقع‬ ‫أهم‬
https://github.com/
**‫أو‬ ,‫آخر‬ ‫اكتفتي‬ ‫إلى‬ ‫اكتفتي‬ ‫من‬ ‫انتقل‬ ‫مثل‬ .. ‫انتقال‬ ‫عملية‬ ‫عن‬ ‫نقطة‬ ‫إي‬ ‫عن‬ ‫البحث‬ ‫تريد‬ ‫عندما‬
‫بالضافة‬ ‫تريد‬ ‫ما‬ ‫عن‬ ‫ابحث‬ .‫إلخ‬ ‫الرسائل‬ ,‫الويب‬ ‫مستعرض‬ ‫مثل‬ ‫آخر‬ ‫تطبيق‬ ‫إلى‬ ‫التطبيق‬ ‫من‬ ‫النتقال‬
‫كلمة‬ ‫إلى‬Intent.
**‫زر‬ ‫على‬ ‫اضغط‬ ‫فقط‬ ,‫معناها‬ ‫تفهم‬ ‫لم‬ ‫أكواد‬ ‫هناك‬ ‫كانت‬ ‫إذا‬Ctrl‫تريد‬ ‫التي‬ ‫الكلمة‬ ‫على‬ ‫واضغط‬
.‫المتغيرات‬ ‫هذه‬ ‫استخدام‬ ‫تم‬ ‫إين‬ ‫لك‬ ‫يظهر‬ ‫الطريقة‬ ‫بهذه‬ ‫بوضعها‬ ‫قمت‬ ‫أنت‬ ‫متغيرات‬ ‫لو‬ ‫حتى‬ ,‫بالماوس‬
‫الخاتمة‬
‫كامل‬ ‫كتاب‬ ‫لشرح‬ ‫يحتاج‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫بصراحة‬ ‫أقوله‬ ‫أن‬ ‫أحب‬ ‫ما‬ ,‫العالمين‬ ‫رب‬ ‫الحمدل‬
‫كتاب‬ ‫في‬ ‫البرنامج‬ ‫استخدام‬ ‫شرح‬ ‫يتم‬ ‫كبير‬ ‫واحتمال‬ ,‫منه‬ ‫أساسيات‬ ‫إل‬ ‫اشرح‬ ‫لم‬ ‫لذلك‬ ,‫فيه‬ ‫خاص‬
‫على‬ ‫فركزت‬ ,‫المور‬ ‫من‬ ‫لكثير‬ ‫الختصار‬ ‫المكان‬ ‫قدر‬ ‫حاولت‬ ‫إنني‬ ‫كما‬ .‫جديدة‬ ‫إصدارات‬ ‫في‬ ‫لكن‬ ‫منفصل‬
‫شعر‬ ‫كلما‬ ‫الكتاب‬ ‫صفحات‬ ‫زادت‬ ‫كلما‬ ‫ولكن‬ ,‫معرفتها‬ ‫يجب‬ ‫أخرى‬ ‫أمور‬ ‫ويوجد‬ ‫نحتاجه‬ ‫الذي‬ ‫الساس‬
‫في‬ ‫حاولت‬ ‫و‬ ,‫تماما‬ ‫الصفر‬ ‫من‬ ‫فيها‬ ‫مشيت‬ ‫أشياء‬ ‫يوجد‬ ‫لنه‬ ,‫المر‬ ‫أبسط‬ ‫سوف‬ ‫لذلك‬ ‫بالملل‬ ‫القارئ‬
‫أكثر‬ ‫مشاريع‬ ‫على‬ ‫تحتوي‬ ‫كتب‬ ‫بإنشاء‬ ‫أقوم‬ ‫أن‬ ‫ما‬ ‫وقت‬ ‫في‬ ‫أحاول‬ ‫وسوف‬ ,‫اختصر‬ ‫أن‬ ‫الدروس‬ ‫بعض‬
‫عندما‬ ‫ولكن‬ ,‫طويل‬ ‫وقت‬ ‫مني‬ ‫وأخذ‬ ,‫أخرى‬ ‫صفحات‬ ‫الكتاب‬ ‫هذا‬ ‫في‬ ‫كتبت‬ ‫إنني‬ ‫كما‬ .‫بنائها‬ ‫وكيفية‬
.‫أخرى‬ ‫كتب‬ ‫في‬ ‫لقاء‬ ‫وفي‬ . ‫القارئ‬ ‫أخي‬ ‫عليك‬ ‫أختصر‬ ‫كي‬ ,‫المور‬ ‫من‬ ‫الكثير‬ ‫حذفت‬ ‫الكتاب‬ ‫راجعت‬
‫و‬ ‫يسعدني‬ ‫كما‬‫الكتاب‬ ‫بهذا‬ ‫رأيك‬ ‫إعطاء‬ ‫أمانة‬ ‫بكل‬: ‫التالي‬ ‫الرابط‬ ‫خلل‬ ‫من‬
http://andrody.com/?p=1393
‫المرات‬ ‫في‬ ‫أكثر‬ ‫للهتمام‬ ‫يشجعني‬ ‫سوف‬ ‫وبالتأكيد‬ ‫تجربتي‬ ‫يحسن‬ ‫سوف‬ ‫ال‬ ‫شاء‬ ‫إن‬ ‫تعليقك‬
. ‫مشكورا‬ ‫بها‬ ‫أخبرني‬ ‫استفسار‬ ‫او‬ ‫ملحظة‬ ‫إي‬ .‫القادمة‬
(: ‫جميعا‬ ‫عليكم‬ ‫السلم‬ ‫و‬ ,‫السابق‬ ‫الرابط‬ ‫نفس‬ ‫من‬ ‫للكتاب‬ ‫تقييمك‬ ‫يسعدني‬ ‫كما‬ #
116

Android(arabic) android studioتحميل كتاب تعلم أساسيات الاندرويد بالعربية باستخدام منصة

  • 1.
  • 2.
    ‫الفهرس‬ .............................................................................................................‫المقدمة‬4 ................................................................................................................‫الكاتب‬5 .......................................‫التطبيقات‬ ‫لبرمجة‬ ‫الجافا‬‫لغة‬ ‫أو‬ ‫النجليزية‬ ‫اللغة‬ ‫تعلم‬ ‫يجب‬ ‫هل‬6 ......................................................................................................‫الندرويد‬ ‫نظام‬7 ...........................................................................................‫الندرويد‬ ‫نظام‬ ‫إصدارات‬7 ...........................................................................................‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬9 ‫إضافات‬ ‫مدير‬SDK‫الندرويد‬..................................................................................10 ‫نافذة‬SDK‫الم‬..........................................................................................‫ستقلة‬12 ‫المستويات‬API...................................................................................‫النظام‬ ‫في‬13 ...................................................‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫للبدء‬ ‫المطلوبة‬ ‫التحميلت‬15 ..............................................................‫بها‬ ‫القيام‬ ‫عليك‬ ‫يجب‬ ‫التي‬ ‫الولى‬ ‫الخطوات‬19 ............................................................................‫الترحيبية‬ ‫ستوديو‬ ‫الندرويد‬ ‫نافذة‬20 .........................................................................................‫ستوديو‬ ‫الندرويد‬ ‫نافذة‬21 ................................................................................ ‫ستوديو‬ ‫الندرويد‬ ‫مع‬ ‫التعامل‬23 ............................................................................................‫البرنامج‬ ‫نمط‬ ‫تغيير‬ -23 ...............................................................................................‫الذكي‬ ‫المساعد‬ -23 ........................................................................‫مفهومة‬ ‫الغير‬ ‫الحرف‬ ‫مشكلة‬ ‫حل‬ -24 ............................................................................‫المشروع‬ ‫على‬ ‫التركيز‬ ‫وضعيات‬ -24 .............................................................................‫الدعم‬ ‫لمكاتب‬ ‫تلقائي‬ ‫استيراد‬ -26 .........................................................................................‫البرمجي‬ ‫الكود‬ ‫ترتيب‬ -27 ........................................‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫البدأ‬ ‫قبل‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫أمور‬28 ..............................................................................‫للندرويد‬ ‫الول‬ ‫مشروعك‬ ‫إنشاء‬29 ........................................................................................‫الفتراضية‬ ‫الكواد‬ ‫شرح‬33 .............................................................‫ستوديو‬ ‫للندرويد‬ ‫الكليبس‬ ‫مشاريع‬ ‫استيراد‬35 ....................................................................................‫المشروع‬ ‫وملفات‬ ‫مجلدات‬37 ‫مجلد‬ ‫شرح‬Values................................................................................‫الفايلوس‬40 ‫ملف‬ ‫شرح‬AndroidManifest.xml‫الم‬.........................................................‫ينيفيست‬42 .......................................................................................‫المشروع‬ ‫لموارد‬ ‫الوصول‬43 ................................................................................‫للتطبيق‬ ‫العام‬ ‫الستايل‬ ‫تحرير‬44 2
  • 3.
    ..........................................................................................‫للتطبيق‬ ‫أيقونة‬ ‫إضافة‬46 ..........................................................................‫الندرويد‬‫جهاز‬ ‫واجهة‬ ‫على‬ ‫التعرف‬49 ...................................................................................‫اللياوت‬ ‫واجهة‬ ‫على‬ ‫التعرف‬50 ‫إنشاء‬AVD........................................................................‫افتراضي‬ ‫جهاز‬ ‫محاكي‬53 ......................................................................... ‫الفتراضي‬ ‫موشن‬ ‫الجيني‬ ‫محاكي‬57 ....................................................................‫جوالك‬ ‫على‬ ‫الندرويد‬ ‫مشروعك‬ ‫معاينة‬65 ......................................................................................................‫البيانات‬ ‫أنواع‬66 .................................................................................................‫والقيم‬ ‫المتغيرات‬67 .....................................................................................‫اللياوت‬ ‫داخل‬ ‫العناصر‬ ‫أهم‬69 ....................................................................................‫العناصر‬ ‫خصائص‬ ‫أهم‬ ‫شرح‬70 ......................................................................................‫والرتفاع‬ ‫العرض‬ ‫خاصية‬ -72 ..................................................................................................‫التجاه‬ ‫خاصية‬ -74 ................................................................................................‫الهامش‬ ‫خاصية‬ -75 .................................................................................................‫الحشو‬ ‫خاصية‬ -76 ................................................................................................‫الجاذبية‬ ‫خاصية‬ -77 ....................................................................................................‫الوزن‬ ‫خاصية‬ -78 .................................................................................................‫المعرف‬ ‫خاصية‬ -79 ‫بال‬ ‫تكرارا‬ ‫وأكثرها‬ ‫البرمجية‬ ‫الكواد‬ ‫أهم‬ ‫على‬ ‫التعرف‬............................................. ‫جافا‬80 ......................................................................................‫الكتفتي‬ ‫حياة‬ ‫دورة‬ ‫دوال‬84 : ‫الول‬ ‫المشروع‬1................................................................................ ‫يا‬ ‫مرحبا‬ -87 .....................................................................................‫الندرويد‬ ‫تطبيق‬ ‫تنسيق‬100 ..................................................................................................‫الطويل‬ ‫النص‬ -100 .......................................................................‫تشعيبي‬ ‫ارتباط‬ ‫على‬ ‫يحتوي‬ ‫نص‬ -100 .............................................................‫النصي‬ ‫الحقل‬ ‫مل‬ ‫على‬ ‫المستخدم‬ ‫اجبار‬ -100 ..............................................................................................‫التوست‬ ‫رسالة‬ -101 ......................................................................................‫ملحظة‬ ‫او‬ ‫تنبيه‬ ‫نافذة‬ -102 : ‫الول‬ ‫المشروع‬2...........................................................‫اللغات‬ ‫متعدد‬ .. ‫يا‬ ‫مرحبا‬ -103 .....................................................‫صحيحة‬ ‫بخطوات‬ ‫أندرويد‬ ‫مشاريع‬ ‫بببناء‬ ‫أقوم‬ ‫كيف‬111 ‫تطبيق‬ ‫إلى‬ ‫مشروعك‬ ‫تصدير‬Apk.............................................................. ‫أندرويد‬112 ...........................................................................................................‫الخاتمة‬116 3
  • 4.
    ‫المقدمة‬ ‫ال‬ ‫أشـرف‬ ‫على‬‫والسلم‬ ‫والصـلة‬ ‫الرحيم‬ ‫الرحـمن‬ ‫ال‬ ‫بسم‬‫آله‬ ‫وعلى‬ ‫محمد‬ ‫سيدنا‬ ,,‫والمرسلين‬ ‫نبياء‬ ... ‫وبعد‬ .‫وسلم‬ ‫وصحبه‬ ‫الندرويـد‬ ‫تطبيقـات‬ ‫برمجـة‬ ‫أسياسـيات‬ ‫علـى‬ ‫يحتـوي‬ ‫والـذي‬ ,‫المتواضـع‬ ‫العمـل‬ ‫هـذا‬ ‫إيـديكم‬ ‫بيـن‬ ‫ضضع‬‫أ‬ ‫ـي‬‫ـ‬‫فه‬ ‫ـابقا‬‫ـ‬‫س‬ ‫ـودة‬‫ـ‬‫موج‬ ‫تكن‬ ‫لم‬ ‫الضافات‬ ‫من‬ ‫الكثير‬ ‫فيوجد‬ ,‫المجال‬ ‫في‬ ‫والمتقدمين‬ ‫المبتدئين‬ ‫ويحتاجه‬ ‫ـي‬‫ـ‬‫ل‬ ‫ال‬ ‫ـدعو‬‫ـ‬‫ي‬ ‫ـاب‬‫ـ‬‫الكت‬ ‫ـذا‬‫ـ‬‫ه‬ ‫ـرأ‬‫ـ‬‫يق‬ ‫ـدما‬‫ـ‬‫عن‬ ‫شخص‬ ‫كل‬ ‫من‬ ‫إتمنى‬ ‫كما‬ ,‫عليها‬ ‫التعرف‬ ‫الفضل‬ ‫لذلك‬ ‫جديدة‬ ‫ـد‬‫ـ‬‫مفي‬ ‫علــم‬ ‫إي‬ ‫بنشر‬ ‫تبخل‬ ‫ل‬ ‫فإذا‬ ,‫قليل‬ ‫إل‬ ‫أوتينا‬ ‫ما‬ ,‫عمل‬ ‫من‬ ‫بلغنا‬ ‫فمهما‬ ,‫والرحمة‬ ‫بالتوفيق‬ ‫ولوالدي‬ ,‫ـنا‬‫ـ‬‫لنفس‬ ‫ـوم‬‫ـ‬‫العل‬ ‫ـر‬‫ـ‬‫نحتك‬ ‫ـا‬‫ـ‬‫زلن‬ ‫ومـا‬ ,‫ـا‬‫ـ‬‫أنواعه‬ ‫بشتى‬ ‫العلوم‬ ‫فيه‬ ‫تتسابق‬ ‫زمن‬ ‫في‬ ‫فنحن‬ ,‫للخرين‬ ‫وصالح‬ ‫والتي‬ ‫بداخلك‬ ‫العلوم‬ ‫من‬ ‫الكثير‬ ‫تجد‬ ‫سوف‬ ‫الكريم‬ ‫أخي‬ ‫نفسك‬ ‫راجع‬ .. !‫؟‬ ‫راحل‬ ‫إنك‬ ‫يوما‬ ‫تسائلت‬ ‫فهل‬ ‫إن‬ ‫ـا‬‫ـ‬‫كم‬ ,‫ال‬ ‫ـد‬‫ـ‬‫بع‬ ‫ـن‬‫ـ‬‫م‬ ‫ـل‬‫ـ‬‫والفض‬ ‫بذلك‬ ‫الجر‬ ‫لك‬ ‫فيكون‬ ‫إستخدامها‬ ‫يحسن‬ ‫لعله‬ ‫للغير‬ ‫بها‬ ‫التبرع‬ ‫تستطيع‬ ‫ـن‬‫ـ‬‫ع‬ ‫ـذر‬‫ـ‬‫إعت‬ ‫ـا‬‫ـ‬‫كم‬ ,‫للجميع‬ ‫وسلس‬ ‫وافي‬ ‫شرح‬ ‫ليكون‬ ‫بنفسي‬ ‫اجتهد‬ ‫إن‬ ‫المكان‬ ‫قدر‬ ‫حاولت‬ ‫الكتاب‬ ‫هذا‬ ‫تختلف‬ ‫النظر‬ ‫وجهات‬ ‫إن‬ ‫منها‬ ‫لسباب‬ ,‫صغيرة‬ ‫كانت‬ ‫ولو‬ ‫أخطاء‬ ‫هناك‬ ‫يكون‬ ‫إن‬ ‫فلبد‬ ‫إخطاء‬ ‫إي‬ ‫عن‬ ‫وجود‬ ‫ـإي‬‫ـ‬‫ب‬ ‫ـرع‬‫ـ‬‫متس‬ ‫أحيانا‬ ‫نفسي‬ ‫وعن‬ ,‫الحجم‬ ‫بهذا‬ ‫أكتبه‬ ‫لي‬ ‫كتاب‬ ‫أول‬ ‫إنه‬ ‫وكما‬ ,‫وأشخاص‬ ‫جوانب‬ ‫عدة‬ ‫من‬ ‫ـدا‬‫ـ‬‫غ‬ ‫ـا‬‫ـ‬‫م‬ ‫ـا‬‫ـ‬‫يوم‬ ‫لعل‬ ,‫به‬ ‫أقوم‬ ‫باللذي‬ ‫مؤمن‬ ‫أنا‬ ‫ذلك‬ ‫ومع‬ ,‫لها‬ ‫انتبه‬ ‫ل‬ ‫أخطاء‬ ‫لذلك‬ ,‫بأغلبها‬ ‫أو‬ ‫به‬ ‫أقوم‬ ‫عمل‬ ‫هذا‬ ‫إن‬ ‫يرى‬ ‫الكثير‬ ,‫الغرب‬ ‫من‬ ‫منافسيها‬ ‫أمام‬ ‫تذكر‬ ‫التي‬ ‫العمال‬ ‫تلك‬ ‫لديهم‬ ‫أصبح‬ ‫العرب‬ ‫المطورين‬ ‫أرى‬ ‫ـه‬‫ـ‬‫إن‬ ‫ـرق‬‫ـ‬‫الف‬ ,‫ل‬ ‫ـد‬‫ـ‬‫بالتأكي‬ ! ‫لدينا‬ ‫يوجد‬ ‫ل‬ ‫و‬ ‫عقول‬ ‫لديهم‬ ‫هل‬ ‫تسائلت‬ ‫لو‬ ‫ولكن‬ ,‫له‬ ‫وصلوا‬ ‫لما‬ ‫نصل‬ ‫إن‬ ‫حلم‬ ‫ـا‬‫ـ‬‫قلته‬ ,,‫ـتخدم‬‫ـ‬‫ونس‬ ‫ـجع‬‫ـ‬‫نش‬ ‫ـن‬‫ـ‬‫ونح‬ ‫ـنع‬‫ـ‬‫يص‬ ‫فهو‬ ,‫ومهاراته‬ ‫وقته‬ ‫من‬ ‫بالستفادة‬ ‫يقوم‬ ‫كيف‬ ‫صغره‬ ‫منذ‬ ‫تعلم‬ ‫الــتي‬ ‫الدول‬ ‫إن‬ ‫لحظ‬ ‫أحد‬ ‫هل‬ ,‫مثل‬ ‫القدم‬ ‫كرة‬ ‫يتابع‬ ‫منا‬ ‫الكثير‬ ,‫متفرجة‬ ‫عناصر‬ ‫أغلبنا‬ ‫إن‬ ‫أقولها‬ ‫زلت‬ ‫وما‬ ‫ـات‬‫ـ‬‫للولي‬ ‫ـيب‬‫ـ‬‫نص‬ ‫ـن‬‫ـ‬‫يك‬ ‫ـم‬‫ـ‬‫ل‬ ‫ـاذا‬‫ـ‬‫لم‬ ‫ـم‬‫ـ‬‫لحظت‬ ‫ـل‬‫ـ‬‫ه‬ ,‫!؟‬ ‫ـرى‬‫ـ‬‫آخ‬ ‫ـالت‬‫ـ‬‫مج‬ ‫بعدة‬ ‫متفوقة‬ ‫تكن‬ ‫القدم‬ ‫بكرة‬ ‫تفوقت‬ ‫الصـغيرة‬ ‫بأفكـارك‬ ‫ابـدأ‬ ,‫ـر‬‫ـ‬‫لتفكي‬ ‫يحتـاج‬ ‫الكـون‬ .. ‫؟‬ ‫القـدم‬ ‫بكـرة‬ ‫كبير‬ ‫نصيب‬ ‫المتحدة‬ ‫المملكة‬ ‫او‬ ‫المتحدة‬ ‫العمــال‬ ‫من‬ ‫الكتير‬ ‫فيوجد‬ ,‫بدون‬ ‫او‬ ‫بإرداتك‬ ‫تصل‬ ‫سوف‬ ‫تستحق‬ ‫كانت‬ ‫فلو‬ ‫للعالم‬ ‫وانشرها‬ ,‫بها‬ ‫وانطلق‬ ‫ـل‬‫ـ‬‫بك‬ ‫ـال‬‫ـ‬‫ب‬ ‫ـتعن‬‫ـ‬‫واس‬ ," ‫ـارغ‬‫ـ‬‫ف‬ " ‫ـان‬‫ـ‬‫إنس‬ ‫ـن‬‫ـ‬‫تك‬ ‫فل‬ ,‫ـحابها‬‫ـ‬‫أص‬ ‫وفاة‬ ‫بعد‬ ‫إل‬ ‫تشتهر‬ ‫لم‬ ‫عالية‬ ‫شهرة‬ ‫لها‬ ‫التي‬ ‫فـي‬ ‫والعافيـة‬ ‫الصـحة‬ ‫ودوام‬ ‫التوفيـق‬ ‫ولكـم‬ ‫لـي‬ ‫ال‬ ‫أسـئل‬ ‫و‬ ,‫سـبحانه‬ ‫عليه‬ ‫توكل‬ ‫من‬ ‫خاب‬ ‫فما‬ ‫أمورك‬ .‫والولد‬ ‫والمال‬ ‫الجسد‬ 4
  • 5.
    ‫الكاتب‬ ‫عليوي‬ ‫عبدالقادر‬)Abboudi Aliwi(‫إلى‬‫أصلها‬ ‫ينحدر‬ ‫عائلة‬ ‫من‬ ,‫دمشق‬ ‫مدينة‬ ‫مواليد‬ ‫من‬ ‫للعمل‬ ‫العالمي‬ ‫اليوم‬ ‫في‬ ‫ولدت‬ ,‫الزور-سوريا‬ ‫دير‬ ‫في‬ ‫الميادين‬ ‫مدينة‬1‫آيار‬1996. ‫العمر‬ ‫من‬ ‫وأبلغ‬ ‫الكتاب‬ ‫هذا‬ ‫بكتابة‬ ‫أقوم‬19‫المجالت‬ ‫لجميع‬ ‫عاشق‬ ‫إني‬ ‫إل‬ ‫نفسي‬ ‫عن‬ ‫أقول‬ ‫ل‬ ,‫عاما‬ ‫والثقة‬ ‫الذات‬ ‫تطوير‬ ‫وكتب‬ ,‫الحديثة‬ ‫العلوم‬ ‫قراءة‬ ‫وأحب‬ ,‫منها‬ ‫استطعت‬ ‫ما‬ ‫تعلم‬ ‫وأحاول‬ ,‫الحاسوب‬ ‫في‬ ‫وال‬ ‫اللغات‬ ‫بتعلم‬ ‫طموح‬ ‫ولدي‬ ,‫المنوعة‬ ‫الدينية‬ ‫والكتب‬ ‫بالنفس‬.‫المختلفة‬ ‫ثقافات‬ : ‫بوك‬ ‫الفيس‬ ‫على‬ ‫معي‬ ‫للتواصل‬https://fb.com/Abboudi.Aliwi ‫مشكلة‬ ‫أو‬ ‫استفسار‬ ‫ولي‬ ,‫ملحظة‬ ‫أو‬ ‫اقتراح‬ ‫ولوجود‬ ‫للضرورة‬ ‫فقط‬ ‫معي‬ ‫التواصل‬ ‫رجاءا‬ : ‫بوك‬ ‫الفيس‬ ‫على‬ ‫قروبنا‬ ‫في‬ ‫إضافتها‬ ‫تستطيع‬ https://fb.com/groups/Programming.Android.apps/ .‫الخرين‬ ‫وأجابات‬ ‫خبرات‬ ‫من‬ ‫وتستفيد‬ ‫تفيد‬ ‫لكي‬ ,‫والسداد‬ ‫بالتوفيق‬ ‫ولوالدي‬ ‫لي‬ ‫الدعاء‬ ,,‫ا‬‫إناث‬ ‫أو‬ ,‫ل‬‫رجا‬ ,,‫ا‬‫كبير‬ ‫أو‬ ,‫ا‬‫صغير‬ ,‫شخص‬ ‫كل‬ ‫من‬ ,‫ا‬‫رجاء‬ ‫بلقائه‬ ‫والفوز‬ ‫بالنجاة‬ ‫لنا‬ ,‫ا‬‫سبب‬ ‫تكون‬ ‫لعلها‬ ‫ل‬ ‫خالصة‬ ‫بنية‬ ‫الدعاء‬ ,‫والرحمة‬ ‫والمغفرة‬ .‫سبحانه‬ ‫ال‬ ‫تم‬‫بتاريخ‬ ‫الكتاب‬ ‫هذا‬ ‫إعداد‬ ‫من‬ ‫نتهاء‬18-11-2015.‫مـ‬ 5
  • 6.
    ‫الج‬ ‫لغة‬ ‫أو‬‫النجليزية‬ ‫اللغة‬ ‫تعلم‬ ‫يجب‬ ‫هل‬ #: ‫التطبيقات‬ ‫لبرمجة‬ ‫افا‬ ‫كثيرا‬ ‫تكررت‬ ‫هذه‬ ‫السئلة‬‫تطبيقات‬ ‫برمجة‬ ‫أستطيع‬ ‫لكي‬ ,‫ل‬‫أو‬ ‫الجافا‬ ‫لغة‬ ‫تعلم‬ ‫يجب‬ ‫هل‬ - ‫؟‬ ‫الندرويد‬ ‫؟‬ ‫والبرمجة‬ ‫الجافا‬ ‫تعلم‬ ‫أستطيع‬ ‫لكي‬ ‫النجليزية‬ ‫اللغة‬ ‫أتعلم‬ ‫إن‬ ‫يجب‬ ‫هل‬ - ,‫الجافا‬ ‫بلغة‬ ‫معرفتك‬ ‫زادت‬ ‫كلما‬ ‫ولكن‬ ,‫البسيطة‬ ‫التطبيقات‬ ‫لنجاز‬ ,‫مهمة‬ ‫ليست‬ ,‫ل‬ ‫يكون‬ ‫سوف‬ ‫الجواب‬ ‫جميع‬ ‫في‬ ‫معك‬ ‫تتكرر‬ ‫عامة‬ ‫كلمات‬ ‫فهناك‬ ‫النجليزية‬ ‫اللغة‬ ‫وكذلك‬ ,‫تطبيقاتك‬ ‫في‬ ‫الحترافية‬ ‫زادت‬ ‫كلما‬ ‫معك‬ ‫تتكرر‬ ‫سوف‬ ‫معرفتها‬ ‫يجب‬ ‫مصطلحات‬ ‫وهناك‬ ‫بالجافا‬ ‫خاصة‬ ‫مصطلحات‬ ‫وهناك‬ ‫البرمجية‬ ‫اللغات‬ ‫الندرويد‬ ‫بيئة‬ ‫في‬ ‫معرفتها‬ ‫تحتاج‬ ‫مصطلحات‬ ‫كذلك‬ ‫وهناك‬ ,‫الصغيرة‬ ‫التطبيقات‬ ‫وبرمجة‬ ‫إنشاء‬ ‫في‬ .‫معها‬ ‫تتعامل‬ ‫كيف‬ ‫تعرف‬ ‫لكي‬ ‫ستوديو‬ ‫هي‬ ‫لنها‬ ,‫النجليزية‬ ‫والدورات‬ ‫الشروحات‬ ‫متابعة‬ ‫تستطيع‬ ‫لكي‬ ‫تعلمها‬ ‫لك‬ ‫الفضل‬ ‫النجليزية‬ ‫واللغة‬ ‫إن‬ ‫لتستطيع‬ ‫تعلمها‬ ‫عليك‬ ‫يجب‬ ‫العلوم‬ ‫من‬ ‫مجال‬ ‫إي‬ ‫تتقن‬ ‫لكي‬ ‫لذلك‬ ,‫الحديثة‬ ‫للعلوم‬ ‫الم‬ ‫اللغة‬ ‫حاليا‬ ‫تحتاج‬ ‫ما‬ ‫أو‬ ‫يخص‬ ‫ما‬ ‫منه‬ ‫تعلم‬ ,‫واسع‬ ‫بحر‬ ‫الجافا‬ ‫لغة‬ ‫و‬ ‫المصدر‬ ‫من‬ ‫إي‬ ,‫ألسنتهم‬ ‫من‬ ‫المعلومات‬ ‫تأخذ‬ ‫أكثر‬ ‫لك‬ ‫أصبحت‬ ‫أكثر‬ ‫منها‬ ‫تعلمت‬ ‫ما‬ ‫كل‬ ‫عام‬ ‫بشكل‬ ‫البرمجة‬ ‫لغات‬ ‫وكذلك‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫بناء‬ ‫في‬ .‫برمجيا‬ ‫تفكيرا‬ ‫تملك‬ ‫دمت‬ ‫ما‬ ‫الخرى‬ ‫اللغات‬ ‫مع‬ ‫التعامل‬ ‫سهولة‬ ‫المصطلحات‬ ‫من‬ ‫العديد‬ ‫يوجد‬ ‫إنه‬ ‫تذكر‬ ,‫المجال‬ ‫هذا‬ ‫في‬ ‫للبدأ‬ ‫تخضع‬ ‫أن‬ ‫قبل‬ ‫لك‬ ‫الفضل‬ ‫من‬ ‫لذلك‬ ‫لها‬ ‫لن‬ ‫تماما‬ ‫معناها‬ ‫لتعرف‬ ‫تستخدمها‬ ‫إن‬ ‫عليك‬ ‫يجب‬ ‫ولكن‬ ‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ‫النجليزية‬ .‫بالنجليزية‬ ‫الحرفي‬ ‫معناها‬ ‫عن‬ ‫برمجيا‬ ‫تختلف‬ ‫أحيانا‬ ‫معاني‬ ‫الجافا‬ ‫أساسيات‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫الكتب‬ ‫من‬ ‫بعض‬ ‫بتحميل‬ ‫أنصحك‬ ‫و‬OOP‫تعلمها‬ ‫أساسيات‬ ‫فهي‬ , .‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫لعالم‬ ‫الدخول‬ ‫في‬ ‫إنطلق‬ ‫ثم‬ ‫ومن‬ ‫جيدا‬ ‫نصيحة‬ #‫ويتم‬ ‫فيها‬ ‫إعلنته‬ ‫ووضع‬ ‫الكواد‬ ‫بشراء‬ ‫يقوم‬ ‫فقط‬ ,‫عربيا‬ ‫البرمجة‬ ‫يدعى‬ ‫ممن‬ ‫الكثير‬ ‫يوجد‬ ‫المتجر‬ ‫وللسف‬ ,‫نشرها‬Google Play‫عن‬ ‫ابتعد‬ ‫لذلك‬ ‫المتكررة‬ ‫التطبيقات‬ ‫بهذه‬ ‫سخيف‬ ‫من‬ ‫أكثر‬ ‫أصبح‬ ‫فهكذا‬ ,‫رفعها‬ ‫إعادة‬ ‫إما‬ ‫مشكلة‬ ‫ل‬ ‫منها‬ ‫بالكواد‬ ‫أستعن‬ ‫فقط‬ ,‫يذكر‬ ‫وتطوير‬ ‫تعديل‬ ‫دون‬ ‫التطبيقات‬ ‫رفع‬ ‫تدرك‬ ‫سوف‬ ‫ما‬ ‫يوما‬ ‫وأعتقد‬ .‫متجره‬ ‫من‬ ‫التحميل‬ ‫أو‬ ‫الندرويد‬ ‫بيئة‬ ‫استخدام‬ ‫من‬ ‫الناس‬ ‫تنفر‬ ‫أنت‬ .‫المتكررة‬ ‫التطبيقات‬ ‫كل‬ ‫بإزالة‬ ‫تقوم‬ ‫وسوف‬ ‫المشكلة‬ ‫هذه‬ ‫الندرويد‬ 6
  • 7.
    ) ‫الندرويد‬ ‫نظام‬Android- operating system( ‫كونه‬ ,‫المختلفة‬ ‫الشركات‬ ‫من‬ ‫وللعديد‬ ,‫الذكية‬ ‫الهواتف‬ ‫على‬ ‫يعمل‬ ‫النظام‬ ‫هذا‬ ‫إن‬ ‫هو‬ ‫معرفته‬ ‫يهمنا‬ ‫ما‬ ‫عام‬ ‫وفي‬ ,‫مجاني‬ ‫إنه‬ ‫إلى‬ ‫بالضافة‬ ,‫المصدر‬ ‫مفتوح‬ ‫نظام‬2005‫لشركة‬ ‫للك‬‫م‬ ‫أصبح‬ ‫م‬Google Inc. ‫عام‬ ‫في‬ ‫عليه‬ ‫العمل‬ ‫بدأ‬2003‫عام‬ ‫في‬ ‫التجريبية‬ ‫نسخه‬ ‫إطلق‬ ‫وتم‬ .‫م‬2007‫تجربة‬ ‫أول‬ ‫وحظى‬ ,‫م‬ ‫شركة‬ ‫من‬ ‫جهاز‬ ‫على‬HTC. ‫عام‬ ‫أواخر‬ ‫والن‬2015‫الندرويد‬ ‫نظام‬ ‫تستخدم‬ ‫التي‬ ‫الشركات‬ ‫أشهر‬ ,‫م‬ : ‫هي‬ ‫أجهزتها‬ ‫في‬ Google Nexus, HTC, Samsung, LG, Sony, Motorola, Huawei, Lenovo, .‫معروفة‬ ‫والغير‬ ‫الصينية‬ ‫الشركات‬ ‫من‬ ‫الكثير‬ ‫وغيرها‬ ‫النسخة‬ ‫مع‬ ‫بدأ‬ ‫كثيرة‬ ‫إصدارات‬ ‫على‬ ‫يحتوي‬ ‫النظام‬1.5‫كيك‬ ‫كب‬‫الحرف‬ ‫مع‬ ‫اسمها‬ ‫تبدأ‬ ‫وإصداراته‬ ‫هو‬ ‫إصدار‬ ‫آخر‬ ‫الن‬ ‫وحتى‬ ,‫النجليزية‬ ‫الهجائية‬6.0‫مارشميلو‬. ) : ‫الندرويد‬ ‫نظام‬ ‫إصدارات‬Android History( Android 1.0 Alpha 2008/9/23.‫م‬ Android 1.1 Beta 2009/2/9.‫م‬ Android 1.5 Cupcake 2009/4/27‫لوحة‬ + ‫للكاميرا‬ ‫الفيديو‬ ‫تصوير‬ ‫دعم‬ ‫الضافات‬ ‫ومن‬ .‫م‬ ‫المتصفح‬ ‫من‬ ‫واللصق‬ ‫النسخ‬ + ‫الشاشة‬ ‫على‬ ‫المفاتيح‬ 7
  • 8.
    Android 1.6 Donut 2009/9/15.‫م‬‫الس‬‫البحث‬ ‫مربع‬ ‫الضافات‬ ‫ومن‬‫تحسين‬ + ‫ريع‬ ‫قياس‬ ‫يدعم‬ + ‫المعرض‬ ‫إلى‬ ‫بالضافة‬ ‫لها‬ ‫خيارات‬ ‫و‬ ‫الكاميرا‬ ‫اتصال‬ + ‫بلي‬ ‫جوجل‬ ‫متجر‬ + ‫المختلفة‬ ‫الشاشات‬vpn.‫إلخ‬ Android 2.1 Eclair 2009/10/26‫للبريد‬ ‫مختلفة‬ ‫منصات‬ ‫دعم‬ ‫الضافات‬ ‫ومن‬ .‫م‬ + ‫الكاميرا‬ ‫في‬ ‫الفلش‬ ‫و‬ ‫جوجل‬ ‫مع‬ ‫متعددة‬ ‫وحسابات‬ ‫اللكتروني‬ ‫المفضلة‬ + ‫المفاتيح‬ ‫بلوحة‬ ‫المتعدد‬ ‫اللمس‬ + ‫الرسائل‬ ‫داخل‬ ‫البحث‬ ‫بالمتصفح‬ Android 2.2 Froyo 2010/5/20‫الفيديو‬ ‫تشغيل‬ ‫بلير‬ ‫الفلش‬ ‫دعم‬ ‫الضافات‬ ‫ومن‬ .‫م‬ ‫في‬ ‫الحتياطي‬ ‫للنسخ‬ ‫والبريد‬ ‫التصال‬ ‫جهات‬ ‫دعم‬ + ‫بالمتصفح‬ ‫على‬ ‫تغيرات‬ + ‫فاي‬ ‫الواي‬ ‫لمشاركة‬ ‫الوصول‬ ‫نقطة‬ + ‫جوجل‬ ‫خوادم‬ ‫بلوتوث‬ ‫الصوتي‬ ‫التصال‬ + ‫المتصفح‬ Android 2.3 Gingerbread 2010/12/6‫خيارات‬ ‫يساعدك‬ ‫مؤشر‬ + ‫الطاقة‬ ‫توفير‬ ‫الضافات‬ ‫ومن‬ .‫م‬ ‫نظام‬ + ‫النص‬ ‫ونسخ‬ ‫لتحديد‬NFC‫في‬ ‫التطبيقات‬ ‫عمل‬ ‫توافق‬ + ‫التنزيلت‬ ‫مدير‬ + ‫الفيديو‬ ‫لمكالمات‬ ‫المامية‬ ‫الكاميرا‬ ‫دعم‬ + ‫الخلفية‬ Android 3.0 Honeycomb 2011/2/22‫شاشات‬ ‫مع‬ ‫المصغرة‬ ‫التطبيقات‬ ‫توافق‬ ‫الضافات‬ ‫ومن‬ .‫م‬ ‫بين‬ ‫التبديل‬ + ‫ويوتيوب‬ ‫جوجل‬ ‫بريد‬ ‫مثل‬ ‫أساسية‬ ‫تطبيقات‬ + ‫مختلفة‬ ‫علمات‬ ‫و‬ ‫الخفي‬ ‫التصفح‬ + ‫المفاتيح‬ ‫لوحة‬ ‫في‬ ‫والرقام‬ ‫الحرف‬ ‫التبويب‬ Android 4.0 Ice Cream Sandwich 2011/10/18+ ‫بالمتصفح‬ ‫أكبر‬ ‫وسلسة‬ ‫سرعة‬ ‫الضافات‬ ‫ومن‬ .‫م‬ + ‫بار‬ ‫بالكشن‬ ‫الخيارات‬ ‫إزرار‬ + ‫حد‬ ‫لتعيين‬ ‫البيانات‬ ‫استخدام‬ ‫نظام‬ ‫للتطبيقات‬ ‫مساحة‬ ‫توفير‬ + ‫القفل‬ ‫لفتح‬ ‫الوجه‬ ‫بصمة‬ ‫على‬ ‫التعرف‬ Android 4.1 Jelly Bean 2012/7/9‫التقاطها‬ ‫تم‬ ‫التي‬ ‫الصور‬ ‫مشاهدة‬ + ‫الن‬ ‫جوجل‬ ‫تطبيق‬ .‫م‬ + ‫أكثر‬ ‫معلومات‬ ‫على‬ ‫تحتوي‬ ‫الشعارات‬ + ‫التمرير‬ ‫خلل‬ ‫من‬ ‫الن‬ + ‫السئلة‬ ‫على‬ ‫اجابات‬ ‫حتى‬ ‫تشمل‬ ‫جوجل‬ ‫بحث‬ ‫نتائج‬ 8
  • 9.
    Android 4.4 KitKat 2013/10/31‫تطبيق‬‫ترقية‬ + ‫الن‬ ‫جوجل‬ ‫تحسين‬ ‫الضافات‬ ‫ومن‬ .‫م‬ Hangouts‫وشريط‬ ‫الزرار‬ ‫اخفاء‬ ‫اي‬ ‫للتطبيق‬ ‫الشاشة‬ ‫مل‬ ‫وضع‬ + ‫مثل‬ ‫التخزين‬ ‫بتطبيقات‬ ‫اكبر‬ ‫بشكل‬ ‫التحكم‬ + ‫بار‬ ‫والكشن‬ ‫الحالة‬ ‫المخزنة‬ ‫الملفات‬ ‫لدارة‬ ‫درايف‬ ‫جوجل‬ Android 5.0 Lollipop 2014/11/12‫الحديث‬ ‫التصميم‬ ‫نظام‬ ‫وأهمها‬ ‫الضافات‬ ‫ومن‬ .‫م‬ ‫عمر‬ + ‫عليها‬ ‫الشعارات‬ ‫تظهر‬ ‫جديد‬ ‫قفل‬ ‫شاشة‬ + ‫ديزاين‬ ‫الماتريال‬ ‫زائر‬ ‫إضافة‬ + ‫العدادات‬ ‫في‬ ‫بحث‬ + ‫الطاقة‬ ‫توفير‬ ‫مع‬ ‫للبطارية‬ ‫اطول‬ + ‫الشاشة‬ ‫الوان‬ ‫تغيير‬ + ‫محدودة‬ ‫بأمكانيات‬ ‫جهازك‬ ‫ليتصفح‬ ‫لجهازك‬ ‫اسرع‬ ‫وصول‬ + ‫الجهاز‬ ‫اطفاء‬ ‫بعد‬ ‫حتى‬ ‫الخيرة‬ ‫للتطبيقات‬ ‫الوصول‬ ‫إلخ‬ ‫والبطارية‬ ‫الذاكرة‬ ‫واستخدام‬ ‫للعدادات‬ Android 6.0 Marshmallow 2015/10/05‫قارئ‬ ‫دعم‬ + ‫للتطبيق‬ ‫الصلحيات‬ ‫حد‬ ‫الضافات‬ ‫ومن‬ .‫م‬ ‫لطالة‬ ‫جديدة‬ ‫تقنية‬ + ‫معه‬ ‫التعامل‬ ‫للمبرمجين‬ ‫متاح‬ ‫ليصبح‬ ‫البصمة‬ ‫اداء‬ ‫مراقبة‬ + ‫تلقائي‬ ‫احتياطي‬ ‫نسخ‬ + ‫الطاقة‬ ‫وحفظ‬ ‫البطارية‬ ‫عمر‬ ‫للذاكرة‬ ‫واستهلكها‬ ‫التطبيقات‬ ‫سوف‬ ‫والذي‬ .. ‫القادم‬ ‫الصدار‬ ‫بنتظار‬‫يكون‬‫الـ‬ ‫بحرف‬ ‫ويبدأ‬ ‫لحلوى‬ ‫اسم‬ ‫كذلك‬ ‫بالتأكيد‬N. ) : ‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬Android Studio( ‫برنامج‬ ‫نستخدم‬ ‫كنا‬ ‫سابقا‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫لبرمجة‬ ‫نستخدمه‬ ‫سوف‬ ‫الذي‬ ‫البرنامج‬ ‫هو‬‫الكليبس‬ Eclipse‫الدوات‬ ‫تطوير‬ ‫إيقاف‬ ‫إعلن‬ ‫تم‬ ‫إنه‬ ‫العلم‬ ‫مع‬ ,‫يستخدمه‬ ‫البعض‬ ‫الن‬ ‫إلى‬ ‫زال‬ ‫وما‬ADT ‫في‬ ‫للكليبس‬ ‫اندرويد‬ ‫بنظام‬ ‫الخاصة‬‫عام‬ ‫نهاية‬2015‫م‬. ‫لكي‬ ‫وذلك‬‫الشركة‬ ‫تعطي‬‫وال‬ ‫الوقت‬ ‫المكان‬ ‫قدر‬‫والتفكير‬ ‫جهد‬‫جعل‬ ‫على‬ ‫الكليبس‬ ‫بينما‬ ,‫فقط‬ ‫المجال‬ ‫لهذا‬ ‫واحترافية‬ ‫تقدم‬ ‫أكثر‬ ‫ستوديو‬ ‫الندرويد‬ .‫آخرى‬ ‫برمجية‬ ‫وأعمال‬ ‫لغات‬ ‫في‬ ‫أستخدامه‬ ‫تستطيع‬ ‫في‬ ‫إطلقه‬ ‫تم‬Google I/0‫لعام‬2013‫التحديثات‬ ‫من‬ ‫العديد‬ ‫يتلقى‬ ‫زال‬ ‫ما‬ ‫الن‬ ‫إلى‬ ‫إنه‬ ‫كما‬ .‫م‬ .‫والتطويرات‬ ‫هو‬ ‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫إصدار‬ ,‫الكتاب‬ ‫هذا‬ ‫في‬ ‫المستخدم‬ ‫الشرح‬ ‫حسب‬Android Studio 1.4 9
  • 10.
    ) ‫الندرويد‬ ‫إضافات‬‫مدير‬SDK Manager( ‫لـ‬ ‫اختصارا‬Software Development Kit,‫للمطورين‬ ‫أندرويد‬ ‫توفرها‬ ‫التي‬ ‫والضافات‬ ‫والحزم‬ ‫الدوات‬ ‫هي‬ ‫برمجة‬ ‫أجل‬ ‫من‬ ‫تحديثات‬ ‫بعمل‬ ‫تقوم‬ ,‫الندرويد‬ ‫لنظام‬ ‫جديد‬ ‫إصدار‬ ‫هناك‬ ‫حال‬ ‫في‬ ‫منها‬ ‫وتستفيد‬ ‫أجعلها‬ ‫دائما‬ .‫ستوديو‬ ‫الندرويد‬ ‫مع‬ ‫تلقائيا‬ ‫ربطها‬ ‫ويتم‬ ‫مهمة‬ ‫فهي‬ ‫الصدارات‬ ‫آخر‬ ‫يدعم‬ ‫لكي‬ ‫التطبيق‬ .‫جديد‬ ‫تحديث‬ ‫إي‬ ‫لوجود‬ ‫لتنبيهك‬ ‫ستوديو‬ ‫الندرويد‬ ‫داخل‬ ‫بإعداد‬ ‫تقوم‬ ‫إن‬ ‫يمكنك‬ ‫كما‬ ‫إصدار‬ ‫لخر‬ ‫محدثة‬ ‫الـ‬ ‫نافذة‬ ‫لفتح‬SDK: ‫أختر‬ ‫الترحيب‬ ‫شاشة‬ ‫ومن‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫بتشغيل‬ ‫قم‬Configure‫ثم‬Settings‫يتم‬ ‫سوف‬ ‫أختر‬ ‫اليسرى‬ ‫الجهة‬ ‫من‬ ,‫البرنامج‬ ‫بإعدادات‬ ‫جديدة‬ ‫نافذة‬ ‫فتح‬ Appearance & Behavior > System Settings > Android SDK ‫اليقونة‬ ‫على‬ ‫إضغط‬ ,‫العلوي‬ ‫القائمة‬ ‫شريط‬ ‫من‬ ,‫المشاريع‬ ‫أحد‬ ‫على‬ ‫تعمل‬ ‫كنت‬ ‫إذا‬ ‫فتحها‬ ‫تستطيع‬ ‫أو‬ ‫بـ‬ ‫الخاصة‬SDK ‫العلوي‬ ‫الشريط‬ ‫من‬ ‫أو‬ Tools > Android > SDK Manager 10
  • 11.
    ‫تنزيل‬ ‫في‬ ‫مشكلة‬‫لديهم‬ ‫الخوة‬ ‫من‬ ‫البعض‬ ‫لدى‬ ‫يوجد‬SDK‫إستخدام‬ ‫أو‬ ,‫البرنامج‬ ‫عن‬ ‫منفصلة‬SDK ‫الـ‬ ‫مسار‬ ‫من‬ ‫دائما‬ ‫تأكد‬ ‫لذلك‬ ,‫إستخدامها‬ ‫يريدوا‬ ‫الجهاز‬ ‫في‬ ‫سابقة‬SDK‫السابقة‬ ‫الصورة‬ ‫في‬‫رقم‬1. ‫رقم‬ ‫نقطة‬ ‫السابقة‬ ‫الصورة‬ ‫حسب‬2: ‫يعمل‬ ‫جهاز‬ ‫إي‬ ‫مع‬ ‫جهازك‬ ‫ليتوافق‬ ‫إصدار‬ ‫أعلى‬ ‫أخترت‬ ‫إنك‬ ‫من‬ ‫تأكد‬ ‫دائما‬ ‫إصدار‬ ‫على‬ ‫يحتوي‬ ‫إن‬ ‫الضروري‬ ‫ومن‬ ‫إنه‬ ‫إلى‬ ‫بالضافة‬ ,‫اندرويد‬ ‫نظام‬ ‫على‬ ‫ال‬ ‫على‬ ‫واحد‬.‫المشاريع‬ ‫إنشاء‬ ‫في‬ ‫البدء‬ ‫لتستطيع‬ ‫قل‬ SDK Platforms ‫ال‬ ‫ليدعمها‬ ‫إضافات‬‫يتم‬ ‫سوف‬ ,‫مشاريعك‬ ‫في‬ ‫واستخدامها‬ ‫ستوديو‬ ‫ندرويد‬ ‫محدثة‬ ‫إي‬ ‫الخير‬ ‫الصدار‬ ‫لديك‬ ‫إن‬ ‫تأكد‬ ,‫قادمة‬ ‫نقاط‬ ‫في‬ ‫منها‬ ‫المهم‬ ‫شرح‬ .‫دائما‬ SDK Tools ‫الخ‬ ‫بعض‬ ‫يوجد‬‫رابط‬ ‫تعطيك‬ ‫والتي‬ ‫الشركات‬ ‫او‬ ‫المواقع‬ ‫تقدمها‬ ‫التي‬ ‫دمات‬ ‫بها‬ ‫الخاصة‬ ‫المنصات‬ ‫على‬ ‫يحتوي‬SDK‫وسوف‬ ,‫هنا‬ ‫الرابط‬ ‫إضافة‬ ‫تستطيع‬ .‫يحتوي‬ ‫كان‬ ‫إذا‬ ‫الخرى‬ ‫القسام‬ ‫في‬ ‫إضافته‬ ‫تظهر‬ SDK Update Sites ‫رقم‬ ‫للنقطة‬ ‫بالنسبة‬3: ‫داخله‬ ‫التي‬ ‫الحزم‬ ‫بكامل‬ ‫الصدار‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ‫عليها‬ ‫الضغط‬ ‫بعد‬ ‫مثل‬ ,‫أكثر‬ ‫تفاصيل‬ ‫لك‬ ‫لتظهر‬ ‫فهي‬ .‫إصدار‬ ‫كل‬ ‫من‬ ‫تحميله‬ ‫يجب‬ ‫ما‬ ‫أهم‬ ‫قادمة‬ ‫نقاط‬ ‫في‬ ‫أشرح‬ ‫وسوف‬ ‫للنقطة‬ ‫بالنسبة‬ ‫وأما‬4: ‫الـ‬ ‫نافذة‬ ‫لفتح‬ ‫فهي‬SDK‫الس‬ ‫الصدارات‬ ‫في‬ ‫عليها‬ ‫تعودنا‬ ‫التي‬ ‫النافذة‬ ‫وهي‬ ,‫مستقل‬ ‫بشكل‬‫و‬ ‫ابقة‬ ‫بشكل‬ ‫فتحها‬ ‫إلغاء‬ ‫يتم‬ ‫كبير‬ ‫احتمال‬ ‫ولكن‬ ‫ستوديو‬ ‫وإندرويد‬ ,‫إكليبس‬ ‫في‬ ‫موجودة‬ ‫الن‬ ‫إلى‬ ‫زالت‬ ‫ما‬ .‫السابقة‬ ‫بالصورة‬ ‫لنا‬ ‫ظهرت‬ ‫كما‬ ‫سهولة‬ ‫أكثر‬ ‫أصبحت‬ ‫لنها‬ ,‫مستقل‬ ‫نافذة‬ ‫عن‬ ‫سريعة‬ ‫لمحة‬ ‫إعطاء‬ ‫يتم‬ ‫سوف‬SDK‫لمراجعة‬ ,‫منها‬ ‫تحميله‬ ‫يجب‬ ‫ما‬ ‫أهم‬ ‫وما‬ ‫المستقلة‬ : ‫المر‬ ‫هذا‬ ‫في‬ ‫سابقة‬http://andrody.com/?p=70 11
  • 12.
    ) ‫نافذة‬Standalone SDKManager( ‫الس‬ ‫الصورة‬ ‫في‬ ‫تحميله‬ ‫تم‬ ‫قد‬ ‫ما‬‫للـ‬ ‫كان‬ ‫سواء‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬ ,‫ابقة‬SDK,‫المستقلة‬ ‫او‬ ‫الحديثة‬ ‫أحدث‬ ‫دائما‬ ‫تكون‬ ‫أن‬ ‫على‬ ‫أحرص‬ ‫ولكن‬ ,‫بنا‬ ‫الخاصة‬ ‫المشاريع‬ ‫ببرمجة‬ ‫البدء‬ ‫أجل‬ ‫من‬ ‫يهمنا‬ ‫الذي‬ ‫وهو‬ .‫منها‬ ‫لديك‬ ‫الصدارات‬ Android SDK Tools//‫ال‬ ‫بعض‬ ‫تطوير‬ ‫أو‬ ‫تحديث‬ ‫أو‬ ‫بإصلح‬ ‫تأتي‬ ‫فهي‬ ,‫فترة‬ ‫كل‬ ‫تحديثها‬ ‫يتم‬‫مور‬ ‫تبقى‬ ‫يفضل‬ ‫لذلك‬ .‫إلخ‬ ‫الفتراضي‬ ‫المحاكي‬ ‫في‬ ‫مشكلة‬ ,‫معين‬ ‫استايل‬ ‫في‬ ‫مشكلة‬ ‫مثل‬ ,‫بالبرنامج‬ .‫دائما‬ ‫إصدار‬ ‫أعلى‬ ‫تستخدم‬ ‫إنك‬ ‫متأكد‬ Platform, Build-tools//‫إن‬ ‫تأكد‬Rev‫الـ‬ ‫مع‬ ‫يتوافق‬ .API‫بدون‬ ‫العمل‬ ‫تستطيع‬ ‫لكي‬ ‫لديك‬ ‫الخير‬ ‫مشاكل,تحديدا‬Build-tools.‫الول‬ ‫بمشروعنا‬ ‫البرمجة‬ ‫نبدأ‬ ‫عندما‬ ‫إليها‬ ‫أشير‬ ‫سوف‬ SDK Platforms//‫إصدار‬ ‫أحدث‬ ‫ويفضل‬ ‫منها‬ ‫واحدة‬ ‫القل‬ ‫على‬ ‫يحتوي‬ ‫إن‬ ‫يجب‬ ‫سابقا‬ ‫ذكرت‬ ‫كما‬ .‫الجهزة‬ ‫أحدث‬ ‫على‬ ‫تطبيقك‬ ‫يعمل‬ ‫لكي‬ ‫تجد‬ ‫سوف‬ ‫حزمة‬ ‫كل‬ ‫داخل‬System Image‫افتراضي‬ ‫جهاز‬ ‫وتركيب‬ ‫إعداد‬ ‫أردت‬ ‫حال‬ ‫في‬ ‫اختيارية‬ ‫وهي‬ .( ‫قادمة‬ ‫نقاط‬ ‫في‬ ‫المحاكي‬ ‫عن‬ ‫نتكلم‬ ‫سوف‬ ) .‫نشرها‬ ‫قبل‬ ‫عليه‬ ‫تطبيقاتك‬ ‫بتجربة‬ ‫تقوم‬ ‫محاكي‬ 12
  • 13.
    Android Support Library//‫الـ‬‫منها‬ ‫كثيرة‬ ‫إضافات‬ ‫لدعم‬ ‫مهمة‬fragments‫حال‬ ‫في‬ ‫تحتاجها‬ ‫كذلك‬ .‫وبكفاءة‬ ‫سابقة‬ ‫إصدار‬ ‫على‬ ‫عليها‬ ‫تعمل‬ ‫التي‬ ‫اللياوت‬ ‫معاينة‬ ‫أردت‬ Android Support Repository//‫غنى‬ ‫ل‬ ‫والتي‬ ‫الدعم‬ ‫مكاتب‬ ‫من‬ ‫العديد‬ ‫على‬ ‫تحتوي‬ ‫لنها‬ ‫مطلوبة‬ .‫مشروع‬ ‫إي‬ ‫برمجة‬ ‫في‬ ‫عنها‬ Google Play services//‫جوجل‬ ‫وسحابة‬ ‫جوجل‬ ‫اعلنات‬ ‫مثل‬ ,‫أمثلتها‬ ‫مع‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬ ‫لدعم‬ .‫وغيرها‬ ‫جوجل‬ ‫واحصائيات‬ Google Repository//.‫بجوجل‬ ‫الخاصة‬ ‫الدعم‬ ‫مكاتب‬ ‫على‬ ‫يحتوي‬ ) ‫النظام‬ ‫في‬ ‫المستويات‬API Level( ‫ال‬ ‫نظام‬ ‫في‬ ‫البرمجة‬ ‫أي‬ ,‫إصدار‬ ‫لكل‬ ‫المستوى‬ ‫هو‬ ‫معرفته‬ ‫يهم‬ ‫ما‬‫ندرويد‬‫الـ‬ ‫مثل‬ ,‫مستويات‬ ‫على‬API ‫هو‬ ‫مارشميلو‬ ‫الخير‬ ‫للصدار‬23‫والـ‬ .API‫هو‬ ‫كات‬ ‫الكت‬ ‫لصدار‬19‫أقل‬ ‫تحدد‬ ‫إنت‬ ‫البرمجة‬ ‫أثناء‬ ‫إذا‬ . ‫في‬ ‫لديك‬ ‫إصدار‬ ‫آخر‬ ‫هو‬ ‫إصدار‬ ‫أعلى‬ ‫جدا‬ ‫الطبيعي‬ ‫ومن‬ ‫إصدار‬ ‫أعلى‬ + ‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫إصدار‬ ‫الـ‬ ‫حزمة‬SDK‫وكلما‬ .‫الندرويد‬ ‫لنظام‬ ‫الحديثة‬ ‫الصدارات‬ ‫على‬ ‫يعمل‬ ‫سوف‬ ‫تطبيقك‬ ‫إن‬ ‫تضمن‬ ‫لكي‬ . ‫الـ‬ ‫أقل‬ ‫أصبح‬API‫ولكن‬ . ‫الصدارات‬ ‫جميع‬ ‫على‬ ‫يعمل‬ ‫لكي‬ ‫تطبيقك‬ ‫يأخذها‬ ‫التي‬ ‫الملفات‬ ‫عدد‬ ‫زادت‬ ‫او‬ ‫ليفل‬ ‫تختار‬ ‫إن‬ ‫لك‬ ‫فالفضل‬ ,‫الحديثة‬ ‫الصدارات‬ ‫إل‬ ‫تقبل‬ ‫ل‬ ‫التي‬ ‫المميزات‬ ‫بعض‬ ‫تمنع‬ ‫سوف‬ ‫هكذا‬ ‫ال‬ ‫للجوالت‬ ‫موافق‬ ‫مستوى‬‫جميع‬ ‫تستخدم‬ ‫بالغالب‬ ‫الضخمة‬ ‫التطبيقات‬ ‫بينما‬ .‫حاليا‬ ‫انتشار‬ ‫كثر‬ ‫وكذا‬ ‫كذا‬ ‫ليفل‬ ‫على‬ ‫يعمل‬ ‫الجوال‬ ‫كان‬ ‫إذا‬ ‫البرمجة‬ ‫أثناء‬ ‫شرط‬ ‫تضع‬ ‫المميزات‬ ‫لتفعيل‬ ‫ولكن‬ ‫المستويات‬ ‫فقط‬ ‫المعلومة‬ ‫هذه‬ ‫بقراءة‬ ‫تقلق‬ ‫ل‬ .‫الجهزة‬ ‫لجميع‬ ‫متوافق‬ ‫تطبيقهم‬ ‫يكون‬ ‫أن‬ ‫أجل‬ ‫من‬ .. ‫وهكذا‬ .. ‫إذا‬ ‫المقصود‬ ‫ما‬ ‫نبين‬ ‫سوف‬ ‫الكتاب‬ ‫هذا‬ ‫وفي‬ ‫أدق‬ ‫بشكل‬ ‫عليها‬ ‫تتعرف‬ ‫سوف‬ ‫البرمجة‬ ‫أثناء‬ .. ‫للمعرفة‬ .‫تطبيق‬ ‫أول‬ ‫إنشائنا‬ ‫خلل‬ ‫من‬ ‫هذا‬ ‫بقولنا‬ ‫أندرويد‬ ‫نظام‬ .‫اندرويد‬ ‫إصدار‬ – ‫الجهاز‬ ‫حول‬ – ‫الضبط‬ ‫فتح‬ ‫بعد‬ ,‫اندرويد‬ ‫جهاز‬ ‫إي‬ ‫إستخدامك‬ ‫عند‬ ‫شك‬ ‫فل‬ .‫مختلفة‬ ‫اصدارات‬ ‫عدة‬ ‫على‬ ‫يحتوي‬ ‫فهو‬ ‫ذكرت‬ ‫كما‬ ‫الموجود‬ ‫حسب‬ ‫أصدار‬ ‫وأعلى‬ ,‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫إصدار‬ ‫أقل‬ ‫تعطيه‬ ‫سوف‬ ,‫مشروعك‬ ‫برمجة‬ ‫أثناء‬ ‫بـ‬ ‫لديك‬SDK. 13
  • 14.
    ‫مثل‬ ‫نظامه‬ ‫الندرويد‬‫جهازك‬ ‫لو‬Android 3.0‫ويحمل‬ ‫هونيكومب‬ ‫العسل‬ ‫قرص‬ ‫إصدار‬ ‫إنه‬ ‫يعني‬ ‫هذا‬API Level = 11. ‫ليفل‬ ‫أقل‬ ‫حديث‬ ‫تطبيق‬ ‫ببرمجة‬ ‫قمت‬ ‫وأنت‬16‫ليفل‬ ‫وأعلى‬23‫على‬ ‫يعمل‬ ‫لن‬ ‫التطبيق‬ ‫هذا‬ ‫إذا‬ . : ‫لها‬ ‫والمستويات‬ ‫الصدارات‬ ‫على‬ ‫للتعرف‬ ‫الجدول‬ ‫هذا‬ ‫لك‬ ‫مهم‬ ‫لذلك‬ .‫جهازك‬ ‫المستوى‬‫الصدار‬ 1Android 1.0 2Android 1.1 3Android 1.5 Cupcake 4Android 1.6 Donut 5Android 2.0 Eclair 6Android 2.0.1 Eclair 7Android 2.1 Eclair 8Android 2.2–2.2.3 Froyo 9Android 2.3–2.3.2 Gingerbread 10Android 2.3.3–2.3.7 Gingerbread 11Android 3.0 Honeycomb 12Android 3.1 Honeycomb 13Android 3.2 Honeycomb 14Android 4.0–4.0.2 Ice Cream Sandwich 15Android 4.0.3–4.0.4 Ice Cream Sandwich 16Android 4.1 Jelly Bean 17Android 4.2 Jelly Bean 18Android 4.3 Jelly Bean 19Android 4.4 KitKat 20Android 4.4 KitKat with wearable extensions 21Android 5.0–5.0.2 Lollipop 22Android 5.1–5.1.1 Lollipop 23Android 6.0 Marshmallow 14
  • 15.
    ‫ال‬ ‫تطبيقات‬ ‫ببرمجة‬‫للبدء‬ ‫المطلوبة‬ ‫التحميلت‬‫ندرويد‬ ‫برنامج‬ ‫إلى‬ ‫بالضافة‬ ‫لجهازك‬ ‫الجافا‬ ‫منصة‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫تبدأ‬ ‫لكي‬ ‫تحميله‬ ‫يتطلب‬ ‫ما‬ ‫الـ‬ ‫حزمة‬ ‫معه‬ ‫يأتي‬ ‫والذي‬ ‫ستوديو‬ ‫الندرويد‬SDK. : ‫بكفاءة‬ ‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫تشغيل‬ ‫ليتم‬ ‫جهازك‬ ‫يتطلبه‬ ‫ما‬ # // ‫الويندوز‬ ‫نظام‬ ‫لجهزة‬ ‫للنواتين‬ ‫أحدث‬ ‫أو‬ ‫فيستا‬ ‫ويندوز‬ ‫مايكروسوفت‬ ‫نظام‬ -64‫و‬32‫بت‬ ‫أدنى‬ ‫كحد‬ ‫الرام‬ -2‫ويفضل‬4‫فوق‬ ‫ما‬ -400‫ديسك‬ ‫الهارد‬ ‫مساحة‬ ‫من‬ ‫فارغ‬ ‫فوق‬ ‫فما‬ ‫ميغا‬ ‫يتجاوز‬ ‫ما‬ -1‫الـ‬ ‫حزمة‬ ‫أجل‬ ‫من‬ ‫جيجا‬SDK ‫الشاشة‬ ‫دقة‬ ‫أدنى‬ ‫كحد‬ -800×1280 ‫الجافا‬ ‫تطوير‬ ‫أدوات‬ -JDK 7‫فوق‬ ‫فما‬ // ‫إس‬ ‫أو‬ ‫ماك‬ ‫نظام‬ ‫لجهزة‬ ‫إس‬ ‫أو‬ ‫ماك‬ -10.8.5‫أعلى‬ ‫أو‬ ‫أدنى‬ ‫كحد‬ ‫الرام‬ -2‫ويفضل‬ ‫جيجا‬4 ‫كذلك‬ -1‫الـ‬ ‫حزمة‬ ‫أجل‬ ‫من‬ ‫مساحة‬ ‫جيجا‬SDK ‫أدنى‬ ‫كحد‬ ‫الشاشة‬ ‫دقة‬ -800×1280 ‫جافا‬ ‫بيئة‬ -JRE 6‫فوق‬ ‫فما‬ ‫الجافا‬ ‫تطوير‬ ‫أدوات‬ -JDK 7‫فوق‬ ‫فما‬ // ‫اللينكس‬ ‫نظام‬ ‫لجهزة‬ ‫كدي‬ ‫أو‬ ‫جينومي‬ ‫ليكنس‬ - ‫مكتبة‬ -GNU C 2.15‫أعلى‬ ‫أو‬ ‫رام‬ -2‫ويفضل‬ ‫جيجا‬4 -400‫القرص‬ ‫من‬ ‫فارغة‬ ‫مساحة‬ ‫كذلك‬ -1‫الـ‬ ‫حزمة‬ ‫أجل‬ ‫من‬ ‫مساحة‬ ‫جيجا‬SDK ‫أدنى‬ ‫كحد‬ ‫كذلك‬ ‫الشاشة‬ ‫دقة‬ -800×1280 ‫الجافا‬ ‫تطوير‬ ‫أدوات‬ ‫أوراكل‬ -JDK 7.‫فوق‬ ‫فما‬ 15
  • 16.
    ‫البحث‬ ‫محرك‬ ‫افتح‬,‫ستوديو‬ ‫الندرويد‬ ‫لتحميل‬Google: ‫البحث‬ ‫شريط‬ ‫في‬ ‫واكتب‬Android SDK : ‫التالي‬ ‫الرابط‬ ‫اتبع‬ ‫أو‬http://developer.android.com/sdk/ ‫زر‬ ‫على‬ ‫إضغط‬ ‫الرابط‬ ‫فتح‬ ‫بعد‬ -DOWNLOAD ANDROID STUDIO -1‫والحكم‬ ‫الشروط‬ ‫على‬ ‫للموافقة‬ ( ‫بوكس‬ ‫التشيك‬ ) ‫على‬ ‫أضغط‬ ‫ثم‬2‫زر‬ ‫لديك‬ ‫يصبح‬ ‫سوف‬ ‫بعدها‬ ) ‫التنزيل‬ ‫لبدء‬ ‫عليه‬ ‫اضغط‬ ‫الزرق‬ ‫باللون‬ ‫التحميل‬DOWNLOAD ANDROID STUDIO( .. ‫النتهاء‬ ‫حتى‬ ‫ننتظره‬ ,‫بالتنزيل‬ ‫يبدء‬ ‫سوف‬ ‫الن‬ ‫النسخة‬ ‫تحميل‬ ‫تستطيع‬ ,‫جوجل‬ ‫مطوري‬ ‫موقع‬ ‫عنها‬ ‫المحجوب‬ ‫للدول‬ ++1.4: ‫الول‬ ‫الجزء‬572/ ‫ميغابايت‬http://goo.gl/2cXkFa ‫الثاني‬ ‫الجزء‬551/ ‫ميغابايت‬http://goo.gl/bP8Koc : ‫الضغط‬ ‫فك‬ ‫سر‬ ‫كلمة‬andrody.com 16
  • 17.
    ) ‫لجهازنا‬ ‫الجافا‬‫مطوري‬ ‫أدوات‬ ‫تحميل‬ ‫علينا‬ ‫يجب‬ ‫الن‬JDK: ‫التالي‬ ‫الرابط‬ ‫نتبع‬ (http://goo.gl/Lp9A6i ‫بجانب‬ ‫التنزيل‬ ‫زر‬ ‫على‬ ‫نضغط‬ -JDK ‫الترخيص‬ ‫اتفاقية‬ ‫قبول‬ ‫على‬ ‫الضغط‬ ‫ثم‬ - 17
  • 18.
    ‫جهازنا‬ ‫نظام‬ ‫توافق‬‫التي‬ ‫النسخة‬ ‫بجانب‬ ‫التنزيل‬ ‫رابط‬ ‫على‬ ‫نضغط‬ ‫ثم‬ - : ‫هنا‬ ‫من‬ ‫خارجية‬ ‫بروابط‬ ‫تحميلها‬ ‫تستطيع‬ ‫للموقع‬ ‫حظر‬ ‫أو‬ ‫صعوبة‬ ‫يواجه‬ ‫ولمن‬ ,‫بالتنزيل‬ ‫يبدأ‬ ‫سوف‬ ‫ويندوز‬ ‫نظام‬ ‫لجهزة‬ -64/ ‫بت‬http://goo.gl/iNmqaG ‫ويندوز‬ ‫نظام‬ ‫لجهزة‬ -32/ ‫بت‬http://goo.gl/Znr1xm : ‫الن‬ ‫لدينا‬ ‫النهائي‬ ‫والناتج‬ . . ‫المطلوبة‬ ‫التنزيلت‬ ‫من‬ ‫أنتهينا‬ ‫نكون‬ ‫هكذا‬ ‫بتحميل‬ ‫أول‬ ‫وقم‬ .‫النتهاء‬ ‫حتى‬ .. ‫التالي‬ ‫زر‬ ‫على‬ ‫والضغط‬ ‫فتحها‬ ‫فقط‬ ,‫سهولة‬ ‫بكل‬ ‫بتثبيتها‬ ‫قم‬ ‫والن‬ ‫الجافا‬ ‫مطوري‬ ‫أدوات‬JDK‫ثم‬ ‫من‬‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬. 18
  • 19.
    ‫بها‬ ‫القيام‬ ‫عليك‬‫يجب‬ ‫التي‬ ‫الولى‬ ‫الخطوات‬ ,‫بالتالي‬ ‫قم‬ ,‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫تشغيل‬ ‫وقبل‬ ‫البداية‬ ‫في‬‫للجافا‬ ‫جهازك‬ ‫وصول‬ ‫تعيين‬, ‫أندرويد‬ ‫تشغيل‬ ‫يتم‬ ‫لم‬ ‫حال‬ ‫في‬ ‫مشكلة‬ ‫يواجه‬ ‫لمن‬ ‫فقط‬ ‫ضرورية‬ ‫غير‬ ) ‫الويندوز‬ ‫لنظام‬ ‫التالية‬ ‫بالخطوات‬ ( ‫ستوديو‬ ‫اختر‬ ‫اليسار‬ ‫على‬ ‫التي‬ ‫النافذة‬ ‫من‬ ‫ثم‬ ,‫خصائص‬ ‫واختر‬ ‫الكمبيوتر‬ ‫جهاز‬ ‫على‬ ‫اليمن‬ ‫بالزر‬ ‫اضغط‬ – Advanced system setting. ‫اسمه‬ ‫العلى‬ ‫في‬ ‫خيار‬ ‫ضمنها‬ ‫من‬ ,‫صغيرة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ –Advanced‫اسمه‬ ‫يوجد‬ ‫داخله‬ ‫من‬ , Environment Variables.‫كذلك‬ ‫جديدة‬ ‫نافذة‬ ‫لك‬ ‫تخرج‬ ‫سوف‬ ,‫عليه‬ ‫اضغط‬ ‫العلى‬ ‫في‬ ,‫قسمين‬ ‫الجديدة‬ ‫النافذة‬ –User variables for‫السفل‬ ‫وفي‬System Variables‫الجزء‬ ‫في‬ , ‫زر‬ ‫على‬ ‫اضغط‬ ‫السفلي‬New.‫جديدة‬ ‫نافذة‬ ‫لك‬ ‫تخرج‬ ‫سوف‬ , ‫خانتين‬ ‫من‬ ‫مكونة‬ ‫صغيرة‬ ‫نافذة‬ –Variable name‫و‬Variable value: ‫ضع‬ ‫السم‬ ‫داخل‬ ‫في‬ , JAVA_HOME: ‫مثال‬ – ‫جهازك‬ ‫في‬ ‫لديك‬ ‫الجافا‬ ‫ملف‬ ‫مسار‬ – : ‫ضع‬ ‫القيمة‬ ‫داخل‬ ‫في‬ ‫وأما‬ C:Program FilesJavajdk1.8.0_40.‫لديك‬ ‫المتوفر‬ ‫الصدار‬ ‫رقم‬ ‫تغيير‬ ‫مع‬ ‫اضغط‬ –OK‫لم‬ ‫وإذا‬ ,‫عليك‬ ‫مبروك‬ ‫سليم‬ ‫بشكل‬ ‫اشتغل‬ ‫إذا‬ ‫البرنامج‬ ‫تشغيل‬ ‫جرب‬ ‫بعدها‬ .‫الحفظ‬ ‫وتم‬ : ‫التالي‬ ‫ونفذ‬ .‫المكان‬ ‫لنفس‬ ‫ارجع‬ ,‫يعمل‬ ‫العلوي‬ ‫الجزء‬ ‫في‬ –User variables for‫خانة‬ ‫على‬ ‫اضغط‬ ,PATH‫عليها‬ ‫متكرر‬ ‫بشكل‬ ‫او‬ ,‫تعديل‬ ‫واضغط‬ ; ‫المنقوطة‬ ‫الفاصلة‬ ‫وضعط‬ ‫آخرها‬ ‫اذهب‬ ,‫موجودة‬ ‫سطور‬ ‫تجد‬ ‫القيم‬ ‫خانة‬ ‫في‬ .. ‫التعديل‬ ‫قائمة‬ ‫لتظهر‬ ‫خانة‬ ‫في‬ ‫وضعته‬ ‫الذي‬ ‫المسار‬ ‫نفس‬ ‫ثم‬ ‫ومن‬JAVA_HOME ‫بإضافة‬ ‫ولكن‬bin: ‫مثال‬C:Program FilesJavajdk1.8.0_40bin ‫اضغط‬ –OK.‫كمسؤول‬ ‫تشغيله‬ ‫جرب‬ ‫ستوديو‬ ‫اندرويد‬ ‫يعمل‬ ‫لم‬ ‫حال‬ ‫في‬ . ‫الن‬ ‫و‬“ ! ‫انتبه‬ "‫الـ‬ ‫لحزمة‬ ‫التوجه‬ ‫عليك‬ ‫يجب‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫بفتح‬ ‫تقوم‬ ‫أن‬ ‫قبل‬SKD || ‫موضوع‬ ‫في‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬ ‫منك‬ ‫المطلوب‬ ‫وتحميل‬) : ‫الندرويد‬ ‫إضافات‬ ‫مدير‬SDK Manager(|| ‫الـ‬ ‫من‬ ‫الحزم‬ ‫بتنزيل‬ ‫قيامك‬ ‫بعد‬SDK‫الحزم‬ ‫معها‬ ‫تأتي‬ ‫ستوديو‬ ‫الندرويد‬ ‫من‬ ‫نسخ‬ ‫يوجد‬ ‫العلم‬ ‫مع‬ , ‫تتردد‬ ‫ل‬ ‫مشكلة‬ ‫إي‬ ‫واجهتك‬ ‫إذا‬ .‫التالية‬ ‫للمواضيع‬ ‫النتقال‬ ‫بعدها‬ ‫تستطيع‬ , ‫أول‬ ‫بنفسك‬ ‫تأكد‬ ‫ولكن‬ . ‫معنا‬ ‫بالتواصل‬ 19
  • 20.
    ‫الترحيبية‬ ‫ستوديو‬ ‫الندرويد‬‫نافذة‬ ‫حال‬ ‫في‬ ,‫ستوديو‬ ‫الندرويد‬ ‫تشغيل‬ ‫بداية‬ ‫لك‬ ‫تظهر‬ ‫التي‬ ‫النافذة‬ ‫هي‬ ,‫بالصورة‬ ‫الموضوحة‬ ‫النافذة‬ ‫هذه‬ .‫النافذة‬ ‫هذه‬ ‫لك‬ ‫لتظهر‬ ‫إغلقه‬ ‫يجب‬ ‫مسبقا‬ ‫فتحه‬ ‫تم‬ ‫مشروع‬ ‫يوجد‬ ‫كان‬ ‫وإذا‬ ,‫مفتوحة‬ ‫مشاريع‬ ‫يوجد‬ ‫ل‬ ) ‫النقطة‬ ‫عند‬1// (.‫جديد‬ ‫مشروع‬ ‫بإنشاء‬ ‫البدأ‬ ) ‫النقطة‬ ‫عند‬ ‫و‬2// (.‫ستوديو‬ ‫الندرويد‬ ‫على‬ ‫بنائه‬ ‫تم‬ ‫وقد‬ ,‫مسبقا‬ ‫موجود‬ ‫مشروع‬ ‫فتح‬ ) ‫النقطة‬ ‫وعند‬3// (‫لذلك‬ ‫الستخدام‬ ‫في‬ ‫معينة‬ ‫طريقة‬ ‫له‬ ‫منها‬ ‫كل‬ ,‫مواقع‬ ‫عدة‬ ‫من‬ ‫مشاريع‬ ‫جلب‬ .‫لحقة‬ ‫لتدوينات‬ ‫شرحه‬ ‫يترك‬ ‫سوف‬ ) ‫النقطة‬ ‫وعند‬4// (‫في‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬ ,‫اكليبس‬ ‫برنامج‬ ‫على‬ ‫المبنية‬ ‫اندرويد‬ ‫مشاريع‬ ‫استيراد‬ .‫مستقل‬ ‫موضوع‬ ) ‫النقطة‬ ‫وعند‬5// (.‫جاهزة‬ ‫قصيرة‬ ‫أو‬ ‫بسيطة‬ ‫للندرويد‬ ‫أكواد‬ ‫نماذج‬ ‫استيراد‬ ) ‫النقطة‬ ‫وعند‬6// (‫الـ‬ ,‫العداد‬ ‫مرحلة‬SDK.‫إلخ‬ ‫والعدادات‬ ‫والضافات‬ 20
  • 21.
    ) ‫النقطة‬ ‫وعند‬7//(‫بيئة‬ ‫استخدام‬ ‫لكيفية‬ ‫وشروحات‬ ‫تعليمات‬IntelliJ‫يعمل‬ ‫التي‬ ‫وهي‬ ‫إيديا‬ ‫إنتيليج‬ , .‫ستوديو‬ ‫أندرويد‬ ‫برنامج‬ ‫عليها‬ ) ‫النقطة‬ ‫وعند‬8// (.‫للبرنامج‬ ‫تحديثات‬ ‫إي‬ ‫وجود‬ ‫من‬ ‫للتحقق‬ ‫و‬ ,‫لديك‬ ‫الحالي‬ ‫الصدار‬ ) ‫النقطة‬ ‫وعند‬9// (.‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫على‬ ‫مؤخرا‬ ‫فتحها‬ ‫تم‬ ‫التي‬ ‫المشاريع‬ ‫ستوديو‬ ‫الندرويد‬ ‫نافذة‬ ‫سريع‬ ‫بشكل‬ ‫عليها‬ ‫نتعرف‬ ‫سوف‬ ,‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫على‬ ‫لمشروعك‬ ‫الرئيسية‬ ‫النافذة‬ ‫هذه‬ .‫سلسة‬ ‫بكل‬ ‫البرنامج‬ ‫استخدام‬ ‫تستطيع‬ ‫لكي‬ 21
  • 22.
    : ‫بشرحها‬ ‫أقوم‬‫سوف‬ ,‫السابقة‬ ‫الصورة‬ ‫في‬ ‫الموضحة‬ ‫الرقام‬ ‫حسب‬ 1) ‫الرئيسية‬ ‫القائمة‬ //Main menu: ( ,‫المشاريع‬ ‫وإنشاء‬ ‫وحفظ‬ ‫فتح‬ ‫منها‬ ,‫مختلفة‬ ‫أوامر‬ ‫عدة‬ ‫على‬ ‫وتحتوي‬ ,‫للبرنامج‬ ‫الرئيسية‬ ‫القائمة‬ . ‫لملف‬ ‫وتصديره‬ ,‫بنائه‬ ‫وإعادة‬ ‫المشروع‬ ‫وتنظيف‬ ,‫والعدادات‬apk‫وغيرها‬ ‫البرنامج‬ ‫وتحديث‬ ‫والدوات‬ ..‫الكثير‬ 2) ‫الدوات‬ ‫شريط‬ //Main toolbar: ( ,‫المشروع‬ ‫حفظ‬ ‫منها‬ .‫جدا‬ ‫مهمة‬ ‫وهي‬ ,‫استخداما‬ ‫الكثر‬ ‫الزرار‬ ‫على‬ ‫ويحتوي‬ ,‫الرئيسي‬ ‫الدوات‬ ‫شريط‬ ‫المشروع‬ ‫وتشغيل‬ ‫واللصق‬ ‫النسخ‬ ‫امر‬ ‫و‬ ,‫تلقائي‬ ‫بشكل‬ ‫الملفات‬ ‫يحفظ‬ ‫ستوديو‬ ‫الندرويد‬ ‫إن‬ ‫العلم‬ ‫مع‬ ‫الـ‬ ‫وفتح‬ ‫التطبيق‬ ‫وبناء‬SDK‫إلخ‬ 3) ‫التصفح‬ ‫شريط‬ //Navigation bar: ( .‫لتحريرها‬ ‫بينها‬ ‫والتنقل‬ ‫المشروع‬ ‫لملفات‬ ‫السريع‬ ‫للوصول‬ ‫التنقل‬ ‫أو‬ ‫التصفح‬ ‫شريط‬ 4) ‫الخيارات‬ ‫قائمة‬ //Context menus: ( ‫عليه‬ ‫ضغطت‬ ‫الذي‬ ‫الموقع‬ ‫حسب‬ ‫وتختلف‬ ‫للفأرة‬ ‫اليمن‬ ‫بالزر‬ ‫الضغط‬ ‫بعد‬ ‫تظهر‬ ‫قائمة‬ 5) ‫المنبثقة‬ ‫القائمة‬ //Pop-up menus: ( ‫زر‬ ‫على‬ ‫بالضغط‬ ‫إظهارها‬ ‫تستطيع‬ ‫قائمة‬Alt + Insert‫دوال‬ ‫او‬ ‫أكواد‬ ‫لضافة‬ ‫مثل‬ ‫تفيدك‬ ‫رائعة‬ ‫من‬ ‫أكثر‬ ‫في‬ ‫لديك‬ ‫الموجود‬ ‫حسب‬ ‫المفتوح‬ ‫الملف‬ ‫على‬ ‫حقوقك‬ ‫ادراج‬ ‫تستطيع‬ ‫كذلك‬ ,‫المفتوح‬ ‫الملف‬ ‫حسب‬ .‫البرنامج‬ ‫اعدادات‬ 6) ‫الحالة‬ ‫شريط‬ //Status bar: ( .‫الدوات‬ ‫شريط‬ ‫في‬ ‫موجود‬ ‫عليه‬ ‫تؤشر‬ ‫زر‬ ‫لي‬ ‫أكثر‬ ‫تفاصيل‬ ‫او‬ ,‫عملية‬ ‫تنفيذ‬ ‫مدة‬ ‫لك‬ ‫يظهر‬ ‫شريط‬ ‫جعله‬ ‫إي‬ ‫التعديل‬ ‫من‬ ‫الملف‬ ‫وتقفيل‬ ,‫الحالي‬ ‫الملف‬ ‫ترميز‬ ‫تغيير‬ ‫تستطيع‬ ,‫كذلك‬ ‫الحالة‬ ‫شريط‬ ‫في‬ ‫مثال‬ ‫رأسيتان‬ ‫نقطتان‬ ‫بينهم‬ ‫تفصل‬ ‫رقمين‬ ‫يوجد‬ ‫كم‬ ,‫مؤقت‬ ‫بشكل‬ ‫فقط‬ ‫للقراءة‬1:2‫للدللة‬ ‫واحد‬ ‫رقم‬ ‫والرقم‬ ,‫الول‬ ‫السطر‬ ‫في‬ ‫إنك‬ ‫على‬2.‫الول‬ ‫السطر‬ ‫من‬ ‫الثاني‬ ‫الحرف‬ ‫أو‬ ‫الخانة‬ ‫عند‬ ‫إنك‬ ‫على‬ ‫للدللة‬ 22
  • 23.
    ‫ستوديو‬ ‫الندرويد‬ ‫مع‬‫التعامل‬ ‫التي‬ ‫العمليات‬ ‫بعض‬ ‫علينا‬ ‫تسهل‬ ‫وإضافات‬ ‫وخصائص‬ ‫طرق‬ ‫نتناول‬ ‫سوف‬ ‫ال‬ ‫شاء‬ ‫إن‬ ‫الموضوع‬ ‫هذا‬ ‫في‬ .‫بها‬ ‫القيام‬ ‫نريد‬ : ‫ستوديو‬ ‫الندرويد‬ ‫ببرنامج‬ ‫الخاص‬ ‫الستايل‬ ‫أو‬ ‫الثيم‬ ‫تغيير‬ # ‫وهي‬ ‫ستوديو‬ ‫لندرويد‬ ‫أساسية‬ ‫ثيمات‬ ‫لديك‬ ‫يوجد‬IntelliJ‫و‬Darcula.‫يناسبك‬ ‫ما‬ ‫منها‬ ‫أستخدم‬ , ‫على‬ ‫بالضغط‬ ‫البرنامج‬ ‫إعدادات‬ ‫إلى‬ ‫توجه‬ ‫الثيم‬ ‫لتغيير‬Ctrl + Alt + S: ‫أو‬File => Settings : ‫على‬ ‫إضغط‬ ‫اليسرى‬ ‫الجهة‬ ‫من‬ ,‫العدادات‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬Appearance & Behavior‫ثم‬ Appearance‫ثم‬UI Options / Theme. ,‫المفاتيح‬ ‫اختصارات‬ ,‫الخط‬ ‫نوع‬ ,‫المحرر‬ ‫ألوان‬ ,‫الخط‬ ‫حجم‬ ,‫يدويا‬ ‫شيء‬ ‫كل‬ ‫تغيير‬ ‫تستطيع‬ : ‫ملحظة‬ .‫إلخ‬ ‫الدوات‬ ‫ترتيب‬ : ‫المساعد‬ # ‫القيام‬ ‫تريد‬ ‫أمر‬ ‫بإي‬ ‫مساعدتك‬ ‫المساعد‬ ‫بإمكان‬ .. !‫؟‬ ‫تجده‬ ‫إين‬ ‫تعلم‬ ‫ل‬ ‫ولكن‬ ,‫ما‬ ‫بأمرا‬ ‫بالقيام‬ ‫تفكر‬ ‫هل‬ ‫على‬ ‫بالضغط‬ ‫قم‬ ‫فقط‬ .‫خيار‬ ‫أو‬ ‫أمر‬ ‫كان‬ ‫سواء‬ ‫به‬Ctrl + Shift + A: ‫للتوضيح‬ ‫صورة‬ ‫وهذه‬ , 23
  • 24.
    : ‫ستوديو‬ ‫الندرويد‬‫داخل‬ ‫مفهومة‬ ‫الغير‬ ‫الحرف‬ ‫مشكلة‬ # ‫إنه‬ ‫المشروع‬ ‫ترميز‬ ‫من‬ ‫دائما‬ ‫تأكد‬ ‫لذلك‬ ,‫بالترميز‬ ‫تتعلق‬ ‫مفهومة‬ ‫الغير‬ ‫الحرف‬ ‫مشكلة‬UTF-8‫وكذلك‬ .‫الترميز‬ ‫نفس‬ ‫إنه‬ ‫الحالي‬ ‫الملف‬ ‫من‬ File → Settings → File Encoding: Project Encoding = UTF-8 IDE Encoding = UTF-8 ‫إنه‬ ‫تأكد‬ ‫الترميز‬ ‫يوجد‬ ,‫يسارا‬ ‫السفلى‬ ‫الزاوية‬ ‫من‬ ‫الحالي‬ ‫والملف‬UTF-8. : ‫مشروعك‬ ‫على‬ ‫التركيز‬ ‫وضعيات‬ # 1.full screen mode: ‫اختر‬ ‫القائمة‬ ‫من‬ ,‫البرنامج‬ ‫على‬ ‫أكثر‬ ‫للتركيز‬ ‫الشاشة‬ ‫مل‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫لجعل‬View‫ثم‬ Enter Full Screen‫اختر‬ ‫كذلك‬ ‫منه‬ ‫للخروج‬ ‫و‬Exit Full Screen. 24
  • 25.
    2.presentation mode: ‫برمجية‬ ‫سطور‬‫يكتب‬ ‫لمن‬ ‫مهمة‬ ‫وهي‬ ,‫فتحه‬ ‫تم‬ ‫الذي‬ ‫الكود‬ ‫على‬ ‫تماما‬ ‫فالتركيز‬ ‫الوضعية‬ ‫هذه‬ ‫إما‬ ‫اختر‬ ‫القائمة‬ ‫من‬ ‫الوضع‬ ‫هذا‬ ‫لتفعيل‬ ,‫واحد‬ ‫اكتفتي‬ ‫في‬ ‫كثيرة‬View‫ثم‬Enter Presentation Mode‫و‬ ‫اختر‬ ‫كذلك‬ ‫منه‬ ‫للخروج‬Exit Presentation Mode. ,‫حرية‬ ‫بكل‬ ‫الخرى‬ ‫البرامج‬ ‫واستخدام‬ ‫الكود‬ ‫على‬ ‫التركيز‬ ‫يريد‬ ‫لمن‬ ‫جدا‬ ‫مناسبة‬ ‫فهي‬ ‫الوضعية‬ ‫هذه‬ ‫اما‬ ‫اختر‬ ‫القائمة‬ ‫من‬ ‫الوضع‬ ‫هذا‬ ‫لتفعيل‬ ,‫التنقل‬ ‫سهولة‬ ‫اي‬View‫ثم‬Enter Distraction-Free Mode‫و‬ ‫اختر‬ ‫كذلك‬ ‫منه‬ ‫للخروج‬Exit Distraction-Free Mode. 25
  • 26.
    : ‫للمكاتب‬ ‫تلقائي‬‫استيراد‬ # ‫قمت‬ ‫وقد‬ ‫ستوديو‬ ‫الندرويد‬ ‫على‬ ‫او‬ ,‫الكليبس‬ ‫برنامج‬ ‫على‬ ‫السابقين‬ ‫المبرمجين‬ ‫من‬ ‫كنت‬ ‫إذا‬ ‫الكلمات‬ ‫من‬ ‫الكثير‬ ‫تجد‬ ‫سوف‬ ‫البرنامج‬ ‫الى‬ ‫مثل‬ ‫موقع‬ ‫من‬ ‫أكواد‬ ‫نسخ‬ ‫بعملية‬ ‫قمت‬ ‫ما‬ ‫ويوما‬ ‫بمشاريع‬ ‫له‬ ‫وتعمل‬ ‫منها‬ ‫واحد‬ ‫على‬ ‫للضغط‬ ‫وتحتاج‬ ,‫لدعمها‬ ‫مكاتب‬ ‫إلى‬ ‫تحتاج‬ ‫إنها‬ ‫ويعني‬ ,‫أخطاء‬ ‫إي‬ ‫أحمر‬ ‫لونها‬ ‫له‬ ‫العناصر‬ ‫بعض‬ ‫حال‬ ‫في‬ ‫إل‬ ‫تلقائيا‬ ‫الستيراد‬ ‫يتم‬ ‫فسوف‬ ‫الطريقة‬ ‫بهذه‬ ‫إما‬ ,‫الكتفتي‬ ‫داخل‬ ‫استيراد‬ ‫عموما‬ .‫للخرة‬ ‫احداها‬ ‫من‬ ‫بالتأكد‬ ‫فرق‬ ‫فيوجد‬ ‫تفضل‬ ‫ما‬ ‫لتختار‬ ‫لك‬ ‫الستيراد‬ ‫تجعل‬ ‫لذلك‬ ‫مكتبة‬ ‫من‬ ‫اكثر‬ ‫اختر‬ ‫العلى‬ ‫في‬ ‫الخيارات‬ ‫في‬ ,‫التلقائي‬ ‫التفعيل‬ ‫بميزة‬ ‫لتقوم‬File‫ثم‬Settings‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ . ‫اختر‬ ‫اليسر‬ ‫الجانب‬ ‫من‬ .‫بالبرنامج‬ ‫الخاصة‬ ‫العدادت‬ ‫فيها‬ ‫صغيرة‬Editor‫ثم‬General‫ثم‬Auto Import. : ‫الصورة‬ ‫في‬ ‫للتوضيح‬ .‫الصح‬ ‫بعلمة‬ ‫امامك‬ ‫الخيارات‬ ‫جميع‬ ‫بتفعيل‬ ‫وقم‬ 26
  • 27.
    : ‫البرمجي‬ ‫الكود‬‫ترتيب‬ # ‫المر‬ ‫هذا‬ ‫يتولى‬ ‫البرنامج‬ ‫لذلك‬ .. ‫لترتيبها‬ ‫تهتم‬ ‫ول‬ .. ‫بسرعة‬ ‫الكواد‬ ‫بكتابة‬ ‫تقوم‬ ‫أحيانا‬ .. ‫الفرق‬ ‫لحظ‬ ‫على‬ ‫بالضغط‬ ‫فقط‬ ‫عنك‬Ctrl + Alt + L. ‫من‬ ‫ونادرا‬ ‫عميق‬ ‫جدا‬ ‫ووجدته‬ ‫شروحاته‬ ‫في‬ ‫القليل‬ ‫دخلت‬ ,‫واسع‬ ‫بحر‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ++ ‫الهامة‬ ‫المعلومات‬ ‫نذكر‬ ‫وسوف‬ ,‫عليه‬ ‫البرمجة‬ ‫خلل‬ ‫من‬ ‫تتعلمها‬ ‫لذلك‬ ‫ومميزاته‬ ‫اضافاته‬ ‫جميع‬ ‫يحصى‬ .‫التطبيقات‬ ‫ببرمجة‬ ‫البدأ‬ ‫خلل‬ ‫من‬ 27
  • 28.
    ‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬‫البدأ‬ ‫قبل‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫أمور‬ ‫الجافا‬ ‫بلغة‬ ‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫نقوم‬ ‫سوف‬ #Java. . ‫ملفات‬ ‫في‬ ‫تكتب‬ ‫الجافا‬ ‫بلغة‬ ‫البرمجية‬ ‫الكواد‬ #java‫أنواع‬ ‫منها‬ ‫الكلسات‬ ,‫كلس‬ ‫عليها‬ ‫ونطلق‬ ‫سوف‬ ‫إذا‬ .‫معها‬ ‫ويتفاعل‬ ‫المستخدم‬ ‫يراها‬ ‫واجهة‬ ‫او‬ ‫بشاشة‬ ‫يرتبط‬ ‫الذي‬ ‫الكتفتي‬ ‫ومنها‬ ,‫مختلفة‬ – ‫اسم‬ ‫باللياوت‬ ‫ومرتبط‬ ‫الجافا‬ ‫اكواد‬ ‫بداخله‬ ‫البرمجي‬ ‫الملف‬ ‫على‬ ‫نطلق‬Activity.- ‫اللياوت‬ #Layout‫بلغة‬ ‫ومبنية‬ ,‫للمستخدم‬ ‫تظهر‬ ‫التي‬ ‫الواجهة‬ ‫هي‬xml‫نستخدم‬ ‫سوف‬ ‫إذا‬xml ‫الجافا‬ ‫و‬ ‫والتنسيق‬ ‫للتصميم‬java.‫الوامر‬ ‫اعطاء‬ ‫إي‬ ‫للبرمجة‬ .‫إلخ‬ ‫والحجم‬ ‫والعرض‬ ‫الطول‬ ‫منها‬ ‫خصائص‬ ‫له‬ ,‫إلخ‬ ‫النص‬ ‫او‬ ‫الصورة‬ ‫او‬ ‫الزر‬ ‫مثل‬ ‫كائن‬ ‫أو‬ ‫عنصر‬ ‫كل‬ # ‫خاصية‬ ‫داخله‬ ‫نضع‬ ‫إن‬ ‫يجب‬ ‫أوامر‬ ‫واعطائه‬ ‫برمجيا‬ ‫استخدامه‬ ‫نريد‬ ‫عنصر‬ ‫كل‬ #id‫بملف‬ ‫بربطه‬ ‫لنقوم‬ .‫المعرف‬ ‫هذا‬ ‫خلل‬ ‫من‬ ‫الجافا‬ ‫معرف‬ ‫تضع‬ ‫ل‬ #id.‫عنصر‬ ‫من‬ ‫لكثر‬ ‫السم‬ ‫نفس‬ ‫متكرر‬ .‫بها‬ ‫مرتبط‬ ‫اكتفتي‬ ‫لها‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫للمستخدم‬ ‫اظهارها‬ ‫تريد‬ ‫واجهة‬ ‫او‬ ‫لياوت‬ ‫كل‬ # ‫اسمه‬ ‫ملف‬ ‫في‬ ‫إضافته‬ ‫يجب‬ ‫مشروعك‬ ‫في‬ ‫اكتفتي‬ ‫كل‬ #AndroidManifest.xml‫شرح‬ ‫يتم‬ ‫سوف‬ .‫منفصل‬ ‫درس‬ ‫في‬ ‫الكتفتي‬ ‫فيه‬ ‫نضع‬ ‫ولماذا‬ ‫الملف‬ ‫الحرف‬ ‫غير‬ ‫استخدام‬ ‫تجنب‬ ,‫إلخ‬ ‫اللياوت‬ ‫او‬ ‫الكتفتي‬ ‫او‬ ‫الملفات‬ ‫او‬ ‫للعناصر‬ ‫تضعها‬ ‫التي‬ ‫السماء‬ # .‫الفراغات‬ ‫تستخدم‬ ‫ول‬ ,‫بالرقام‬ ‫السماء‬ ‫تبدأ‬ ‫ل‬ ‫كذلك‬ ,‫النجليزية‬ ‫تحاول‬ ‫الذي‬ ‫للكود‬ ‫إكمال‬ ‫خيارات‬ ‫لك‬ ‫ليظهر‬ ‫التلقائي‬ ‫الكمال‬ ‫استخدام‬ ‫الكواد‬ ‫كتابة‬ ‫إثناء‬ ‫تستطيع‬ # ‫استخدم‬ , ‫واحدة‬ ‫كلمة‬ ‫كان‬ ‫ولو‬ ‫كتابته‬Ctrl + Space. ‫فلغة‬ ,‫العناصر‬ ‫في‬ ‫والبن‬ ‫الب‬ ‫قولنا‬ ‫من‬ ‫تستغرب‬ ‫ل‬ #xml‫وتستخدم‬ ,‫وأبناء‬ ‫آباء‬ ‫الشجري‬ ‫النظام‬ ‫تتبع‬ ‫مصطلح‬ ‫هنا‬Parent.‫المقصود‬ ‫العنصر‬ ‫يحتويه‬ ‫الذي‬ ‫الكبر‬ ‫العنصر‬ ‫أو‬ ‫الب‬ ‫إلى‬ ‫للشارة‬ .‫المزايا‬ ‫بعض‬ ‫في‬ ‫منها‬ ‫لتستفيد‬ ‫لمشروعك‬ ‫تضيفها‬ ‫التي‬ ‫الجاهزة‬ ‫المكاتب‬ ‫من‬ ‫الكثير‬ ‫يوجد‬ # ‫تقدم‬ ‫مواقع‬ ‫او‬ ‫شركات‬ ‫يوجد‬ #API‫أو‬SDK.‫تطبيقاتك‬ ‫في‬ ‫الموقع‬ ‫خدمات‬ ‫من‬ ‫لتستفيد‬ 28
  • 29.
    ‫للندرويد‬ ‫الول‬ ‫مشروعك‬‫إنشاء‬ .‫الندرويد‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫للبدأ‬ ,‫فارغ‬ ‫جديد‬ ‫مشروع‬ ‫بإنشاء‬ ‫نقوم‬ ‫كيف‬ ‫نتعلم‬ ‫سوف‬ ‫الموضوع‬ ‫هذا‬ ‫في‬ ‫الول‬ ‫الخيار‬ ‫اختر‬ ,‫الترحيبية‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ,‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫تشغيل‬ ‫وبعد‬ ‫البداية‬ ‫في‬ ‫وهو‬Start a new Android Studio project.‫المشروع‬ ‫لعدادات‬ ‫أخرى‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ . 29
  • 30.
    : ‫السابقة‬ ‫الصورة‬‫حسب‬ 1.‫التطبيق‬ ‫عنوان‬ / 2‫الموقع‬ ‫اسم‬ ‫لن‬ .‫آخر‬ ‫بموقع‬ ‫تشابه‬ ‫عدم‬ ‫لضمان‬ ‫موقعك‬ ‫عنوان‬ ‫وضع‬ ‫والمعروف‬ ,‫بك‬ ‫خاص‬ ‫اسم‬ / .- ‫الباكيج‬ – ‫الحزمة‬ ‫بإسم‬ ‫بالتأثير‬ ‫تقوم‬ ‫التطبيق‬ ‫واسم‬ 3,‫آخر‬ ‫تطبيق‬ ‫إي‬ ‫مع‬ ‫يتشابه‬ ‫ل‬ ‫أن‬ ‫يجب‬ ‫المعرف‬ ‫هذا‬ ,‫ذكرت‬ ‫كما‬ ‫الحزمة‬ ‫اسم‬ ‫وهو‬ ‫التطبيق‬ ‫معرف‬ / ‫على‬ ‫بوك‬ ‫الفيس‬ ‫تطبيق‬ ‫مثل‬ .‫المتجر‬ ‫على‬ ‫التطبيق‬ ‫رابط‬ ‫او‬ ‫عنوان‬ ‫على‬ ‫نتعرف‬ ‫المعرف‬ ‫هذا‬ ‫ومن‬ : ‫المتجر‬https://play.google.com/store/apps/details?id=com.facebook.katana : ‫هو‬ ‫بوك‬ ‫الفيس‬ ‫بتطبيق‬ ‫الخاص‬ ‫المعرف‬ ‫إذا‬com.facebook.katana. 4.........… ‫التالي‬ ‫نتابع‬ .‫جهازك‬ ‫على‬ ‫المشروع‬ ‫حفظ‬ ‫مسار‬ / 30
  • 31.
    ‫والساعة‬ ,‫والتابلت‬ ‫الجوال‬‫لجهزة‬ ,‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫التي‬ ‫الجهزة‬ ‫نوعية‬ ‫لختيار‬ ,‫السابقة‬ ‫الصورة‬ ‫والتابلت‬ ‫الجوال‬ ‫لجهزة‬ ‫فقط‬ ‫يهمنا‬ ‫ما‬ .‫الذكية‬ ‫النظارات‬ ‫و‬ ‫للسيارات‬ ‫ايتو‬ ‫نظام‬ ‫و‬ ‫التلفاز‬ ‫وشاشة‬ ‫الذكية‬ .‫الكتاب‬ ‫في‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬ ‫ما‬ ‫وهذا‬ ‫يخص‬ ‫بما‬ ‫أما‬Minimum SDK‫هذا‬ ‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫للندرويد‬ ‫إصدار‬ ‫أقل‬ ‫سابقا‬ ‫شرحنا‬ ‫كما‬ ‫فهو‬ ‫على‬ ‫الضغط‬ ‫بـ‬ ‫الستعانة‬ ‫وتستطيع‬ .‫بإنشائه‬ ‫تقوم‬ ‫الذي‬Help me choose‫بها‬ ‫يوجد‬ ‫نافذة‬ ‫لتظهر‬ ‫في‬ ‫الجهزة‬ ‫من‬ ‫الكمية‬ ‫كم‬ ‫معرفة‬ ‫تستطيع‬ ‫وهكذا‬ ‫نظام‬ ‫لكل‬ ‫الجهزة‬ ‫عدد‬ ‫وكم‬ ‫الندرويد‬ ‫نظام‬ ‫اصدارات‬ ‫موضح‬ ‫فالصورة‬ ,‫تطبيقك‬ ‫استخدام‬ ‫تستطيع‬ ‫التي‬ ‫العالم‬API 15‫نظام‬ ‫اي‬4.0.3‫يستطيعوا‬ ‫فقط‬ ‫وأعلى‬ ‫تقريبا‬ ‫والنسبة‬ ,‫تطبيقي‬ ‫استخدام‬94.‫ممتاز‬ ‫وهذا‬ ‫تطبيقي‬ ‫عليها‬ ‫يعمل‬ ‫سوف‬ ‫الندرويد‬ ‫أجهزة‬ ‫من‬ % .. ‫التالي‬ ‫نتابع‬ .‫التكنولوجيا‬ ‫تطور‬ ‫مع‬ ‫انقراض‬ ‫في‬ ‫كلها‬ ‫السابقة‬ ‫فالصدارات‬ 31
  • 32.
    ‫سوف‬ ‫ما‬ ‫ولكن‬.. ‫عليها‬ ‫بالبرمجة‬ ‫للبدأ‬ ‫الجاهزة‬ ‫النماذج‬ ‫من‬ ‫بعض‬ ‫لنا‬ ‫يظهر‬ ‫فهنا‬ ‫السابقة‬ ‫الصورة‬ ‫حسب‬ ‫هو‬ ‫نختاره‬Empty Activity… ‫التالي‬ ‫نتابع‬ . 1/‫الذي‬ ‫السم‬ ‫ضع‬ .‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫معك‬ ‫تعمل‬ ‫سوف‬ ‫التي‬ ‫بالكتفتي‬ ‫الخاص‬ ‫العنوان‬ .– ‫كبتل‬ – ‫كبير‬ ‫حرف‬ ‫أول‬ ‫وضع‬ ‫مع‬ ‫تريد‬ 2/‫سمول‬ – ‫صغير‬ ‫حرف‬ ‫اول‬ ‫ولكن‬ ‫الكتفتي‬ ‫اسم‬ ‫نفس‬ ‫تكون‬ ‫أن‬ ‫عليه‬ ‫المتعارف‬ ‫ومن‬ ‫اللياوت‬ ‫عنوان‬ .‫الكتفتي‬ ‫بهذا‬ ‫المرتبطة‬ ‫اللياوت‬ ‫وهي‬ – ‫انتهاء‬ ‫إضغط‬ ‫و‬ ‫هي‬ ‫كما‬ ‫اتركها‬ ‫حاليا‬Finish.‫عليه‬ ‫البرمجة‬ ‫لتبدأ‬ ‫مشروعك‬ ‫بتجهيز‬ ‫البرنامج‬ ‫لبدأ‬ 32
  • 33.
    : ‫فارغ‬ ‫اندرويد‬‫تطبيق‬ ‫مشروع‬ ‫أول‬ ‫إنشاء‬ ‫بعد‬ ‫النتيجة‬ ‫اندرويد‬ ‫تطبيق‬ ‫مشروع‬ ‫إنشاء‬ ‫بداية‬ ‫لك‬ ‫تظهر‬ ‫التي‬ ‫الفتراضية‬ ‫الكواد‬ ‫شرح‬ ‫يتم‬ ‫التي‬ ‫الكتفتي‬ ‫وهي‬ ‫لنا‬ ‫مفتوحة‬ ‫جاهزة‬ ‫ملفات‬ ‫لدينا‬ ‫إنه‬ ‫نلحظ‬ ,‫لنا‬ ‫أندرويد‬ ‫تطبيق‬ ‫أول‬ ‫إنشاء‬ ‫بعد‬ ‫تظهر‬ ‫سوف‬ ‫التي‬ ‫الواجهة‬ ‫أو‬ ‫باللياوت‬ ‫مرتبطة‬ ‫كذلك‬ ‫هي‬ ‫والتي‬ ‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تشغيلها‬ .‫للمستخدم‬ ‫نجد‬ ‫سوف‬MainActivity.‫الكتفتي‬ / .‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تنفيذها‬ ‫يتم‬ ,‫الجافا‬ ‫بلغة‬ ‫أكواد‬ ‫على‬ ‫يحتوي‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬ ‫ملف‬ ‫للعناصر‬ ‫الدعم‬ ‫مكاتب‬ ‫ثم‬ ‫ومن‬ ,‫للتطبيق‬ ‫حددناه‬ ‫كما‬ ‫الباكيج‬ ‫اسم‬ ‫له‬ ‫الول‬ ‫السطر‬ ‫يأتي‬ ‫والكود‬ 33
  • 34.
    .‫الدوال‬ ‫وداخله‬ ‫الكلس‬‫ثم‬ ‫ومن‬ ,‫الكتفتي‬ ‫هذه‬ ‫في‬ ‫المستخدمة‬ : ‫الرئيسية‬ ‫للكتقتي‬ ‫الفتراضي‬ ‫الكود‬ // ‫دي‬ ‫الي‬ ‫او‬ ‫المعرف‬ ‫إي‬ ‫للتطبيق‬ ‫الباكيج‬ ‫اسم‬ package com.andrody.myapplication; // ‫عددها‬ ‫إزداد‬ ‫عناصر‬ ‫أضفنا‬ ‫وكلما‬ ‫الدعم‬ ‫لمكاتب‬ ‫استيراد‬ import android.support.v7.app.AppCompatActivity; import android.os.Bundle; // ‫الس‬ ‫للصدارات‬ ‫الماتريال‬ ‫تصميم‬ ‫يدعم‬ ‫لكي‬ ‫اكتفتي‬ ‫كومبات‬ ‫اب‬ ‫من‬ ‫مشتق‬ ‫ثم‬ ‫من‬ ‫واسمه‬ ‫الكلس‬‫يستخدم‬ ‫الغالب‬ ‫وفي‬ ‫ابقة‬ ‫اكتفتي‬ ‫من‬ ‫مشتق‬ public class MainActivity extends AppCompatActivity { // ‫ال‬ ‫دالة‬‫الكتفتي‬ ‫هذه‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫الدالة‬ ‫وهي‬ ‫كريت‬ ‫ون‬ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ‫ال‬ ‫بهذا‬ ‫ربطها‬ ‫يتم‬ ‫التي‬ ‫اللياوت‬‫كتفتي‬ setContentView(R.layout.activity_main); } // ‫ال‬ ‫دالة‬ ‫في‬ ‫استدعائها‬ ‫يتم‬ ‫حتى‬ ‫تنفيذها‬ ‫يتم‬ ‫ل‬ ‫والتي‬ ‫الكلس‬ ‫هذا‬ ‫داخل‬ ‫أخرى‬ ‫دوال‬ ‫استخدام‬ ‫نستطيع‬ ‫هنا‬‫كريت‬ ‫ون‬ } ‫كذلك‬ ‫و‬activity_main.xml.‫اللياوت‬ / ‫الواجهة‬ ‫هو‬ ‫اللياوت‬ ‫وهذا‬ ,‫للواجهة‬ ‫التنسيق‬ ‫او‬ ‫التصميم‬ ‫ملف‬ ‫هو‬ ‫اخرى‬ ‫مرة‬ ‫نذكر‬ ‫وسوف‬ ‫ذكرنا‬ ‫اللياوت‬ ‫هذه‬ ‫ان‬ ‫يعني‬ ‫اي‬ ‫الرئيسية‬ ‫الجافا‬ ‫ملف‬ ‫الكتفتي‬ ‫قبل‬ ‫من‬ ‫استدعائها‬ ‫يتم‬ ‫سوف‬ ‫التي‬ ‫الرئيسية‬ .‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫للمستخدم‬ ‫تظهر‬ ‫سوف‬ ‫التي‬ ‫هي‬ ‫الواجهة‬ : ‫اللياوت‬ ‫الواجهة‬ ‫داخل‬ ‫الموجود‬ ‫الكود‬ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout> ‫لغة‬XML‫عناصر‬ ‫داخلها‬ ‫او‬ ‫اسفلها‬ ‫تحتوي‬ ‫عناصر‬ ‫بمعنى‬ ‫إي‬ ,‫التنسيق‬ ‫في‬ ‫الشجري‬ ‫النمط‬ ‫تستخدم‬ 34
  • 35.
    ‫وهي‬ ‫للب‬ ‫النهاية‬‫ووسم‬ ‫البداية‬ ‫وسم‬ ‫لحظ‬ ‫الكود‬ ‫في‬ ‫لنا‬ ‫ظاهر‬ ‫هو‬ ‫وكما‬ .. ‫وابناء‬ ‫اب‬ ‫بمعنى‬ ,‫اخرى‬ ‫نوع‬ ‫من‬ ‫الرئيسية‬ ‫اللياوت‬RelativeLayout‫العناصر‬ ‫وضع‬ ‫تستطيع‬ ‫اي‬ ‫النوع‬ ‫وهذا‬ ‫اخرى‬ ‫انواع‬ ‫ويوجد‬ ‫نوع‬ ‫من‬ ‫عنصر‬ ‫وبداخله‬ .‫الشاشة‬ ‫على‬ ‫مكان‬ ‫إي‬ ‫في‬ ‫حر‬ ‫بشكل‬ ‫داخلها‬TextView‫ومكتوب‬ ‫نص‬ ‫إي‬ ‫عبارة‬ ‫داخله‬Hello World‫بالنسبة‬ ‫وأما‬ ,‫مشروع‬ ‫اول‬ ‫لنشاء‬ ‫السابقة‬ ‫النتيجة‬ ‫صورة‬ ‫في‬ ‫شاهدنا‬ ‫كما‬ .‫مستقل‬ ‫بشكل‬ ‫شرحها‬ ‫يتم‬ ‫سوف‬ ‫العناصر‬ ‫لكل‬ ‫الخرى‬ ‫للخصائص‬ ‫لك‬ ‫لتوضح‬ ‫فقط‬ ‫صغيرة‬ ‫مشاريع‬ ‫بإنشاء‬ ‫نقوم‬ ‫ثم‬ ‫من‬ ,‫الخرى‬ ‫الساسيات‬ ‫بعض‬ ‫نتعلم‬ ‫سوف‬ ‫الن‬ ‫أما‬ .. ‫المسير‬ ‫تكمل‬ ‫وأنت‬ ‫المجال‬ ‫بهذا‬ ‫المبدأ‬ ‫ستوديو‬ ‫للندرويد‬ ‫الكليبس‬ ‫مشاريع‬ ‫استيراد‬ ‫على‬ ‫بنائها‬ ‫تم‬ ‫أغلبها‬ ‫النترنت‬ ‫على‬ ‫الجاهزة‬ ‫فالمشاريع‬ ,‫الجاهزة‬ ‫المشاريع‬ ‫بتحميل‬ ‫يقوم‬ ‫منا‬ ‫الكثير‬ ‫جدا‬ ‫إنها‬ ‫العلم‬ ‫مع‬ ‫الكليبس‬ ‫مشاريع‬ ‫استيراد‬ ‫كيفية‬ ‫تعرف‬ ‫جدا‬ ‫المهم‬ ‫من‬ ‫لذلك‬ ,‫الكليبس‬ ‫برنامج‬ .. ‫الكيفية‬ ‫عن‬ ‫يتساؤل‬ ‫الكثير‬ ‫ولكن‬ ‫سهلة‬ ‫اختر‬ ‫الترحيبية‬ ‫النافذة‬ ‫في‬ ‫ستوديو‬ ‫الندرويد‬ ‫لبرنامج‬ ‫تشغيلك‬ ‫عند‬ ‫البداية‬ ‫في‬Import project (Eclipse ADT, Gradle, etc: ‫الصورة‬ ‫في‬ ‫كما‬ (. ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬ ‫بتحديد‬ ‫تقوم‬ ,‫المشروع‬ ‫مجلد‬ ‫لختيار‬ ‫صغيرة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ‫المجلدات‬res + src. ‫وغيرها‬ 35
  • 36.
    ‫يضع‬ ‫سوف‬ ‫الذي‬‫الجديد‬ ‫المسار‬ ‫لتحديد‬ ‫خيار‬ ‫لك‬ ‫يظهر‬ ‫سوف‬ ‫ثم‬ ‫ومن‬ ‫أوك‬ ‫اضغط‬ ,‫المشروع‬ ‫اختيار‬ ‫بعد‬ .‫الجديدة‬ ‫بملفاته‬ ‫المشروع‬ ‫فيه‬ .‫معه‬ ‫يتناسب‬ ‫الذي‬ ‫الجديد‬ ‫للشكل‬ ‫الملفات‬ ‫بتحويل‬ ‫تلقائيا‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫يقوم‬ ‫سوف‬ : ‫هذه‬ ‫مثل‬ ‫خطأ‬ ‫رسالة‬ ‫لك‬ ‫تظهر‬ ‫الغالب‬ ‫في‬ ,‫المعالجة‬ ‫انتهاء‬ ‫بعد‬ ‫هو‬ ‫فيه‬ ‫إصدار‬ ‫أعلى‬ ‫المشروع‬ ‫إن‬ ‫معناه‬ ‫وهذا‬API 19‫تستخدم‬ ‫أصبحت‬ ‫متقدم‬ ‫عصر‬ ‫في‬ ‫الن‬ ‫وأنت‬ API 23.‫أصدار‬ ‫أعلى‬ ‫مع‬ ‫يتوافق‬ ‫وتجعله‬ ‫للمشروع‬ ‫تذهب‬ ‫فقط‬ ‫المشكلة‬ ‫لحل‬ ,‫أعلى‬ ‫أو‬ " ‫الملف‬ ‫تفتح‬build.gradle‫مجلد‬ ‫بداخل‬ ‫الذي‬ ”app‫بالشكل‬ ‫تجده‬ ‫سوف‬ ,‫المطلوب‬ ‫بتعديل‬ ‫وتقوم‬ , : ‫التالي‬ ‫بتعديل‬ ‫قم‬19‫بداخل‬ ‫والعلى‬ ‫لديك‬ ‫تستخدمه‬ ‫الذي‬ ‫الصدار‬ ‫إلى‬SDK‫هو‬ ‫الموجود‬ ‫وحسب‬ ,23. ‫الصفر‬ ‫الشريط‬ ‫في‬ ‫أو‬ ‫مزامنة‬ ‫زر‬ ‫على‬ ‫أضغط‬ ‫التعديل‬ ‫من‬ ‫النتهاء‬ ‫بعد‬Try Again 36
  • 37.
    .‫النص‬ ‫وألوان‬ ‫الملفات‬‫ترتيب‬ ‫أصبح‬ ‫كيف‬ ‫لحظ‬ : ‫الشكل‬ ‫بهذا‬ ‫الملف‬ ‫ليصبح‬ ‫ما‬ ‫لذلك‬ ,‫مختلفة‬ ‫دعم‬ ‫مكاتب‬ ‫تستخدم‬ ‫المشاريع‬ ‫بعض‬ ‫ولكن‬ ,‫الستيراد‬ ‫عملية‬ ‫من‬ ‫أنتهينا‬ ‫هكذا‬ ‫نكون‬ ‫فقط‬ ‫واحد‬ ‫سطر‬ ‫بإضافة‬ ‫جديد‬ ‫من‬ ‫إضافتها‬ ‫مشكلة‬ ‫ل‬ ‫جوجل‬ ‫مكاتب‬ ‫كانت‬ ‫إذا‬ ,‫به‬ ‫القيام‬ ‫عليك‬ ‫يجب‬ ‫تستطيع‬ ‫لذلك‬ ,‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫خطأ‬ ‫ويعطي‬ ‫استيرادها‬ ‫يتم‬ ‫ل‬ ‫مكاتب‬ ‫يوجد‬ ‫ولكن‬ ,‫الملف‬ ‫بهذا‬ ‫الندرويد‬ ‫على‬ ‫استيراد‬ ‫تعمل‬ ‫ثم‬ ‫من‬ ,‫مؤقت‬ ‫بشكل‬ ‫المكاتب‬ ‫وإلغاء‬ ‫اكليبس‬ ‫على‬ ‫المشروع‬ ‫فتح‬ .‫تحتاجها‬ ‫كنت‬ ‫إن‬ ‫للمشروع‬ ‫المكاتب‬ ‫إرجاع‬ ‫ستوديو‬ ‫المشروع‬ ‫وملفات‬ ‫مجلدات‬ ‫على‬ ‫الول‬ ‫المشروع‬ ‫إنشاء‬ ‫بعد‬ ‫لحظتم‬ ‫لو‬ ‫والمجلدات‬ ‫الملفات‬ ‫لنا‬ ‫ظهرت‬ ‫ستوديو‬ ‫الندرويد‬ .‫الصورة‬ ‫في‬ ‫كما‬ << ‫لمشروعنا‬ ‫التالية‬ 37
  • 38.
    ‫مجلد‬ ‫لـ‬ ‫بالنسبة‬Values‫ملف‬+AndroidManifest.xml.‫مستقل‬ ‫بشكل‬ ‫منها‬ ‫كل‬ ‫شرح‬ ‫يتم‬ ‫سوف‬ ‫مجلد‬java/ ‫يتم‬ ‫سوف‬ ‫ولكن‬ ,‫مشروعك‬ ‫داخل‬ ‫حزمة‬ ‫من‬ ‫أكثر‬ ‫إضافة‬ ‫تستطيع‬ ,‫الباكيج‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬ .‫مشروعك‬ ‫في‬ ‫أستخدامها‬ ‫تحتاج‬ ‫ممكن‬ ‫والخرى‬ ‫الرئيسية‬ ‫منها‬ ‫واحدة‬ ‫تشغيل‬ ‫كلس‬ ‫مثل‬ ,‫راحتك‬ ‫على‬ ‫كلسات‬ ‫كتابة‬ ‫تستطيع‬ ,‫منوعة‬ ‫كلسات‬ ,‫الجافا‬ ‫ملفات‬ ‫على‬ ‫يحتوي‬ ‫الباكيج‬ .‫وهكذا‬ ,‫المشروع‬ ‫كامل‬ ‫في‬ ‫لتستخدمها‬ ‫فقط‬ ‫نصوص‬ ‫على‬ ‫يحتوي‬ ‫منها‬ ‫نتصل‬ ‫سوف‬ ‫التي‬ ‫هي‬ ‫الجافا‬ ‫بلغة‬ ‫الكتفتي‬ ‫وهذه‬ ,‫الباكيج‬ ‫داخل‬ ‫الكتفتي‬ ‫إنه‬ ‫لدينا‬ ‫والمهم‬ .‫إلخ‬ ‫والعناصر‬ ‫وللدوات‬ ‫للتطبيق‬ ‫البرمجية‬ ‫الوامر‬ ‫بإعطاء‬ ‫لنبدأ‬ ‫بالواجهات‬ ‫او‬ ‫باللياوت‬ ‫مجلد‬res/ ‫بمعنى‬resources‫المستخدم‬ ‫يراه‬ ‫ما‬ ‫كل‬ ‫آخر‬ ‫بمعنى‬ ,‫تطبيق‬ ‫في‬ ‫تستخدمها‬ ‫التي‬ ‫المصادر‬ ‫او‬ ‫الموارد‬ ‫في‬ ‫المستخدمة‬ ‫الصور‬ ,‫التطبيق‬ ‫ايقونة‬ ,‫الخيارات‬ ‫قائمة‬ ,‫الواجهات‬ ,‫التطبيق‬ ‫تصفح‬ ‫أثناء‬ ‫أمامه‬ ‫إلخ‬ ‫الستايل‬ ‫أو‬ ‫الثيم‬ ,‫النصوص‬ ,‫اللوان‬ ,‫التأثيرات‬ ‫او‬ ‫الحركات‬ ,‫الصوتيات‬ ,‫التطبيق‬ : ‫التالي‬ ‫بالشكل‬ ,‫الموارد‬ ‫هذه‬ ‫لتوزيع‬ ‫مجلدات‬ ‫عدة‬ ‫على‬ ‫يحتوي‬ ‫وهو‬ –drawable/‫ملفات‬ + ‫التطبيق‬ ‫في‬ ‫استخدامها‬ ‫تريد‬ ‫التي‬ ‫الصور‬ ‫فيه‬ ‫تضع‬ ‫الذي‬ ‫المجلد‬xml ‫صورة‬ ‫تكرار‬ ‫أو‬ ,‫اللوان‬ ‫متعددة‬ ‫للتطبيق‬ ‫خلفية‬ ‫أو‬ ,‫عليه‬ ‫الضغط‬ ‫بعد‬ ‫الزر‬ ‫تأثير‬ ‫مثل‬ ,‫للتنسيق‬ .‫إلخ‬ ‫للخلفية‬ ‫باترن‬ –layout/‫وهو‬ ‫للمستخدم‬ ‫تظهر‬ ‫التي‬ ‫الواجهات‬ ‫أو‬ ‫اللياوت‬ ‫ملفات‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬ .‫باللياوت‬ ‫له‬ ‫شرحنا‬ ‫في‬ ‫كثيرا‬ ‫نكرر‬ ‫وسوف‬ .‫تستخدمها‬ ‫سوف‬ ‫التي‬ ‫المجلدات‬ ‫أكثر‬ ‫من‬ –mipmap/‫لوضع‬ ‫استخدامه‬ ‫تستطيع‬ ‫كما‬ ,‫المجلد‬ ‫هذا‬ ‫في‬ ‫التطبيق‬ ‫أيقونة‬ ‫وضع‬ ‫تلقائيا‬ ‫يتم‬ .‫إلخ‬ ‫البحث‬ ‫زر‬ ‫الخيارات‬ ‫قائمة‬ ‫زر‬ ‫مثل‬ ‫تستخدمها‬ ‫التي‬ ‫اليقونات‬ –values/.‫مستقل‬ ‫بشكل‬ ‫شرحه‬ ‫يتم‬ ‫سوف‬ 38
  • 39.
    ‫لك‬ ‫اختياري‬: ‫الشكل‬‫بهذا‬ ‫أخرى‬ ‫مجلدات‬ ‫إنشاء‬ , .‫مختصر‬ ‫وبشرح‬ ,‫فقط‬ ‫منها‬ ‫المهم‬ ‫على‬ ‫أركز‬ ‫سوف‬ ‫مجلد‬ ‫في‬ ‫إنشائها‬ ‫تستطيع‬ ‫التي‬ ‫المجلدات‬ ‫من‬res: ‫مثال‬ raw:.‫الميديا‬ ‫ملفات‬ ‫داخله‬ ‫لوضع‬ menu:.‫الخيارات‬ ‫قائمة‬ ‫ملفات‬ ‫داخله‬ ‫لوضع‬ anim:.‫الحركات‬ ‫أو‬ ‫التأثيرات‬ ‫ملفات‬ ‫داخله‬ ‫لوضع‬ color:‫عليه‬ ‫الضغط‬ ‫وبعد‬ ‫أصفر‬ ‫يصبح‬ ‫عليه‬ ‫التركيز‬ ‫تم‬ ‫إذا‬ ‫أحمر‬ ‫الزر‬ ‫لون‬ ‫مثل‬ ‫اللوان‬ ‫بطبقات‬ ‫للتحكم‬ .‫أزرق‬ xml:.‫للتطبيق‬ ‫اعدادات‬ ‫مثل‬ ,‫والعدادات‬ ‫التكوين‬ ‫ملفات‬ ‫داخله‬ ‫الغالب‬ ‫في‬ 39
  • 40.
    ‫أما‬‫مجلد‬assets/,‫بيانات‬ ‫قواعد‬ ,‫ملفات‬,‫صوت‬ ,‫صور‬ ,‫الخام‬ ‫المواد‬ ‫تضع‬ ‫فيه‬ ,‫للكثيرين‬ ‫مهم‬ ‫فهو‬ .‫التطبيق‬ ‫في‬ ‫استخدامها‬ ‫تريد‬ ‫التي‬ ‫الخطوط‬ ‫أنواع‬ ‫إضافته‬ ‫يتم‬ ‫ما‬ ‫وأكثر‬ .‫إلخ‬ ‫الويب‬ ‫صفحات‬ ‫مجلد‬ ‫يعيب‬ ‫وما‬assets): ‫وسرقتها‬ ‫إليها‬ ‫الوصول‬ ‫شخص‬ ‫إي‬ ‫يستطيع‬ ‫بداخله‬ ‫ما‬ ‫جميع‬ ‫إن‬ ‫لوحة‬ ‫مع‬ ‫لين‬ ‫اون‬ ‫تطبيقك‬ ‫لجعل‬ ‫مثل‬ ,‫متقدمة‬ ‫مراحل‬ ‫في‬ ‫تحتاجها‬ ,‫مهمة‬ ‫غير‬ ‫المجلدات‬ ‫بقية‬ ‫أما‬ .‫وغيرها‬ ‫للعبين‬ ‫جوجل‬ : ‫مهم‬ ‫من‬ ‫أكثر‬ ‫فهو‬ ‫التكوين‬ ‫ملف‬ ‫لـ‬ ‫وبالنسبة‬Gradle build.gradle/‫يهمنا‬ ‫ما‬Module: app‫بنصف‬ ‫قام‬ ‫وهو‬ ,‫للمشروع‬ ‫أساسية‬ ‫قيم‬ ‫نضع‬ ‫بداخله‬ ‫والذي‬ ‫أقل‬ + ‫بالتطبيق‬ ‫الخاص‬ ‫المعرف‬ ‫داخله‬ ‫مثل‬ .‫الكليبس‬ ‫في‬ ‫المينيفيست‬ ‫لملف‬ ‫كانت‬ ‫التي‬ ‫المهام‬ ‫تستخدمها‬ ‫التي‬ ‫المكاتب‬ ‫لجميع‬ ‫داخله‬ ‫الشارة‬ ‫يجب‬ ‫و‬ ‫تطبيقك‬ ‫عليه‬ ‫يعمل‬ ‫أندرويد‬ ‫إصدار‬ ‫وأعلى‬ .‫مشروعك‬ ‫لدعم‬ ‫الفايلوس‬ ‫مجلد‬ ‫شرح‬Values ‫قيمة‬ ‫داخله‬ ‫نضع‬ ‫مثل‬ ‫النوع:السم:القيمة‬ .. ‫والمتغيرات‬ ‫القيم‬ ‫على‬ ‫يحتوي‬ ‫مجلد‬ ‫هو‬ ‫الفايلوس‬ ‫مجلد‬ ‫الحمر‬ ‫اللون‬ ‫كود‬ ‫هي‬ ‫والقيمة‬ ‫أحمر‬ ‫واسمها‬ ‫لون‬ ‫نوع‬ ‫من‬ff0000#.. ‫وهكذا‬ ‫ملفات‬ ‫هي‬ ‫الفايلوس‬ ‫مجلد‬ ‫يحتويه‬ ‫ما‬xml‫او‬ ‫دمجها‬ ‫تستطيع‬ ‫إنك‬ ‫العلم‬ ‫مع‬ ,‫معين‬ ‫استخدام‬ ‫منها‬ ‫لكل‬ ,‫إليها‬ ‫للوصول‬ ‫بداخلها‬ ‫ما‬ ‫يهم‬ ‫الفايلوس‬ ‫ملفات‬ ‫فقط‬ .. ‫اسمائها‬ ‫تغيير‬ ‫أو‬ ‫واحد‬ ‫ملف‬ ‫في‬ ‫كلها‬ ‫جعلها‬ .( ‫المشروع‬ ‫لموارد‬ ‫الوصول‬ ) ‫مستقل‬ ‫درس‬ ‫في‬ ‫لها‬ ‫الوصول‬ ‫يتم‬ ‫كيف‬ ‫نتعرف‬ ‫وسوف‬ : ‫الفايلوس‬ ‫مجلد‬ ‫يحتويها‬ ‫التي‬ ‫الملفات‬ ‫أهم‬ ‫من‬ -strings.xml:,‫التطبيق‬ ‫اسم‬ ‫داخله‬ ‫تجده‬ ‫ما‬ ‫حاليا‬ ‫مهم‬ ‫من‬ ‫أكثر‬ ‫وهو‬ ,‫النصوص‬ ‫أو‬ ‫القيم‬ ‫ملف‬ .‫تريد‬ ‫التي‬ ‫النصوص‬ ‫إضافة‬ ‫حرية‬ ‫لك‬ ‫ثم‬ ‫ومن‬ ,‫داخله‬ ‫من‬ ‫تغييره‬ ‫تستطيع‬ ‫بإسم‬ ‫داخله‬ ‫قيمة‬ ‫لدينا‬ ‫مثل‬ ‫منه‬ ‫والفائدة‬Abboudi‫المشروع‬ ‫في‬ ‫تستطيع‬ ‫إذا‬ ,‫عبدالقادر‬ ‫لها‬ ‫والقيمة‬ ‫سترنج‬ ‫نص‬ ‫استخدام‬Abboudi.‫وهكذا‬ ‫عبدالقادر‬ ‫إنه‬ ‫على‬ ‫طباعته‬ ‫يتم‬ ‫وسوف‬ ‫الريس‬ ‫في‬ ‫والسترنج‬res: ‫ثلثة‬ ‫أنواع‬ ‫عدة‬ ‫على‬String‫النصوص‬ ‫من‬ ‫لسلسلة‬ ‫أما‬ ,‫المفرد‬ ‫للنص‬ ‫وهو‬ ‫فنستخدم‬String Array‫فنستخدم‬ ‫والجموع‬ ‫للكميات‬ ‫وأما‬Plurals. 40
  • 41.
    ‫بين‬ ‫الفرق‬ ‫يوضح‬‫كود‬ ‫وهذا‬‫منها‬ ,‫ل‬‫ك‬: // String <string name="string_name">text_string</string> // String Array <string-array name="string_array_name"> <item>text_string</item> </string-array> // Quantity Strings (Plurals) <plurals name="plural_name"> <item quantity=["zero" | "one" | "two" | "few" | "many" | "other"]>text_string</item> </plurals> -styles.xml:‫ملفات‬ ‫في‬ ‫معرف‬ ‫استايل‬ ‫نضع‬ ‫الغالب‬ ‫في‬ ,‫للتطبيق‬ ‫المستخدم‬ ‫الثيم‬ ‫او‬ ‫الستايل‬ ‫ملف‬ ‫منها‬ ‫كثيرة‬ ‫أمور‬ ‫في‬ ‫منه‬ ‫الستفادة‬ ‫وتستطيع‬ ,‫لمشروعنا‬ ‫به‬ ‫الخاصة‬ ‫القيم‬ ‫يعطي‬ ‫وهو‬ ‫الندرويد‬ .‫مستقل‬ ‫بموضوع‬ ‫عليه‬ ‫نتعرف‬ ‫وسوف‬ .‫إلخ‬ ‫واللوان‬ ‫بمشروعك‬ ‫النص‬ ‫بالحجم‬ ‫التحكم‬ -colors.xml:‫لها‬ ‫ونضع‬ ‫الوان‬ ‫مجموعة‬ ‫نضع‬ ‫مثل‬ ,‫مشروعك‬ ‫في‬ ‫واستخدامها‬ ‫لللوان‬ ‫قيم‬ ‫لوضع‬ ‫ملف‬ .‫وضعناها‬ ‫التي‬ ‫القيمة‬ ‫على‬ ‫التعرف‬ ‫ويتم‬ ‫المشروع‬ ‫في‬ ‫السم‬ ‫فقط‬ ‫نستخدم‬ ‫ثم‬ ‫من‬ ,‫اسماء‬ ‫يخرجها‬ ‫التي‬ ‫والنواع‬ ,‫استخدامها‬ ‫خلل‬ ‫من‬ ‫عليها‬ ‫وتتعرف‬ ‫تتعلم‬ ‫سوف‬ ‫التي‬ ‫الملفات‬ ‫من‬ ‫وغيرها‬ : ‫هي‬ ‫الفايلوس‬ ‫مجلد‬ Bool – Color – Dimension – ID – Integer – Integer Array – Typed Array ‫تقوم‬ ‫اخرى‬ ‫ملفات‬ ‫بإستخدام‬ ‫وذلك‬ ,‫عنها‬ ‫الستغناء‬ ‫تستطيع‬ ‫والمجلدات‬ ‫الملفات‬ ‫من‬ ‫الكثير‬ ‫ويوجد‬ .‫الترتيب‬ ‫أجل‬ ‫من‬ ‫وضعت‬ ‫ولكنها‬ .‫المهمة‬ ‫بنفس‬ ‫تكرار‬ ‫تستطيع‬ ,‫مشروعك‬ ‫في‬ ‫تستخدم‬ ‫ما‬ ‫جميع‬ ‫فيه‬ ‫تضع‬ ‫عندما‬ ‫إنك‬ ,‫الفايلوس‬ ‫مجلد‬ ‫يميز‬ ‫ما‬ ‫أهم‬ ‫وسوف‬ ,‫اللغات‬ ‫متعدد‬ ‫تطبيق‬ ‫برمجة‬ ‫تستطيع‬ ‫وهكذا‬ ‫داخله‬ ‫القيم‬ ‫وتغيير‬ ,‫اخرى‬ ‫للغة‬ ‫الفايلوس‬ ‫مجلد‬ .‫مستقل‬ ‫موضوع‬ ‫في‬ ‫اللغات‬ ‫متعدد‬ ‫تطبيق‬ ‫بناء‬ ‫كيفية‬ ‫نشرح‬ 41
  • 42.
    ‫ملف‬ ‫شرح‬AndroidManifest.xml ‫ملف‬ ‫مع‬‫يتقاسها‬ ‫أصبح‬ ‫ستوديو‬ ‫الندرويد‬ ‫مع‬ ‫ولكن‬ ,‫كثيرة‬ ‫صلحيات‬ ‫يمتلك‬ ‫كان‬ ‫هذا‬ ‫الملف‬ build.gradle‫يصلح‬ ‫ل‬ .‫المشروع‬ ‫وثيقة‬ ‫ملف‬ ‫إنه‬ ‫إعتباره‬ ‫تستطيع‬ ‫مهم‬ ‫جدا‬ ‫هو‬ ‫الملف‬ ‫هذا‬ ‫الن‬ ‫و‬ .‫دونه‬ ‫من‬ ‫المشروع‬ ‫بوضع‬ ‫نقوم‬ ‫إننا‬ ‫وهي‬ ,‫داخله‬ ‫يوجد‬ ‫ما‬ ‫أهم‬ ‫نذكر‬ ‫سوف‬ ‫لكن‬ ,‫كثيرة‬ ‫وسوم‬ ‫داخله‬ ‫استخدام‬ ‫وتستطيع‬ ‫تم‬ ‫حال‬ ‫وفي‬ ,‫الموجودة‬ ‫غير‬ ‫على‬ ‫التعرف‬ ‫يتم‬ ‫لن‬ ,‫كلها‬ ‫نضعها‬ ‫لم‬ ‫لو‬ ,‫بالمشروع‬ ‫لدينا‬ ‫اكتفتي‬ ‫إي‬ ‫وطريقة‬ .‫داخله‬ ‫الموجودة‬ ‫غير‬ ‫على‬ ‫يتعرف‬ ‫لم‬ ‫لن‬ .‫العمل‬ ‫عن‬ ‫التطبيق‬ ‫يتم‬ ‫سوف‬ ‫بالمشروع‬ ‫تطلبها‬ : ‫أبسطها‬ ,‫سهلة‬ ‫جدا‬ ‫الكتفتي‬ ‫إضافة‬ <activity android:name=".Activity" /> (: ‫الكلسات‬ ‫وليس‬ ‫الكتفتي‬ ,‫لديك‬ ‫الكتفتي‬ ‫جميع‬ ‫اسماء‬ ‫وضع‬ ‫مع‬ ‫الطريقة‬ ‫بنفس‬ ‫الوصول‬ ,‫للملفات‬ ‫الوصول‬ ‫مثل‬ ,‫تطبيقنا‬ ‫من‬ ‫نريدها‬ ‫التي‬ ‫الصلحيات‬ ‫نضع‬ ‫الملف‬ ‫هذا‬ ‫في‬ ‫كذلك‬ ‫و‬ .‫المختلفة‬ ‫الصلحيات‬ ‫من‬ ‫إلخ‬ ‫الكاميرا‬ ‫استخدام‬ ,‫بالنترنت‬ ‫والتصال‬ : ‫الشبكة‬ ‫لحالة‬ ‫الوصول‬ ‫صلحية‬ ‫مثال‬ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> ‫دون‬ ‫من‬ ‫تعمل‬ ‫ل‬ ‫الكواد‬ ,‫التصال‬ ‫حالة‬ ‫من‬ ‫تتحقق‬ ‫لكي‬ ‫الكواد‬ ‫إلى‬ ‫تحتاج‬ ,‫فقط‬ ‫الصلحية‬ ‫هذه‬ ‫طبعا‬ ‫حالة‬ ‫من‬ ‫للتحقق‬ ‫يحتاج‬ ‫انه‬ ‫التثبيت‬ ‫قبل‬ ‫مسبقا‬ ‫الجهاز‬ ‫يخبر‬ ‫لم‬ ‫تطبيقك‬ ‫ولكن‬ ‫تعمل‬ ‫لنها‬ ,‫الصلحية‬ .‫الشبكة‬ .‫التطبيق‬ ‫تشغيل‬ ‫بداية‬ ‫في‬ ‫تعمل‬ ‫سوف‬ ‫التي‬ ‫الكتفتي‬ ‫هي‬ ‫ما‬ ‫نحدد‬ ‫أن‬ ‫نستطيع‬ ‫الملف‬ ‫هذا‬ ‫من‬ ,‫كذلك‬ ‫التطبيق‬ ‫ومعرف‬ ,‫وصلحيات‬ ‫اكتفتي‬ ‫من‬ ‫لديك‬ ‫ما‬ ‫كل‬ ‫فيه‬ ‫تضع‬ ‫إن‬ ‫مهم‬ ‫الملف‬ ‫هذا‬ ‫باختصار‬ ‫يتجاوز‬ ‫حجمه‬ ‫تطبيقك‬ ‫كان‬ ‫لو‬ ‫مثل‬ ‫والسبب‬50‫لذلك‬ ,‫صعبة‬ ‫جدا‬ ‫تصبح‬ ‫سوف‬ ‫بالمتجر‬ ‫فقرائته‬ ,‫ميغا‬ ‫به‬ ‫الخاص‬ ‫المعرف‬ ‫وما‬ ‫اسمه‬ ‫وما‬ ‫التطبيق‬ ‫ايقونة‬ ‫هي‬ ‫ما‬ ‫داخله‬ ‫من‬ ‫لنتعرف‬ ‫فقط‬ ‫الملف‬ ‫هذا‬ ‫قراءة‬ ‫يتم‬ ‫من‬ ‫التحقق‬ ‫يتم‬ ‫بسهولة‬ ‫وهكذا‬ ..‫يحتاجها‬ ‫التي‬ ‫الصلحيات‬ ‫هي‬ ‫وما‬ ‫اكتفتي‬ ‫من‬ ‫لديك‬ ‫يوجد‬ ‫وما‬ .‫بالمتجر‬ ‫نشره‬ ‫على‬ ‫والموافقة‬ ‫تطبيقك‬ 42
  • 43.
    ‫المشروع‬ ‫لموارد‬ ‫الوصول‬ .‫الصور‬‫مجلد‬ ‫بداخل‬ ‫موجودة‬ ‫وهي‬ ‫تطبيقك‬ ‫في‬ ‫لستخدامها‬ ‫مثل‬ ‫صورة‬ ‫إلى‬ ‫تصل‬ ‫كيف‬ ‫بمعنى‬ ‫مثل‬ ‫محدد‬ ‫عنوان‬ ‫نستخدم‬ ‫ما‬ ‫موقع‬ ‫إلى‬ ‫الوصول‬ ‫عند‬ ‫المعروف‬ ‫من‬www.andrody.com‫معين‬ ‫لملف‬ ‫أو‬ .‫محدد‬ ‫مسار‬ ‫له‬ ‫الجهاز‬ ‫في‬ .‫برمجيا‬ ‫تستخدمها‬ ‫لكي‬ ‫مشروعك‬ ‫بداخل‬ ‫للملفات‬ ‫الوصول‬ ‫كيفية‬ ‫لمعرفة‬ ‫تحتاج‬ ‫كذلك‬ ‫اسمه‬ ‫بمجلد‬ ‫جميعها‬ ‫الموارد‬ ‫إن‬ ‫سابقا‬ ‫ذكرنا‬ ‫بالتأكيد‬res‫بحرف‬ ‫إليه‬ ‫نشير‬ ‫وبرمجيا‬R. ‫عدا‬ ‫بإسمها‬ ‫إليها‬ ‫الوصول‬ ‫يتم‬ ‫المجلدات‬ ‫إن‬ ,‫النقاط‬ ‫بعض‬ ‫لنعرف‬ ‫المستقل‬ ‫الشرح‬ ‫هذا‬ ‫وضع‬ ‫ولكن‬ ‫ما‬ ‫إلى‬ ‫الوصول‬ ‫يتم‬ ‫لذلك‬ ,‫إليها‬ ‫الضافة‬ ‫أو‬ ‫ملفاته‬ ‫اسماء‬ ‫تغيير‬ ‫تستطيع‬ ‫بداخله‬ ‫فالذي‬ ‫الفايلوس‬ ‫مجلد‬ .‫بداخله‬ ‫التي‬ ‫الملفات‬ ‫بداخل‬ ‫ما‬ ‫طريق‬ ‫عن‬ ‫بداخله‬ ‫عدا‬ ‫الصيغة‬ ‫او‬ ‫اللحقة‬ ‫دون‬ ‫بإسمها‬ ‫المشروع‬ ‫مجلدات‬ ‫بداخل‬ ‫الملفات‬ ‫جميع‬ ‫إلى‬ ‫الوصول‬ ‫يتم‬ ‫كذلك‬ ‫مجلد‬ ‫و‬ ‫المختلفة‬ ‫الوصول‬ ‫طرق‬ ‫بعض‬assets‫إضافة‬ ‫تستطيع‬ ‫بداخله‬ ‫لنك‬ ‫الملف‬ ‫صيغة‬ ‫تحدد‬ ‫أن‬ ‫يجب‬ .‫ومجلدات‬ ‫ملفات‬ ‫من‬ ‫تريد‬ ‫ما‬ : ‫مثال‬ ‫إسمها‬ ‫صورة‬ ‫لدينا‬ -image.jpg‫مجلد‬ ‫في‬ ‫وضعناها‬drawable. : ‫هكذا‬ ‫إليها‬ ‫الوصول‬ ‫يتم‬R.drawable.image ‫معرف‬ ‫لدينا‬ -id‫اسمه‬ ‫مثل‬ ‫عنصر‬ ‫لي‬test. : ‫إليه‬ ‫الوصول‬ ‫يتم‬R.id.test : ‫بالكتفتي‬ ‫لربطها‬ ‫اللياوت‬ ‫الواجهات‬ ‫ملفات‬ ‫إلى‬ ‫الوصول‬ -R.layout.activity_main ‫بداخل‬ ‫ما‬ ‫بشأن‬ ‫وأما‬‫مجلد‬Values: ‫قيمة‬ ‫مثل‬string‫اسمها‬app_name‫اسمه‬ ‫ملف‬ ‫بداخل‬test.xml‫مجلد‬ ‫بداخل‬values. : ‫القيمة‬ ‫لهذه‬ ‫الوصول‬R.string.app_name 43
  • 44.
    .‫والسم‬ ‫النوع‬ ‫فقط‬.‫المجلد‬ ‫ول‬ ‫الملف‬ ‫اسم‬ ‫ل‬ ‫يهمنا‬ ‫لم‬ ‫لحظ‬ ‫بداخل‬ ‫الموارد‬ ‫بشأن‬ ‫وأما‬‫مجلد‬assets: ‫بداخل‬ ‫ليس‬ ‫المجلد‬ ‫هذا‬ ‫إن‬ ‫لحظ‬res,‫تستخدمها‬ ‫التي‬ ‫الطريقة‬ ‫حسب‬ ‫يختلف‬ ‫إليه‬ ‫الوصول‬ ‫لذلك‬ .‫منه‬ ‫الوصول‬ ‫تحتاج‬ ‫الذي‬ ‫الموقع‬ ‫بحسب‬ ‫الطريقة‬ ‫تختلف‬ .‫جدا‬ ‫كثيرا‬ ‫طرق‬ ‫ويوجد‬ ‫ويب‬ ‫لصفحة‬ ‫الوصول‬ : ‫مثال‬html‫عنصر‬ ‫بداخل‬ ‫هذه‬ ‫الويب‬ ‫صفحة‬ ‫استخدام‬ ‫ونحتاج‬ ,‫المجلد‬ ‫هذا‬ ‫داخل‬ : ‫كسترنج‬ ‫إليها‬ ‫نصل‬ ‫الجافا‬ ‫من‬ .‫فيو‬ ‫ويب‬ "file:///android_asset/name.html" ‫إسمه‬ ‫مثل‬ ‫خط‬ ‫ملف‬ ‫إلى‬ ‫الوصول‬ ‫أو‬test.ttf‫الجافا‬ ‫من‬ ‫برمجيا‬ ‫خط‬ ‫تعريف‬ ‫في‬ ‫الخط‬ ‫نحتاج‬ ‫سوف‬ ‫إذا‬ : ‫الشكل‬ ‫بهذا‬ getAssets(),"test.ttf" .‫والنوع‬ ‫الستخدام‬ ‫حسب‬ ‫على‬ ‫وهكذا‬ ‫ملفات‬ ‫في‬ ‫لستخدامها‬ ‫إما‬ ,‫الجافا‬ ‫في‬ ‫برمجيا‬ ‫الموارد‬ ‫لستخدام‬ ‫هو‬ ‫الموضوع‬ ‫هذا‬ ‫في‬ ‫سبق‬ ‫ما‬ ‫كل‬ xml: ‫التالية‬ ‫بالطريقة‬ @ : ‫للسترنج‬ ‫الوصول‬string/app_name @ : ‫لستايل‬ ‫الوصول‬style/AppTheme @ : ‫لصورة‬ ‫الوصول‬drawable/image .‫أكبر‬ ‫بشكل‬ ‫عليه‬ ‫تتعرف‬ ‫سوف‬ ‫الستخدام‬ ‫مع‬ ‫فقط‬ .. ‫بسيط‬ ‫جدا‬ ‫جدا‬ ‫المر‬ ‫وهكذا‬ ‫للتطبيق‬ ‫العام‬ ‫الستايل‬ ‫تحرير‬ : ‫التالي‬ ‫بالشكل‬ ‫كان‬ ‫مشروع‬ ‫أول‬ ‫إنشاء‬ ‫بعد‬ ‫الستايل‬ ‫ملف‬ ‫لحظنا‬ ‫لو‬ 44
  • 45.
    – ‫يوجد‬ ‫للخطار‬‫العلوية‬ ‫الزاوية‬ ‫في‬ ‫لحظ‬Open editor: ‫المحرر‬ ‫لك‬ ‫يفتح‬ ‫سوف‬ ‫او‬ ‫لغة‬ ‫من‬ ‫لكثر‬ ‫معاينة‬ ‫وتستطيع‬ . ‫ديزاين‬ ‫الماتريال‬ ‫تصميم‬ ‫هو‬ ‫وهذا‬ ,‫يناسبك‬ ‫بما‬ ‫الختيار‬ ‫تستطيع‬ ‫بالـ‬ ‫لديك‬ ‫المحمل‬ ‫حسب‬ ‫إلخ‬ ‫والتجاه‬ ‫اصدار‬SDK.‫مختلفة‬ ‫وقياسات‬ ‫إصدارات‬ ‫من‬ @ ‫الستايل‬ ‫لديك‬ ‫يعمل‬ ‫ل‬ ‫ومن‬style/Theme.AppCompat.NoActionBar ‫الـ‬ ‫من‬ ‫يتأكد‬build.gradle: ‫الدعم‬ ‫مكتبة‬ ‫مضاف‬ ‫لديه‬ ‫إن‬ compile 'com.android.support:appcompat-v7:23.1.0' ‫الرقم‬ ‫يتغير‬ ‫لديك‬ ‫الصدار‬ ‫حسب‬23.1.0. ‫وكذلك‬ .‫للتطبيق‬ ‫الكامل‬ ‫بالتعديل‬ ‫تستطيع‬ ‫لكي‬ ‫أساسيات‬ ‫وإضافة‬ ‫يدويا‬ ‫الستايل‬ ‫تعديل‬ ‫يمكنك‬ ‫كما‬ ‫اعتبرها‬ ‫ولكن‬ ‫إلخ‬ ‫معينة‬ ‫للغة‬ ‫أو‬ ‫معين‬ ‫لجهاز‬ ‫كان‬ ‫إن‬ ‫بالكامل‬ ‫تعديله‬ ‫الستايل‬ ‫خلل‬ ‫من‬ ‫تستطيع‬ ‫لحقة‬ ‫كتب‬ ‫في‬ ‫شرحها‬ ‫يتم‬ ‫ال‬ ‫شاء‬ ‫إن‬ .‫ما‬ ‫نوعا‬ ‫متقدمة‬ ‫مراحل‬ 45
  • 46.
    ‫للتطبيق‬ ‫أيقونة‬ ‫إضافة‬ ‫الصورة‬‫وضع‬ ‫تستطيع‬ ‫طبعا‬ ,‫سابقا‬ ‫إنشائه‬ ‫كما‬ ‫الول‬ ‫لتطبيقنا‬ ‫أيقونة‬ ‫إضافة‬ ‫كيفية‬ ‫الن‬ ‫نتعلم‬ ‫سوف‬ ‫فبرنامج‬ ,‫الجهزة‬ ‫لجميع‬ ‫الدقة‬ ‫حيث‬ ‫من‬ ‫متوافقة‬ ‫اليقونة‬ ‫لتجعل‬ ‫قليل‬ ‫متعب‬ ‫المر‬ ‫لكن‬ ‫يدوي‬ ‫بشكل‬ .‫ذلك‬ ‫عنك‬ ‫يستلم‬ ‫ستوديو‬ ‫الندرويد‬ ‫لمجلد‬ ‫فتحنا‬ ‫عند‬ ‫البداية‬ ‫في‬mipmap‫سوف‬ .‫اليقونات‬ ‫على‬ ‫يحتوي‬ ‫الذي‬ ‫المجلد‬ ‫انه‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬ : ‫الصورة‬ ‫في‬ ‫كما‬ ‫مرات‬ ‫خمس‬ ‫متكررة‬ ‫للتطبيق‬ ‫الفتراضية‬ ‫اليقونة‬ ‫نجد‬ ‫الحجام‬ ‫بمختلف‬ ‫تكرراها‬ ‫تم‬ ‫اليقونة‬ ‫هذه‬ ‫الجهزة‬ ‫مختلف‬ ‫مع‬ ‫لتتناسب‬ ‫والقياسات‬ .‫صغيرة‬ ‫أو‬ ‫كبيرة‬ ‫كانت‬ ‫سواء‬ .‫منها‬ ‫نسخ‬ ‫الخمسة‬ ‫حذف‬ ‫ليتم‬ ‫الصورة‬ ‫هذه‬ ‫بحذف‬ ‫نقوم‬ ‫الن‬ ‫ونختار‬ ‫اليمن‬ ‫بالزر‬ ‫المجلد‬ ‫على‬ ‫بالضغط‬ ‫نقوم‬ : ‫الحذف‬ ‫بعد‬New‫ثم‬Image Asset. : ‫التالية‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ 46
  • 47.
    : ‫الموضحة‬ ‫للرقام‬‫بالنسبة‬ ‫أما‬ ,‫لليقونة‬ ‫معاينة‬ ‫لك‬ ‫يظهر‬ ‫النافذة‬ ‫من‬ ‫اليمن‬ ‫الجزء‬ ‫في‬ 1‫لشريط‬ ‫أو‬ ‫التابات‬ ‫و‬ ‫بار‬ ‫للكشن‬ ‫ازرار‬ ‫أو‬ ,‫للتطبيق‬ ‫ايقونة‬ ‫هي‬ ‫هل‬ .. ‫؟‬ ‫اليقونة‬ ‫هذه‬ ‫تريد‬ ‫لماذا‬ / .‫الشعارات‬ 2.. !‫؟‬ ‫نص‬ ‫أو‬ ,‫البرنامج‬ ‫من‬ ‫تختارها‬ ‫فنية‬ ‫قصاصة‬ ‫أو‬ ,‫جهازك‬ ‫من‬ ‫صورة‬ ‫تريدها‬ ‫هل‬ / 3.‫جهازك‬ ‫من‬ ‫الصورة‬ ‫مسار‬ ‫منه‬ ‫لتختار‬ ‫المسار‬ / 4.‫تقليصها‬ ‫بتم‬ ‫بالصورة‬ ‫فارغة‬ ‫مساحة‬ ‫في‬ ‫كان‬ ‫إذا‬ / 5.‫اليقونة‬ ‫وتصغير‬ ‫تكبير‬ ‫آخر‬ ‫بمعنى‬ ‫الصورة‬ ‫بحشو‬ ‫التحكم‬ / 6‫قص‬ ‫يتم‬ ‫او‬ ‫الشكل‬ ‫وسط‬ ‫لتصبح‬ ‫الصورة‬ ‫تقليص‬ ‫يتم‬ ‫هل‬ ‫شكل‬ ‫داخل‬ ‫الصورة‬ ‫وضعنا‬ ‫لو‬ ‫بمعنى‬ / .‫الشكل‬ ‫لتناسب‬ ‫الصورة‬ 7.‫النص‬ ‫او‬ ‫الصورة‬ ‫او‬ ‫القصاصة‬ ‫وداخله‬ ‫كإطار‬ ‫إلخ‬ ‫مربع‬ ‫أو‬ ‫دائرة‬ ,‫شكل‬ ‫لتحديد‬ / 8.‫الشكل‬ ‫لون‬ ‫أو‬ ‫خلفية‬ / 47
  • 48.
    9.‫للتطبيق‬ ‫اليقونة‬ ‫استخدم‬‫أردت‬ ‫إن‬ ‫هو‬ ‫كما‬ ‫واتركه‬ ‫اليقونة‬ ‫اسم‬ / : ‫كمثال‬ ‫النص‬ ‫استخدمنا‬ ‫لو‬ ‫مثل‬ .‫اخرى‬ ‫خيارات‬ ‫اختيار‬ ‫مع‬ ‫تختلف‬ ‫أحيانا‬ ‫الخيارات‬ ‫جميع‬ ‫إن‬ ‫العلم‬ ‫مع‬ : ‫بالبرنامج‬ ‫حاليا‬ ‫الموجودة‬ ‫الفنية‬ ‫القصاصات‬ ‫وأما‬ ‫التالي‬ ‫على‬ ‫إضغط‬ ‫تريد‬ ‫التي‬ ‫اليقونة‬ ‫إنشاء‬ ‫بعد‬Next‫انتهاء‬ ‫ثم‬Finish.‫بنجاح‬ ‫الضافة‬ ‫وتم‬ . 48
  • 49.
    ‫الندرويد‬ ‫جهاز‬ ‫واجهة‬‫على‬ ‫التعرف‬ ‫زر‬ ‫الول‬ , ‫هاردوير‬ ‫إي‬ ,‫الشاشة‬ ‫خارج‬ ‫أزرار‬ ‫ثلث‬ ‫فيها‬ ‫يوجد‬ ‫الندرويد‬ ‫جوالت‬ ‫في‬ ‫إن‬ ‫معرفته‬ ‫يهمنا‬ ‫ما‬ ‫زر‬ ‫هو‬ ‫الثالث‬ ‫والزر‬ ,‫النظام‬ ‫لرئيسية‬ ‫النتقال‬ ‫او‬ ‫الهوم‬ ‫او‬ ‫المنزل‬ ‫زر‬ ‫والوسط‬ ,‫للخلف‬ ‫الرجوع‬ ‫زر‬ ‫او‬ ‫الباك‬ ‫نوافذ‬ ‫لعرض‬ ‫زر‬ ‫لصبح‬ ‫هذه‬ ‫مهتمه‬ ‫عن‬ ‫الستغناء‬ ‫يبدأ‬ ‫الحديثة‬ ‫الجوالت‬ ‫في‬ ‫حاليا‬ ‫الثالث‬ ‫والزر‬ ,‫القائمة‬ .‫بار‬ ‫الكشن‬ ‫يسمى‬ ‫التطبيق‬ ‫على‬ ‫شريط‬ ‫في‬ ‫أساسا‬ ‫موجود‬ ‫القائمة‬ ‫زر‬ ‫ويصبح‬ .‫الخيرة‬ ‫التطبيقات‬ ‫الزرار‬ ,‫خارجية‬ ‫أزرار‬ ‫لديها‬ ‫يوجد‬ ‫ل‬ ‫أخرى‬ ‫أجهزة‬ ‫يوجد‬ ‫ولكن‬ ‫السامسونج‬ ‫جوالت‬ ‫عنه‬ ‫أتكلم‬ ‫الذي‬ ‫والبعض‬ ‫بار‬ ‫الكشن‬ ‫شريط‬ ‫على‬ ‫تجده‬ ‫الجهزة‬ ‫بعض‬ ‫مثل‬ ‫القائمة‬ ‫فزر‬ .‫الشاشة‬ ‫على‬ ‫تصبح‬ ‫نفسها‬ .‫أساسي‬ ‫السفل‬ ‫في‬ ‫الشاشة‬ ‫على‬ ‫زر‬ ‫والبعض‬ ‫للجهاز‬ ‫خارجي‬ ‫زر‬ ‫في‬ ‫منها‬ ‫الرجوع‬ ‫لزر‬ ‫نريدها‬ ‫التي‬ ‫الوامر‬ ‫إعطاء‬ ‫فنستطيع‬ .‫برمجيا‬ ‫معها‬ ‫نتعامل‬ ‫سوف‬ ‫لننا‬ ‫المعلومات‬ ‫هذه‬ ‫ونذكر‬ .‫للرئيسية‬ ‫الساسي‬ ‫الزر‬ ‫وحتى‬ ‫القائمة‬ ‫زر‬ ‫وكذلك‬ ,‫أخرى‬ ‫مهام‬ ‫ممكن‬ ‫به‬ ‫يقوم‬ ‫الذي‬ ‫ما‬ 49
  • 50.
    ‫واجهة‬ ‫على‬ ‫التعرف‬Layouts ‫لغة‬‫على‬ ‫تعتمد‬ ‫إنها‬ ‫سابقا‬ ‫ذكرنا‬ ‫الواجهة‬ ‫أو‬ ‫اللياوت‬XML‫كيف‬ ‫نتعرف‬ ‫سوف‬ ‫الن‬ ‫ولكن‬ ‫البناء‬ ‫في‬ ‫كيف‬ ‫نتعلم‬ ‫سوف‬ ‫القادمة‬ ‫الدروس‬ ‫في‬ ‫ثم‬ ‫من‬ . ‫العناصر‬ ‫وإضافة‬ ‫بتحريرها‬ ‫نقوم‬ ‫وكيف‬ ‫معها‬ ‫نتعامل‬ .‫حقيقي‬ ‫بشكل‬ ‫الواجهات‬ ‫هذه‬ ‫بمعاينة‬ ‫نقوم‬ 1.‫حاليا‬ ‫المفتوحة‬ ‫الملفات‬ ‫توجد‬ ‫الولى‬ ‫النقطة‬ ‫عند‬ / 2‫وارتفاع‬ ‫عرض‬ ‫مساحة‬ ‫تكبير/تقليص‬ + ,‫إلخ‬ ‫يسار‬ ‫يمين‬ ‫العنصر‬ ‫جهة‬ ‫يوجد‬ ‫الثانية‬ ‫النقطة‬ ‫عند‬ / .‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫وفتح‬ ,‫العرض‬ ‫شاشة‬ ‫وتصغير‬ ‫تكبير‬ ,‫الثانية‬ ‫للنقطة‬ ‫اليمن‬ ‫الطرف‬ ‫ومن‬ , .‫العنصر‬ 3‫هذه‬ ‫معاينة‬ ,‫اللياوت‬ ‫لهذه‬ ‫مختلفة‬ ‫قياسات‬ ‫إنشاء‬ ,‫اللياوت‬ ‫لهذه‬ ‫أفقية‬ ‫جهة‬ ‫إنشاء‬ ,‫أزرار‬ ‫عدة‬ ‫يوجد‬ / ,‫والعكس‬ ‫اليسار‬ ‫الى‬ ‫اليمين‬ ‫من‬ ‫مختلف‬ ‫اتجاه‬ ‫على‬ ‫اللياوت‬ ‫معاينة‬ ,‫القياسات‬ ‫مختلف‬ ‫على‬ ‫اللياوت‬ ‫تغيير‬ ,‫اللياوت‬ ‫لهذه‬ ‫مؤقتة‬ ‫لمعاينة‬ ‫معين‬ ‫جهاز‬ ‫اختيار‬ ,‫الندرويد‬ ‫إصدارات‬ ‫مختلف‬ ‫على‬ ‫معاينتها‬ ‫كذلك‬ ‫ربط‬ ,‫جافا‬ ‫بملف‬ ‫اللياوت‬ ‫هذه‬ ‫ربط‬ ,‫استايلت‬ ‫عدة‬ ‫على‬ ‫العمل‬ ‫معاينة‬ ,‫الفقي‬ ‫للتجاه‬ ‫اللياوت‬ ‫اتجاه‬ ‫لغات‬ ‫عدة‬ ‫على‬ ‫اللياوت‬ ‫معاينة‬ ,‫اللياوت‬ ‫هذه‬ ‫عن‬ ‫المسؤول‬ ‫الجافا‬ ‫ملف‬ ‫هو‬ ‫إين‬ ‫لتتذكر‬ ‫فقط‬ ‫وهمي‬ ‫حزم‬ ‫في‬ ‫لديك‬ ‫تنزيلها‬ ‫تم‬ ‫التي‬ ‫الصدارات‬ ‫حسب‬ ‫إندرويد‬ ‫إصدارات‬ ‫على‬ ‫ومعاينتها‬SDK. 50
  • 51.
    4.‫إلخ‬ ,‫المختلفة‬ ‫اللياوت‬‫وأنواع‬ ‫والزر‬ ‫والصورة‬ ‫النص‬ ‫مثل‬ ,‫اللياوت‬ ‫في‬ ‫تستخدمها‬ ‫سوف‬ ‫التي‬ ‫العناصر‬ / 5‫متداخلها‬ ‫العناصر‬ ‫إضافة‬ ‫تستطيع‬ ,, ‫وأبن‬ ‫أب‬ ‫عن‬ ‫قلنا‬ ‫ما‬ ‫وهذا‬ ,‫للعناصر‬ ‫الشجري‬ ‫النمط‬ ‫تجد‬ ‫هنا‬ / .‫اخرى‬ ‫عناصر‬ ‫داخلها‬ ‫تضع‬ ‫إن‬ ‫تسمح‬ ‫من‬ ‫هي‬ ‫فقط‬ ‫العناصر‬ ‫من‬ ‫اللياوت‬ ‫وأنواع‬ ,‫ببعضها‬ 6.‫إلخ‬ ‫والمعرف‬ ‫والتجاه‬ ‫والحجم‬ ‫واللون‬ ‫والنص‬ ‫والعرض‬ ‫الطول‬ ‫مثل‬ ,‫عليه‬ ‫المحدد‬ ‫للعنصر‬ ‫الخصائص‬ / 7‫التصميم‬ ‫واجهة‬ ‫أو‬ ‫التصميم‬ ‫شاشة‬ ‫بمعنى‬ ‫إي‬ ,‫فيو‬ ‫والتكست‬ ‫فيو‬ ‫الديزاين‬ ‫شاشة‬ ‫بين‬ ‫ما‬ ‫التنقل‬ / ‫الكتابة‬ ‫على‬ ‫فتعتمد‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫إما‬ ,‫العناصر‬ ‫وحذف‬ ‫بإضافة‬ ‫للمبتدئين‬ ‫سهلة‬ ‫هي‬ ‫والتي‬ ‫أكواد‬XML.‫شئت‬ ‫كيف‬ ‫هنا‬ ‫أو‬ ‫هنا‬ ‫من‬ ‫التعديل‬ ‫تستطيع‬ ‫إي‬ ,‫اللياوت‬ ‫لنفس‬ ‫والثنين‬ . ‫استخدامها‬ ‫عند‬ ‫منفصل‬ ‫بشكل‬ ‫السابقة‬ ‫النقاط‬ ‫أغلب‬ ‫شرح‬ ‫يتم‬ ‫سوف‬ : ‫بالعرض‬ ‫الخاصة‬ ‫بالزرار‬ ‫التحكم‬ ‫خلل‬ ‫من‬ ‫نماذج‬ ‫عدة‬ 51
  • 52.
    ‫في‬ ‫أكبر‬ ‫صلحية‬‫تعطيني‬ ,‫المعاينة‬ ‫مع‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫هي‬ ,‫أفضلها‬ ‫وضعية‬ ‫أكثر‬ ‫لي‬ ‫بالنسبة‬ : ‫الصورة‬ ‫في‬ ‫كما‬ ,‫معها‬ ‫يتعامل‬ ‫وكيف‬ ‫الخصائص‬ ‫يعرف‬ ‫لمن‬ ‫ومفيدة‬ ,‫التعديل‬ ‫ويوجد‬ ,‫داخلها‬ ‫الخصائص‬ ‫هي‬ ‫وما‬ ,‫فائدتها‬ ‫وما‬ ,‫العناصر‬ ‫هذه‬ ‫على‬ ‫قادمة‬ ‫دروس‬ ‫في‬ ‫نتعرف‬ ‫سوف‬ ‫على‬ ‫اقرأ‬ ‫تتسرع‬ ‫ل‬ ‫القارئ‬ ‫أخي‬ ‫ولكن‬ .. ‫جميعها‬ ‫عليها‬ ‫نتعرف‬ ‫سوف‬ ,‫العناصر‬ ‫لبعض‬ ‫أساسية‬ ‫خصائص‬ .‫تماما‬ ‫جديدة‬ ‫هي‬ ‫غيرك‬ ‫على‬ ‫ولكن‬ ,‫وبسيطة‬ ‫سهلة‬ ‫المور‬ ‫هذه‬ ‫كانت‬ ‫ولو‬ ‫حتى‬ ,‫بإحكام‬ ‫وطبق‬ ‫مهلك‬ ‫ومن‬ ,‫اللياوت‬ ‫شاشة‬ ‫على‬ ‫ووضعه‬ ‫العنصر‬ ‫بسحب‬ ‫قم‬ ‫فقط‬ ,‫فيو‬ ‫الديزاين‬ ‫شاشة‬ ‫من‬ ‫العناصر‬ ‫لضافة‬ ‫تريدها‬ ‫التي‬ ‫الخصائص‬ ‫كتابة‬ ‫بعد‬ ‫إغلقه‬ ‫مع‬ ‫تريد‬ ‫الذي‬ ‫العنصر‬ ‫>وسم‬ ‫بفتح‬ ‫قم‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ .‫داخله‬ 52
  • 53.
    ‫محاكي‬ ‫إنشاء‬AVD ‫والتأكد‬ ‫للمعاينة‬‫تطبيقنا‬ ‫عليه‬ ‫تشغيل‬ ‫لنستطيع‬ ‫افتراضي‬ ‫محاكي‬ ‫بإنشاء‬ ‫نقوم‬ ‫كيف‬ ‫الن‬ ‫نتعلم‬ ‫سوف‬ ‫من‬ ‫المحاكي‬ ‫بإنشاء‬ ‫تقوم‬ ‫أن‬ ‫قبل‬ .‫أندرويد‬ ‫جهاز‬ ‫لديه‬ ‫ليس‬ ‫لمن‬ ‫جدا‬ ‫ومهم‬ ,‫أخطاء‬ ‫إي‬ ‫من‬ ‫خلوه‬ ‫من‬ ‫من‬ ‫كبيرة‬ ‫كمية‬ ‫يأخذ‬ ‫وإن‬ ‫بطئه‬ ‫من‬ ‫اشتكو‬ ‫الكثيرون‬ ‫يوجد‬ ‫إنه‬ ‫أوضح‬ ‫إن‬ ‫أحب‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫للدرس‬ ‫وأنتقل‬ ‫الدرس‬ ‫هذا‬ ‫بتخطي‬ ‫قم‬ ,‫العالية‬ ‫بالمواصفات‬ ‫ليس‬ ‫جهازك‬ ‫كان‬ ‫إذا‬ ‫لذلك‬ ,‫إلخ‬ ‫الذاكرة‬ ‫المحاكي‬ ‫عن‬ ‫يغنيك‬ ‫فهو‬ ‫ستوديو‬ ‫الندرويد‬ ‫في‬ ‫واستخدامه‬ ‫موشن‬ ‫الجيني‬ ‫محاكي‬ ‫تثبيت‬ ‫في‬ ‫القادم‬ .‫ستوديو‬ ‫الندرويد‬ ‫من‬ ‫الفتراضي‬ ‫حزمة‬ ‫بفتح‬ ‫نقوم‬ ‫البداية‬ ‫في‬SDK‫أعلى‬ ‫عليه‬ ‫تعمل‬ ‫الذي‬ ‫الحالي‬ ‫للصدار‬ ‫ونذهب‬API‫وتقوم‬ ,‫لديك‬ ‫بتحميل‬Google APIs ARM EABI v7a System Image‫دعم‬ ‫تحميل‬ ‫عدم‬ ‫أجل‬ ‫من‬ ‫لك‬ ‫أفضلها‬ ‫هذا‬ ‫من‬ ‫بعض‬ ‫تجربة‬ ‫في‬ ‫تحتاجها‬ ,‫المحاكي‬ ‫في‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬ ‫تشغيل‬ ‫إلى‬ ‫بالضافة‬ ‫انتل‬ ‫لمعالج‬ .‫إلخ‬ ‫للتراسل‬ ‫جوجل‬ ‫سحابة‬ ‫او‬ ‫جوجل‬ ‫خرائط‬ ‫مثل‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬ ‫إلى‬ ‫توجه‬ .. ‫التحميل‬ ‫من‬ ‫النتهاء‬ ‫بعد‬AVD.‫ستوديو‬ ‫الندرويد‬ ‫في‬ ‫به‬ ‫الخاصة‬ ‫اليقونة‬ ‫خلل‬ ‫من‬ : ‫إلى‬ ‫التوجه‬ ‫خلل‬ ‫من‬ ‫أو‬Tools > Android > AVD Manager ‫في‬ ‫كما‬ ‫جديدة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ << ‫الصورة‬ : ‫على‬ ‫على‬ ‫اضغط‬ Create Virtual Device 53
  • 54.
    .‫يناسبك‬ ‫الذي‬ ‫الحجم‬‫أو‬ ‫الشاشة‬ ‫منها‬ ‫اختار‬ ,‫أخرى‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ .‫تطبيقك‬ ‫لمعاينة‬ ‫الجهزة‬ ‫لمختلف‬ ‫محاكي‬ ‫اختيار‬ ‫تستطيع‬ ‫لحظ‬ ‫طبعا‬ ‫التالي‬ ‫اضغط‬ ‫الختيار‬ ‫بعد‬ .‫الصورة‬ ‫في‬ ‫ترى‬ ‫كما‬ ‫اخترت‬ ‫وأنا‬ ‫الموبايل‬ ‫لجهزة‬ ‫يهمنا‬ ‫ما‬Next. 54
  • 55.
    ‫التالي‬ ‫واضغط‬ ,‫بتحميله‬‫قمت‬ ‫ما‬ ‫اختر‬Next. ‫انتهاء‬ ‫على‬ ‫واضغط‬ ,‫هي‬ ‫كما‬ ‫الخيارات‬ ‫اترك‬Finish. ‫لتحربة‬ ‫محاكي‬ ‫من‬ ‫أكثر‬ ‫إنشاء‬ ‫تستطيع‬ ,‫إنشائها‬ ‫تم‬ ‫التي‬ ‫الجهزة‬ ‫جميع‬ ‫وفيها‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ .‫المختلفة‬ ‫الشاشات‬ ‫وأحجام‬ ‫الجهزة‬ ‫مختلف‬ ‫على‬ ‫تطبيقك‬ ‫وفي‬ , ‫كثيرا‬ ‫تنتظر‬ ‫سوف‬ ‫تشغيل‬ ‫مرة‬ ‫أول‬ ‫في‬ .‫المحاكي‬ ‫بتشغيل‬ ‫للبدء‬ ,‫الخضر‬ ‫المثلث‬ ‫على‬ ‫اضغط‬ .‫جهازك‬ ‫سرعة‬ ‫حسب‬ ‫وذلك‬ .‫الولى‬ ‫المرة‬ ‫من‬ ‫أقل‬ ‫لكن‬ ‫كذلك‬ ‫تنتظر‬ ‫سوف‬ ‫مرة‬ ‫كل‬ 55
  • 56.
    ‫لنا‬ ‫محاكي‬ ‫أول‬‫إنشاء‬ ‫بعد‬ ‫هي‬ ‫والنتيجة‬AVD: ‫التشغيل‬ ‫علمة‬ ‫على‬ ‫نضغط‬ ‫فقط‬ ,‫الماضية‬ ‫الدروس‬ ‫في‬ ‫إنشئناه‬ ‫كما‬ ‫الول‬ ‫المشروع‬ ‫لتشغيل‬ ‫الن‬ ‫و‬ : ‫التالية‬ ‫النافذة‬ ‫لك‬ ‫تظهر‬ ‫عليه‬ ‫الضغط‬ ‫بعد‬ .‫اللون‬ ‫أخضر‬ ‫مثلث‬ ,‫الدوات‬ ‫شريط‬ ‫من‬ 56
  • 57.
    ‫أميوليتر‬ ‫كانت‬ ‫سواء‬,‫عليها‬ ‫تطبيقك‬ ‫معاينة‬ ‫وتستطيع‬ ‫الن‬ ‫تعمل‬ ‫التي‬ ‫الجهزة‬ ‫جميع‬ ‫النافذة‬ ‫هذه‬ ‫في‬ ‫الحقيقي‬ ‫جهازك‬ ‫أو‬ ‫موشن‬ ‫الجيني‬ ‫محاكي‬ ‫أو‬usb: ‫النتيجة‬ ‫نرى‬ ‫الفتراضي‬ ‫المحاكي‬ ‫اختيار‬ ‫بعد‬ . ‫كيفية‬ ‫وكذلك‬ ,‫ستوديو‬ ‫الندرويد‬ ‫داخل‬ ‫من‬ ‫افتراضي‬ ‫محاكي‬ ‫إنشاء‬ ‫كيفية‬ ‫تعلمنا‬ ‫قد‬ ‫نكون‬ ‫وهكذا‬ .‫عليه‬ ‫المشروع‬ ‫تشغيل‬ ‫موشن‬ ‫الجيني‬ ‫محاكي‬ ‫من‬ ‫صحيح‬ ‫نعم‬ .. ‫الكثير‬ ‫وبشهادة‬ ,‫والسرع‬ ‫القوى‬ ‫بإنه‬ ‫نفسه‬ ‫وصف‬ ‫كما‬ ‫موشن‬ ‫الجيني‬ ‫اميوليتر‬ ‫البعض‬ ‫أعتقد‬ ‫لذلك‬ ‫بلي‬ ‫جوجل‬ ‫خدمات‬ ‫يدعم‬ ‫ل‬ ‫إنه‬ ‫تنسى‬ ‫ل‬ ‫لكن‬ .. ‫رآئعة‬ ‫جدا‬ ‫كانت‬ ‫به‬ ‫تجربتي‬ ‫خلل‬ ‫التطبيقات‬ ‫معاينة‬ ‫أجل‬ ‫من‬ ‫موشن‬ ‫الجيني‬ ‫استخدام‬ ‫يستطيع‬ ‫أو‬ ,‫معا‬ ‫الثنين‬ ‫يحتاج‬ ‫سوف‬ ‫منكم‬ ‫المحاكي‬ ‫تحتاج‬ ‫وسوف‬ .‫جوجل‬ ‫خدمات‬ ‫مع‬ ‫تتعامل‬ ‫التي‬ ‫التطبيقات‬ ‫أجل‬ ‫من‬ ‫الحقيقي‬ ‫والجوال‬ ‫جهاز‬ ‫من‬ ‫لكثر‬ ‫تحتاج‬ ‫هكذا‬ ,‫للتراسل‬ ‫جوجل‬ ‫سحابة‬ ‫على‬ ‫تشات‬ ‫بعمل‬ ‫قمت‬ ‫مثل‬ ‫حال‬ ‫في‬ ‫الفتراضي‬ 57
  • 58.
    .‫لذلك‬ ‫بالغرض‬ ‫يفي‬‫سوف‬ ‫الفتراضي‬ ‫والمحاكي‬ ‫الجيني‬ ‫موقع‬ ‫إلى‬ ‫الذهاب‬ ‫علينا‬ ‫يجب‬ ‫البداية‬ ‫في‬ ,‫بالمطلوب‬ ‫نقوم‬ ‫سوف‬ ‫عليك‬ ‫الحديث‬ ‫أطيل‬ ‫ل‬ ‫كي‬ .‫لديه‬ ‫مجاني‬ ‫حساب‬ ‫وفتح‬ ‫موشن‬ : ‫موشن‬ ‫الجيني‬ ‫موقع‬ ‫إلى‬ ‫للدخول‬https://www.genymotion.com ‫زر‬ ‫على‬ ‫اضغط‬Sign in ‫حساب‬ ‫إنشاء‬ ‫على‬ ‫أضغط‬ ‫ثم‬Create account .‫للتسجيل‬ ‫بك‬ ‫الخاصة‬ ‫المعلومات‬ ‫بمل‬ ‫قم‬ 58
  • 59.
    ‫على‬ ‫اضغط‬ ,‫البيانات‬‫من‬ ‫النتهاء‬ ‫بعد‬Create account ‫التحميل‬ ‫صفحة‬ ‫إلى‬ ‫ندخل‬ ,‫الحساب‬ ‫تسجيل‬ ‫بعد‬https://www.genymotion.com/#!/download .‫الكاملة‬ ‫النسخة‬ ‫تحميل‬ ‫على‬ ‫ونضغط‬ ,‫جهازنا‬ ‫نظام‬ ‫نختار‬ 59
  • 60.
    ‫برنامج‬ ‫بفتح‬ ‫نقوم‬‫التثبيت‬ ‫بعد‬ .‫آخر‬ ‫برنامج‬ ‫كإي‬ ‫جهازنا‬ ‫على‬ ‫بتثبيته‬ ‫نقوم‬ ,‫موشن‬ ‫الجيني‬ ‫تحميل‬ ‫بعد‬ ‫موشن‬ ‫الجيني‬ .‫المرور‬ ‫وكلمة‬ ‫اليميل‬ ,‫الموقع‬ ‫في‬ ‫بها‬ ‫سجلت‬ ‫التي‬ ‫المعلومات‬ ‫منك‬ ‫يطلب‬ ‫سوف‬ ‫البرنامج‬ ‫فتح‬ ‫بعد‬ .‫نعم‬ ‫له‬ ‫تقول‬ ‫؟‬ ‫جهاز‬ ‫إضافة‬ ‫تريد‬ ‫هل‬ ‫جهاز‬ ‫إي‬ ‫لديك‬ ‫يوجد‬ ‫ل‬ ‫إنه‬ ‫يخبرك‬ ‫الدخال‬ ‫بعد‬ ‫اضافة‬ ‫على‬ ‫بالضغط‬ ‫قم‬ ‫أو‬Add ‫المستوى‬ ‫حسب‬ ,‫يناسبك‬ ‫ما‬ ‫منها‬ ‫اختر‬ ,‫أجهزة‬ ‫عدة‬ ‫فيها‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬API‫الحجم‬ ‫او‬ ‫اجهزة‬ ‫ويوجد‬ . ‫والدقة‬ ‫و‬ ‫وسوني‬ ‫سامسونج‬ htc.‫وغيرها‬ ‫اضغط‬ ‫الختيار‬ ‫بعد‬ ‫التالي‬Next. 60
  • 61.
    ‫النتهاء‬ ‫وبعد‬ .‫النترنت‬‫من‬ ‫المحاكي‬ ‫بهذا‬ ‫الخاصة‬ ‫الملفات‬ ‫تنزيل‬ ‫يتم‬ ‫سوف‬ .. ‫التالي‬ ‫كذلك‬ ‫اضغط‬ : ‫التشغيل‬ ‫نافذة‬ ‫في‬ ‫لك‬ ‫يظهر‬ ‫سوف‬ ‫خيار‬ ‫من‬ ,‫مشاكل‬ ‫واجهت‬ ‫وإن‬Settings‫ثم‬ADB‫بحزمة‬ ‫متصل‬ ‫إن‬SDK‫لديك‬ ‫كانت‬ ‫فإن‬ ,‫الفتراضية‬ ‫بشكل‬ ‫بتحديدها‬ ‫قم‬ ‫المسار‬ ‫مختلفة‬ ‫جهازك‬ ‫في‬ .‫يدوي‬ ‫زر‬ ‫على‬ ‫بالضغط‬ ‫قم‬ ‫الن‬ ‫و‬Start‫تشغيل‬ ‫لبدأ‬ << : ‫والنتيجة‬ .… ‫المحاكي‬ 61
  • 62.
    ‫سوف‬ ‫المشروع‬ ‫تشغيل‬‫زر‬ ‫على‬ ‫والضغط‬ ‫ستوديو‬ ‫الندرويد‬ ‫في‬ ‫لمشروعنا‬ ‫الذهاب‬ ‫عند‬ ‫الن‬ ‫لحظ‬ .. ‫جهازين‬ ‫وفيها‬ ‫التشغيل‬ ‫نافذة‬ ‫تظهر‬ .. ‫موشن‬ ‫الجيني‬ ‫محاكي‬ ‫والثاني‬ .. ‫الفتراضي‬ ‫المحاكي‬ ‫الول‬ ‫الجهاز‬ : ‫موشن‬ ‫الجيني‬ ‫على‬ ‫التطبيق‬ ‫تشغيل‬ ‫وتجربة‬ .. ‫الن‬ ‫يعملن‬ ‫الثنين‬ ‫لنهما‬ ‫الثنين‬ ‫لك‬ ‫وعرضت‬ 62
  • 63.
    .. ‫المحاكي‬ ‫تشغيل‬‫ثم‬ ‫من‬ ‫موشن‬ ‫الجيني‬ ‫برنامج‬ ‫تشغيل‬ ‫علينا‬ ‫يجب‬ ‫إنه‬ ‫متعبة‬ ‫نجدها‬ ‫سوف‬ ‫والن‬ ‫بشكل‬ ‫موشن‬ ‫الجيني‬ ‫تشغيل‬ ‫خلله‬ ‫من‬ ‫لنستطيع‬ ‫الندرويد‬ ‫لبرنامج‬ ‫إضافة‬ ‫بتنصيب‬ ‫نقوم‬ ‫سوف‬ ‫لذلك‬ .‫أسرع‬ ‫على‬ ‫إضغط‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫من‬File‫اختر‬ ‫ثم‬Settings‫اختر‬ ,‫العدادات‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ , ‫الضافات‬ ‫منها‬Plugins. ‫زر‬ ‫على‬ ‫نضغط‬Browse repositories‫البحث‬ ‫شريط‬ ‫في‬ ‫داخلها‬ ‫ونكتب‬ ‫جديدة‬ ‫نافذة‬ ‫لنا‬ ‫لتخرج‬ ,geny 63
  • 64.
    ‫موشن‬ ‫الجيني‬ ‫نختار‬‫ثم‬ ‫من‬Genymotion‫على‬ ‫ونضغط‬Install plugin. ‫على‬ ‫اضغط‬ ‫التحميل‬ ‫بعد‬Restart Android Studio.‫نفسه‬ ‫تشغيل‬ ‫بإعادة‬ ‫استوديو‬ ‫الندرويد‬ ‫ليقوم‬ ‫لك‬ ‫لتفتح‬ ‫عليه‬ ‫اضغط‬ ,‫موشن‬ ‫الجيني‬ ‫شعار‬ ‫الدوات‬ ‫شريط‬ ‫في‬ ‫تجد‬ ‫سوف‬ ‫جديد‬ ‫من‬ ‫التشغيل‬ ‫وبعد‬ ‫واضغط‬ ‫تريده‬ ‫الذي‬ ‫الجهاز‬ ‫على‬ ‫اضغط‬ ,‫موشن‬ ‫الجيني‬ ‫على‬ ‫إنشئتها‬ ‫التي‬ ‫الجهزة‬ ‫فيها‬ ‫صغيرة‬ ‫نافذة‬ ‫التشغيل‬ ‫زر‬Start: ‫الصورة‬ ‫في‬ ‫كما‬ .‫بسهولة‬ ‫ستوديو‬ ‫الندرويد‬ ‫من‬ ‫الجهزة‬ ‫وتشغيل‬ ‫إضافة‬ ‫تستطيع‬ ‫وهكذا‬ 64
  • 65.
    ‫جوالك‬ ‫على‬ ‫الندرويد‬‫مشروعك‬ ‫معاينة‬ , ‫موشن‬ ‫الجيني‬ ‫ومحاكي‬ ‫الفتراضي‬ ‫المحاكي‬ ‫على‬ ‫الندرويد‬ ‫مشروعنا‬ ‫معاينة‬ ‫كيفية‬ ‫تعلمنا‬ ‫ما‬ ‫بعد‬ .‫الحقيقي‬ ‫جوالنا‬ ‫أو‬ ‫جهازنا‬ ‫على‬ ‫التطبيق‬ ‫معاينة‬ ‫كيفية‬ ‫نتعلم‬ ‫سوف‬ ‫الدرس‬ ‫هذا‬ ‫في‬ ‫تصحيح‬ ‫بتفعيل‬ ‫القيام‬ ‫علينا‬ ‫يجب‬ ‫البداية‬ ‫في‬usb‫أو‬USB debugging‫الج‬ ‫إعدادات‬ ‫من‬‫إلى‬ ‫نذهب‬ ,‫وال‬ ‫تصحيح‬ ‫بتفعيل‬ ‫نقوم‬ ‫ثم‬ ‫من‬ , ‫المطور‬ ‫خيارات‬ – ‫الضبط‬USB. ‫قم‬ ,‫الصدار‬ ‫رقم‬ – ‫الهاتف‬ ‫حول‬ – ‫الضبط‬ ‫إلى‬ ‫إذهب‬ ,‫جهازك‬ ‫في‬ ‫المطور‬ ‫خيارات‬ ‫تجد‬ ‫لم‬ ‫حال‬ ‫وفي‬ .‫لك‬ ‫ظهرت‬ ‫قد‬ ‫المطور‬ ‫خيارات‬ ‫تجد‬ ‫للخلف‬ ‫أرجع‬ ‫ثم‬ .. ‫متتالية‬ ‫مرات‬ ‫سبع‬ ‫عليه‬ ‫بالضغط‬ ‫يتعرف‬ ‫أن‬ ‫يجب‬ ) ‫بالكمبيوتر‬ ‫جهازك‬ ‫بتوصيل‬ ‫قم‬ .‫بي‬ ‫إس‬ ‫يو‬ ‫تصحيح‬ ‫وتفعيل‬ ‫المطور‬ ‫خيارات‬ ‫تفعيل‬ ‫بعد‬ .( ‫بالحاسوب‬ ‫موجودة‬ ‫بجهازك‬ ‫الخاصة‬ ‫التعاريف‬ ‫إي‬ ‫جهازك‬ ‫على‬ ‫الحاسوب‬ ‫تشغيل‬ ‫يتم‬ ‫وسوف‬ ‫باختياره‬ ‫قم‬ ‫التشغيل‬ ‫نافذة‬ ‫في‬ ‫جهازك‬ ‫تجد‬ ‫سوف‬ ‫التشغيل‬ ‫زر‬ ‫إنقر‬ ‫ثم‬ ‫ومن‬ .‫عليها‬ ‫وافق‬ ‫للجهاز‬ ‫الحاسوب‬ ‫لوصول‬ ‫تصريح‬ ‫تطلب‬ ‫حماية‬ ‫عليها‬ ‫جوالت‬ ‫يوجد‬ .‫جوالك‬ ‫على‬ ‫التطبيق‬ ‫ملف‬ ‫في‬ ‫التالي‬ ‫المر‬ ‫تضع‬ ‫إن‬ ‫جرب‬ ‫مشاكل‬ ‫واجهتك‬ ‫وإن‬AndroidManifest.xml: : ‫البليكيشن‬ ‫أوسمة‬ ‫داخل‬ android:debuggable="true" . ‫سليم‬ ‫بشكل‬ ‫معك‬ ‫يعمل‬ ‫سوف‬ ‫ال‬ ‫شاء‬ ‫وإن‬ ‫أجهزة‬ ,‫جوجل‬ ‫شركة‬ ‫من‬ ‫جهازك‬ ‫كان‬ ‫إذا‬Nexus,‫الـ‬ ‫حزمة‬ ‫من‬ ,‫جهازك‬ ‫على‬ ‫لتعريفها‬SDK‫بتنزيل‬ ‫قم‬ Google USB Driver. 65
  • 66.
    ‫البيانات‬ ‫أنواع‬ ‫لكن‬ ‫اللغات‬‫بعض‬ ‫في‬ ‫أسمائها‬ ‫تختلف‬ ,‫الحاسوب‬ ‫في‬ ‫الذاكرة‬ ‫مع‬ ‫بها‬ ‫نتعامل‬ ‫سوف‬ ‫التي‬ ‫البيانات‬ ‫أنواع‬ .‫التطبيقات‬ ‫برمجة‬ ‫أثناء‬ ‫بكثرة‬ ‫استخدامها‬ ‫يتم‬ ‫فسوف‬ ‫مبتدئ‬ ‫لكل‬ ‫معرفتها‬ ‫يجب‬ ‫و‬ ,‫واحد‬ ‫الهدف‬ .‫مبدئيا‬ ‫نحتاجه‬ ‫ما‬ ‫مختصر‬ ‫بشكل‬ ‫هنا‬ ‫أذكر‬ ‫سوف‬ ‫ولكن‬ ,‫موسع‬ ‫بشكل‬ ‫عنها‬ ‫تبحث‬ ‫أن‬ ‫لك‬ ‫الفضل‬ ‫من‬ ‫النوع‬‫مثال‬-- int1000‫صحيح‬ ‫عدد‬ double5.2‫عشري‬ ‫عدد‬ charA‫حرف‬ BooleanTrue or False‫منطقية‬ ‫قيمة‬ ‫من‬ ‫هي‬ ‫والنصوص‬‫نوع‬String‫من‬ ‫مصفوفة‬ ‫أو‬ ‫مجموعة‬ ‫هي‬char.‫الساسية‬ ‫النواع‬ ‫من‬ ‫تعد‬ ‫ل‬ ‫لذلك‬ : ‫مثال‬ ‫استخداما‬ ‫الكثر‬ ‫هي‬ ‫ولكن‬ String AnyName = “Abboudi_Aliwi” .. ‫وتختلف‬ ‫القيم‬ ‫حيث‬ ‫من‬ ‫أنواع‬ ‫الصحيحة‬ ‫العداد‬ ‫إن‬ ‫أوضح‬ ‫إن‬ ‫أحب‬ ‫القارئ‬ ‫أخي‬ ‫كذلك‬ ‫مثل‬byte- ‫من‬ ‫داخله‬ ‫التخزين‬ ‫تستطيع‬128‫إلى‬127‫نوع‬ ‫الجدول‬ ‫في‬ ‫وذكرت‬ ‫أخرى‬ ‫أنواع‬ ‫ويوجد‬ ,int .‫استخدام‬ ‫أو‬ ‫انتشار‬ ‫الكثر‬ ‫هو‬ ‫ولكن‬ ,‫منه‬ ‫أكبر‬ ‫ويوجد‬ ‫كبيرة‬ ‫قيمة‬ ‫تخزين‬ ‫يستطيع‬ ‫لنه‬ ‫فالـ‬int‫بين‬ ‫ما‬ ‫تخزين‬ ‫يستطيع‬2147483648‫إلى‬ -2147483647‫لذلك‬ ‫جدا‬ ‫كبيرة‬ ‫قيمة‬ ‫فهي‬ ‫منه‬ ‫أكبر‬ ‫ويوجد‬ ‫الصحيحة‬ ‫للعداد‬ ‫سهولة‬ ‫بكل‬ ‫استخدامه‬ ‫تستطيع‬long. ‫حاليا‬ ‫ولكن‬ .. ‫بنفسك‬ ‫الموضوع‬ ‫عن‬ ‫أبحث‬ ,‫تخزينية‬ ‫سعة‬ ‫أو‬ ‫قيمة‬ ‫له‬ ‫منها‬ ‫وكل‬ .. ‫كثيرة‬ ‫أنواع‬ ‫هي‬ ‫اي‬ ‫انتجر‬ - ‫انت‬ ‫أو‬ ,‫نص‬ ‫إي‬ ‫سترنج‬ ‫استخدم‬ ‫لك‬ ‫قلت‬ ‫حال‬ ‫في‬ .. ‫الجدول‬ ‫بداخل‬ ‫ما‬ ‫تعرف‬ ‫أن‬ ‫لك‬ ‫المهم‬ ‫ولها‬ ,‫بالجافا‬ ‫الذاكرة‬ ‫في‬ ‫استخدام‬ ‫له‬ ‫لنها‬ ,‫سترنج‬ ‫كلمة‬ ‫كثيرة‬ ‫معنا‬ ‫تتكرر‬ ‫وسوف‬ .‫وهكذا‬ ‫صحيح‬ ‫عدد‬ ‫ملفات‬ ‫بداخل‬ ‫وكذلك‬ ‫عام‬ ‫بشكل‬ ‫بالندرويد‬ ‫مختلف‬ ‫استخدام‬xml. ‫وقيمة‬Boolean‫وإن‬ ,‫التالي‬ ‫المر‬ ‫نفذ‬ ‫ترو‬ ‫كانت‬ ‫إن‬ ‫القيمة‬ ‫هذه‬ ‫يفحص‬ ‫زر‬ ‫نبرمج‬ ‫مثل‬ ,‫مهمة‬ ‫من‬ ‫أكثر‬ ‫والكثير‬ ‫اختبارات‬ ‫عمل‬ ‫تستطيع‬ ‫وبذلك‬ .‫القيمة‬ ‫بهذه‬ ‫تتحكم‬ ‫أخرى‬ ‫أزرار‬ ‫و‬ ,‫مختلف‬ ‫أمر‬ ‫نفذ‬ ‫فولس‬ ‫كانت‬ .‫رائعة‬ ‫من‬ ‫الكثر‬ ‫القيمة‬ ‫هذه‬ ‫من‬ ‫فقط‬ 66
  • 67.
    ‫والقيم‬ ‫المتغيرات‬ ‫برمجة‬ ‫تستطيع‬‫لكي‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫معلومات‬ ‫ولكن‬ ,‫الجافا‬ ‫في‬ ‫أكثر‬ ‫أدخل‬ ‫أن‬ ‫عليي‬ ‫يجب‬ ‫كان‬ ‫ما‬ .‫ال‬ ‫شاء‬ ‫إن‬ ‫مشاكل‬ ‫إي‬ ‫دون‬ ‫الندرويد‬ ‫تطبيقات‬ ‫عدة‬ ‫في‬ ‫معروف‬ ‫أعتقد‬ ‫الشيء‬ ‫وهذا‬ ,‫المتغير‬ ‫هذا‬ ‫قيمة‬ ‫ثم‬ ‫المتغير‬ ‫ثم‬ ‫النوع‬ ‫نذكر‬ ‫ما‬ ‫دائما‬ ‫الجافا‬ ‫في‬ .‫الجافا‬ ‫فقط‬ ‫ليس‬ ‫لغات‬ .‫التسمية‬ + ‫الكيفية‬ ,‫هنا‬ ‫ذكره‬ ‫أريد‬ ‫الذي‬ ‫السبب‬ ‫و‬ : ‫أوضح‬ ‫بشكل‬ ‫أتكلم‬ ‫ماذا‬ ‫عن‬ ‫لتفهم‬ ‫أمثلة‬ String myname = "Abboudi Aliwi"; ‫النوع‬‫هو‬String‫و‬‫المتغير‬‫هو‬myname‫و‬‫القيمة‬Abboudi Aliwi ‫المتغير‬ ‫و‬ ,‫البيانات‬ ‫أنواع‬ ‫السابق‬ ‫الدرس‬ ‫في‬ ‫بعضها‬ ‫ذكرنا‬ ‫وقد‬ ‫معدودة‬ ‫أنواع‬ ‫هي‬ ‫النوع‬ ‫إن‬ : ‫نلحظه‬ ‫ما‬ ‫بالضافة‬ "" ‫داخل‬ ‫وضعها‬ ‫يجب‬ ‫إي‬ ‫سترنج‬ ‫دامت‬ ‫وما‬ ‫للنوع‬ ‫تبعا‬ ‫فهي‬ ‫القيمة‬ ‫إما‬ ,‫اختياره‬ ‫في‬ ‫قواعد‬ ‫له‬ .‫والرقام‬ ‫الحروف‬ ‫من‬ ‫وغيرها‬ ‫الفراغات‬ ‫بوجود‬ ‫مشكلة‬ ‫ل‬ ‫إلى‬ : ‫المتغير‬ ‫أسم‬ ‫اختيار‬ .$ ‫أو‬ _ ‫علمة‬ ‫أو‬ ‫بحرف‬ ‫يبتدأ‬ ‫مشكلة‬ ‫ل‬ ,‫برقم‬ ‫يبتدأ‬ ‫إن‬ ‫يجب‬ ‫ل‬ - .‫المتغير‬ ‫نهاية‬ ‫او‬ ‫وسط‬ ‫في‬ ‫الرقام‬ ‫كتابة‬ ‫في‬ ‫مشكلة‬ ‫ل‬ - .$ ‫أو‬ _ ‫عدا‬ ‫العلمات‬ ‫المتغيرات‬ ‫اسماء‬ ‫في‬ ‫تستخدم‬ ‫ل‬ - .‫والصغيرة‬ ‫الكبيرة‬ ‫الحرف‬ ‫بحالة‬ ‫وتتأثر‬ ‫تختلف‬ ‫المتغيرات‬ - : ‫مثال‬int Abboudi‫متغير‬ ‫عن‬ ‫تماما‬ ‫مختلف‬ ‫هو‬int abboudi. .‫الواحد‬ ‫الحرف‬ ‫من‬ ‫المتغيرات‬ ‫عن‬ ‫البتعاد‬ ‫الفضل‬ - ( ‫للجافا‬ ‫اساسية‬ ‫كلمات‬ ) : ‫المتغيرات‬ ‫اسماء‬ ‫في‬ ‫التالية‬ ‫الكلمات‬ ‫عن‬ ‫ابتعد‬ - abstract - assert - boolean - break - byte - case - catch - char - class - const - default - do - double - else - enum - extends - final - finally - float - for - goto - -if - implements - import - 67
  • 68.
    instanceof - int- long - native - new - package - private - protected - public - return - short - static - strictfp - super - switch - synchronized - this - throw - throws - transient - try - void - volatile - while - false - null - true * *,‫ـوع‬‫ـ‬‫الن‬ ‫ـة‬‫ـ‬‫كتاب‬ ‫تكرر‬ ‫ل‬ ,‫عليها‬ ‫التأثير‬ ‫او‬ ‫سابقا‬ ‫تعريفها‬ ‫تم‬ ‫التي‬ ‫المتغيرات‬ ‫أحد‬ ‫قيمة‬ ‫تغيير‬ ‫تريد‬ ‫عندما‬ .‫الجديدة‬ ‫وقيمته‬ ‫المتغير‬ ‫فقط‬ : ‫ستوديو‬ ‫الندرويد‬ ‫داخل‬ ‫من‬ ‫المتغيرات‬ ‫على‬ ‫للتعرف‬ ‫مثال‬ ‫ـاريع‬‫ـ‬‫بالمش‬ ‫ـل‬‫ـ‬‫العم‬ ‫أثنـاء‬ ‫ـا‬‫ـ‬‫عليه‬ ‫ـرف‬‫ـ‬‫نتع‬ ‫ـوف‬‫ـ‬‫وس‬ .. ‫الجافا‬ ‫في‬ ‫المتغيرات‬ ‫عن‬ ‫أكثر‬ ‫قراءة‬ ‫عليك‬ ‫يجب‬ ‫والن‬ .. ‫البسيطة‬ ‫ـذا‬‫ـ‬‫ه‬ ‫المتغير‬ ‫إن‬ ‫يعني‬ ‫هذا‬ - ‫الرمادي‬ ‫اللون‬ - ‫مختلف‬ ‫بلون‬ ‫السابقة‬ ‫الصورة‬ ‫في‬ ‫كما‬ ‫متغير‬ ‫وجود‬ ‫عند‬ ** .‫لونه‬ ‫يتغير‬ ‫سوف‬ ‫له‬ ‫استخدامك‬ ‫وعند‬ .‫المشروع‬ ‫هذا‬ ‫في‬ ‫مستخدم‬ ‫غير‬ ‫إي‬ ‫كعدمه‬ ‫وجوده‬ 68
  • 69.
    ‫اللياوت‬ ‫داخل‬ ‫العناصر‬‫أهم‬ ‫تتكرر‬ ‫والتي‬ ‫العناصر‬ ‫أهم‬ ‫نأخذ‬ ‫سوف‬ ‫وهنا‬ ,‫الول‬ ‫مشروعنا‬ ‫نطور‬ ‫سوف‬ ‫منها‬ ‫التي‬ ‫بالدروس‬ ‫نبدأ‬ ‫الن‬ .‫برمجيا‬ ‫اسمها‬ ‫تحفظ‬ ‫إن‬ ‫جدا‬ ‫ومهم‬ .‫أغلبها‬ ‫أو‬ ‫التطبيق‬ ‫جميع‬ ‫في‬ ‫وموجود‬ ‫العنصر‬‫ال‬‫البرمجي‬ ‫سم‬ ‫النص‬TextView ‫الزر‬Button ‫الصورة‬ImageView ‫من‬ ‫الهم‬ ‫العنصر‬ ‫يعتبر‬ ‫فيو‬ ‫التكست‬ ‫أو‬ ‫فالنص‬ ‫لذلك‬ ,‫النصوص‬ ‫من‬ ‫تطبيق‬ ‫إي‬ ‫يخلو‬ ‫ل‬ ‫إنه‬ ‫شك‬ ‫ل‬ ‫والدللة‬ ‫الشارات‬ ‫توضيح‬ ‫خللها‬ ‫من‬ ‫فتستطيع‬ .‫التطبيق‬ ‫لمستخدم‬ ‫تعرض‬ ‫التي‬ ‫الواجهات‬ ‫في‬ ‫العناصر‬ ,‫أزرار‬ ‫من‬ ‫تطبيق‬ ‫يخلو‬ ‫ول‬ ,‫التطبيق‬ ‫أرجاء‬ ‫بين‬ ‫التنقل‬ ‫تستطيع‬ ‫فبواسطته‬ ‫الزر‬ ‫وأما‬ ,‫معينة‬ ‫إشياء‬ ‫إلى‬ .‫التطبيق‬ ‫منظر‬ ‫وتحسين‬ ‫جمالية‬ ‫تزيد‬ ‫فهي‬ ‫الصور‬ ‫وأما‬ : ‫اوضح‬ ‫بشكل‬ ‫هذه‬ ‫العناصر‬ ‫معرفة‬ ‫تستطيع‬ ‫التالي‬ ‫الصورة‬ ‫في‬ 69
  • 70.
    ‫العناصر‬ ‫خصائص‬ ‫أهم‬‫شرح‬ : ‫هو‬ ‫بالخصائص‬ ‫أقصده‬ ‫ما‬ ‫أصدقائي‬ ‫البداية‬ ‫في‬ ‫المستخدمة‬ ‫الخصائص‬ ‫جميع‬ ‫العنصر‬ ‫أسفل‬ ‫تظهر‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫من‬ ,‫عنصر‬ ‫لكل‬ ‫الخائص‬ ‫هي‬ ‫الخصائص‬ ‫بعض‬ ‫وتتغير‬ .‫منها‬ ‫تحتاج‬ ‫ما‬ ‫وتستخدم‬ ‫الخصائص‬ ‫جميع‬ ‫لك‬ ‫تظهر‬ ‫الديزاين‬ ‫شاشة‬ ‫من‬ ‫اما‬ ,‫له‬ .‫تحديده‬ ‫تم‬ ‫الذي‬ ‫العنصر‬ ‫حسب‬ ‫على‬ : ‫هي‬ ‫عنا‬ ‫الستغناء‬ ‫تستطيع‬ ‫ول‬ ‫العناصر‬ ‫لجميع‬ ‫المشتركة‬ ‫الخصائص‬ ‫العنصر‬ ‫عرض‬android:layout_width""= ‫العنصر‬ ‫ارتفاع‬android:layout_height""= .‫العنصر‬ ‫حسب‬ ‫تختلف‬ .‫له‬ ‫اجبارية‬ ‫كذلك‬ ‫به‬ ‫خاصة‬ ‫خصائص‬ ‫العناصر‬ ‫لبعض‬ ‫يوجد‬ ‫و‬ .‫المعرف‬ ‫خاصية‬ ‫هي‬ ‫برمجيا‬ ‫به‬ ‫التحكم‬ ‫تريد‬ ‫عنصر‬ ‫لكل‬ ‫استخدامها‬ ‫تجب‬ ‫التي‬ ‫الخاصية‬ ‫و‬ ‫للعنصر‬ ‫معرف‬android:id""= .‫تحملها‬ ‫التي‬ ‫والقيمة‬ ‫وشرحها‬ ‫الخصائص‬ ‫الن‬ ‫أذكر‬ ‫وسوف‬ 70
  • 71.
    : ‫الشكل‬ ‫بهذا‬‫الخصائص‬ ‫أغلب‬ ,‫الخصائص‬ ‫أهم‬ ‫بشرح‬ ‫ابدأ‬ ‫إن‬ ‫قبل‬ android:layout_gravity="center" : ‫لياوت‬ ‫بدون‬ ‫استخدامها‬ ‫تستطيع‬ ‫بعضها‬ ‫ولكن‬ ,‫لياوت‬ ‫بـ‬ ‫تبدأ‬ android:gravity="center" ‫العنصر‬ ‫نقصد‬ ‫لياوت‬ ‫كلمة‬ ‫ما‬ .. ‫الحدود‬ ‫بداخل‬ ‫وما‬ ‫للنص‬ ‫حدود‬ ‫مثل‬ ,‫حد‬ ‫عنصر‬ ‫لكل‬ ‫إن‬ ,‫هو‬ ‫والفرق‬ : ‫الصورة‬ ‫في‬ ‫مثال‬ .‫نص‬ ‫العنصر‬ ‫بداخل‬ ‫ما‬ ‫وغالبا‬ ‫العنصر‬ ‫بداخل‬ ‫ما‬ ‫إي‬ ‫لياوت‬ ‫وبدون‬ ,‫بالكامل‬ ‫وكذلك‬ ,‫كامل‬ ‫الملف‬ ‫فيها‬ ‫نقصد‬ ‫لياوت‬ ‫وكلمة‬ ,‫نقصده‬ ‫كامل‬ ‫العنصر‬ ‫إي‬ ‫العنصر‬ ‫لياوت‬ ‫قلنا‬ ‫مثل‬ ‫لو‬ ‫يعني‬ .‫العناصر‬ ‫جميع‬ ‫داخله‬ ‫يحتوي‬ ‫الذي‬ ‫الملف‬ ‫بهذا‬ ‫عنصر‬ ‫أول‬ ‫أو‬ ‫الملف‬ ‫لهذا‬ ‫الول‬ ‫الب‬ ‫فيها‬ ‫نقصد‬ 71
  • 72.
    : ‫والرتفاع‬ ‫العرض‬‫خاصية‬ android:layout_gravity="" android:layout_width="" ‫قيمة‬ ‫يحتوي‬ ‫ل‬ ‫الذي‬ ‫فالعنصر‬ ,‫استثناء‬ ‫دون‬ ‫العناصر‬ ‫لجميع‬ ‫أساسية‬ ‫إنها‬ ,‫قلت‬ ‫كما‬ ‫الخاصيات‬ ‫هذه‬ .‫عدد‬ ‫إلى‬ ‫بالضافة‬ ‫قيم‬ ‫ثلث‬ ‫تأخذ‬ ‫وهي‬ ,‫شيء‬ ‫ل‬ ‫إي‬ ‫صفرا‬ ‫يساوي‬ ‫ارتفاعه‬ ‫او‬ ‫لعرضه‬ , ‫عربي‬ ‫اندرودي‬ ‫مدونة‬ ‫من‬ ‫مراجعتها‬ ‫تستطيع‬ ‫بينها‬ ‫والفرق‬ ‫الوحدات‬ ‫إلى‬ ‫أتطرق‬ ‫لن‬ ‫للعداد‬ ‫بالنسبة‬ ‫عنصر‬ ‫لي‬ ‫عددية‬ ‫قيمة‬ ‫وضع‬ ‫عند‬ ‫فقط‬ ‫تعرفه‬ ‫أن‬ ‫يهم‬ ‫ما‬ ‫كثيرا‬ ‫مهمة‬ ‫ليست‬ ‫لنها‬ ‫هنا‬ ‫أذكرها‬ ‫ولم‬ ‫الوحدة‬ ‫العدد‬ ‫بعد‬ ‫استخدام‬dp‫استخدم‬ ‫النص‬ ‫حجم‬ ‫أجل‬ ‫من‬ ‫الوحدة‬ ‫كانت‬ ‫وإن‬sp. : ‫القيم‬ ‫داخله‬ ‫تأخذ‬wrap_content, match_parent, fill_parent."" ‫بداخل‬ ‫هذه‬ ‫القيمة‬ ‫وتوضع‬ , ‫لقيمة‬ ‫بالنسبة‬fill_parent‫المستوى‬ ‫بعد‬ ‫إهمالها‬ ‫تم‬API 8‫هي‬ ‫أصبحت‬ ‫و‬match_parent. match_parent.‫له‬ ‫الب‬ ‫العنصر‬ ‫حسب‬ ‫الرتفاع‬ ‫أو‬ ‫العرض‬ ‫العنصر‬ ‫يأخذ‬ / wrap_content.‫فقط‬ ‫يحتاجه‬ ‫الذي‬ ‫الرتفاع‬ ‫أو‬ ‫العرض‬ ‫العنصر‬ ‫يأخذ‬ / : ‫الفرق‬ ‫لكم‬ ‫فيه‬ ‫أوضح‬ ‫الصور‬ ‫هذه‬ 72
  • 73.
    ‫وضعنا‬ ‫لو‬ ‫مثل‬‫لننا‬ ,‫العنصر‬ ‫لهذا‬ ‫الب‬ ‫اللياوت‬ ‫أو‬ ‫بالعنصر‬ ‫تتأثر‬ ‫كلها‬ ‫السابقة‬ ‫القيم‬ ‫لجميع‬ ‫بالنسبة‬ wrap_content‫ليعطيه‬ ‫كافي‬ ‫لديه‬ ‫ليس‬ ‫صغير‬ ‫جدا‬ ‫العنصر‬ ‫لهذا‬ ‫الب‬ ‫ولكن‬ ,‫يحتاجه‬ ‫ما‬ ‫يأخذ‬ ‫إي‬ ‫للعنصر‬ ‫الوحدة‬ ‫إن‬ ‫ننسى‬ ‫ول‬ ,‫أصغر‬ ‫يصبح‬ ‫لذلك‬ ‫حجمه‬dp.‫المتاح‬ ‫الشاشة‬ ‫قياس‬ ‫أو‬ ‫المساحة‬ ‫بحسب‬ ‫تتأثر‬ .‫له‬ ‫الب‬ ‫حدود‬ ‫عن‬ ‫يخرج‬ ‫إن‬ ‫للعنصر‬ ‫يمكن‬ ‫ول‬ ‫بينها‬ ‫تفرق‬ ‫كيف‬ ‫تتعلم‬ ‫سوف‬ ‫الستخدام‬ ‫مع‬ 73
  • 74.
    : ‫التجاه‬ ‫خاصية‬ android:orientation="" ‫لـ‬‫اجبارية‬ ‫تعتبر‬ ‫التي‬ ‫الخاصية‬ ‫وهي‬LinearLayout‫له‬ ‫الفتراضية‬ ‫القيمة‬ ,‫الخطي‬ ‫الترتيب‬ ‫أو‬ ‫النمط‬ ‫إي‬ ‫هي‬horizontal‫جميع‬ ‫الحقيقة‬ ‫في‬ ‫إن‬ ‫بهذا‬ ‫ونقصد‬ ‫افتراضية‬ ‫قيم‬ ‫لها‬ ‫الخرى‬ ‫الخصائص‬ ‫وجميع‬ ‫إذا‬ ‫استخدمتها‬ ‫فلو‬ ‫الفتراضية‬ ‫القيمة‬ ‫تأخذ‬ ‫لنها‬ ‫ظاهرة‬ ‫غير‬ ‫ولكن‬ ‫للعنصر‬ ‫موجودة‬ ‫او‬ ‫مفعلة‬ ‫الخصائص‬ . ‫لها‬ ‫الفتراضية‬ ‫القيمة‬ ‫تغيير‬ ‫تريد‬ ‫أنت‬ ‫اللياوت‬ ‫كانت‬ ‫إذا‬ ‫وجودها‬ ‫مهم‬ ‫غير‬ ‫وهي‬LinearLayout‫تأخذ‬ ‫سوف‬ ‫لنها‬ ,‫واحد‬ ‫عنصر‬ ‫سوا‬ ‫تحتوى‬ ‫ل‬ ‫أحد‬ ‫بداخلها‬ ‫وتحدد‬ ‫استخدامها‬ ‫يجب‬ ‫كثيرة‬ ‫عناصر‬ ‫كانت‬ ‫لو‬ ‫ولكن‬ ,‫الفقي‬ ‫الترتيب‬ ‫لك‬ ‫ذكرت‬ ‫كما‬ : ‫القيمتين‬horizontal‫أو‬vertical. horizontal.‫بعضها‬ ‫بجانب‬ ‫إي‬ ‫للعناصر‬ ‫الفقي‬ ‫الترتيب‬ / vertical.‫بعضها‬ ‫فوق‬ ‫إي‬ ‫للعناصر‬ ‫العمودي‬ ‫الترتيب‬ / : ‫بينها‬ ‫والفرق‬ ‫للتوضيح‬ ‫صورة‬ ‫وهذه‬ 74
  • 75.
    : ‫الهامش‬ ‫خاصية‬ android:layout_margin="" ‫جدا‬‫لنها‬ ,‫عنصر‬ ‫أو‬ ‫تطبيق‬ ‫إي‬ ‫في‬ ‫عنها‬ ‫الستغناء‬ ‫أستطيع‬ ‫ل‬ ‫نفسي‬ ‫وعن‬ ‫مميزة‬ ‫خاصية‬ ‫الهامش‬ ‫ما‬ ‫المسافة‬ ‫إنها‬ ‫أوضح‬ ‫بشكل‬ ,‫حدوده‬ ‫من‬ ‫ليست‬ ‫التي‬ ‫العنصر‬ ‫هوامش‬ ‫فهي‬ ,‫التطبيق‬ ‫لتنسيق‬ ‫مهمة‬ .‫معينة‬ ‫جهة‬ ‫من‬ ‫أو‬ ‫الجهات‬ ‫جميع‬ ‫من‬ ‫الهامش‬ ‫لتحديد‬ ‫استخدامها‬ ‫وتستطيع‬ ,‫حولها‬ ‫ما‬ ‫بين‬ ‫وما‬ ‫بينها‬ : ‫استخدامها‬ ‫لكم‬ ‫توضح‬ ‫الصورة‬ ‫هذه‬ ‫كان‬ ‫سواء‬ ‫الندرويد‬ ‫برمجة‬ ‫في‬ ‫للجهات‬ ‫بالنسبة‬ **java‫أو‬xml‫وفي‬ ‫كبيرة‬ ‫الحرف‬ ‫الجافا‬ ‫في‬ ‫لكن‬ . xml.‫صغيرة‬ ‫الحرف‬ top‫العلى‬ /bottom‫السفل‬ / right‫اليمين‬ /left‫اليسار‬ / 75
  • 76.
    : ‫الحشو‬ ‫خاصية‬ android:padding="" ‫الهامش‬‫فهي‬ ,‫عكسي‬ ‫بشكل‬ ‫ولكن‬ ‫الهامش‬ ‫خاصية‬ ‫تشبه‬ ‫تقريبا‬ ‫وهي‬ ,‫كذلك‬ ‫مفيدة‬ ‫هذه‬ ‫الخاصية‬ ‫يحجزها‬ ‫التي‬ ‫المساحة‬ ‫إن‬ ‫والفرق‬ .‫داخله‬ ‫وما‬ ‫العنصر‬ ‫أطراف‬ ‫بين‬ ‫ما‬ ,‫حوله‬ ‫وما‬ ‫العنصر‬ ‫بين‬ ‫ليس‬ ‫ولكن‬ ‫هنا‬ ‫اضغط‬ ,‫نص‬ ‫لدينا‬ ‫مثل‬ ‫فلو‬ ,‫العنصر‬ ‫ضمن‬ ‫من‬ ‫فهي‬ ‫الحشو‬ ‫إما‬ ,‫العنصر‬ ‫ضمن‬ ‫من‬ ‫تعتبر‬ ‫ل‬ ‫الهامش‬ ‫لو‬ ‫منه‬ ‫تعتبر‬ ‫الحشو‬ ‫مساحة‬ ‫لكن‬ ,‫حدود‬ ‫له‬ ‫ليس‬ ‫النص‬ ‫لن‬ ‫ظاهر‬ ‫وليس‬ ,‫كبير‬ ‫جدا‬ ‫به‬ ‫الخاص‬ ‫والحشو‬ .‫للنص‬ ‫اعطائه‬ ‫تم‬ ‫الذي‬ ‫المر‬ ‫ينفذ‬ ‫فسوف‬ ‫فيها‬ ‫مكان‬ ‫إي‬ ‫على‬ ‫ضغطنا‬ .‫الهامش‬ ‫مثل‬ ‫تماما‬ ‫التجاهات‬ ‫جميع‬ ‫من‬ ‫أو‬ ‫تريد‬ ‫اتجاه‬ ‫إي‬ ‫من‬ ‫للعنصر‬ ‫الحشو‬ ‫إعطاء‬ ‫تستطيع‬ ‫كذلك‬ : ‫الصورة‬ ‫هذه‬ ‫في‬ ‫أكثر‬ ‫للتوضيح‬ 76
  • 77.
    : ‫الجاذبية‬ ‫خاصية‬ android:gravity="" android:layout_gravity="" :‫التالية‬ ‫الصورة‬ ,‫ا‬‫سابق‬ ‫وضحت‬ ‫قد‬ ‫والقيم‬ ,‫الستخدام‬ ‫كثيرة‬ ‫كذلك‬ ‫خاصية‬ ‫وهي‬ ,‫إليه‬ ‫ينجذب‬ ‫الذي‬ ‫التجاه‬ ‫إي‬ ,‫العنصر‬ ‫جاذبية‬ ‫خاصية‬ .‫اخرى‬ ‫وقيم‬ ,‫يسار‬ ‫يمين‬ ‫أسفل‬ ‫اعلى‬ ,‫التجاهات‬ ‫هي‬ ‫تأخذها‬ ‫التي‬ ‫لـ‬ ‫بالنسبة‬android:layout_gravity.‫له‬ ‫الب‬ ‫العنصر‬ ‫من‬ ‫الحرة‬ ‫بالمساحة‬ ‫يتحرك‬ ‫فالعنصر‬ ‫أما‬android:gravity.‫العنصر‬ ‫هذا‬ ‫من‬ ‫له‬ ‫المتاحة‬ ‫المساحة‬ ‫في‬ ‫العنصر‬ ‫بداخل‬ ‫ما‬ ‫فيتحرك‬ 77
  • 78.
    : ‫الوزن‬ ‫خاصية‬ android:layout_weight="" ‫والصور‬.‫نصيبه‬ ‫يأخذ‬ ‫منها‬ ‫لكل‬ ,‫للعناصر‬ ‫اللياوت‬ ‫أو‬ ‫الشاشة‬ ‫لتقسيم‬ ,‫التقسيم‬ ‫خاصية‬ ‫أسميها‬ ‫بما‬ ‫أو‬ ‫القيمة‬ ‫فإستخدم‬ ‫الخاصية‬ ‫هذه‬ ‫العناصر‬ ‫بإعطاء‬ ‫قمت‬ ‫إذا‬ ,‫الخاصية‬ ‫هذه‬ ‫ما‬ ‫تشرح‬ ‫أن‬ ‫تستطيع‬ ‫فقط‬ ‫هي‬ ‫تحت‬ ‫ما‬1‫مثل‬ .‫عليهم‬ ‫لتتقسم‬0.1‫أو‬0.5‫مئة‬ ‫من‬ ‫أو‬ ..0.55‫أو‬0.20‫تحت‬ ‫أو‬ ..10‫مثل‬ ,1‫أو‬4 ‫قيمة‬ ‫عنصر‬ ‫تعطي‬ ‫ل‬ ‫القصد‬ .‫وهكذا‬50‫آخر‬ ‫وعنصر‬0.50. : ‫الصور‬ ‫في‬ ‫مثال‬ 78
  • 79.
    : ‫المعرف‬ ‫خاصية‬ID android:id="" ‫إلخ‬‫نص‬ ‫أو‬ ‫صورة‬ ‫كان‬ ‫سواء‬ ,‫برمجيا‬ ‫معه‬ ‫للتعامل‬ ‫يميزه‬ ‫إسم‬ ‫تعطيه‬ ‫لكي‬ ,‫للعنصر‬ ‫المعرف‬ ‫خاصية‬ .‫الجافا‬ ‫بلغة‬ ‫العنصر‬ ‫بهذا‬ ‫التحكم‬ ‫أو‬ ‫الوامر‬ ‫إعطاء‬ ‫نستطيع‬ ‫المعرف‬ ‫هذا‬ ‫طريق‬ ‫عن‬ .‫العناصر‬ ‫من‬ ‫وغيرها‬ : ‫التالي‬ ‫بالشكل‬ ‫ويكتب‬ android:id="@+id/button" ‫واستبدل‬button+ ‫ومعنى‬ ,‫تريده‬ ‫بالذي‬id‫للموارد‬ ‫المعرف‬ ‫هذا‬ ‫اضف‬ ‫إي‬R‫يصبح‬ + ‫بدون‬ ‫إن‬ ‫كما‬ , .‫الستخدام‬ ‫خلل‬ ‫من‬ ‫اكثر‬ ‫عليها‬ ‫تتعرف‬ ‫وسوف‬ .‫كذا‬ ‫اسمه‬ ‫الذي‬ ‫المعرف‬ ‫استخدم‬ ‫المعنى‬ **‫لون‬ ‫لـ‬ ‫بالنسبة‬ .‫إلخ‬ ‫ولونه‬ ‫النص‬ ‫وحجم‬ ‫النص‬ ‫لكتابة‬ ,‫النص‬ ‫المعنى‬ ‫واضحة‬ ‫الخرى‬ ‫الخصائص‬ ‫اغلب‬ ‫مباشرة‬ ‫للون‬ ‫الكود‬ ‫استخدام‬ ‫او‬ ‫بالفايلوس‬ ‫اللوان‬ ‫ملف‬ ‫في‬ ‫معرفة‬ ‫الوان‬ ‫استخدام‬ ‫تستطيع‬ ,‫النص‬ ‫داخل‬ ‫اكتب‬ ‫للتوضيح‬ ,‫السهل‬ ‫الصيغة‬ ‫استخدام‬ ‫تستطيع‬ ‫صيغ‬ ‫بعدة‬ ‫أكواد‬ ‫ولللوان‬textColor‫القيمة‬ #000‫ملفات‬ ‫داخل‬ ‫وبجانبه‬ ,‫للنص‬ ‫السود‬ ‫اللون‬ ‫يظهر‬ ‫سوف‬xml‫واختر‬ ‫عليه‬ ‫اضغط‬ ‫اسود‬ ‫صغير‬ ‫مربع‬ .‫اختياره‬ ‫تم‬ ‫الذي‬ ‫اللون‬ ‫لكود‬ ‫الرقم‬ ‫يتغير‬ ‫سوف‬ ‫وتلقائي‬ ‫تريد‬ ‫الذي‬ ‫اللون‬ 79
  • 80.
    ,‫ا‬‫تكرار‬ ‫وأكثرها‬ ‫البرمجية‬‫الكواد‬ ‫أهم‬ ‫على‬ ‫التعرف‬Java ‫اثناء‬ ‫الجافا‬ ‫إستخدام‬ ‫في‬ ‫معك‬ ‫تتكرر‬ ‫سوف‬ ‫التي‬ ‫الدوال‬ ‫أو‬ ‫الكواد‬ ‫أو‬ ‫العمليات‬ ‫أكثر‬ ‫ما‬ ‫الن‬ ‫نتعلم‬ ‫سوف‬ ‫أذكرها‬ ‫سوف‬ ‫منها‬ ‫والبعض‬ .‫وبكثرة‬ ‫تحتاجها‬ ‫سوف‬ ‫لنك‬ ‫تعرفها‬ ‫أن‬ ‫لك‬ ‫ومهم‬ .‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ .‫تماما‬ ‫وتحفظه‬ ‫المر‬ ‫عليك‬ ‫ليسهل‬ ‫مرة‬ ‫من‬ ‫أكثر‬ ‫الدرس‬ ‫هذا‬ ‫بمراجعة‬ ‫وأنصحك‬ ,‫تحتاجها‬ ‫سوف‬ ‫لنك‬ : ‫الصورة‬ ‫هذه‬ ‫شاهد‬ .‫بالندرويد‬ ‫الكتفتي‬ ‫أو‬ ‫الكلس‬ ‫كيفية‬ ‫أو‬ ‫صيغة‬ ‫على‬ ‫تتعرف‬ ‫أن‬ ‫يجب‬ ‫البداية‬ ‫في‬ ‫بشكل‬ ‫عليها‬ ‫نتعرف‬ ‫سوف‬ ‫المشاريع‬ ‫بإنشاء‬ ‫البدأ‬ ‫مع‬ ‫مشكلة‬ ‫ل‬ ,‫الصورة‬ ‫في‬ ‫نقطة‬ ‫إي‬ ‫لك‬ ‫يوضح‬ ‫لم‬ ‫إذا‬ .‫أوضح‬ .‫والدوال‬ ‫المتغيرات‬ ‫بداخله‬ ‫ثم‬ ,‫الكلس‬ ‫ثم‬ ,‫الدعم‬ ‫مكاتب‬ ‫ثم‬ ‫الباكيج‬ ‫اسم‬ ,‫الترتيب‬ ‫لحظ‬ .‫برمجيا‬ ‫معها‬ ‫للتعامل‬ ‫اجبارية‬ ‫فالمتغيرات‬ ,‫المتغيرات‬ ‫إضافة‬ ‫هو‬ ‫برمجيا‬ ‫معك‬ ‫يتكرر‬ ‫سوف‬ ‫ما‬ ‫أكثر‬ 80
  • 81.
    ‫بكتابة‬ ‫تعريفها‬ ‫يكون‬,‫الدوال‬ ‫وخارج‬ ‫الكلس‬ ‫داخل‬ ,‫الصورة‬ ‫في‬ ‫لكم‬ ‫حددته‬ ‫الذي‬ ‫المتغيرات‬ ‫موقع‬ ‫حسب‬ ‫الدعم‬ ‫مكاتب‬ ‫باستيراد‬ ‫تلقائيا‬ ‫يقوم‬ ‫ستوديو‬ ‫الندرويد‬ ‫تجعل‬ ‫إن‬ ‫تنسى‬ ‫ول‬ ; ‫علمة‬ ‫ثم‬ ‫المتغير‬ ‫ثم‬ ‫النوع‬ .‫النوع‬ ‫لهذا‬ ‫الخاصة‬ ‫المكتبة‬ ‫وضع‬ ‫ليتم‬ ,‫الكتاب‬ ‫في‬ ‫سابقا‬ ‫تعلمنا‬ ‫ما‬ ‫مثل‬ : ‫زر‬ ‫تعريف‬ ‫مثال‬ ,‫الشكل‬ ‫بهذا‬ ‫يكون‬ ‫التعريف‬ ‫عموما‬ Button Abboudi; ‫واسمه‬ ‫زر‬ ‫لدينا‬ ‫إن‬ ‫الكلس‬ ‫أخبرنا‬ ,‫بسيط‬ ‫جدا‬ ‫المر‬Abboudi‫قمنا‬ ‫الذي‬ ‫الزر‬ ‫هذا‬ ‫ربط‬ ‫لمرحلة‬ ‫ننتقل‬ ‫ثم‬ .‫بالزر‬ ‫الخاص‬ ‫المعرف‬ ‫بواسطة‬ .‫اللياوت‬ ‫داخل‬ ‫الموجود‬ ‫الزر‬ ‫مع‬ ‫بتعريفه‬ : ‫الشكل‬ ‫بهذا‬ Abboudi = (Button)findViewById(R.id.button); .‫الكتفتي‬ ‫تشغيل‬ ‫بعد‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫بداخل‬ ‫يكون‬ ‫الربط‬ ‫تذكر‬ ‫ولكن‬ ‫تذكره‬ ‫لذلك‬ ‫معك‬ ‫يتكرر‬ ‫سوف‬ ‫كود‬ ‫أكثر‬ ‫هو‬ ,‫الن‬ ‫لكم‬ ‫صورة‬ ‫في‬ ‫أضعه‬ ‫سوف‬ ‫الذي‬ ‫و‬ , ‫السابق‬ ‫الكود‬ ‫إذا‬ .‫لديك‬ ‫الموجود‬ ‫حسب‬ ‫النوع‬ ‫وكذلك‬ ‫تريد‬ ‫كما‬ ‫المتغير‬ ‫اسم‬ ‫اختلف‬ ‫مع‬ ‫جيدا‬ 81
  • 82.
    ‫المتغير‬ ‫إن‬ ‫له‬‫قلنا‬ ,‫الربط‬ ‫مرحلة‬ ‫في‬ ,‫السابقة‬ ‫الصورة‬ ‫في‬ ‫أنسى‬ ‫ل‬Abboudi‫نوع‬ ‫من‬ ‫هو‬Button ‫اسمه‬ ‫الذي‬ ‫المعرف‬ ‫يحمل‬ ‫الذي‬ ‫العنصر‬ ‫لنا‬ ‫وأوجد‬button‫المعرف‬ ‫يمتلك‬ ‫الزر‬ ‫إن‬ ‫وتأكد‬button‫وسوف‬ . .‫زر‬ ‫نوع‬ ‫من‬ ‫بعنصر‬ ‫وربطته‬ ‫نص‬ ‫نوع‬ ‫من‬ ‫متغير‬ ‫بتعريف‬ ‫قمت‬ ‫إن‬ ‫المشروع‬ ‫تشغيل‬ ‫في‬ ‫مشاكل‬ ‫لك‬ ‫تظهر‬ ‫ولكن‬ ,‫بها‬ ‫أدخل‬ ‫لن‬ ‫لذلك‬ .‫مختلفة‬ ‫وهي‬ ‫تريدها‬ ‫التي‬ ‫البرمجية‬ ‫الوامر‬ ‫تأتي‬ ,‫والربط‬ ‫التعريف‬ ‫مرحلة‬ ‫بعد‬ .‫الصغيرة‬ ‫المشاريع‬ ‫ببرمجة‬ ‫البدء‬ ‫أثناء‬ ‫منها‬ ‫البعض‬ ‫نتعلم‬ ‫سوف‬ ‫على‬ ‫نتعرف‬ ‫سوف‬ ‫الن‬‫الـ‬get‫و‬set. ‫من‬ ‫والمعنى‬ ‫بكثيرة‬ ‫تستخدمهم‬ ‫سوف‬ ‫الكلمتين‬ ‫هذه‬get‫أو‬ ‫بالعنصر‬ ‫الخاص‬ ‫بالقيمة‬ ‫لنا‬ ‫أتي‬ ‫مثل‬ ‫وأما‬ ,.. ‫أو‬ ‫بالمتغير‬set.‫القيمة‬ ‫هذه‬ ‫بتعديل‬ ‫قم‬ .‫التطبيق‬ ‫في‬ ‫نص‬ ‫داخل‬ ‫التاريخ‬ ‫هذا‬ ‫بوضع‬ ‫وقم‬ ,‫اليوم‬ ‫تاريخ‬ ‫بجلب‬ ‫قم‬ ‫مثال‬ : ‫صغير‬ ‫بتطبيق‬ ‫لنقوم‬ ‫مثل‬ ‫وموقعه‬ ,‫حاجته‬ ‫حسب‬ ‫والرتفاع‬ ,‫الشاشة‬ ‫كامل‬ ‫إي‬ ,‫له‬ ‫الب‬ ‫كعرض‬ ‫له‬ ‫العرض‬ ,‫الخصائص‬ ‫هنا‬ ‫لحظ‬ ‫له‬ ‫والهامش‬ ,‫الوسط‬ ‫في‬20‫النص‬ ‫و‬Hi‫النص‬ ‫وحجم‬ ‫فسفوري‬ ‫واللون‬25‫المعرف‬ ‫خاصية‬ ‫وأهم‬ textView 82
  • 83.
    : ‫التطبيق‬ ‫تشغيل‬‫بعد‬ ‫النتيجة‬ ‫لحظ‬ ‫الن‬ 83
  • 84.
    ‫الـ‬ ‫أهمها‬ ‫ومن‬,‫تستخدمها‬ ‫سوف‬ ‫لنك‬ ‫معرفتها‬ ‫عليك‬ ‫يجب‬ ‫كثيرة‬ ‫أخرى‬ ‫أمور‬ ‫يوجد‬if‫وأكثر‬ ,‫شرط‬ ‫لوضع‬ ‫الدوال‬ ‫استخدام‬ ‫كيفية‬ ‫وكذلك‬ ‫الشرط‬ ‫وجواب‬ ‫برمجيا‬ .. ‫و‬ ‫أو‬ ‫أي‬ ‫واستخدام‬ ‫الوقت‬ ‫نفس‬ ‫في‬ ‫شرط‬ ‫من‬ ‫لكي‬ ‫وتحتاجها‬ ‫كثيرة‬ ‫جدا‬ ‫أمور‬ ‫إلخ‬ .. ‫بها‬ ‫للتحكم‬ ‫المشروع‬ ‫كامل‬ ‫في‬ ‫متغيرات‬ ‫واستخدام‬ ‫وتنفيذها‬ .‫متوسطة‬ ‫من‬ ‫أكثر‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫خبرتك‬ ‫تزداد‬ . ‫ال‬ ‫شاء‬ ‫إن‬ ‫الكواد‬ ‫على‬ ‫أكثر‬ ‫أركز‬ ‫سوف‬ ‫المشاريع‬ ‫إنشاء‬ ‫مع‬ ‫الكتفتي‬ ‫حياة‬ ‫دورة‬ ‫دوال‬ ‫في‬ ‫ينفذ‬ ‫سوف‬ ‫منها‬ ‫وكل‬ ,‫منك‬ ‫استدعاء‬ ‫دون‬ ‫تنفذ‬ ‫سوف‬ ‫التي‬ ,‫الساسية‬ ‫الدوال‬ ‫نتعلم‬ ‫سوف‬ ‫هنا‬ ‫لذلك‬ .‫بسهولة‬ ‫النقاط‬ ‫لهذه‬ ‫الوصول‬ ‫تستطيع‬ ‫ل‬ ‫لنك‬ ‫منها‬ ‫وتستفيد‬ ‫وتحتاجها‬ ,‫معينة‬ ‫نقطة‬ ‫أو‬ ‫موقع‬ .‫للكتفتي‬ ‫أساسية‬ ‫دوال‬ ‫بعدة‬ ‫عليك‬ ‫سهل‬ ‫المر‬ .. ‫الكلس‬ ‫وليس‬ ‫الكتفتي‬ ‫مع‬ ‫إنشائها‬ ‫يتم‬ ‫أساسية‬ ‫دالة‬ ‫داخلها‬ ‫شاهدنا‬ ‫الكتفتي‬ ‫في‬ ‫تتذكر‬ ‫هل‬ ‫في‬ ‫نضعها‬ ‫ولكن‬ .. ‫كريت‬ ‫الون‬ ‫دالة‬ ‫داخله‬ ‫تكون‬ ‫ل‬ ‫كلس‬ ‫إنشاء‬ ‫عند‬ .. ‫المر‬ ‫لك‬ ‫وضح‬ ‫هكذا‬ ‫اعتقد‬ .. ‫بالندرويد‬ ‫معينة‬ ‫دوال‬ ‫عدة‬ ‫ولتنفيذ‬ ‫باللياوت‬ ‫ربطه‬ ‫يتم‬ ‫اكتفتي‬ ‫لتصبح‬ ‫الكلس‬ ‫القادمة‬ ‫الصفحة‬ ‫في‬ ‫الصورة‬ ‫شاهد‬ ‫البداية‬ ‫في‬ 84
  • 85.
    : ‫استخدمها‬ ‫موقع‬‫وأين‬ ‫للكتفتي‬ ‫الساسية‬ ‫جميعها‬ ‫الدوال‬ ‫عن‬ ‫تعبر‬ ‫الصورة‬ ‫هذه‬ 85
  • 86.
    : ‫الشرح‬ ‫تابع‬‫جيدا‬ ‫تفهمها‬ ‫لم‬ ‫إذا‬http://goo.gl/KXeTp4 : ‫الدوال‬ ‫هذه‬ ‫عن‬ ‫مختصر‬ ‫نبذة‬ ‫وهذه‬ ‫انطلق‬ ‫بعد‬ ‫استدعائها‬ ‫يتم‬ ‫التي‬ ‫الساسية‬ ‫الدالة‬ ‫داخلها‬ ‫يتم‬ ‫التي‬ ‫الدالة‬ ‫وهي‬ ,‫الكتفتي‬ ‫تشغيل‬ ‫او‬ . ‫إلخ‬ ‫البرمجة‬ ‫الوامر‬ ‫واعطاء‬ ‫المتغيرات‬ ‫تعريف‬ ‫ستارت‬ ‫اون‬ ‫دالة‬ ‫تنفذ‬ ‫يتم‬ ‫بعدها‬ ‫ومن‬ onCreate(): ‫يتوقف‬ ‫إن‬ ‫بعد‬ .. ‫الدالة‬ ‫هذه‬ ‫في‬ ‫الوامر‬ ‫تنفيذ‬ ‫يتم‬ ‫مرة‬ ‫التطبيق‬ ‫تشغيل‬ ‫عند‬ ‫العمل‬ ‫عن‬ ‫تطبيقك‬ ‫ستارت‬ ‫اون‬ ‫دالة‬ ‫تنفذ‬ ‫يتم‬ ‫بعده‬ ‫ومن‬ .. ‫اخرى‬ onRestart(): ‫التطبيق‬ ‫يصبح‬ ‫إن‬ ‫بعد‬ ‫الدالة‬ ‫هذه‬ ‫تنفيذ‬ ‫ويتم‬ ‫دالة‬ ‫تنفيذ‬ ‫يتم‬ ‫بعدها‬ ‫ومن‬ ‫المستخدم‬ ‫أمام‬ ‫ظاهر‬ ‫يتم‬ ‫أو‬ ,‫التطبيق‬ ‫داخل‬ ‫زلت‬ ‫ما‬ ‫كنت‬ ‫إذا‬ ‫ريزوم‬ ‫اون‬ ‫تطبيق‬ ‫فتحت‬ ‫أو‬ ‫ذهبت‬ ‫إذا‬ ‫ستوب‬ ‫اون‬ ‫دالة‬ ‫تنفيذ‬ ‫آخر‬ onStart(): ‫مع‬ ‫بالتفاعل‬ ‫المستخدم‬ ‫يبدأ‬ ‫عندما‬ ‫تنفيذها‬ ‫يتم‬ ‫باز‬ ‫اون‬ ‫بعدها‬ ‫من‬ ‫تنفيذ‬ ‫ويتم‬ ,‫التطبيق‬ onResume(): ‫إذا‬ ‫للتطبيق‬ ‫الرجوع‬ ‫يتم‬ ‫عندما‬ ‫الدالة‬ ‫هذه‬ ‫تحدث‬ ‫كثيرة‬ ‫أوامر‬ ‫تضع‬ ‫ل‬ ‫إنك‬ ‫وتأكد‬ ‫اخر‬ ‫نشاط‬ ‫في‬ ‫كنت‬ ‫هنا‬ onPause (): ‫ظاهر‬ ‫غير‬ ‫التطبيق‬ ‫يصبح‬ ‫عندما‬ ‫الدالة‬ ‫هذه‬ ‫تحدث‬ ‫للمستخدم‬ onStop(): ‫أو‬ ‫التطبيق‬ ‫إجبار‬ ‫يتم‬ ‫عندما‬ ‫الدالة‬ ‫هذه‬ ‫وتحدث‬ ‫اجباري‬ ‫بشكل‬ ‫توقفه‬ onDestroy(): : ‫صغير‬ ‫مثال‬ ‫بداية‬ ‫مع‬ ‫القاعدة‬ ‫إنشاء‬ ‫ويتم‬ ,‫الرسائل‬ ‫من‬ ‫كبير‬ ‫كم‬ ‫لتخزين‬ ‫التطبيق‬ ‫في‬ ‫بيانات‬ ‫قواعد‬ ‫يوجد‬ ‫مثل‬ ‫الجباري‬ ‫والتوقف‬ ‫التوقف‬ ‫دالة‬ ‫تستخدم‬ ‫إي‬ ‫التطبيق‬ ‫من‬ ‫الخروج‬ ‫يتم‬ ‫عندما‬ ‫يفضل‬ ‫إذا‬ ,‫التطبيق‬ ‫تشغيل‬ ‫عملية‬ ‫كل‬ ‫مع‬ ‫الرسائل‬ ‫مل‬ ‫يتم‬ ‫وأحيانا‬ ,‫الجهاز‬ ‫على‬ ‫ثقيل‬ ‫الحمل‬ ‫يصبح‬ ‫ل‬ ‫كي‬ ,‫القاعدة‬ ‫هذه‬ ‫لتفريغ‬ .‫القواعد‬ ‫مع‬ ‫التعامل‬ ‫في‬ ‫خبرتك‬ ‫حسب‬ ‫على‬ ‫فتح‬ : ‫السابقة‬ ‫الدوال‬ ‫أحد‬ ‫كتابة‬ ‫طريقة‬ public void onDestroy() { super.onDestroy(); // ‫الوامر‬ ‫تنفيذ‬ ‫يتم‬ ‫هنا‬ . } 86
  • 87.
    : ‫آخر‬ ‫بشكل‬‫الدوال‬ ‫لكم‬ ‫توضح‬ ‫الصورة‬ ‫وهذه‬ ‫الول‬ ‫المشروع‬1.. ‫يا‬ ,‫ا‬‫مرحب‬ - ‫حقل‬ ‫عن‬ ‫عبارة‬ ‫يكون‬ ‫سوف‬ ,‫بسيط‬ ‫مشروع‬ ‫بناء‬ ‫وهي‬ ‫ينتظرها‬ ‫منكم‬ ‫الكثير‬ ,‫بالخطوة‬ ‫نقوم‬ ‫سوف‬ ‫الن‬ ‫وعرض‬ ‫الخرى‬ ‫للكتفتي‬ ‫النتقال‬ ‫يتم‬ ,‫الزر‬ ‫على‬ ‫الضغط‬ ‫ثم‬ ‫ومن‬ ‫اسمك‬ ‫بادخال‬ ‫تقوم‬ , ‫وزر‬ ‫نصي‬ .‫بإدخاله‬ ‫قمت‬ ‫الذي‬ ‫اسمك‬ ‫الضغط‬ ‫بعد‬ ‫أوامر‬ ‫تنفيذ‬ ,‫الشاشة‬ ‫على‬ ‫عناصر‬ ‫وضع‬ ‫منها‬ ,‫أمور‬ ‫عدة‬ ‫نتعلم‬ ‫سوف‬ ‫المشروع‬ ‫هذا‬ ‫ومن‬ ‫كيفية‬ ,‫بداخله‬ ‫ما‬ ‫وجلب‬ ‫النصي‬ ‫الحقل‬ ‫مع‬ ‫التعامل‬ ,‫اخرى‬ ‫ولياوت‬ ‫اخرى‬ ‫اكتفتي‬ ‫إنشاء‬ ,‫الزر‬ ‫على‬ .. ‫اخرى‬ ‫وامور‬ ,‫اخرى‬ ‫الى‬ ‫اكتفتي‬ ‫من‬ ‫النتقال‬ .‫له‬ ‫مشروع‬ ‫أول‬ ‫يكون‬ ‫سوف‬ ‫للبعض‬ ‫تقريبا‬ ‫لنه‬ .. ‫وبالصور‬ ‫بالترتيب‬ ‫الخطوات‬ ‫نأخذ‬ ‫وشوف‬ ‫نبدأ‬ ‫ثم‬ ‫من‬ ‫سريعة‬ ‫فقط‬ ‫صور‬ ‫أضع‬ ‫سوف‬ ,‫لك‬ ‫مشروع‬ ‫اول‬ ‫إنشاء‬ ‫سابق‬ ‫درس‬ ‫في‬ ‫أخذنا‬ ‫إننا‬ ‫بما‬ ‫ولكن‬ .‫الشرح‬ .‫الصور‬ ‫تابع‬ .. ‫جديد‬ ‫مشروع‬ ‫إنشاء‬ ‫على‬ ‫والضغط‬ .. ‫ستوديو‬ ‫الندرويد‬ ‫بفتح‬ ‫نقوم‬ ‫البداية‬ ‫في‬ 87
  • 88.
    ‫زر‬ ‫على‬ ‫الضغط‬‫بعد‬ ‫والن‬Finish.. ‫بالتجهيز‬ ‫المشروع‬ ‫يبدأ‬ ‫سوف‬ 88
  • 89.
    .‫واللياوت‬ ‫الكتفتي‬ ..‫مفتوحين‬ ‫ملفين‬ ‫هناك‬ ‫إن‬ ‫نشاهد‬ ‫سوف‬ ‫المشروع‬ ‫فتح‬ ‫بعد‬ ‫الموجود‬ ‫النص‬ ‫بحذف‬ ‫نقوم‬ ‫اللياوت‬ ‫مع‬ ‫نبدأ‬Hello World‫لوحة‬ ‫من‬ ‫الضغط‬ ‫ثم‬ ‫عليه‬ ‫بالنقر‬ ‫وذلك‬ , ! ‫زر‬ ‫على‬ ‫المفاتيح‬Delete. ‫على‬ ‫بالضغط‬ ‫نقوم‬ ‫من‬ ‫ذلك‬ ‫بعد‬Text‫في‬ ‫كما‬ .‫اللياوت‬ ‫من‬ ‫السفل‬ ‫في‬ ‫اليسرى‬ ‫الزاوية‬ ‫في‬ ‫الموجودة‬ : ‫الصورة‬ ‫البرمجية‬ ‫باللغة‬ ‫او‬ ‫فيو‬ ‫التكست‬ ‫شاشة‬ ‫او‬ ‫النصي‬ ‫بالعرض‬ ‫ولكن‬ ‫النافذة‬ ‫هذه‬ ‫لنا‬ ‫فتح‬ ‫يتم‬ ‫لكي‬XML, : ‫منها‬ ‫التالية‬ ‫السطر‬ ‫بحذف‬ ‫نقوم‬ ‫معدودة‬ ‫أكواد‬ ‫لنا‬ ‫يظهر‬ ‫سوف‬ android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" 89
  • 90.
    ‫ولكن‬ ,‫داخلها‬ ‫والعناصر‬‫الشاشة‬ ‫اطراف‬ ‫بين‬ ‫ما‬ ‫هامش‬ ‫لجعل‬ ‫وذلك‬ , ‫الحشو‬ ‫خاصية‬ ‫هي‬ ‫السطر‬ ‫هذه‬ .‫حاليا‬ ‫نحتاجها‬ ‫ل‬ : ‫التالية‬ ‫الكلمة‬ ‫بتغيير‬ ‫كذلك‬ ‫ونقوم‬RelativeLayout‫إلى‬LinearLayout. : ‫التالي‬ ‫بالشكل‬ ‫الكود‬ ‫ليصبح‬ ‫على‬ ‫انقر‬ ‫السفل‬ ‫في‬ ‫اليسرى‬ ‫الزاوية‬ ‫من‬ ‫كذلك‬ , ‫فيو‬ ‫الديزاين‬ .. ‫العرض‬ ‫شاشة‬ ‫إلى‬ ‫نرجع‬ ‫الن‬ Desgin. ‫اسمها‬ ‫خاصية‬ ‫يوجد‬ ,‫الخصائص‬ ‫اليمين‬ ‫على‬ ‫السفل‬ ‫في‬ ‫يوجد‬ ,‫فيو‬ ‫الديزاين‬ ‫شاشة‬ ‫إلى‬ ‫الرجوع‬ ‫بعد‬ orientation‫واختر‬ ‫عليها‬ ‫اضغط‬vertical: ‫الصورة‬ ‫في‬ ‫كما‬ . 90
  • 91.
    .‫البعض‬ ‫بعضها‬ ‫فوق‬‫العناصر‬ ‫تصبح‬ ‫لكي‬ ,‫العمودي‬ ‫بالتجاه‬ ‫لياوت‬ ‫اللينر‬ ‫اتجاه‬ ‫بتحديد‬ ‫قمنا‬ ‫هكذا‬ ‫عنصر‬ ‫على‬ ‫بالضغط‬ ‫نقوم‬ ‫سوف‬ ‫والن‬Plain Text‫نوع‬ ‫من‬ ‫وهو‬EditText‫قم‬ ‫فقط‬ ‫عليه‬ ‫الضغط‬ ‫بعد‬ ‫عنصر‬ ‫على‬ ‫بالضغط‬ ‫نقوم‬ ‫ثم‬ ,‫اللياوت‬ ‫على‬ ‫بالنقر‬Button‫ليتم‬ ‫اللياوت‬ ‫على‬ ‫بالنقر‬ ‫نقوم‬ ‫وكذلك‬ .‫ادراجهم‬ : ‫التالي‬ ‫الشكل‬ ‫لدينا‬ ‫يخرج‬ ‫سوف‬ ‫ومن‬ ,‫السابقة‬ ‫الصورة‬ ‫في‬ ‫كما‬ ‫اللياوت‬ ‫عنصر‬ ‫على‬ ‫بالتحديد‬ ‫نبدأ‬ .‫منها‬ ‫كل‬ ‫بتنسيق‬ ‫نقوم‬ ‫سوف‬ ‫الن‬ ‫خاصية‬ ‫إلى‬ ‫نذهب‬ ,‫اليمين‬ ‫على‬ ‫الخصائص‬ ‫قائمة‬padding‫ثم‬all‫داخلها‬ ‫ونضع‬20dp. ‫عنصر‬ ‫على‬ ‫بالنقر‬ ‫نقوم‬ ‫ثم‬editText‫خاصية‬ ‫غلى‬ ‫نذهب‬ ‫الخصائص‬ ‫ومن‬ ,id‫داخلها‬ ‫ونضع‬put_name‫ثم‬ ‫خاصية‬hint."‫فضلك‬ ‫من‬ ‫هنا‬ ‫اسمك‬ ‫"اكتب‬ ‫داخلها‬ ‫ونضع‬ ‫الـ‬ ‫بتغير‬ ‫نقوم‬ ‫الخصائص‬ ‫ومن‬ ,‫الزر‬ ‫على‬ ‫الضغط‬ ‫او‬ ‫بتحديد‬ ‫نقوم‬ ‫والن‬id‫إلى‬enter‫خاصية‬ ‫عند‬ ‫وكذلك‬ . layout:gravity‫عند‬ ‫داخلها‬ ‫ثم‬center‫نختار‬horizontal‫خاصية‬ ‫وعند‬ .text. ‫بالدخول‬ ‫تفضل‬ ‫نكتب‬ 91
  • 92.
    : ‫هي‬ ‫والنتيجة‬ ‫الكود‬‫ونتيجة‬xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="20dp" tools:context=".MainActivity"> <EditText android:id="@+id/put_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="‫فضلك‬ ‫من‬ ‫هنا‬ ‫اسمك‬ ‫"اكتب‬ /> <Button android:id="@+id/enter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="‫بالدخول‬ ‫"تفضل‬ /> </LinearLayout> 92
  • 93.
    ‫لياوت‬ ‫إنشاء‬ ‫هو‬,‫الن‬ ‫بفعله‬ ‫نقوم‬ ‫سوف‬ ‫ما‬ .‫البرمجي‬ ‫للجانب‬ ‫ننتقل‬ ‫ثم‬ ‫من‬ ,‫أفضل‬ ‫اللياوت‬ ‫لنكمل‬ ‫والن‬ .‫بالدخول‬ ‫تفضل‬ ‫زر‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ‫إليها‬ ‫النتقال‬ ‫ليتم‬ ,‫آخرى‬ ‫مجلد‬ ‫على‬ ‫اليمن‬ ‫بالزر‬ ‫نضغط‬ ,‫أخرى‬ ‫لياوت‬ ‫بإنشاء‬ ‫لنقوم‬layout‫ثم‬ ‫ومن‬new‫ثم‬Layout resource file ‫حقل‬ ‫فقط‬ ‫هي‬ ‫كما‬ ‫الخيارات‬ ‫اترك‬ ,‫صغيرة‬ ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ‫الن‬File name‫اللياوت‬ ‫اسم‬ ‫فيه‬ ‫ضع‬ : ‫التطبيق‬ ‫هذا‬ ‫في‬ ‫نحن‬ ‫نضع‬ ‫وسوف‬second_activity. : ‫اثنين‬ ‫لياوت‬ ‫الن‬ ‫لدينا‬ .‫الثانية‬ ‫اللياوت‬ ‫بفتح‬ ‫نقوم‬ ‫سوف‬ ‫الن‬ ,‫بالكامل‬ ‫بتجهيزها‬ ‫قمنا‬ ‫الولى‬ ‫اللياوت‬ ‫عنصر‬ ‫بوضع‬ ‫نقوم‬ ‫سوف‬Plain TextView‫نوع‬ ‫من‬TextView‫الخصائص‬ ‫بتعديل‬ ‫لنقوم‬ ‫عليه‬ ‫ونضغط‬ , .‫به‬ ‫الخاصة‬ ‫الـ‬ ‫تعديل‬ ‫البداية‬ ‫في‬ ‫نقوم‬ ‫الخصائص‬ ‫قائمة‬ ‫من‬id‫إلى‬welcome‫خاصية‬ ‫ثم‬ .layout:margin‫من‬ ‫ثم‬ ‫داخلها‬all‫القيمة‬ ‫ونضع‬40dp‫الخاصية‬ ‫كذلك‬ .layout:gravity‫عند‬ ‫داخلها‬ ‫ثم‬center‫نختار‬horizontal. ‫الخاصية‬ ‫و‬textColor# ‫نضع‬f00‫الخاصية‬ ‫وعند‬textSize‫نضع‬25sp. : ‫هي‬ ‫النتيجة‬ 93
  • 94.
    ‫والكود‬xml: ‫الثانية‬ ‫للياوت‬ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="NewText" android:id="@+id/welcome" android:layout_gravity="center_horizontal" android:layout_margin="40dp" android:textColor="#f00" android:textSize="25sp" /> </LinearLayout> ‫الجافا‬ ‫بلغة‬ ‫البرمجي‬ ‫للجزء‬ ‫نذهب‬ ‫سوف‬ .. ‫اللياوت‬ ‫من‬ ‫أنتهينا‬ ‫نكون‬ ‫هكذا‬java. ‫مجلد‬ ‫من‬ ,‫الثانية‬ ‫الكتفتي‬ ‫بإنشاء‬ ‫أول‬ ‫نقوم‬ ‫سوف‬java‫اليمن‬ ‫بالزر‬ ‫عليها‬ ‫واضغط‬ ‫الحزمة‬ ‫على‬ ‫حدد‬ ‫واختر‬new‫ثم‬Java Class. : ‫التالي‬ ‫السم‬ ‫نضع‬ ‫صغيرة‬ ‫نافذة‬ ‫تخرج‬ ‫سوف‬Second_Activity .‫للترتيب‬ ‫ولكن‬ ‫بالتسمية‬ ‫مشكلة‬ ‫ل‬ ,‫كبير‬ ‫حرف‬ ‫اول‬ ‫ولكن‬ ‫اللياوت‬ ‫اسم‬ ‫مثل‬ ‫تماما‬ : ‫الشكل‬ ‫بهذا‬ ‫الكلس‬ ‫لنا‬ ‫يظهر‬ ‫سوف‬ package com.andrody.welcome; /** * Created by Abboudi_Aliwi on 11/9/2015. */ public class Second_Activity { } .‫الثانية‬ ‫باللياوت‬ ‫ربطه‬ ‫ويتم‬ ‫اكتفتي‬ ‫ليصبح‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫داخله‬ ‫وضع‬ ‫يجب‬ ‫الن‬ ,‫تماما‬ ‫فارغ‬ 94
  • 95.
    ‫يعرفها‬ ‫ل‬ ‫ولمن‬,‫جيد‬ ‫هذا‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫داخله‬ ‫ويضع‬ ‫اكتفتي‬ ‫وجعله‬ ‫الكلس‬ ‫تعديل‬ ‫كيفية‬ ‫حفظ‬ ‫من‬ ‫واسمه‬ ‫الرئيسية‬ ‫الكتفتي‬ ‫إلى‬ ‫يذهب‬MainActivity. : ‫التالي‬ ‫بالشكل‬ ‫الكود‬ ‫بنسخ‬ ‫نقوم‬ ‫داخله‬ ‫ومن‬ : ‫الصورة‬ ‫في‬ ‫كما‬ ,‫الثاني‬ ‫الكلس‬ ‫في‬ ‫الكود‬ ‫بلصق‬ ‫نقوم‬ ‫و‬ 95
  • 96.
    ‫السطر‬ ‫بتغيير‬ ‫نقوم‬‫سوف‬ ‫لذلك‬ ,‫الرئيسية‬ ‫باللياوت‬ ‫مرتبطة‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫إن‬ ‫لحظ‬ ,‫اللصق‬ ‫بعد‬ ‫الن‬ ‫رقم‬14: ‫من‬ setContentView(R.layout.activity_main); : ‫الثانية‬ ‫اللياوت‬ ‫إلى‬ setContentView(R.layout.second_activity); : ‫الن‬ ‫لدينا‬ ‫ما‬ ‫نراجع‬ ,‫البرمجية‬ ‫الوامر‬ ‫بإضافة‬ ‫نقوم‬ ‫أن‬ ‫قبل‬ ,‫تمام‬ ‫لدينا‬2+ ‫اكتفتي‬2.‫لياوت‬ .‫ببعضها‬ ‫ربطها‬ ‫وتم‬ .‫اللياوت‬ ‫من‬ ‫النتهاء‬ ‫تم‬ ‫كذلك‬ .‫لبرمجتها‬ ‫الكتفتي‬ ‫ملفات‬ ‫لدينا‬ ‫باقي‬ : ‫الول‬ ‫الكتفتي‬ ‫مع‬ ‫الن‬ ‫نبدأ‬ ‫سوف‬ ‫حسنا‬MainActivity ‫وربطها‬ ,‫زر‬ + ‫نصي‬ ‫حقل‬ ‫لدينا‬ ‫إن‬ ‫الكتفتي‬ ‫إخبار‬ , ‫هو‬ ‫به‬ ‫نقوم‬ ‫سوف‬ ‫ما‬ ‫البداية‬ ‫في‬ ‫داخله‬ ‫من‬ ‫طريق‬ ‫عن‬ ‫اللياوت‬ ‫داخل‬ ‫من‬ ‫بالعناصر‬id‫الثانية‬ ‫الكتفتي‬ ‫إلى‬ ‫بنا‬ ‫بالنتقال‬ ‫قم‬ ‫للزر‬ ‫أمر‬ ‫إعطاء‬ ‫وكذلك‬ .‫النصي‬ ‫الحقل‬ ‫بداخل‬ ‫المستخدم‬ ‫وضعه‬ ‫الذي‬ ‫النص‬ ‫معك‬ ‫وخذ‬ , ‫نصي‬ ‫حقل‬ ‫نوع‬ ‫من‬ ‫ومتغير‬ ‫زر‬ ‫نوع‬ ‫من‬ ‫متغير‬ ‫نضع‬ ‫سوف‬ ,‫المتغيرات‬ ‫بوضع‬ ‫نقوم‬ ‫كيف‬ ‫سابقا‬ ‫تعلمنا‬ ‫كما‬ : ‫التالي‬ ‫نضع‬ .‫الكلس‬ ‫وبداخل‬ ‫الدوال‬ ‫خارج‬ ‫نضعها‬ EditText your_name; Button go_to; 96
  • 97.
    : ‫التالي‬ ‫بالشكل‬‫اللياوت‬ ‫داخل‬ ‫بالعناصر‬ ‫المتغيرات‬ ‫هذه‬ ‫بربط‬ ‫نقوم‬ ‫سوف‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫بداخل‬ ‫والن‬ your_name = (EditText)findViewById(R.id.put_name); go_to = (Button)findViewById(R.id.enter); ‫أوامر‬ ‫بتنفيذ‬ ‫ليقوم‬ ‫عليه‬ ‫الضغط‬ ‫تم‬ ‫حال‬ ‫في‬ .. ‫للزر‬ ‫كليك‬ ‫اون‬ ‫دالة‬ ‫بإنشاء‬ ‫نقوم‬ ,‫الربط‬ ‫عملية‬ ‫أسفل‬ ‫و‬ : ‫الزر‬ ‫لبرمجة‬ ‫الكود‬ ‫هذا‬ .‫معينة‬ go_to.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // ‫الزر‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ‫بها‬ ‫القيام‬ ‫نريد‬ ‫التي‬ ‫البرمجية‬ ‫الوامر‬ ‫نضع‬ ‫هنا‬ } }); : ‫التالية‬ ‫الوامر‬ ‫بوضع‬ ‫نقوم‬ ‫الن‬ ‫و‬ Intent i = new Intent(MainActivity.this,Second_Activity.class); i.putExtra("text", your_name.getText().toString()); startActivity(i); ‫انتنت‬ ‫أمر‬ ‫بإعطاء‬ ‫قمنا‬Intent‫في‬ ‫أكبر‬ ‫بشكل‬ ‫النتنت‬ ‫على‬ ‫تتعرف‬ ‫سوف‬ ,‫انتقال‬ ‫بمعنى‬ ‫وبالندرويد‬ .‫مستقل‬ ‫درس‬ ‫اسمه‬ ‫متغير‬ ‫النتنت‬ ‫هذا‬i‫كتبنا‬ ‫المثال‬ ‫حسب‬ ‫ولكن‬ ,‫تريد‬ ‫ما‬ ‫كتابة‬ ‫تستطيع‬i‫جديد‬ ‫انتنت‬ ‫إنه‬ ‫عرفنا‬ ‫ثم‬ ‫فيها‬ ‫نحن‬ ‫التي‬ ‫الكتفتي‬ ‫أو‬ ‫المكان‬ ‫من‬ ‫أنتقال‬ ‫عملية‬ ‫وداخله‬MainActivity.this‫الثانية‬ ‫الكتفتي‬ ‫إلى‬ Second_Activity.class‫النتنت‬ ‫أخبرنا‬ ‫و‬ .i‫بداخل‬ ‫الموجود‬ ‫النص‬ ‫قيمة‬ ‫وهي‬ ,‫قيمة‬ ‫معه‬ ‫يأخذ‬ ‫إن‬ your_name.‫النتنت‬ ‫هذا‬ ‫لتنفيذ‬ ‫الزر‬ ‫بداخل‬ ‫أمر‬ ‫أعطينا‬ ‫وبعدها‬ ,‫سترنج‬ ‫إلى‬ ‫وتحويلها‬ ‫سوف‬ ‫بعدها‬ ‫من‬ ‫ثم‬ ,‫الثانية‬ ‫الكتفتي‬ ‫إلى‬ ‫ننتقل‬ ‫والن‬ ,‫الرئيسية‬ ‫الكتفتي‬ ‫الن‬ ‫من‬ ‫أنتهينا‬ ‫نكون‬ ‫هكذا‬ .‫النتهاء‬ ‫بعد‬ ‫كاملة‬ ‫والثانية‬ ‫الولى‬ ‫الكتفتي‬ ‫أكواد‬ ‫لكم‬ ‫أطرح‬ : ‫الثانية‬ ‫الكتفتي‬ ‫لـ‬ ‫بالنسبة‬Second_Activity. ‫في‬ ‫وضعه‬ ‫ثم‬ ‫الولى‬ ‫الكتفتي‬ ‫من‬ ‫النص‬ ‫يستقبل‬ ‫ويجعله‬ ,‫بداخله‬ ‫النص‬ ‫تغيير‬ ,‫فقط‬ ‫به‬ ‫نقوم‬ ‫سوف‬ ‫ما‬ .‫فيو‬ ‫التكست‬ ‫هذا‬ 97
  • 98.
    ‫الون‬ ‫دالة‬ ‫في‬‫مشكلة‬ ‫ل‬ ,‫كثيرة‬ ‫ودوال‬ ‫برمجية‬ ‫أوامر‬ ‫لدينا‬ ‫ليس‬ ‫إنه‬ ‫وبما‬ ,‫الثانية‬ ‫الكتفتي‬ ‫بفتح‬ ‫نقوم‬ .‫الجديد‬ ‫النص‬ ‫ليستقبل‬ ‫أمر‬ ‫اعطائه‬ ‫ثم‬ ‫ومن‬ ‫وربطه‬ ‫النص‬ ‫بتعريف‬ ‫نقوم‬ ‫كريت‬ : ‫التالي‬ ‫ضع‬ ‫كريت‬ ‫الون‬ ‫دالة‬ ‫في‬ TextView Welcome = (TextView) findViewById(R.id.welcome); ‫للمراجعة‬Welcome‫نوع‬ ‫من‬ ‫المتغير‬ ‫هو‬TextView‫المعرف‬ ‫والعنصر‬ ,id‫هو‬ ‫به‬ ‫الخاص‬welcome. ‫بوضع‬ ‫نقوم‬ ‫سوف‬ ‫الن‬ ‫و‬set: ‫التالي‬ ‫بالكود‬ ‫سابقا‬ ‫ذكرنا‬ ‫كما‬ ‫لتعديله‬ ‫للنص‬ Welcome.setText("‫مرحبا‬ "+getIntent().getStringExtra("text")); ‫استخدمنا‬setText‫الجديد‬ ‫البرمجي‬ ‫بإسمه‬ ‫للنص‬Welcome,‫داخله‬ ‫الجديد‬ ‫النص‬ ‫وجعلنا‬Welcome .‫الولى‬ ‫الكتفتي‬ ‫من‬ ‫معه‬ ‫النتنت‬ ‫جلبه‬ ‫الذي‬ ‫النص‬ + ‫سوف‬ ‫الستخدام‬ ‫خلل‬ ‫ومن‬ ‫كثيرا‬ ‫معك‬ ‫تتكرر‬ ‫وسوف‬ ‫سهلة‬ ‫لنها‬ ‫سبق‬ ‫ما‬ ‫بشرح‬ ‫أتعمق‬ ‫لم‬ .‫تستخدمها‬ : ‫الرئيسية‬ ‫الكتيفتي‬ ‫كود‬MainActivity package com.andrody.welcome; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { EditText your_name; Button go_to; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); your_name = (EditText)findViewById(R.id.put_name); go_to = (Button)findViewById(R.id.enter); go_to.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,Second_Activity.class); i.putExtra("text", your_name.getText().toString()); startActivity(i); } }); } } 98
  • 99.
    : ‫الثانية‬ ‫الكتفتي‬‫كود‬ ‫وأما‬Second_Activity package com.andrody.welcome; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; /** * Created by Abboudi_Aliwi on 11/9/2015. */ public class Second_Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_activity); TextView Welcome = (TextView) findViewById(R.id.welcome); Welcome.setText(" ‫مرحبا‬ "+getIntent().getStringExtra("text")); } } : ‫التطبيق‬ ‫نتيجة‬ ‫و‬ 99
  • 100.
    ‫الندرويد‬ ‫تطبيق‬ ‫تنسيق‬ .‫للتطبيق‬‫جمالية‬ ‫أكثر‬ ‫لمسة‬ ‫لعطاء‬ ,‫وصغيرة‬ ‫بسيطة‬ ‫طرق‬ ‫نأخذ‬ ‫سوف‬ ,‫ال‬ ‫شاء‬ ‫إن‬ ‫الدرس‬ ‫هذا‬ ‫في‬ : ‫طويل‬ ‫النص‬ # ‫ما‬ ‫اختر‬ ,‫خيارات‬ ‫بعدة‬ ‫هنا‬ ‫أساعدك‬ ‫سوف‬ ,‫تطبيقك‬ ‫في‬ ‫إضافتها‬ ‫وتريد‬ ,‫كثيرة‬ ‫نصوص‬ ‫لديك‬ ‫كان‬ ‫إذا‬ ‫داخل‬ ,‫منه‬ ‫سطر‬ ‫أو‬ ‫فقرة‬ ‫كل‬ ‫ضع‬ .‫مهم‬ ‫جدا‬ ‫النص‬ ‫كان‬ ‫إذا‬ ,‫منها‬ ‫يناسبك‬TextView‫من‬ ‫برمجيا‬ ‫او‬ ‫الجافا‬String‫تشفير‬ ‫فك‬ ‫في‬ ‫صعب‬ ‫يجد‬ ‫سوف‬ ‫المحتوى‬ ‫سرقة‬ ‫أردات‬ ‫شخص‬ ‫حال‬ ‫في‬ ,‫سطر‬ ‫لكل‬ ‫داخل‬ ‫سطر‬ ‫كل‬ ‫يجد‬ ‫سوف‬ ‫استطاع‬ ‫وإن‬ ‫التطبيق‬TextView‫سوف‬ ‫لذلك‬ ‫مختلفة‬ ‫خصائص‬ ‫منها‬ ‫ولكل‬ ‫سوف‬ ‫منفصلة‬ ‫منها‬ ‫واحد‬ ‫كل‬ ‫كانت‬ ‫إذا‬ ,‫النص‬ ‫لتنسيق‬ ‫إما‬ ,‫الكثيرة‬ ‫النصوص‬ ‫جمع‬ ‫في‬ ‫شديد‬ ‫ملل‬ ‫يجد‬ ‫الطويلة‬ ‫النصوص‬ ‫وضع‬ ‫لسهولة‬ ‫لذلك‬ ,‫منها‬ ‫واحد‬ ‫على‬ ‫بالتعديل‬ ‫تحتاج‬ ‫لنك‬ ,‫التنسيق‬ ‫في‬ ‫صعوبة‬ ‫تجد‬ ) ‫علمة‬ ‫فقرة‬ ‫كل‬ ‫بعد‬ ‫أستخدم‬n‫ملفات‬ ‫في‬ (xml.‫متتالية‬ ‫وليست‬ ‫فقرات‬ ‫في‬ ‫النصوص‬ ‫لتجعل‬ . ‫من‬ ‫عنصر‬ ‫او‬ ‫اداة‬ ‫استخدام‬ ‫عليك‬ ‫يجب‬ ‫لذلك‬ ,‫النص‬ ‫كامل‬ ‫ظهور‬ ‫عدم‬ ‫من‬ ‫يعاني‬ ‫المبتدئين‬ ‫أغلب‬ ‫كذلك‬ ‫نوع‬ScrollView.‫والعلى‬ ‫للسفل‬ ‫التمرير‬ ‫بخاصية‬ ‫بأكلمه‬ ‫النص‬ ‫عرض‬ ‫ليتم‬ : ‫إلخ‬ ‫ايميلت‬ - ‫أرقام‬ ‫أو‬ ‫روابط‬ ‫على‬ ‫يحتوي‬ ‫نص‬ # .‫إلخ‬ ‫خرائط‬ ‫احداثيات‬ ‫أو‬ ,‫إيميلت‬ ‫أو‬ ,‫انترنت‬ ‫روابط‬ ‫أو‬ ,‫هواتف‬ ‫أرقام‬ ‫على‬ ‫يحتوي‬ ‫نص‬ ‫لديك‬ ‫كان‬ ‫إذا‬ : ‫للنص‬ ‫التالية‬ ‫الخاصية‬ ‫استخدم‬ android:autoLink="all" .‫عليها‬ ‫الضغط‬ ‫للمستخدم‬ ‫ليسمح‬ : ‫النصي‬ ‫الحقل‬ ‫تعبئة‬ ‫على‬ ‫المستخدم‬ ‫اجبار‬ # ‫نصي‬ ‫فراغ‬ ‫او‬ ‫نصي‬ ‫حقل‬ ‫لديك‬ ‫يوجد‬ ‫كان‬ ‫إذا‬EditText‫ول‬ ,‫اسمه‬ ‫ادخال‬ ‫المستخدم‬ ‫من‬ ‫مثل‬ ‫وتريد‬ ‫شرط‬ ‫تستخدم‬ ,‫الحقل‬ ‫هذا‬ ‫مل‬ ‫دون‬ ‫المتابعة‬ ‫على‬ ‫الضغط‬ ‫يستطيع‬if‫الحرف‬ ‫عدد‬ ‫تحديد‬ ‫وتستطيع‬ , .‫إلخ‬ ‫كتابتها‬ ‫المستخدم‬ ‫من‬ ‫تريد‬ ‫التي‬ ‫الكلمة‬ ‫او‬ ‫السم‬ ‫أو‬ ,‫تريدها‬ ‫التي‬ ‫الحقل‬ ‫من‬ ‫التحقق‬ ‫شرط‬ ‫نستطيع‬ ,‫داخله‬ ‫شيء‬ ‫إي‬ ‫كتابة‬ ‫يجب‬ ‫تماما‬ ‫فاضي‬ ‫يكون‬ ‫ل‬ ‫إن‬ ‫هنا‬ ‫يهمنا‬ ‫ما‬ 100
  • 101.
    : ‫التالي‬ ‫بالشكل‬.‫فارغ‬ ‫يكون‬ ‫ل‬ ‫أن‬ if(your_name.getText().toString().equals("")){ // ‫فارغ‬ ‫الحقل‬ ‫كان‬ ‫إذا‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫الوامر‬ }else { // ‫فارغا‬ ‫الحقل‬ ‫يكن‬ ‫لم‬ ‫إذا‬ ‫تنفيذها‬ ‫يتم‬ ‫التي‬ ‫الوامر‬ } ‫أن‬ ‫علما‬your_name.‫كذلك‬ ‫اخرى‬ ‫طرق‬ ‫ويوجد‬ .‫النصي‬ ‫بالحقل‬ ‫الخاص‬ ‫المتغير‬ ‫هو‬ : ‫مصغرة‬ ‫تنبيه‬ ‫رسالة‬ ‫او‬ ‫توست‬ ‫رسالة‬ ‫إظهار‬ # .‫الشاشة‬ ‫أسفل‬ ‫تكون‬ ‫ما‬ ‫وغالبا‬ ,‫مؤقت‬ ‫بشكل‬ ‫الشاشة‬ ‫على‬ ‫تظهر‬ ‫التي‬ ‫هي‬ ‫التوست‬ ‫رسالة‬ ‫كتابة‬ ‫فقط‬ ‫سريع‬ ‫بشكل‬ ‫إنشائها‬ ‫تستطيع‬Toast‫ستوديو‬ ‫الندرويد‬ ‫في‬ ,‫الجافا‬ ‫البرمجية‬ ‫الكواد‬ ‫داخل‬ ‫اقتراح‬ ‫يعطيك‬ ‫وسوف‬Create a new Toast.‫تلقائي‬ ‫بشكل‬ ‫انشائها‬ ‫يتم‬ ‫وسوف‬ ‫عليه‬ ‫اضغط‬ : ‫التالي‬ ‫بالشكل‬ ‫وهي‬ Toast.makeText(MainActivity.this, "‫هنا‬ ‫تريدها‬ ‫التي‬ ‫الرسالة‬ ‫,"اكتب‬ Toast.LENGTH_SHORT).show(); ‫إن‬ ‫علما‬MainActivity‫و‬ ,‫الن‬ ‫فيها‬ ‫نحن‬ ‫التي‬ ‫الكتفتي‬ ‫اسم‬ ‫هو‬LENGTH_SHORT‫التي‬ ‫الزمنية‬ ‫المدة‬ ‫هي‬ ‫و‬ ‫التوست‬ ‫ظهور‬ ‫مدة‬ ‫بمعنى‬ ‫للختفاء‬ ‫التوست‬ ‫يحتاجها‬LENGTH_SHORT) ‫الثواني‬ ‫من‬ =2‫وأما‬ ( LENGTH_LONG) ‫الثواني‬ ‫من‬ =3.5.‫إلخ‬ ‫أطول‬ ‫لمدة‬ ‫الرسالة‬ ‫إظهار‬ ‫تستطيع‬ ‫اخرى‬ ‫وبطرق‬ . ( : ‫عليها‬ ‫لتتعرف‬ ‫التوست‬ ‫هذه‬ ‫من‬ ‫وصورة‬ 101
  • 102.
    ‫ملحظة‬ ‫تنبيه‬ ‫نافذة‬‫إظهار‬ #alert dialog: ‫؟‬ ‫التطبيق‬ ‫من‬ ‫الخروج‬ ‫من‬ ‫متأكد‬ ‫هل‬ ,‫استخدامها‬ ‫أمثلة‬ ‫من‬ ,‫النافذة‬ ‫هذه‬ ‫على‬ ‫تحتوي‬ ‫كثيرة‬ ‫تطبيقات‬ .‫إلخ‬ ‫ملحظة‬ ! .. ‫يوجد‬ ‫تحذير‬ ‫؟‬ ‫من‬ ‫متأكد‬ ‫هل‬ ‫؟‬ .. ‫تحميل‬ ‫تريد‬ ‫هل‬ : ‫الناقذة‬ ‫هذه‬ ‫على‬ ‫للتعرف‬ ‫صورة‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ,‫اكتفتي‬ ‫تشغيل‬ ‫بعد‬ ,‫خروجها‬ ‫تريد‬ ‫أنت‬ ‫مخير‬ ‫أنت‬ ‫لذلك‬ ,‫لظهورها‬ ‫أمر‬ ‫عن‬ ‫عبارة‬ ‫هي‬ .‫إلخ‬ ‫الزر‬ : ‫بها‬ ‫الخاص‬ ‫الكود‬ AlertDialog.Builder builder = new AlertDialog.Builder( MainActivity.this); builder.setTitle(" ‫التطبيق‬ ‫إغل ق‬"(;//‫العنوان‬ builder.setMessage(" ‫التطبيق‬ ‫من‬ ‫خروج‬ ‫من‬ ‫متأكد‬ ‫هل‬"):(;//‫المحتوى‬ builder.setPositiveButton(" ‫نعم‬",//‫الول‬ ‫الزر‬ new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // ‫الاول‬ ‫الزر‬ ‫على‬ ‫الضغط‬ ‫بعد‬ ‫تحدث‬ ‫التي‬ ‫الوامر‬ } }); builder.setNegativeButton(" ‫ل‬",//‫الثاني‬ ‫الزر‬ new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // ‫الثاني‬ ‫الزر‬ ‫اوامر‬ } }); builder.show();} ‫الزرار‬ ‫زيادة‬ ‫او‬ ‫تقليل‬ ‫وتستطيع‬ ,‫والزرار‬ ‫والمحتوى‬ ‫العنوان‬ ,‫راحتك‬ ‫على‬ ‫الكود‬ ‫بتعديل‬ ‫قم‬1,3. 102
  • 103.
    ‫الول‬ ‫المشروع‬2‫اللغات‬ ‫متعدد‬.. ‫يا‬ ,‫ا‬‫مرحب‬ - ‫الخطوات‬ ‫ببعض‬ ‫نقوم‬ ‫وسوف‬ .. ‫يا‬ ‫مرحبا‬ ,‫السابق‬ ‫الول‬ ‫مشروعنا‬ ‫تطوير‬ ,‫الدرس‬ ‫هذا‬ ‫في‬ ‫نكمل‬ ‫رح‬ ‫شيء‬ ‫أقل‬ ‫اسم‬ ‫وضع‬ ‫على‬ ‫المستخدم‬ ‫إجبار‬ ‫منها‬3‫متعدد‬ ‫التطبيق‬ ‫يكون‬ ‫أن‬ ‫إلى‬ ‫بالضافة‬ ,‫احرف‬ .‫النجليزية‬ ‫هي‬ ‫الساسية‬ ‫اللغة‬ ‫لن‬ ,‫العربية‬ ‫اللغة‬ ‫ونضيف‬ ‫النجليزية‬ ‫باللغة‬ ‫نجعله‬ ‫وسوف‬ ‫اللغات‬ ‫الرئيسية‬ ‫الكتفتي‬ ‫إلى‬ ‫رجعنا‬ ‫لو‬ ‫البداية‬ ‫في‬MainActivity‫تنفيذها‬ ‫يتم‬ ‫أوامر‬ ‫وداخله‬ ‫زر‬ ‫هناك‬ ‫إن‬ ‫نجد‬ , ‫ثم‬ ,‫فارغا‬ ‫ليس‬ ‫الحقل‬ ‫إن‬ ‫أول‬ ‫التحقق‬ ‫يتم‬ ‫أي‬ ,‫شرط‬ ‫بداخل‬ ‫الوامر‬ ‫هذه‬ ‫نجعل‬ ‫سوف‬ ,‫عليه‬ ‫الضغط‬ ‫بعد‬ .‫الثانية‬ ‫للكتفتي‬ ‫النتقال‬ ‫وهو‬ ‫المر‬ ‫هذا‬ ‫تنفيذ‬ ‫ليتم‬ ‫ثلث‬ ‫من‬ ‫أكثر‬ ‫داخله‬ ‫الحرف‬ ‫أن‬ ‫يتأكد‬ : ‫كانت‬ ‫الزر‬ ‫برمجة‬ go_to.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,Second_Activity.class); i.putExtra("text", your_name.getText().toString()); startActivity(i); } }); : ‫هكذا‬ ‫نجعلها‬ ‫وسوف‬ go_to.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(your_name.getText().toString().isEmpty()){ Toast.makeText(MainActivity.this, "‫اسمك‬ ‫أكتب‬ ‫فضلك‬ ‫,"من‬ Toast.LENGTH_SHORT).show(); }else if (your_name.getText().toString().trim().length() < 3){ Toast.makeText(MainActivity.this, "‫صحيح‬ ‫اسم‬ ‫ادخال‬ ‫يجب‬ ‫,"عفوا‬ Toast.LENGTH_SHORT).show(); }else { Intent i = new Intent(MainActivity.this,Second_Activity.class); i.putExtra("text", your_name.getText().toString()); startActivity(i); } } }); 103
  • 104.
    : ,‫ا‬‫مع‬ ‫السابق‬‫الكود‬ ‫لنراجع‬ .. ‫فضلك‬ ‫من‬ ‫التوست‬ ‫رسالة‬ ‫بإظهار‬ ‫قم‬ (‫فارغا‬ ‫الحقل‬ ‫بداخل‬ ‫النص‬ ‫كان‬ ) ,‫إذا‬ ‫البداية‬ ‫في‬ .‫وتوقف‬ ,‫إلخ‬ ‫عدد‬ ‫الحقل‬ ‫بداخل‬ ‫النص‬ ‫كان‬ ) ‫إذا‬ ,‫الثاني‬ ‫الشرط‬ ‫إلى‬ ‫إنتقل‬ ,‫ا‬‫فارغ‬ ‫يكن‬ ‫لم‬ ‫حال‬ ‫في‬ ‫من‬ ‫أقل‬ ‫داخله‬ ‫الحرف‬3.‫وتوقف‬ .‫إلخ‬ .. ‫إدخال‬ ‫يجب‬ ,‫ا‬‫عفو‬ ‫التوست‬ ‫رسالة‬ ‫إظهر‬ ( ‫أحرف‬ ‫من‬ ‫أكثر‬ ‫الحرف‬ ‫وعدد‬ ,‫ا‬‫فارغ‬ ‫ليس‬ ‫الحقل‬ ‫إن‬ ‫بمعنى‬ ,‫السابقين‬ ‫الشرطين‬ ‫تخطى‬ ‫إذا‬3, .‫الثانية‬ ‫الكتفتي‬ ‫الى‬ ‫النتقال‬ ‫وهي‬ ‫طلبناها‬ ‫التي‬ ‫الوامر‬ ‫ينفذ‬ if (your_name.getText().toString().isEmpty()){ Toast.makeText(MainActivity.this, "‫اسمك‬ ‫أكتب‬ ‫فضلك‬ ‫,"من‬ Toast.LENGTH_SHORT).show(); }else if (your_name.getText().toString().trim().length() < 3){ Toast.makeText(MainActivity.this, "‫صحيح‬ ‫اسم‬ ‫ادخال‬ ‫يجب‬ ‫,"عفوا‬ Toast.LENGTH_SHORT).show(); }else { Intent i = new Intent(MainActivity.this,Second_Activity.class); i.putExtra("text", your_name.getText().toString()); startActivity(i); } ‫كان‬ ‫إذا‬ ‫الشرط‬ ‫بمعنى‬ .‫عكسه‬ ‫بمعنى‬ ,‫الشرط‬ ‫قبل‬ ! ‫التعجب‬ ‫علمة‬ ‫بوضع‬ ‫الشرط‬ ‫عكس‬ ‫تستطيع‬ 104
  • 105.
    .‫فارغا‬ ‫الحقل‬ ‫يكن‬‫لم‬ ‫إذا‬ ‫معناها‬ ‫الشرط‬ ‫قبل‬ ‫التعجب‬ ‫علمة‬ ,‫فارغ‬ ‫الحقل‬ ‫اللغة‬ ‫وتكون‬ ,‫له‬ ‫العربية‬ ‫اللغة‬ ‫نضيف‬ ‫سوف‬ ,‫لغة‬ ‫من‬ ‫أكثر‬ ‫التطبيق‬ ‫جعل‬ ‫لكيفية‬ ‫ننتقل‬ ‫رح‬ ‫والن‬ .‫للعربية‬ ‫النصوص‬ ‫تتغير‬ ‫سوف‬ ,‫عربية‬ ‫الجهاز‬ ‫لغة‬ ‫كانت‬ ‫لو‬ ‫ولكن‬ ‫الجهزة‬ ‫لجميع‬ ‫الفتراضية‬ ‫النجليزية‬ ‫فيجب‬ ‫الجافا‬ ‫في‬ ‫النصوص‬ ‫أما‬ .‫النجليزية‬ ‫للغة‬ ‫النصوص‬ ‫جميع‬ ‫وتغيير‬ ‫للتطبيق‬ ‫نرجع‬ ‫رح‬ ‫البداية‬ ‫في‬ ‫ملف‬ ‫إلى‬ ‫إضافتها‬strings.xml. : ‫داخله‬ ‫ما‬ .‫الملف‬ ‫هذا‬ ‫بفتح‬ ‫نقوم‬ <resources> <string name="app_name">Welcome</string> </resources> app_name.‫المستخدم‬ ‫جهاز‬ ‫على‬ ‫يظهر‬ ‫الذي‬ ‫التطبيق‬ ‫اسم‬ / : ‫كالتالي‬ ‫وهي‬ .‫الطريقة‬ ‫بنفس‬ ‫هنا‬ ‫النصوص‬ ‫جميع‬ ‫بإضافة‬ ‫نقوم‬ ‫سوف‬ <resources> <string name="app_name">Welcome App</string> <string name="text1">Write your name here please</string> <string name="text2">log in</string> <string name="text3">Please enter your name</string> <string name="text4">Please enter a valid name</string> <string name="text5">Welcome</string> </resources> .‫يظهر‬ ‫سوف‬ ‫الذي‬ ‫النص‬ ‫فهي‬ ‫القيمة‬ ‫وأما‬ ,‫اختيارها‬ ‫حرية‬ ‫لك‬ ‫السماء‬ ‫أو‬ ‫المتغيرات‬ ‫استخدامنا‬ ‫أين‬ ‫تتعرف‬ ‫سوف‬ ‫ومنها‬ ,‫بالكامل‬ ‫الدرس‬ ‫أكواد‬ ‫لكم‬ ‫أعرض‬ ‫سوف‬ ‫الدرس‬ ‫نهاية‬ ‫بعد‬ ‫هذه‬ ‫المتغيرات‬text1,text2.‫إلخ‬ ‫ملفات‬ ‫بداخل‬xml: ‫التالية‬ ‫بالصورة‬ @string/text1 ‫ملفات‬ ‫بداخل‬java: ‫التالية‬ ‫بالصورة‬ getString(R.string.text3) 105
  • 106.
    ‫ملف‬ ‫بفتح‬ ‫نقوم‬,‫العربية‬ ‫اللغة‬ ‫بإضافة‬ ‫نقوم‬ ‫سوف‬ ‫والن‬styles.xml‫تنبيه‬ ‫شريط‬ ‫يوجد‬ ‫العلى‬ ‫وفي‬ , ‫على‬ ‫اضغط‬ ,‫صغير‬open editor. : ‫نافذة‬ ‫لك‬ ‫تفتح‬ ‫سوف‬ .‫العربية‬ ‫اللغة‬ ‫واختر‬ ‫عليها‬ ‫بالنقر‬ ‫قم‬ ‫صغيرة‬ ‫ارضية‬ ‫كرة‬ ‫صورة‬ ,‫يمين‬ ‫العلى‬ ‫في‬ ‫داخلها‬ ‫يوجد‬ 106
  • 107.
    : ‫الشكل‬ ‫بهذا‬,‫العربية‬ ‫باللغة‬ ‫جديد‬ ‫من‬ ‫الكلمات‬ ‫بكتابة‬ ‫قم‬ ,‫العربية‬ ‫للغة‬ ‫جديد‬ ‫عمود‬ ‫إضافة‬ ‫يتم‬ ‫سوف‬ ‫ملف‬ ‫أن‬ ‫تلحظ‬ ‫سوف‬ .. ‫انتهينا‬ ‫هكذا‬ ‫فقط‬styles.xml: ‫المشروع‬ ‫في‬ ‫لديك‬ ‫أثنين‬ ‫أصبح‬ . ‫النجليزية‬ ‫للغة‬ ‫والخر‬ ‫العربية‬ ‫للغة‬ ‫منها‬ ‫واحد‬ : ‫النجليزية‬ ‫لغته‬ ‫وآخر‬ ‫العربية‬ ‫لغته‬ ‫جهاز‬ ‫على‬ ‫النتيجة‬ ‫أعرض‬ ‫سوف‬ ‫والن‬ 107
  • 108.
  • 109.
  • 110.
    ‫لكم‬ ‫أضع‬ ‫أن‬‫الفضل‬ ‫من‬ ‫لذلك‬ ,‫زيادة‬ ‫صفحات‬ ‫الكتاب‬ ‫يأخذ‬ ‫سوف‬ ,‫هنا‬ ‫الكواد‬ ‫بعرض‬ ‫قمت‬ ‫لو‬ ‫بصراحة‬ .‫مباشر‬ ‫بشكل‬ ‫المشروع‬ ‫لتحميل‬ ‫رابط‬ : ‫الول‬ ‫المشروع‬.‫اللغات‬ ‫متعدد‬ .. ‫يا‬ ‫مرحبا‬ : ‫من‬ ‫نستفيد‬ ‫المشروع‬ ‫هذا‬ ‫من‬ .‫المتغيرات‬ ‫تعريف‬ ‫كيفية‬ - .‫عليه‬ ‫الضغط‬ ‫تم‬ ‫إذا‬ ‫الزر‬ ‫برمجة‬ ‫كيفية‬ - .‫النصي‬ ‫الحقل‬ ‫بداخل‬ ‫الذي‬ ‫النص‬ ‫جلب‬ - ‫شرط‬ ‫وضع‬ -if.‫منها‬ ‫التحقق‬ ‫يتم‬ ‫شرط‬ ‫من‬ ‫أكثر‬ ‫كذلك‬ .‫أخرى‬ ‫إلى‬ ‫واجهة‬ ‫من‬ ‫النتقال‬ - .‫للتطبيق‬ ‫لغات‬ ‫إضافة‬ - .‫أخرى‬ ‫إلى‬ ‫واجهة‬ ‫من‬ ‫بيانات‬ ‫نقل‬ - .‫ل‬ ‫أو‬ ‫فارغا‬ ‫كان‬ ‫إذا‬ ‫الحقل‬ ‫من‬ ‫التحقق‬ - .‫الحرف‬ ‫عدد‬ ‫من‬ ‫التحقق‬ - : ‫المشروع‬ ‫لتحميل‬http://goo.gl/RMgXGT 110
  • 111.
    ‫صحيحة‬ ‫بخطوات‬ ‫أندرويد‬‫مشاريع‬ ‫بببناء‬ ‫أقوم‬ ‫كيف‬ ‫أغلب‬ ‫تتجنب‬ ‫لكي‬ ‫طرق‬ ‫عدة‬ ‫تتبع‬ ‫أن‬ ‫لك‬ ‫الفضل‬ ‫من‬ ,‫الندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫بناء‬ ‫في‬ ‫لتقوم‬ .‫المشروع‬ ‫بناء‬ ‫أثناء‬ ‫والخطاء‬ ‫المشاكل‬ ‫الذي‬ ‫وما‬ ,‫به‬ ‫قمت‬ ‫ما‬ ‫وتعيين‬ ,‫به‬ ‫تقوم‬ ‫سوف‬ ‫ما‬ ‫كل‬ ‫لتسجيل‬ ‫القلم‬ ‫استخدام‬ ‫هي‬ ‫الطرق‬ ‫أفضل‬ ‫ومن‬ .‫المشاريع‬ ‫لبناء‬ ‫الفضل‬ ‫و‬ ‫الفصح‬ ‫هو‬ ‫البياني‬ ‫والرسم‬ .‫به‬ ‫القيام‬ ‫عليك‬ ‫يتوجب‬ .‫المبتدئين‬ ‫بدراسته‬ ‫يقوم‬ ‫أن‬ ‫أفضل‬ ‫تطبيق‬ ‫أكثر‬ ‫وهذا‬ ,‫الدعية‬ ‫أو‬ ‫للذكارات‬ ‫تطبيق‬ ‫ببناء‬ ‫القيام‬ ‫نريد‬ ‫مثال‬ ‫حصرا‬ ‫للمبتدئين‬ ‫متابعتها‬ ‫أتمنى‬ ‫لذلك‬ , ‫اليوتيوب‬ ‫على‬ ‫مسجلة‬ ‫فيديو‬ ‫دروس‬ ‫في‬ ‫التطبيق‬ ‫بناء‬ ‫شرح‬ ‫تم‬ .‫هنا‬ ‫كاملة‬ ‫الطريقة‬ ‫ذكر‬ ‫عدم‬ ‫الكتاب‬ ‫لختصار‬ ‫ونظرا‬ ,‫بالتأكيد‬ ‫منها‬ ‫تستفيد‬ ‫سوف‬ , 1//‫الول‬ ‫الجزء‬ -‫على‬ ‫يحتوي‬ ,‫للمبتدئين‬ ‫بسيط‬ ‫اندرويد‬ ‫تطبيق‬ ‫ببرمجة‬ ‫للبدء‬ ‫وتجهيز‬ ‫تمهيد‬ .‫كامل‬ ‫الول‬ ‫تطبيقه‬ ‫بناء‬ ‫كيفية‬ ‫في‬ ‫مبتدئ‬ ‫كل‬ ‫منها‬ ‫يستفيد‬ ‫عديدة‬ ‫خصائص‬ https://youtu.be/RqOQTvREJsw 2//‫الثاني‬ ‫الجزء‬ -~ ‫جدا‬ ‫مهم‬ .‫عليه‬ ‫والعمل‬ ‫ببرمجته‬ ‫البدأ‬ ‫قبل‬ ‫وتجهيزيه‬ ‫للتطبيق‬ ‫ورسم‬ ‫مخطط‬ https://youtu.be/DHI1z0MH5Qw 3//‫الثالث‬ ‫الجزء‬ -.‫ببعضها‬ ‫وربطها‬ ‫المطلوبة‬ ‫واللياوت‬ ‫الكتفتي‬ ‫إنشاء‬ https://youtu.be/U_bqbLN3Exo 4//‫الرابع‬ ‫الجزء‬ -.‫وبرمجتها‬ ‫عليها‬ ‫الزرار‬ ‫ووضع‬ ‫الرئيسية‬ ‫تجهيز‬ https://youtu.be/M-gqL6BjD4s 5//‫الخامس‬ ‫الجزء‬ -.‫بالذكارات‬ ‫الخاصة‬ ‫الولى‬ ‫الصفحة‬ ‫وتنسيق‬ ‫تجهيز‬ https://youtu.be/h_7mhy6DeJI 6//‫السادس‬ ‫الجزء‬ -.‫النص‬ ‫وتصغير‬ ‫تكبير‬ ,‫الصوت‬ ‫وايقاف‬ ‫تشغيل‬ ,‫الذكارات‬ ‫صفحة‬ ‫برمجة‬ http://youtu.be/SJR8lpZkyg0 7//‫السابع‬ ‫الجزء‬ -‫تقييم‬ ,‫اليميل‬ ,‫الهاتف‬ ‫رقم‬ ,‫الموقع‬ ‫لينك‬ ,‫التطبيق‬ ‫حول‬ ‫صفحة‬ ‫وبرمجة‬ ‫تجهيز‬ .‫المبرمج‬ ‫تطبيقات‬ ‫من‬ ‫المزيد‬ ,‫التطبيق‬ https://youtu.be/P0O_0a2nx2E 8//‫الثامن‬ ‫الجزء‬ -,‫المصدر‬ ‫مفتوح‬ ‫كامل‬ ‫المشروع‬ ‫تحميل‬ ,‫الذكارات‬ ‫تطبيق‬ ‫برمجة‬ ‫في‬ ‫الخير‬ ‫الجزء‬ ‫لملف‬ ‫المشروع‬ ‫تصدير‬ ,‫التطبيق‬ ‫اغلق‬ ‫تأكيد‬ ‫كود‬apk.‫للمتجر‬ ‫للرفع‬ ‫جاهز‬ https://youtu.be/ld6f87xqJUc 111
  • 112.
    ‫أندرويد‬ ‫تطبيق‬ ‫إلى‬‫مشروعك‬ ‫تصدير‬Apk ‫ملف‬ ‫ترسل‬ ‫وتريد‬ ‫المشروع‬ ‫من‬ ‫النتهاء‬ ‫بعد‬apk‫توجد‬ ,‫جهازك‬ ‫إلى‬ ‫ارساله‬ ‫او‬ ,‫لتجربته‬ ‫الصدقاء‬ ‫لحد‬ ‫الذي‬ ‫المسار‬ ‫او‬ ‫المشروع‬ ‫خصائص‬ ‫من‬ ‫او‬ ,‫النافذة‬ ‫أعلى‬ ‫تجده‬ ‫المشروع‬ ‫ومسار‬ ‫المشروع‬ ‫مجلد‬ ‫إلى‬ ‫إسمه‬ ‫مجلد‬ ‫يوجد‬ ‫المشروع‬ ‫مسار‬ ‫إلى‬ ‫توجد‬ ,‫التطبيق‬ ‫انشاء‬ ‫بداية‬ ‫في‬ ‫عليه‬ ‫التطبيق‬ ‫إنشاء‬ ‫تم‬app ‫للمسار‬ ‫توجه‬ ‫بداخله‬buildoutputsapk ‫ملف‬ ‫تجد‬ ‫سوف‬apk+ ‫المشروع‬ ‫اسم‬ - ‫بعنوان‬debug.apk,‫بتجربته‬ ‫وقم‬ ‫جهاز‬ ‫إي‬ ‫إلى‬ ‫بإرساله‬ ‫قم‬ . .‫للمتجر‬ ‫رفعه‬ ‫تستطيع‬ ‫لن‬ ‫ولكن‬ ‫أعلى‬ ‫من‬ ,‫المشروع‬ ‫من‬ ‫النشاء‬ ‫بعد‬ ,‫المتجر‬ ‫على‬ ‫كـتطبيق‬ ‫ورفعه‬ ‫المشروع‬ ‫بتصدير‬ ‫تقوم‬ ‫لكي‬ ‫نافذة‬ ‫اختر‬ ‫البرنامج‬Build‫ثم‬Generate Signed APK : ‫نافذة‬ ‫لك‬ ‫تظهر‬ ‫سوف‬ ‫الن‬ 112
  • 113.
    ‫بإنشاء‬ ‫نقوم‬ ‫سوف‬‫النافذة‬ ‫هذه‬ ‫في‬Key Store‫و‬ ,‫للمبرمج‬ ‫واحدة‬ ‫مرة‬Key alias.‫بنا‬ ‫خاص‬ ‫تطبيق‬ ‫لكل‬ ‫من‬ ‫أكثر‬ ‫إنشاء‬ ‫تستطيع‬ ‫راحتك‬ ‫على‬Key Store‫حماية‬ ‫ما‬ ‫نوعا‬ ‫تعتبر‬ ‫الفكرة‬ ‫هي‬ ‫لكن‬ ‫عموما‬ . ‫مثل‬ ,‫لتطبيقك‬Key Store‫بصيغة‬ ‫ملف‬ ‫وهي‬jsk‫تطبيق‬ ‫لكل‬ ‫مفتاح‬ ‫بحفظ‬ ‫تقوم‬ ,‫بإنشائه‬ ‫القيام‬ ‫بعد‬ . ‫شخص‬ ‫لو‬ .‫المفتاح‬ ‫نفس‬ ‫على‬ ‫التعديل‬ ‫بحفظ‬ ‫تقوم‬ ‫إجباري‬ ‫بتعديلت‬ ‫قمت‬ ‫حال‬ ‫في‬ ,‫الملف‬ ‫هذا‬ ‫داخل‬ .‫الطريقة‬ ‫بهذه‬ ‫تطبيقك‬ ‫على‬ ‫تطبيق‬ ‫رفع‬ ‫إعادة‬ ‫يستطيع‬ ‫لن‬ ‫حسابك‬ ‫إلى‬ ‫تسلسل‬ ‫ما‬ : ‫السابقة‬ ‫الصورة‬ ‫في‬ ‫الموضحة‬ ‫الرقام‬ ‫حسب‬ ,‫لنكمل‬ ‫عموما‬ 1‫شفرة‬ ‫لنشاء‬ /Key Store. 2.‫الجهاز‬ ‫على‬ ‫لدينا‬ ‫مسبقا‬ ‫موجودة‬ ‫شفرة‬ ‫لختيار‬ / 3.‫الشفرة‬ ‫لهذه‬ ‫المرور‬ ‫كلمة‬ / 4.‫الشفرة‬ ‫هذه‬ ‫من‬ ‫تريده‬ ‫الذي‬ ‫التطبيق‬ ‫لختيار‬ / 5.‫التطبيق‬ ‫هذا‬ ‫لمفتاح‬ ‫المرور‬ ‫كلمة‬ / ‫شفرة‬ ‫إنشاء‬ ‫على‬ ‫نضغط‬ ‫سوف‬Key: ‫التالية‬ ‫النافذة‬ ‫تظهر‬ ‫سوف‬ .‫واحد‬ ‫الرقم‬ ‫على‬ 113
  • 114.
    : ‫السابقة‬ ‫الصورة‬‫في‬ ‫الموضحة‬ ‫الرقام‬ ‫حسب‬ 1/‫الشفرة‬ ‫ملف‬ ‫واسم‬ ‫حفظ‬ ‫مكان‬jks. 2/.‫الشفرة‬ ‫لهذه‬ ‫المرور‬ ‫كلمة‬ 3/.‫المرور‬ ‫كلمة‬ ‫تأكيد‬ .‫المبرمج‬ ‫شفرة‬ ‫إنشاء‬ ‫من‬ ‫انتهينا‬ ‫هكذا‬ --- 4/‫المفتاح‬ ‫وهو‬ .‫التطبيق‬ ‫لهذا‬ ‫للدللة‬ ‫او‬ ‫للتطبيق‬ ‫معين‬ ‫اسم‬ 5/.‫التطبيق‬ ‫لمفتاح‬ ‫المرور‬ ‫كلمة‬ 6/.‫المرور‬ ‫كلمة‬ ‫تاكيد‬ 7/‫لـ‬ ‫بالنسبة‬25‫غير‬ ‫الخرى‬ ‫والمعلومات‬ ,‫هو‬ ‫كما‬ ‫اتركه‬ ‫مشكلة‬ ‫ل‬ ‫المفتاح‬ ‫هذا‬ ‫صلحية‬ ‫عمر‬ ‫سنة‬ .‫الول‬ ‫الحقل‬ ‫في‬ ‫شيء‬ ‫إي‬ ‫او‬ ‫اسمك‬ ‫اكتب‬ ‫فقط‬ ‫مهمة‬ ‫على‬ ‫اضغط‬ ‫المعلومات‬ ‫مل‬ ‫بعد‬OK. : ‫فيها‬ ‫جاهزة‬ ‫المعلومات‬ ‫ولكن‬ ,‫السابقة‬ ‫النافذة‬ ‫إلى‬ ‫بنا‬ ‫الرجوع‬ ‫يتم‬ ‫سوف‬ : ‫للشفرة‬ ‫المرور‬ ‫كلمة‬ ‫واكتب‬ ‫التالي‬ ‫اضغط‬ ‫حفظ‬ ‫يتم‬ ‫سوف‬ ‫الذي‬ ‫المسار‬ ‫تحدد‬ ‫هنا‬ ‫التطبيق‬ ‫ملف‬ ‫داخله‬APK. ‫إن‬ ‫تتأكد‬ ‫ان‬ ‫جدا‬ ‫ضروري‬ ‫وكذلك‬Build Type ‫على‬ ‫محدد‬release 114
  • 115.
    ‫اضغط‬ ‫الن‬Finish: ‫نافذة‬‫لك‬ ‫تخرج‬ ‫سوف‬ ‫النتهاء‬ ‫وعند‬ ‫التصدير‬ ‫عملية‬ ‫تبدأ‬ ‫وسوف‬ ‫على‬ ‫اضغط‬Show in Explorer.‫داخله‬ ‫التطبيق‬ ‫حفظ‬ ‫تم‬ ‫الذي‬ ‫المسار‬ ‫لعرض‬ ‫بإنشاء‬ ‫وقم‬ ‫الشفرة‬ ‫ملف‬ ‫نفس‬ ‫اختر‬ ‫فقط‬ ,‫أخرى‬ ‫تطبيقات‬ ‫ببرمجة‬ ‫قمت‬ ‫حال‬ ‫في‬Key Alias‫داخل‬ .‫الجديدة‬ ‫للتطبيق‬ ‫جديدة‬ ‫الشفرة‬ ‫هذه‬ ‫المفتاح‬ ‫نفس‬ ‫و‬ ‫الشفرة‬ ‫نفس‬ ‫اختر‬ ,‫مسبقا‬ ‫نشرها‬ ‫تم‬ ‫التي‬ ‫المشاريع‬ ‫بعض‬ ‫تطوير‬ ‫أردت‬ ‫حال‬ ‫وفي‬ .‫للتطبيق‬ ‫ملف‬ ‫لديك‬ ‫ظهر‬ ‫الن‬Apk‫اندرويد‬ ‫جهاز‬ ‫إي‬ ‫إلى‬ ‫إرساله‬ ‫وتستطيع‬ ,‫للتطبيق‬ ‫التشغيل‬ ‫ملف‬ ‫وهو‬ . ‫متجر‬ ‫على‬ ‫مباشرة‬ ‫رفعه‬ ‫وكذلك‬ ,‫لتجربته‬Google Play‫ماركت‬ ‫ون‬ ‫أمازون‬ ‫مثل‬ ‫المتاجر‬ ‫من‬ ‫وغيرها‬ . .‫إلخ‬ ‫سامسونج‬ ‫متجر‬ ‫موبايل‬ 115
  • 116.
    **‫أذكر‬ ‫سوف‬ ‫وهنا‬,‫عليها‬ ‫ويتعلم‬ ‫ويتدرب‬ ,‫الكواد‬ ‫في‬ ‫منها‬ ‫يستفيد‬ ‫جاهزة‬ ‫لمشاريع‬ ‫يحتاج‬ ‫منا‬ ‫الكثير‬ .‫الندرويد‬ ‫لمشروعات‬ ‫الجاهزة‬ ‫المشاريع‬ ‫لك‬ ‫يقدم‬ ‫موقع‬ ‫أهم‬ https://github.com/ **‫أو‬ ,‫آخر‬ ‫اكتفتي‬ ‫إلى‬ ‫اكتفتي‬ ‫من‬ ‫انتقل‬ ‫مثل‬ .. ‫انتقال‬ ‫عملية‬ ‫عن‬ ‫نقطة‬ ‫إي‬ ‫عن‬ ‫البحث‬ ‫تريد‬ ‫عندما‬ ‫بالضافة‬ ‫تريد‬ ‫ما‬ ‫عن‬ ‫ابحث‬ .‫إلخ‬ ‫الرسائل‬ ,‫الويب‬ ‫مستعرض‬ ‫مثل‬ ‫آخر‬ ‫تطبيق‬ ‫إلى‬ ‫التطبيق‬ ‫من‬ ‫النتقال‬ ‫كلمة‬ ‫إلى‬Intent. **‫زر‬ ‫على‬ ‫اضغط‬ ‫فقط‬ ,‫معناها‬ ‫تفهم‬ ‫لم‬ ‫أكواد‬ ‫هناك‬ ‫كانت‬ ‫إذا‬Ctrl‫تريد‬ ‫التي‬ ‫الكلمة‬ ‫على‬ ‫واضغط‬ .‫المتغيرات‬ ‫هذه‬ ‫استخدام‬ ‫تم‬ ‫إين‬ ‫لك‬ ‫يظهر‬ ‫الطريقة‬ ‫بهذه‬ ‫بوضعها‬ ‫قمت‬ ‫أنت‬ ‫متغيرات‬ ‫لو‬ ‫حتى‬ ,‫بالماوس‬ ‫الخاتمة‬ ‫كامل‬ ‫كتاب‬ ‫لشرح‬ ‫يحتاج‬ ‫ستوديو‬ ‫الندرويد‬ ‫برنامج‬ ‫بصراحة‬ ‫أقوله‬ ‫أن‬ ‫أحب‬ ‫ما‬ ,‫العالمين‬ ‫رب‬ ‫الحمدل‬ ‫كتاب‬ ‫في‬ ‫البرنامج‬ ‫استخدام‬ ‫شرح‬ ‫يتم‬ ‫كبير‬ ‫واحتمال‬ ,‫منه‬ ‫أساسيات‬ ‫إل‬ ‫اشرح‬ ‫لم‬ ‫لذلك‬ ,‫فيه‬ ‫خاص‬ ‫على‬ ‫فركزت‬ ,‫المور‬ ‫من‬ ‫لكثير‬ ‫الختصار‬ ‫المكان‬ ‫قدر‬ ‫حاولت‬ ‫إنني‬ ‫كما‬ .‫جديدة‬ ‫إصدارات‬ ‫في‬ ‫لكن‬ ‫منفصل‬ ‫شعر‬ ‫كلما‬ ‫الكتاب‬ ‫صفحات‬ ‫زادت‬ ‫كلما‬ ‫ولكن‬ ,‫معرفتها‬ ‫يجب‬ ‫أخرى‬ ‫أمور‬ ‫ويوجد‬ ‫نحتاجه‬ ‫الذي‬ ‫الساس‬ ‫في‬ ‫حاولت‬ ‫و‬ ,‫تماما‬ ‫الصفر‬ ‫من‬ ‫فيها‬ ‫مشيت‬ ‫أشياء‬ ‫يوجد‬ ‫لنه‬ ,‫المر‬ ‫أبسط‬ ‫سوف‬ ‫لذلك‬ ‫بالملل‬ ‫القارئ‬ ‫أكثر‬ ‫مشاريع‬ ‫على‬ ‫تحتوي‬ ‫كتب‬ ‫بإنشاء‬ ‫أقوم‬ ‫أن‬ ‫ما‬ ‫وقت‬ ‫في‬ ‫أحاول‬ ‫وسوف‬ ,‫اختصر‬ ‫أن‬ ‫الدروس‬ ‫بعض‬ ‫عندما‬ ‫ولكن‬ ,‫طويل‬ ‫وقت‬ ‫مني‬ ‫وأخذ‬ ,‫أخرى‬ ‫صفحات‬ ‫الكتاب‬ ‫هذا‬ ‫في‬ ‫كتبت‬ ‫إنني‬ ‫كما‬ .‫بنائها‬ ‫وكيفية‬ .‫أخرى‬ ‫كتب‬ ‫في‬ ‫لقاء‬ ‫وفي‬ . ‫القارئ‬ ‫أخي‬ ‫عليك‬ ‫أختصر‬ ‫كي‬ ,‫المور‬ ‫من‬ ‫الكثير‬ ‫حذفت‬ ‫الكتاب‬ ‫راجعت‬ ‫و‬ ‫يسعدني‬ ‫كما‬‫الكتاب‬ ‫بهذا‬ ‫رأيك‬ ‫إعطاء‬ ‫أمانة‬ ‫بكل‬: ‫التالي‬ ‫الرابط‬ ‫خلل‬ ‫من‬ http://andrody.com/?p=1393 ‫المرات‬ ‫في‬ ‫أكثر‬ ‫للهتمام‬ ‫يشجعني‬ ‫سوف‬ ‫وبالتأكيد‬ ‫تجربتي‬ ‫يحسن‬ ‫سوف‬ ‫ال‬ ‫شاء‬ ‫إن‬ ‫تعليقك‬ . ‫مشكورا‬ ‫بها‬ ‫أخبرني‬ ‫استفسار‬ ‫او‬ ‫ملحظة‬ ‫إي‬ .‫القادمة‬ (: ‫جميعا‬ ‫عليكم‬ ‫السلم‬ ‫و‬ ,‫السابق‬ ‫الرابط‬ ‫نفس‬ ‫من‬ ‫للكتاب‬ ‫تقييمك‬ ‫يسعدني‬ ‫كما‬ # 116