شرح الأكواد الإفتراضية التي تظهر لك بداية إنشاء مشروع تطبيق اندرويد
بعد إنشاء أول تطبيق أندرويد لنا, نلحظ إنه لدينا ملفات جاهزة مفتوحة لنا وهي الاكتفتي التي يتم تشغيلها في بداية تشغيل التطبيق والتي هي كذلك مرتبطة باللياوت أو الواجهة التي سوف تظهر
للمستخدم.
سوف نجد الاكتفتي / MainActivity
ملف كما ذكرنا سابقا يحتوي على أكواد بلغة الجافا, يتم تنفيذها في بداية تشغيل التطبيق. والكود يأتي السطر الول له اسم الباكيج كما حددناه للتطبيق, ومن ثم مكاتب الدعم للعناصر
المستخدمة في هذه الاكتفتي, ومن ثم الكلاس وداخله الدوال.
الكود الافتراضي للاكتقتي الرئيسية :
.اللياوت / activity_main.xml كذلك و
اللياوت ذكرنا وسوف نذكر مرة اخرى هو ملف التصميم او التنسيق للواجهة, وهذا اللياوت هو الواجهة الرئيسية التي سوف يتم استدعائها من قبل الاكتفتي ملف الجافا الرئيسية اي يعني ان هذه
الواجهة هي التي سوف تظهر للمستخدم في بداية تشغيل التطبيق.
الكود الموجود داخل الواجهة اللياوت :
لغة XML تستخدم النمط الشجري في التنسيق, إي بمعنى عناصر تحتوي اسفلها او داخلها عناصر
اخرى, بمعنى اب وابناء .. وكما هو ظاهر لنا في الكود لاحظ وسم البداية ووسم النهاية للاب وهي
اللياوت الرئيسية من نوع RelativeLayout ويوجد انواع اخرى وهذا النوع اي تستطيع وضع العناصر داخلها بشكل حر في إي مكان على الشاشة. وبداخله عنصر من نوع TextView إي نص ومكتوب داخله عبارة World Hello كما شاهدنا في صورة النتيجة السابقة لإنشاء اول مشروع, وأما بالنسبة
للخصائص الخرى لكل العناصر سوف يتم شرحها بشكل مستقل.
أما الآن سوف نتعلم بعض الأساسيات الأخرى, من ثم نقوم بإنشاء مشاريع صغيرة فقط لتوضح لك
المبدأ بهذا المجال وأنت تكمل المسير
استيراد مشاريع الإكليبس للأندرويد ستوديو
الكثير منا يقوم بتحميل المشاريع الجاهزة, فالمشاريع الجاهزة على الإنترنت أغلبها تم بنائها على
برنامج الإكليبس, لذلك من المهم جدا تعرف كيفية استيراد مشاريع الإكليبس مع العلم إنها جدا
سهلة ولكن الكثير يتسائل عن الكيفية ..
في البداية عند تشغيلك لبرنامج الأندرويد ستوديو في النافذة الترحيبية اختر (Eclipse project Import
ADT, Gradle, etc).
كما في الصورة التالية
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://a.top4top.net/p_812b6tgc1.png)
سوف تظهر لك نافذة صغيرة لاختيار مجلد المشروع, تقوم بتحديد المجلد الذي يحتوي على
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://a.top4top.net/p_812k1n6t1.png)
المجلدات src + res وغيرها .
بعد اختيار المشروع, اضغط أوك ومن ثم سوف يظهر لك خيار لتحديد المسار الجديد الذي سوف يضع
فيه المشروع بملفاته الجديدة.
سوف يقوم برنامج الأندرويد ستوديو تلقائيا بتحويل الملفات للشكل الجديد الذي يتناسب معه.
بعد انتهاء المعالجة, في الغالب تظهر لك رسالة خطأ مثل هذه :
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://c.top4top.net/p_812gc4ou1.png)
وهذا معناه إن المشروع أعلى إصدار فيه هو 19 API وأنت الن في عصر متقدم أصبحت تستخدم
23 API أو أعلى, لحل المشكلة فقط تذهب للمشروع وتجعله يتوافق مع أعلى أصدار.
تفتح الملف ”build.gradle" الذي بداخل مجلد app , وتقوم بتعديل المطلوب, سوف تجده بالشكل
التالي :
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://a.top4top.net/p_81276b4f1.png)
قم بتعديل 19 إلى الإصدار الذي تستخدمه لديك والأعلى بداخل SDK , وحسب الموجود هو .23
بعد الإنتهاء من التعديل أضغط على زر مزامنة أو في الشريط الصفر Again Try
ليصبح الملف بهذا الشكل : لحظ كيف أصبح ترتيب الملفات وألوان النص.
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://b.top4top.net/p_8124hfwy1.png)
نكون هكذا أنتهينا من عملية الاستيراد, ولكن بعض المشاريع تستخدم مكاتب دعم مختلفة, لذلك ما يجب عليك القيام به, إذا كانت مكاتب جوجل لا مشكلة إضافتها من جديد بإضافة سطر واحد فقط بهذا الملف, ولكن يوجد مكاتب ل يتم استيرادها ويعطي خطأ برنامج الأندرويد ستوديو, لذلك تستطيع فتح المشروع على اكليبس وإلغاء المكاتب بشكل مؤقت, من ثم تعمل استيراد على الأندرويد
ستوديو إرجاع المكاتب للمشروع إن كنت تحتاجها.
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://f.top4top.net/p_8124zr5y1.png)
لو لاحظتم بعد إنشاء المشروع الأول على الأندرويد ستوديو ظهرت لنا الملفات والمجلدات
التالية لمشروعنا << كما في الصورة.
.مستقل بشكل منها كل شرح يتم سوف AndroidManifest.xml ملف + Values مجلد لـ بالنسبة
مجلد java
المجلد الذي يحتوي على الباكيج, تستطيع إضافة أكثر من حزمة داخل مشروعك, ولكن سوف يتم
تشغيل واحدة منها الرئيسية والأخرى ممكن تحتاج أستخدامها في مشروعك.
الباكيج يحتوي على ملفات الجافا, كلسات منوعة, تستطيع كتابة كلسات على راحتك, مثل كلاس
يحتوي على نصوص فقط لتستخدمها في كامل المشروع, وهكذا.
والمهم لدينا إنه الاكتفتي داخل الباكيج, وهذه الكتفتي بلغة الجافا هي التي سوف نتصل منها
باللياوت او بالواجهات لنبدأ بإعطاء الوامر البرمجية للتطبيق وللدوات والعناصر إلخ.
مجلد res
بمعنى resources الموارد او المصادر التي تستخدمها في تطبيق, بمعنى آخر كل ما يراه المستخدم
أمامه أثناء تصفح التطبيق, الواجهات, قائمة الخيارات, ايقونة التطبيق, الصور المستخدمة في التطبيق, الصوتيات, الحركات او التأثيرات, اللوان, النصوص, الثيم أو الاستايل إلخ
وهو يحتوي على عدة مجلدات لتوزيع هذه الموارد, بالشكل التالي :
–المجلد drawable / الذي تضع فيه الصور التي تريد استخدامها في التطبيق + ملفات xml
للتنسيق, مثل تأثير الزر بعد الضغط عليه, أو خلفية للتطبيق متعددة اللوان, أو تكرار صورة
باترن للخلفية إلخ.
– layout / المجلد الذي يحتوي على ملفات اللياوت أو الواجهات التي تظهر للمستخدم وهو
من أكثر المجلدات التي سوف تستخدمها. وسوف نكرر كثيرا في شرحنا له باللياوت.
– mipmap / يتم تلقائيا وضع أيقونة التطبيق في هذا المجلد, كما تستطيع استخدامه لوضع
اليقونات التي تستخدمها مثل زر قائمة الخيارات زر البحث إلخ.
– values / سوف يتم شرحه بشكل مستقل.
اختياري لك, إنشاء مجلدات أخرى بهذا الشكل :
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://e.top4top.net/p_812xkg461.png)
سوف أركز على المهم منها فقط, وبشرح مختصر.
من المجلدات التي تستطيع إنشائها في مجلد res مثال :
raw : لوضع داخله ملفات الميديا.
menu : لوضع داخله ملفات قائمة الخيارات.
anim : لوضع داخله ملفات التأثيرات أو الحركات.
color : للتحكم بطبقات اللوان مثل لون الزر أحمر إذا تم التركيز عليه يصبح أصفر وبعد الضغط عليه
أزرق.
xml : في الغالب داخله ملفات التكوين والإعدادات, مثل اعدادات للتطبيق.
أما مجلد assets / فهو مهم للكثيرين, فيه تضع المواد الخام, صور, صوت, ملفات, قواعد بيانات,
صفحات الويب إلخ. وأكثر ما يتم إضافته أنواع الخطوط التي تريد استخدامها في التطبيق.
وما يعيب مجلد assets إن جميع ما بداخله يستطيع إي شخص الوصول إليها وسرقتها ):
أما بقية المجلدات غير مهمة, تحتاجها في مراحل متقدمة, مثل لجعل تطبيقك اون لين مع لوحة
جوجل للاعبين وغيرها.
وبالنسبة لـ ملف التكوين فهو أكثر من مهم : Gradle
build.gradle / ما يهمنا app Module: والذي بداخله نضع قيم أساسية للمشروع, وهو قام بنصف
المهام التي كانت لملف المينيفيست في الاكليبس. مثل داخله المعرف الخاص بالتطبيق + أقل وأعلى إصدار أندرويد يعمل عليه تطبيقك و يجب الإشارة داخله لجميع المكاتب التي تستخدمها لدعم مشروعك.
بعد إنشاء أول تطبيق أندرويد لنا, نلحظ إنه لدينا ملفات جاهزة مفتوحة لنا وهي الاكتفتي التي يتم تشغيلها في بداية تشغيل التطبيق والتي هي كذلك مرتبطة باللياوت أو الواجهة التي سوف تظهر
للمستخدم.
سوف نجد الاكتفتي / MainActivity
ملف كما ذكرنا سابقا يحتوي على أكواد بلغة الجافا, يتم تنفيذها في بداية تشغيل التطبيق. والكود يأتي السطر الول له اسم الباكيج كما حددناه للتطبيق, ومن ثم مكاتب الدعم للعناصر
المستخدمة في هذه الاكتفتي, ومن ثم الكلاس وداخله الدوال.
الكود الافتراضي للاكتقتي الرئيسية :
كود PHP:
}اسم الباكيج للتطبيق إي المعرف او الي دي //package com.andrody.myapplication;استيراد لمكاتب الدعم وكلما أضفنا عناصر إزداد عددها //import android.support.v7.app.AppCompatActivity; import android.os.Bundle;من اكتفتي الكلس واسمه من ثم مشتق من اب كومبات اكتفتي لكي يدعم تصميم الماتريال للصدارات السابقة وفي الغالب يستخدم // مشتقpublic class MainActivity extends AppCompatActivity {دالة الون كريت وهي الدالة التي يتم تنفيذها في بداية تشغيل هذه الكتفتي //@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);اللياوت التي يتم ربطها بهذا الكتفتي //set*******View(R.layout.activity_main);
}هنا نستطيع استخدام دوال أخرى داخل هذا الكلس والتي ل يتم تنفيذها حتى يتم استدعائها في دالة الون كريت //
اللياوت ذكرنا وسوف نذكر مرة اخرى هو ملف التصميم او التنسيق للواجهة, وهذا اللياوت هو الواجهة الرئيسية التي سوف يتم استدعائها من قبل الاكتفتي ملف الجافا الرئيسية اي يعني ان هذه
الواجهة هي التي سوف تظهر للمستخدم في بداية تشغيل التطبيق.
الكود الموجود داخل الواجهة اللياوت :
كود PHP:
<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_*******" android:layout_height="wrap_*******" android:text="Hello World!" />
</RelativeLayout>
اخرى, بمعنى اب وابناء .. وكما هو ظاهر لنا في الكود لاحظ وسم البداية ووسم النهاية للاب وهي
اللياوت الرئيسية من نوع RelativeLayout ويوجد انواع اخرى وهذا النوع اي تستطيع وضع العناصر داخلها بشكل حر في إي مكان على الشاشة. وبداخله عنصر من نوع TextView إي نص ومكتوب داخله عبارة World Hello كما شاهدنا في صورة النتيجة السابقة لإنشاء اول مشروع, وأما بالنسبة
للخصائص الخرى لكل العناصر سوف يتم شرحها بشكل مستقل.
أما الآن سوف نتعلم بعض الأساسيات الأخرى, من ثم نقوم بإنشاء مشاريع صغيرة فقط لتوضح لك
المبدأ بهذا المجال وأنت تكمل المسير
استيراد مشاريع الإكليبس للأندرويد ستوديو
الكثير منا يقوم بتحميل المشاريع الجاهزة, فالمشاريع الجاهزة على الإنترنت أغلبها تم بنائها على
برنامج الإكليبس, لذلك من المهم جدا تعرف كيفية استيراد مشاريع الإكليبس مع العلم إنها جدا
سهلة ولكن الكثير يتسائل عن الكيفية ..
في البداية عند تشغيلك لبرنامج الأندرويد ستوديو في النافذة الترحيبية اختر (Eclipse project Import
ADT, Gradle, etc).
كما في الصورة التالية
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://a.top4top.net/p_812b6tgc1.png)
سوف تظهر لك نافذة صغيرة لاختيار مجلد المشروع, تقوم بتحديد المجلد الذي يحتوي على
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://a.top4top.net/p_812k1n6t1.png)
المجلدات src + res وغيرها .
بعد اختيار المشروع, اضغط أوك ومن ثم سوف يظهر لك خيار لتحديد المسار الجديد الذي سوف يضع
فيه المشروع بملفاته الجديدة.
سوف يقوم برنامج الأندرويد ستوديو تلقائيا بتحويل الملفات للشكل الجديد الذي يتناسب معه.
بعد انتهاء المعالجة, في الغالب تظهر لك رسالة خطأ مثل هذه :
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://c.top4top.net/p_812gc4ou1.png)
وهذا معناه إن المشروع أعلى إصدار فيه هو 19 API وأنت الن في عصر متقدم أصبحت تستخدم
23 API أو أعلى, لحل المشكلة فقط تذهب للمشروع وتجعله يتوافق مع أعلى أصدار.
تفتح الملف ”build.gradle" الذي بداخل مجلد app , وتقوم بتعديل المطلوب, سوف تجده بالشكل
التالي :
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://a.top4top.net/p_81276b4f1.png)
قم بتعديل 19 إلى الإصدار الذي تستخدمه لديك والأعلى بداخل SDK , وحسب الموجود هو .23
بعد الإنتهاء من التعديل أضغط على زر مزامنة أو في الشريط الصفر Again Try
ليصبح الملف بهذا الشكل : لحظ كيف أصبح ترتيب الملفات وألوان النص.
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://b.top4top.net/p_8124hfwy1.png)
نكون هكذا أنتهينا من عملية الاستيراد, ولكن بعض المشاريع تستخدم مكاتب دعم مختلفة, لذلك ما يجب عليك القيام به, إذا كانت مكاتب جوجل لا مشكلة إضافتها من جديد بإضافة سطر واحد فقط بهذا الملف, ولكن يوجد مكاتب ل يتم استيرادها ويعطي خطأ برنامج الأندرويد ستوديو, لذلك تستطيع فتح المشروع على اكليبس وإلغاء المكاتب بشكل مؤقت, من ثم تعمل استيراد على الأندرويد
ستوديو إرجاع المكاتب للمشروع إن كنت تحتاجها.
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://f.top4top.net/p_8124zr5y1.png)
لو لاحظتم بعد إنشاء المشروع الأول على الأندرويد ستوديو ظهرت لنا الملفات والمجلدات
التالية لمشروعنا << كما في الصورة.
.مستقل بشكل منها كل شرح يتم سوف AndroidManifest.xml ملف + Values مجلد لـ بالنسبة
مجلد java
المجلد الذي يحتوي على الباكيج, تستطيع إضافة أكثر من حزمة داخل مشروعك, ولكن سوف يتم
تشغيل واحدة منها الرئيسية والأخرى ممكن تحتاج أستخدامها في مشروعك.
الباكيج يحتوي على ملفات الجافا, كلسات منوعة, تستطيع كتابة كلسات على راحتك, مثل كلاس
يحتوي على نصوص فقط لتستخدمها في كامل المشروع, وهكذا.
والمهم لدينا إنه الاكتفتي داخل الباكيج, وهذه الكتفتي بلغة الجافا هي التي سوف نتصل منها
باللياوت او بالواجهات لنبدأ بإعطاء الوامر البرمجية للتطبيق وللدوات والعناصر إلخ.
مجلد res
بمعنى resources الموارد او المصادر التي تستخدمها في تطبيق, بمعنى آخر كل ما يراه المستخدم
أمامه أثناء تصفح التطبيق, الواجهات, قائمة الخيارات, ايقونة التطبيق, الصور المستخدمة في التطبيق, الصوتيات, الحركات او التأثيرات, اللوان, النصوص, الثيم أو الاستايل إلخ
وهو يحتوي على عدة مجلدات لتوزيع هذه الموارد, بالشكل التالي :
–المجلد drawable / الذي تضع فيه الصور التي تريد استخدامها في التطبيق + ملفات xml
للتنسيق, مثل تأثير الزر بعد الضغط عليه, أو خلفية للتطبيق متعددة اللوان, أو تكرار صورة
باترن للخلفية إلخ.
– layout / المجلد الذي يحتوي على ملفات اللياوت أو الواجهات التي تظهر للمستخدم وهو
من أكثر المجلدات التي سوف تستخدمها. وسوف نكرر كثيرا في شرحنا له باللياوت.
– mipmap / يتم تلقائيا وضع أيقونة التطبيق في هذا المجلد, كما تستطيع استخدامه لوضع
اليقونات التي تستخدمها مثل زر قائمة الخيارات زر البحث إلخ.
– values / سوف يتم شرحه بشكل مستقل.
اختياري لك, إنشاء مجلدات أخرى بهذا الشكل :
![نقره لعرض الصورة في صفحة مستقلة نقره لعرض الصورة في صفحة مستقلة](https://e.top4top.net/p_812xkg461.png)
سوف أركز على المهم منها فقط, وبشرح مختصر.
من المجلدات التي تستطيع إنشائها في مجلد res مثال :
raw : لوضع داخله ملفات الميديا.
menu : لوضع داخله ملفات قائمة الخيارات.
anim : لوضع داخله ملفات التأثيرات أو الحركات.
color : للتحكم بطبقات اللوان مثل لون الزر أحمر إذا تم التركيز عليه يصبح أصفر وبعد الضغط عليه
أزرق.
xml : في الغالب داخله ملفات التكوين والإعدادات, مثل اعدادات للتطبيق.
أما مجلد assets / فهو مهم للكثيرين, فيه تضع المواد الخام, صور, صوت, ملفات, قواعد بيانات,
صفحات الويب إلخ. وأكثر ما يتم إضافته أنواع الخطوط التي تريد استخدامها في التطبيق.
وما يعيب مجلد assets إن جميع ما بداخله يستطيع إي شخص الوصول إليها وسرقتها ):
أما بقية المجلدات غير مهمة, تحتاجها في مراحل متقدمة, مثل لجعل تطبيقك اون لين مع لوحة
جوجل للاعبين وغيرها.
وبالنسبة لـ ملف التكوين فهو أكثر من مهم : Gradle
build.gradle / ما يهمنا app Module: والذي بداخله نضع قيم أساسية للمشروع, وهو قام بنصف
المهام التي كانت لملف المينيفيست في الاكليبس. مثل داخله المعرف الخاص بالتطبيق + أقل وأعلى إصدار أندرويد يعمل عليه تطبيقك و يجب الإشارة داخله لجميع المكاتب التي تستخدمها لدعم مشروعك.