فهم ملف AndroidManifest.xml | أصلي، ترجم بواسطة AI

Home PDF

إذا كنت تغمق في تطوير تطبيقات Android، من بين أول الملفات التي ستواجهها هو AndroidManifest.xml. إنه مثل المخطط المعماري لتطبيقك - يشرح نظام Android كل ما يحتاجه عن تطبيقك قبل أن يبدأ حتى في التشغيل. اليوم، سنفصل ملف بيان مثال من تطبيق يُدعى “Flower” (اسم الحزمة: com.lzw.flower) ونستكشف مكوناته الرئيسية، المفاهيم، والنماذج.


ما هو AndroidManifest.xml؟

AndroidManifest.xml هو ملف تكوين مطلوب لكل تطبيق Android. يعيش في الدليل الجذر لمشروعك ويعلن معلومات أساسية مثل اسم حزمة التطبيق، الإذنات، المكونات (مثل الأنشطة)، والميزات المادية/برمجية التي يحتاجها. افهمه كبطاقة هوية للتطبيق التي يقرأها نظام التشغيل Android.

دعونا نمر عبر المثال خطوة بخطوة.


هيكل البيان

هنا البيان الذي نعمل عليه (مبسط قليلاً لمسهولة القراءة):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lzw.flower"
    android:versionCode="8"
    android:versionName="1.5.2">

    <uses-sdk android:minSdkVersion="14" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:label="@string/app_name"
        android:icon="@drawable/icon128"
        android:name=".base.App"
        android:theme="@style/AppTheme">

        <activity android:name=".deprecated.CameraActivity" android:screenOrientation="landscape" />
        <activity android:name=".base.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".draw.DrawActivity" android:screenOrientation="landscape" />
        <activity android:name=".result.ResultActivity" android:screenOrientation="landscape" />
        <activity android:name=".material.MaterialActivity" android:screenOrientation="landscape" />
        <activity android:name=".activity.PhotoActivity" android:screenOrientation="landscape" />
        <activity android:name=".activity.LoginActivity" android:screenOrientation="portrait" />
    </application>
</manifest>

الآن دعونا نفصله إلى أقسامه الأساسية ونشرح المفاهيم وراءها.


1. العنصر الجذر <manifest>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lzw.flower"
    android:versionCode="8"
    android:versionName="1.5.2">

المفهوم: يحدد علامة <manifest> هوية التطبيق وإصداراته، مما يضمن أن يعرف النظام ما هو التطبيق الذي يعمل عليه وكيفية معالجة التحديثات.


2. إصدار SDK مع <uses-sdk>

<uses-sdk android:minSdkVersion="14" />

المفهوم: هذا يضمن التوافق. لا يمكن لأجهزة تشغيل Android أقل من 4.0 تثبيت هذا التطبيق. لا يوجد targetSdkVersion أو maxSdkVersion هنا، ولكن يمكن إضافتهما لتعديل التوافق بشكل أكبر.


3. الإذنات مع <uses-permission>

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

يطلب هذا التطبيق عدة إذنات:

المفهوم: يستخدم Android نظام الإذنات لحماية خصوصية المستخدم وأمنه. هذه الإعلانات تشرح للنظام (والمستخدم) ما هي الميزات الحساسة التي يحتاجها التطبيق. بعد Android 6.0 (API 23)، تتطلب الإذنات الخطرة (مثل CAMERA) أيضًا طلبات زمنية في كود التطبيق.


4. الميزات مع <uses-feature>

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

المفهوم: على عكس الإذنات، تفلتر علامات <uses-feature> التطبيق في Google Play Store. إذا لم يكن الجهاز يحتوي على كاميرا أو التركيز التلقائي، فلن يظهر التطبيق حتى كقابل للتثبيت إلا إذا تم تحديدهما كاختياريين مع android:required="false".


5. العنصر <application>

<application
    android:label="@string/app_name"
    android:icon="@drawable/icon128"
    android:name=".base.App"
    android:theme="@style/AppTheme">

المفهوم: يحدد علامة <application> الإعدادات الشاملة للتطبيق. الموارد مثل @string و @drawable تخزن في مجلدات res/، مما يروج لإعادة الاستخدام والتحليل.


6. الأنشطة مع <activity>

يستعرض البيان عدة Activities، وهي شاشات واجهة المستخدم للتطبيق:

مثال 1: شاشة التهيئة (Activity المبتدئ)

<activity
    android:name=".base.SplashActivity"
    android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

النموذج: Activity المبتدئ هو نقطة البداية الشائعة، غالبًا ما تكون شاشة التهيئة أو الشاشة الرئيسية.

مثال 2: Activity الكاميرا

<activity
    android:name=".deprecated.CameraActivity"
    android:screenOrientation="landscape">

النموذج: غالبًا ما تحدد Activities الوضع لأغراض محددة (مثل أن تطبيقات الكاميرا تعمل بشكل أفضل في الوضع الأفقي).

Activities أخرى

يستعرض البيان Activities أخرى مثل DrawActivity و ResultActivity و PhotoActivity و LoginActivity مع نماذج مشابهة:

المفهوم: Activities هي وحدات بناء واجهة المستخدم للتطبيق Android. كل علامة <activity> تسجل شاشة مع النظام.


نماذج رئيسية في هذا البيان

  1. تصميم موجه للوسائط: الإذنات والميزات للكاميرا والتخزين والتفوق يشير إلى تطبيق صور أو رسم (ربما هو تحديد الزهور، بناءً على اسم الحزمة com.lzw.flower).
  2. تحكم في التوجه: استخدام كبير لـ android:screenOrientation="landscape" يشير إلى التركيز على المهام المرئية.
  3. Activities مدمجة: Activities متعددة (CameraActivity و DrawActivity و ResultActivity) تشير إلى عملية عمل متعددة الخطوات.
  4. استخدام الموارد: مراجع إلى @string و @drawable و @style تظهر بنية نظيفة ومتينة.

الخاتمة

AndroidManifest.xml أكثر من مجرد ملف تكوين - إنه نافذة إلى غرض التطبيق وسلوكه. في هذه الحالة، يبدو أن “Flower” هو تطبيق وسائط مع وظائف الكاميرا وميزات الرسم وميزات الشبكة، ربما لتحميل أو معالجة الصور. من خلال فهم مكوناته - الإذنات والميزات والActivities - يمكنك رؤية كيفية بناء تطبيقات Android وكيفية تصميم التطبيقات الخاصة بك.

هل تريد بناء شيء مشابه؟ ابدأ بمهمة واضحة (مثل تحديد الزهور)، حدد إذناتك وميزاتك، وخرط Activities. سيجمع البيان كل شيء!


Back 2025.04.02 Donate