You are on page 1of 27

‫اساسيات بناء التطبيق‬

‫‪Chapter 3‬‬
‫مكونات التطبيق‬
‫• في اندرويد تعد مكونات التطبيق اللبنات األساسية للتطبيق وهذه المكونات هي‪:‬‬
‫• أنشطة‬
‫• االحداث‬
‫• موفري المحتوى‬
‫• مستقبالت البث‬
‫• خدمات‬
‫ماهو النشاط ‪Activity‬؟‬

‫هو احد مكونات التطبيق يمثل نافذة واحدة او منظومة هرمية واحدة‬ ‫‪.1‬‬

‫في نظام اندرويد ‪ ،‬يمثل النشاط شاشة واحدة بواجهة مستخدم ألحد‬ ‫‪.2‬‬
‫التطبيقات ‪ ،‬وسيعمل بمثابة نقطة دخول للمستخدمين للتفاعل مع التطبيق‬
‫النشاط عادة مايملئ الشاشة ولكن من الممكن تضمينها في نشاط اخر او‬ ‫‪.3‬‬
‫تظهر كنافذة عائمة لملف جافا‬
‫نشاط واحد في ملف واحد‬ ‫‪.4‬‬
‫ماذا يفعل النشاط؟‬

‫يمثل نشا ً‬
‫طا مثل طلب محالت البقالة أو إرسال بريد إلكتروني أو الحصول على االتجاهات‬ ‫‪.1‬‬

‫يعالج تفاعالت المستخدم ‪ ،‬مثل نقرات األزرار أو إدخال النص أو التحقق من تسجيل‬ ‫‪.2‬‬

‫الدخول‬

‫يمكن أن تبدأ األنشطة األخرى في نفس التطبيقات أو غيرها‬ ‫‪.3‬‬

‫يحتوي على دورة حياة — يتم إنشاؤه ‪ ،‬تشغيله ‪ ،‬إيقافه مؤقتًا ‪ ،‬استئنافه ‪ ،‬إيقافه ‪ ،‬إتالفه‬ ‫‪.4‬‬
‫امثلة عن النشاطات‬

‫‪5‬‬
‫النشاطات والتطبيقات‬

‫يتم ربط األنشطة بشكل تكاملي النشاء التطبيق‬ ‫‪.1‬‬

‫النشاط األول الذي يراه المستخدم يسمى عادة "النشاط الرئيسي"‬ ‫‪.2‬‬

‫يمكن تنظيم األنشطة في العالقات بين المجالين الرئيسي والفرعي‬ ‫‪.3‬‬

‫في اندرويد للمساعدة في التنقل‬


‫التخطيطات والنشاطات‬

‫يحتوي النشاط على مخطط او تصميم واجهة المستخدم‬ ‫‪.1‬‬

‫يتم تعريف التخطيط عادة ً في ملف ‪XML‬واحد أو أكثر‬ ‫‪.2‬‬

‫النشاط يحتوي على تخطيط كجزء من اإلنشاء‬ ‫‪.3‬‬


‫كيف انشئ نشاط جديد‬

1. Define layout in XML


2. Define Activity Java class
○ extends AppCompatActivity
3. Connect Activity with Layout
○ Set content view in onCreate()
4. Declare Activity in the Android manifest
1. Define layout in XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Let's Shop for Food!" />
</RelativeLayout>
9
2. Define Activity Java class

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}

10
3. Connect activity with layout

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
}
} Resource is layout in this XML file

11
4. Declare activity in Android manifest

<activity android:name=".MainActivity">

12
4. Declare main activity in manifest

MainActivity needs to include intent-filter to start from launcher


<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

13
‫ماهو الحدث ‪Intent‬؟‬

‫‪ .1‬هو أحد االمور األساسية ألي تطبيق أندرويد ‪ ،‬يعرف بانه وصف لعملية يتم تنفيذها‪.‬ويستخدم‬
‫الرسال البيانات بين مكونات التطبيق كما يستخدم ايضا لالنتقال بين مكونات التطبيق‬

‫‪Originator‬‬ ‫‪App component‬‬

‫‪Intent‬‬ ‫‪Action‬‬
‫‪Android‬‬
‫‪System‬‬
‫كيفية عمله ؟‬

‫بدء نشاط‬ ‫‪.1‬‬

‫انقر فوق زر لبدء نشاط جديد إلدخال النص‬


‫يؤدي النقر فوق "مشاركة" إلى فتح تطبيق يتيح لك نشر صورة‬
‫‪ .2‬بدء خدمة‬
‫بدء تنزيل ملف في الخلفية‬
‫‪ .3‬تسليم البث‬
‫يبلغ النظام يبلغ الجميع أن الهاتف يشحن اآلن‬
‫انواعه‬

‫‪ -1‬حدث صريح ‪ :Explicit Intent‬يبدأ نشا ً‬


‫طا محددًا‬
‫• اطلب الشاي بالحليب المقدم من مقدم الطلب‬
‫• يبدأ النشاط الرئيسي في نشاط ‪ViewShoppingCart‬‬
‫‪ -2‬الحدث الضمني ‪ :amplicit Intent‬يطلب من النظام العثور على نشاط يمكنه التعامل مع هذا‬
‫الطلب‬
‫• ابحث عن متجر مفتوح يبيع الشاي األخضر‬
‫• يؤدي النقر فوق مشاركة إلى فتح منتقي بقائمة من التطبيقات‬
‫ما هي دورة حياة النشاط؟‬

‫‪ .1‬مجموعة الحاالت التي يمكن أن يكون فيها نشاط ما خالل حياته ‪ ،‬من وقت إنشائه وحتى تدميره‬

‫‪ .2‬رسم بياني موجه لجميع الحاالت التي يمكن أن يكون فيها نشاط ‪ ،‬وعمليات االسترجاعات‬
‫المرتبطة باالنتقال من كل حالة إلى الحالة التالية‬
‫تكمله‬
19
‫حاالت النشاط وعمليات الظهور في التطبيق‬

‫‪ .1‬تم اإلنشاء (غير مرئي)‬


‫‪ .2‬بدأ (مرئية)‬
‫‪ .3‬استئناف (مرئي)‬
‫‪ .4‬متوقف مؤقتًا (غير مرئي جزئيًا)‬
‫‪ .5‬متوقف (مخفي)‬
‫‪ .6‬دمر (ذهب من الذاكرة)‬
‫‪ .7‬يتم تشغيل تغييرات الحالة عن طريق إجراء المستخدم ‪ ،‬أو تغييرات التكوين مثل تدوير الجهاز‬
‫‪ ،‬أو إجراء النظام‬
‫خدمة اندرويد‬

‫في نظام اندرويد الخدمة عبارة عن مكون يحافظ على تشغيل التطبيق في الخلفية ألداء عمليات‬

‫طويلة األمد بنا ًء على متطلباتنا‪ .‬بالنسبة للخدمة ‪ ،‬ليس لدينا أي واجهة مستخدم وستقوم بتشغيل‬

‫التطبيقات في الخلفية مثل تشغيل الموسيقى في الخلفية أو التعامل مع عمليات الشبكة عندما يكون‬

‫المستخدم في تطبيق مختلف‪.‬‬


22
‫مزود المحتوى‬

‫موفر المحتوى هو جزء من تطبيق اندرويد وسيعمل مثل قاعدة بيانات عالئقية لتخزين بيانات‬

‫التطبيق‪.‬‬

‫يمكننا إجراء عمليات متعددة مثل اإلدراج والتحديث والحذف والتحرير على البيانات المخزنة في‬

‫مزود المحتوى باستخدام أساليب اإلدراج () والتحديث () والحذف () واالستعالم ()‪.‬‬


24
‫مستقبالت البث‬

‫في نظام ‪ ،Android‬يُعد ‪Broadcast Receiver‬مكونًا يسمح لنظام ‪android‬أو تطبيقات أخرى‬

‫بتسليم األحداث إلى التطبيق مثل إرسال رسالة منخفضة البطارية أو شاشة تقوم بإيقاف تشغيل‬

‫الرسالة إلى التطبيق‪.‬‬

‫نستخدم االحداث لتسليم أحداث البث إلى تطبيقات أخرى وتستخدم أجهزة استقبال البث إشعارات‬

‫شريط الحالة إلعالم المستخدم بوقوع حدث البث‪.‬‬


‫سياق التطبيق‬

‫يشير سياق التطبيق إلى بيئة التطبيق والعملية التي تعمل من خاللها جميع مكوناته‪ .‬فهو يسمح‬

‫للتطبيقات بمشاركة البيانات والموارد بين وحدات البناء المختلفة‪.‬‬


27

You might also like