<التطبيق>

البنية:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:appCategory=["accessibility" | "audio" | "game" |
             "image" | "maps" | "news" | "productivity" | "social" | "video"]
             android:backupAgent="string"
             android:backupInForeground=["true" | "false"]
             android:banner="drawable resource"
             android:dataExtractionRules="string resource"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:enableOnBackInvokedCallback=["true" | "false"]
             android:extractNativeLibs=["true" | "false"]
             android:fullBackupContent="string"
             android:fullBackupOnly=["true" | "false"]
             android:gwpAsanMode=["always" | "never"]
             android:hasCode=["true" | "false"]
             android:hasFragileUserData=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:isGame=["true" | "false"]
             android:isMonitoringTool=["parental_control" | "enterprise_management" |
             "other"]
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:networkSecurityConfig="xml resource"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:requestLegacyExternalStorage=["true" | "false"]
             android:requiredAccountType="string"
             android:resizeableActivity=["true" | "false"]
             android:restrictedAccountType="string"
             android:supportsRtl=["true" | "false"]
             android:taskAffinity="string"
             android:testOnly=["true" | "false"]
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"]
             android:usesCleartextTraffic=["true" | "false"]
             android:vmSafeMode=["true" | "false"] >
    . . .
</application>
مضمّنة في:
<manifest>
يمكن أن تحتوي على:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
description:

بيان التطبيق يحتوي هذا العنصر على عناصر فرعية تحدّد كل مكون من مكونات التطبيق، كما يحتوي على سمات يمكن أن تؤثر في جميع المكونات.

تحدّد العديد من هذه السمات، مثل icon وlabel وpermission وprocess وtaskAffinity وallowTaskReparenting، قيمًا تلقائية للسمات المقابلة لعناصر المكوّن. تحدّد سمات أخرى، مثل debuggable وenabled وdescription وallowClearUserData، قيمًا للتطبيق ككل ولا يتم تجاهلها من خلال المكوّنات.

attributes
android:allowTaskReparenting
تحديد ما إذا كان يمكن نقل الأنشطة التي يحدّدها التطبيق من المهمة التي بدأت هذه الأنشطة إلى المهمة التي تتوافق معها عند إعادة هذه المهمة إلى المقدّمة تكون القيمة "true" إذا كان بإمكانهم الانتقال، و"false" إذا كان عليهم البقاء في المهمة التي بدأوا بها. القيمة التلقائية هي "false".

يحتوي العنصر <activity> على السمة allowTaskReparenting الخاصة به التي يمكنها إلغاء القيمة المحدّدة هنا.

android:allowBackup

تُستخدَم لتحديد ما إذا كان سيتم السماح للتطبيق بالمشاركة في البنية الأساسية للاحتفاظ بنسخة احتياطية واستعادة البيانات. إذا تم ضبط هذه السمة على "false"، لن يتم الاحتفاظ بنسخة احتياطية من التطبيق أو استعادتها أبدًا، حتى من خلال نسخة احتياطية كاملة للنظام تؤدي عادةً إلى حفظ جميع بيانات التطبيق باستخدام adb. القيمة التلقائية لهذه السمة هي "true".

ملاحظة: يختلف هذا السلوك في التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأحدث. على الأجهزة التي تصنّعها بعض الشركات، لا يمكنك إيقاف ميزة نقل ملفات تطبيقك من جهاز إلى آخر.

ومع ذلك، يمكنك إيقاف ميزة الاحتفاظ بنسخة احتياطية من ملفات تطبيقك واستعادتها استنادًا إلى السحابة الإلكترونية من خلال ضبط هذه السمة على "false"، حتى إذا كان تطبيقك يستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأحدث.

لمزيد من المعلومات، يُرجى الاطّلاع على قسم الاحتفاظ بنسخة احتياطية والاستعادة في الصفحة التي توضّح التغييرات في سلوك التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأحدث.

android:allowClearUserData

تحديد ما إذا كان سيتم السماح للتطبيق بإعادة ضبط بيانات المستخدم أم لا وتشمل هذه البيانات علامات، مثل ما إذا كان المستخدم قد شاهد تلميحات الأدوات التمهيدية، بالإضافة إلى الإعدادات والخيارات المفضّلة التي يمكن للمستخدم تخصيصها. القيمة التلقائية لهذه السمة هي "true".

ملاحظة: لا يمكن للتطبيقات التي تشكّل جزءًا من صورة النظام تحديد هذه السمة بشكل صريح. لا يمكن للتطبيقات التابعة لجهات خارجية تضمين هذه السمة في ملفات البيان الخاصة بها.

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على الاحتفاظ بنسخة احتياطية من البيانات.

android:allowNativeHeapPointerTagging

تحدّد هذه السمة ما إذا كان التطبيق يفعّل ميزة "وضع علامات على مؤشرات Heap". القيمة التلقائية لهذه السمة هي "true".

ملاحظة: لن يؤدي إيقاف هذه الميزة إلى حلّ مشكلة سلامة الرمز الأساسية. قد لا تتوافق أجهزة الأجهزة المستقبلية مع علامة البيان هذه.

لمزيد من المعلومات، يُرجى الاطّلاع على المؤشرات الموسومة.

android:appCategory

تحدّد هذه السمة فئة التطبيق. تُستخدَم الفئات لتجميع تطبيقات متعددة معًا في مجموعات ذات صلة، مثل عند تلخيص استخدام البطارية أو الشبكة أو مساحة التخزين على القرص. يجب تحديد هذه القيمة للتطبيقات التي تتناسب بشكل جيد مع إحدى الفئات المحدّدة فقط.

يجب أن تكون إحدى القيم الثابتة التالية.

القيمةالوصف
accessibilityالتطبيقات التي تُعنى بشكل أساسي بتسهيل الاستخدام، مثل تطبيقات قراءة الشاشة
audioالتطبيقات التي تعمل بشكل أساسي مع الصوت أو الموسيقى، مثل مشغّلات الموسيقى
gameالتطبيقات التي تكون ألعابًا في المقام الأول
imageالتطبيقات التي تعمل بشكل أساسي مع الصور، مثل تطبيقات الكاميرا أو معرض الصور
mapsالتطبيقات التي تكون في الأساس تطبيقات خرائط، مثل تطبيقات التنقّل
newsالتطبيقات التي تكون في الأساس تطبيقات أخبار، مثل تطبيقات الصحف أو المجلات أو الرياضة
productivityالتطبيقات التي تكون في الأساس تطبيقات إنتاجية، مثل تطبيقات التخزين السحابي أو تطبيقات مكان العمل
socialالتطبيقات التي تكون في الأساس تطبيقات اجتماعية، مثل تطبيقات المراسلة أو التواصل أو البريد الإلكتروني أو شبكات التواصل الاجتماعي
videoالتطبيقات التي تعمل بشكل أساسي مع الفيديوهات أو الأفلام، مثل تطبيقات بث الفيديو

android:backupAgent
اسم الفئة التي تنفّذ وكيل النسخ الاحتياطي للتطبيق، وهي فئة فرعية من BackupAgent. قيمة السمة هي اسم فئة مؤهَّل بالكامل، مثل "com.example.project.MyBackupAgent". ومع ذلك، كاختصار، إذا كان الحرف الأول من الاسم نقطة، على سبيل المثال، ".MyBackupAgent"، تتم إضافته إلى اسم الحزمة المحدّد في العنصر <manifest>.

لا يوجد إعداد تلقائي. يجب أن يكون الاسم محدّدًا.

android:backupInForeground
يشير إلى أنّه يمكن تنفيذ عمليات الاحتفاظ التلقائي بنسخة احتياطية على هذا التطبيق حتى إذا كان التطبيق في حالة مكافئة لحالة التشغيل في المقدّمة. يُغلِق النظام تطبيقًا أثناء عملية النسخ الاحتياطي التلقائي، لذا استخدِم هذه السمة بحذر. قد يؤدي ضبط هذا العلامة على "true" إلى التأثير في سلوك التطبيق أثناء نشاطه.

القيمة التلقائية هي "false"، ما يعني أنّ نظام التشغيل يتجنّب إجراء نسخ احتياطي من التطبيق أثناء تشغيله في المقدّمة، مثل تطبيق موسيقى يشغّل الموسيقى بنشاط باستخدام خدمة في حالة startForeground().

android:banner
مورد قابل للرسم يوفر بانرًا رسوميًا موسّعًا للعنصر المرتبط به. يُستخدَم مع العلامة <application> لتوفير بانر تلقائي لجميع أنشطة التطبيق أو مع العلامة <activity> لتوفير بانر لنشاط معيّن.

يستخدم النظام البانر لتمثيل تطبيق في الشاشة الرئيسية على Android TV. لذلك، لا تحدِّد هذا الخيار إلا للتطبيقات التي تتضمّن نشاطًا يعالج الغرض CATEGORY_LEANBACK_LAUNCHER.

يتم ضبط هذه السمة كمرجع إلى مورد قابل للرسم يحتوي على الصورة، مثل "@drawable/banner". لا يتوفّر بانر تلقائي.

لمزيد من المعلومات، يُرجى الاطّلاع على توفير بانر للشاشة الرئيسية.

android:dataExtractionRules

يمكن للتطبيقات ضبط هذه السمة على أحد موارد XML التي تحدّد القواعد التي تحدّد الملفات والأدلة التي يمكن نسخها من الجهاز كجزء من عمليات النسخ الاحتياطي أو النقل.

للحصول على معلومات حول تنسيق ملف XML، يُرجى الاطّلاع على الاحتفاظ بنسخة احتياطية واستعادة البيانات.

android:debuggable
تحديد ما إذا كان يمكن تصحيح أخطاء التطبيق، حتى عند تشغيله على جهاز في وضع المستخدم. تكون القيمة "true" إذا كان ذلك ممكنًا، و"false" إذا لم يكن كذلك. القيمة التلقائية هي "false".
android:description
نص يمكن للمستخدم قراءته حول التطبيق، وهو أطول وأكثر وصفًا من تصنيف التطبيق. يتم ضبط القيمة كمرجع لمصدر السلاسل النصية. وعلى عكس التصنيف، لا يمكن أن يكون سلسلة أولية. لا توجد قيمة تلقائية.
android:enabled
تحديد ما إذا كان بإمكان نظام التشغيل Android إنشاء مثيل لمكوّنات التطبيق. يجب إدخال "true" إذا كان بإمكانك ذلك، و"false" إذا لم يكن ذلك ممكنًا. إذا كانت القيمة "true"، تحدّد السمة enabled لكل مكوّن ما إذا كان هذا المكوّن مفعَّلاً. إذا كانت القيمة "false"، فإنّها تلغي القيم الخاصة بالمكوّنات، ويتم إيقاف جميع المكوّنات.

القيمة التلقائية هي "true".

android:enableOnBackInvokedCallback

تتيح لك هذه العلامة إيقاف الصور المتحركة التنبؤية في النظام على مستوى التطبيق.

اضبط قيمة android:enableOnBackInvokedCallback=false لإيقاف الصور المتحركة الخاصة بإيماءة إظهار شاشة الرجوع على مستوى التطبيق واطلب من النظام تجاهل طلبات البيانات من واجهة برمجة التطبيقات OnBackInvokedCallback.

android:extractNativeLibs

بدءًا من الإصدار 4.2.0 من "مكوّن Android الإضافي في Gradle"، يحل خيار DSL useLegacyPackaging محل سمة البيان extractNativeLibs. استخدِم useLegacyPackaging في ملف build.gradle الخاص بتطبيقك بدلاً من extractNativeLibs في ملف البيان لضبط سلوك ضغط المكتبة المجمّعة من رموز برمجية أصلية. لمزيد من المعلومات، يُرجى الاطّلاع على ملاحظة الإصدار استخدام لغة خاصة بالمجال لتجميع المكتبات الأصلية المضغوطة.

تشير هذه السمة إلى ما إذا كان مثبِّت الحِزم يستخرج المكتبات الأصلية من حزمة APK إلى نظام الملفات. في حال ضبط القيمة على "false"، يتم تخزين المكتبات المجمّعة من رموز برمجية أصلية غير مضغوطة في حزمة APK. على الرغم من أنّ حزمة APK قد تكون أكبر حجمًا، يتم تحميل تطبيقك بشكل أسرع لأنّه يتم تحميل المكتبات مباشرةً من حزمة APK في وقت التشغيل.

تعتمد القيمة التلقائية extractNativeLibs على minSdkVersion وإصدار "مكوّن Android الإضافي في Gradle" الذي تستخدمه. في معظم الحالات، يكون السلوك التلقائي هو ما تريده، ولن تحتاج إلى ضبط هذه السمة بشكل صريح.

android:fullBackupContent
تشير هذه السمة إلى ملف XML يحتوي على قواعد الاحتفاظ الكامل بنسخة احتياطية الخاصة بميزة الاحتفاظ التلقائي بنسخة احتياطية. تحدّد هذه القواعد الملفات التي يتم الاحتفاظ بنسخة احتياطية منها. لمزيد من المعلومات، يُرجى الاطّلاع على بنية إعدادات XML لخدمة "الاحتفاظ التلقائي بنسخة احتياطية".

هذه السمة اختيارية. إذا لم يتم تحديدها، ستتضمّن ميزة "الاحتفاظ التلقائي بنسخة احتياطية" تلقائيًا معظم ملفات تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على الملفات التي يتم الاحتفاظ بنسخة احتياطية منها.

android:fullBackupOnly
تشير هذه السمة إلى ما إذا كان سيتم استخدام ميزة الاحتفاظ التلقائي بنسخة احتياطية على الأجهزة التي تتوفّر فيها هذه الميزة. إذا تم ضبط القيمة على "true"، سيُجري تطبيقك عملية الاحتفاظ التلقائي بنسخة احتياطية عند تثبيته على جهاز يعمل بالإصدار 6.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 23) أو الإصدارات الأحدث. على الأجهزة القديمة، يتجاهل تطبيقك هذه السمة وينفّذ عمليات الاحتفاظ بنسخ احتياطية من المفتاح/القيمة.

القيمة التلقائية هي "false".

android:gwpAsanMode
تحدّد هذه السمة ما إذا كان سيتم استخدام GWP-ASan، وهي ميزة لتخصيص الذاكرة الأصلية تساعد في العثور على الأخطاء المرتبطة باستخدام ذاكرة معيّنة بعد تفريغها وتجاوز المخزن المؤقت للذاكرة الديناميكية.

القيمة التلقائية هي "never".

android:hasCode
تُستخدَم لتحديد ما إذا كان التطبيق يحتوي على أي رمز DEX، أي رمز يستخدم لغة البرمجة Kotlin أو Java. يجب إدخال "true" إذا كان ذلك ممكنًا و"false" إذا لم يكن ذلك ممكنًا. عندما تكون القيمة "false"، لا يحاول النظام تحميل أي رمز تطبيق عند تشغيل المكوّنات. القيمة التلقائية هي "true".

إذا كان التطبيق يتضمّن رموزًا برمجية أصلية (C/C++)، ولكن لا يتضمّن أي رموز DEX، يجب ضبط هذه القيمة على "false". إذا تم ضبطها على "true" عندما لا يحتوي ملف APK على رمز DEX، قد يتعذّر تحميل التطبيق.

يجب أن تأخذ هذه السمة في الاعتبار الرمز البرمجي المضمّن في التطبيق من خلال التبعيات. إذا كان التطبيق يعتمد على ملف AAR يستخدم رمز Java/Kotlin، أو يعتمد مباشرةً على ملف JAR، يجب أن تكون قيمة app:hasCode هي "true"، أو يمكن حذفها لأنّها القيمة التلقائية.

على سبيل المثال، قد يتيح تطبيقك استخدام ميزة عرض الميزات في Play ويتضمّن وحدات ميزات لا تنشئ أي ملفات DEX، وهي رموز بايت محسَّنة لمنصة Android. في هذه الحالة، عليك ضبط قيمة هذا الموقع على "false" في ملف بيان الوحدة لتجنُّب أخطاء وقت التشغيل.

android:hasFragileUserData
تحديد ما إذا كان سيتم عرض طلب للمستخدم للاحتفاظ ببيانات التطبيق عند إلغاء تثبيته. القيمة التلقائية هي "false".
android:hardwareAccelerated
تُستخدَم لتحديد ما إذا كان عرض تسارع الأجهزة مفعَّلاً لجميع الأنشطة وطرق العرض في هذا التطبيق. تكون القيمة "true" إذا كانت مفعَّلة و"false" إذا لم تكن كذلك. القيمة التلقائية هي "true" إذا ضبطت إما minSdkVersion أو targetSdkVersion على "14" أو أعلى. في ما عدا ذلك، تكون القيمة "false".

بدءًا من الإصدار 3.0 من Android (المستوى 11 لواجهة برمجة التطبيقات)، يتوفّر للتطبيقات برنامج عرض OpenGL مزوّد بميزة تسريع الأجهزة، وذلك لتحسين الأداء في العديد من عمليات الرسومات الثنائية الأبعاد الشائعة. عند تفعيل أداة العرض المستندة إلى تسريع الأجهزة، يتم تسريع معظم العمليات في Canvas وPaint وXfermode وColorFilter وShader وCamera.

ويؤدي ذلك إلى عرض صور متحركة أكثر سلاسة وتصفّح أكثر سلاسة وتحسين سرعة الاستجابة بشكل عام، حتى بالنسبة إلى التطبيقات التي لا تستخدم مكتبات OpenGL في إطار العمل بشكل صريح.

لا يتم تسريع جميع عمليات OpenGL الثنائية الأبعاد. في حال تفعيل أداة العرض المستندة إلى تسريع الأجهزة، اختبِر تطبيقك للتأكّد من أنّه يمكنه استخدام أداة العرض بدون حدوث أخطاء.

لمزيد من المعلومات، يُرجى الاطّلاع على دليل تسريع الأجهزة.

android:icon
رمز للتطبيق ككل والرمز التلقائي لكل مكون من مكونات التطبيق اطّلِع على سمات icon الفردية الخاصة بعناصر <activity> و<activity-alias> و<service> و<receiver> و<provider>.

يتم ضبط هذه السمة كمرجع إلى مورد قابل للرسم يحتوي على الصورة، مثل "@drawable/icon". لا يتوفّر رمز تلقائي.

android:isGame
تُستخدَم لتحديد ما إذا كان التطبيق عبارة عن لعبة. قد يجمع النظام التطبيقات المصنَّفة كألعاب معًا أو يعرضها بشكل منفصل عن التطبيقات الأخرى. القيمة التلقائية هي "false".
android:isMonitoringTool

يشير إلى أنّ هذا التطبيق مصمّم لمراقبة أفراد آخرين.

ملاحظة: إذا كان التطبيق يحدّد هذه السمة في ملف البيان الخاص به، على المطوّر الالتزام بسياسة برنامج stalkerware لنشر التطبيق على Google Play.

لا توجد قيمة تلقائية. يجب أن يحدّد المطوّر إحدى القيم التالية:

القيمةالوصف
"parental_control"يوفّر التطبيق أدوات رقابة الأهل ويستهدف بشكل خاص الأهل الذين يريدون الحفاظ على أمان أطفالهم.
"enterprise_management"يستهدف التطبيق المؤسسات التي تريد إدارة وتتبُّع الأجهزة المقدَّمة للموظفين.
"other"يوفّر التطبيق حالة استخدام غير محدّدة في هذا الجدول.
android:killAfterRestore

تحديد ما إذا كان التطبيق سيتم إيقافه بعد استعادة إعداداته أثناء عملية استعادة النظام بالكامل لا تؤدي عمليات استعادة الحزمة الفردية إلى إيقاف التطبيق. لا تحدث عمليات استعادة النظام بالكامل عادةً إلا مرة واحدة، عند إعداد الهاتف لأول مرة. لا تحتاج التطبيقات التابعة لجهات خارجية عادةً إلى استخدام هذه السمة.

القيمة التلقائية هي "true"، ما يعني أنّه بعد أن ينتهي التطبيق من معالجة بياناته أثناء عملية استعادة النظام بالكامل، سيتم إيقافه.

android:largeHeap

تحديد ما إذا كانت عمليات التطبيق يتم إنشاؤها باستخدام مساحة كبيرة من الذاكرة المؤقتة في Dalvik وينطبق ذلك على جميع العمليات التي تم إنشاؤها للتطبيق. وينطبق ذلك على التطبيق الأول الذي يتم تحميله في إحدى العمليات. إذا كنت تستخدم معرّف مستخدم مشتركًا للسماح لتطبيقات متعددة باستخدام عملية، يجب أن تستخدم جميعها هذا الخيار بشكل متّسق لتجنُّب نتائج غير متوقّعة.

لا تحتاج معظم التطبيقات إلى ذلك، بل تركّز على تقليل إجمالي استخدام الذاكرة لتحسين الأداء. لا يضمن تفعيل هذه الميزة أيضًا زيادة ثابتة في الذاكرة المتاحة، لأنّ بعض الأجهزة تكون محدودة بإجمالي الذاكرة المتاحة.

للاستعلام عن حجم الذاكرة المتاحة في وقت التشغيل، استخدِم الطريقتَين getMemoryClass() أو getLargeMemoryClass().

android:label
تصنيف يمكن للمستخدم قراءته للتطبيق ككل وتصنيف تلقائي لكل مكون من مكونات التطبيق اطّلِع على سمات label الفردية الخاصة بعناصر <activity> و<activity-alias> و<service> و<receiver> و<provider>.

يتم ضبط التصنيف كمرجع إلى مصدر السلاسل النصية، حتى يمكن أقلمته مثل السلاسل الأخرى في واجهة المستخدم. ومع ذلك، لتسهيل عملية تطوير التطبيق، يمكن أيضًا ضبطها كسلسلة أولية.

android:logo
شعار التطبيق ككل والشعار التلقائي للأنشطة يتم ضبط هذه السمة كمرجع إلى مورد قابل للرسم يحتوي على الصورة، مثل "@drawable/logo". لا يوجد شعار تلقائي.
android:manageSpaceActivity
الاسم المؤهَّل بالكامل لفئة فرعية من Activity يطلقها النظام ليتمكّن المستخدمون من إدارة الذاكرة التي يشغلها التطبيق على الجهاز. يتم أيضًا تعريف النشاط باستخدام العنصر <activity>.
android:name
الاسم المؤهَّل بالكامل لفئة فرعية Application تم تنفيذها للتطبيق عند بدء عملية التطبيق، يتم إنشاء مثيل لهذه الفئة قبل أي من مكوّنات التطبيق.

الفئة الفرعية اختيارية. لا تحتاج معظم التطبيقات إلى ذلك. في حال عدم توفّر فئة فرعية، يستخدم نظام التشغيل Android مثيلاً للفئة الأساسية Application.

android:networkSecurityConfig

تحدّد هذه السمة اسم ملف XML الذي يحتوي على إعدادات أمان الشبكة لتطبيقك. القيمة هي مرجع إلى ملف موارد XML الذي يحتوي على الإعدادات.

تمت إضافة هذه السمة في المستوى 24 من واجهة برمجة التطبيقات.

android:permission
اسم الإذن الذي يحتاج إليه العملاء للتفاعل مع التطبيق. هذه السمة هي طريقة ملائمة لضبط إذن ينطبق على جميع مكوّنات التطبيق. ويتم استبدالها من خلال ضبط سمات permission للمكوّنات الفردية.

لمزيد من المعلومات عن الأذونات، يُرجى الاطّلاع على قسم الأذونات في النظرة العامة على بيان التطبيق ونصائح الأمان.

android:persistent
ما إذا كان التطبيق سيظل قيد التشغيل في جميع الأوقات. يجب إدخال "true" إذا كان الأمر كذلك و"false" إذا لم يكن كذلك. القيمة التلقائية هي "false". لا تضبط التطبيقات عادةً هذه العلامة. وضع الثبات مخصّص لتطبيقات النظام معيّنة فقط.
android:process
اسم العملية التي يتم فيها تشغيل جميع مكوّنات التطبيق يمكن لكل مكوّن إلغاء هذا الإعداد التلقائي من خلال ضبط سمة process الخاصة به.

ينشئ نظام التشغيل Android تلقائيًا عملية لتطبيق ما عندما يحتاج أول مكوناته إلى التشغيل. بعد ذلك، يتم تشغيل جميع المكوّنات في هذه العملية. يتطابق اسم العملية التلقائية مع اسم الحزمة الذي تم ضبطه بواسطة العنصر <manifest>.

من خلال ضبط هذه السمة على اسم عملية مشترَك مع تطبيق آخر، يمكنك ترتيب تشغيل مكوّنات كلا التطبيقَين في العملية نفسها، ولكن فقط إذا كان التطبيقان يشتركان أيضًا في معرّف مستخدم وتم توقيعهما باستخدام الشهادة نفسها.

إذا كان الاسم المعيّن لهذه السمة يبدأ بنقطتَين رأسيتَين (:)، يتم إنشاء عملية جديدة خاصة بالتطبيق عند الحاجة إليها. إذا بدأ اسم العملية بحرف صغير، يتم إنشاء عملية عامة بهذا الاسم. يمكن مشاركة عملية عامة مع تطبيقات أخرى، ما يقلّل من استخدام الموارد.

android:restoreAnyVersion
يشير إلى أنّ التطبيق جاهز لمحاولة استعادة أي مجموعة بيانات تم الاحتفاظ بنسخة احتياطية منها، حتى إذا تم تخزين النسخة الاحتياطية بواسطة إصدار أحدث من التطبيق مقارنةً بالإصدار المثبَّت حاليًا على الجهاز. يؤدي ضبط هذه السمة على "true" إلى السماح لـ "مدير الاحتفاظ بنسخة احتياطية"
  • $1
  • محاولة إجراء عملية استعادة حتى عندما يشير عدم تطابق الإصدار إلى أنّ البيانات غير متوافقة يُرجى توخّي الحذر!

    القيمة التلقائية لهذه السمة هي "false".

    android:requestLegacyExternalStorage

    تحدّد هذه السمة ما إذا كان التطبيق يريد إيقاف ميزة التخزين المحصور النطاق.

    ملاحظة: قد لا يستجيب النظام لطلب إيقاف هذه الميزة استنادًا إلى التغييرات المتعلّقة بالسياسة أو توافق التطبيق.

    android:requiredAccountType
    تحدّد هذه السمة نوع الحساب المطلوب لتشغيل التطبيق. إذا كان تطبيقك يتطلّب Account، يجب أن تتطابق قيمة هذه السمة مع نوع مصادقة الحساب الذي يستخدمه تطبيقك، كما هو محدّد في AuthenticatorDescription، مثل "com.google".

    القيمة التلقائية هي null وتشير إلى أنّ التطبيق يمكنه العمل بدون أي حسابات.

    بما أنّه لا يمكن للملفات الشخصية المقيّدة إضافة حسابات، فإنّ تحديد هذه السمة يجعل تطبيقك غير متاح من ملف شخصي مقيّد ما لم تحدّد أيضًا android:restrictedAccountType بالقيمة نفسها.

    تنبيه: إذا كانت بيانات الحساب قد تكشف عن معلومات تكشف الهوية الشخصية، من المهم تحديد هذه السمة وترك android:restrictedAccountType فارغًا، حتى لا تتمكّن الملفات الشخصية المقيدة من استخدام تطبيقك للوصول إلى المعلومات الشخصية الخاصة بالمستخدم المالك.

    تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 18.

    android:resizeableActivity

    تحدِّد هذه السمة ما إذا كان التطبيق يتيح وضع النوافذ المتعددة.

    يمكنك ضبط هذه السمة في العنصر <activity> أو العنصر <application>.

    إذا ضبطت هذه السمة على "true"، يمكن للمستخدم تشغيل النشاط في وضعَي تقسيم الشاشة والنافذة الحرة. إذا ضبطت السمة على "false"، لن يتم اختبار التطبيق أو تحسينه ليتوافق مع بيئة النوافذ المتعددة. سيظل بإمكان النظام وضع النشاط في وضع النوافذ المتعددة مع تطبيق وضع التوافق.

    لا يضمن ضبط هذه السمة على "true" عدم ظهور تطبيقات أخرى في وضع النوافذ المتعددة على الشاشة، مثل وضع "نافذة ضمن النافذة"، أو على شاشات أخرى. لذلك، لا يعني ضبط هذا العلامة أنّ تطبيقك لديه إذن حصري بالوصول إلى الموارد.

    بالنسبة إلى التطبيقات التي تستهدف المستوى 24 من واجهة برمجة التطبيقات أو المستويات الأحدث، تكون القيمة التلقائية هي "true".

    إذا كان تطبيقك يستهدف المستوى 31 لواجهة برمجة التطبيقات أو الإصدارات الأحدث، تعمل هذه السمة بشكل مختلف على الشاشات الصغيرة والكبيرة:

    • الشاشات الكبيرة (عرض الشاشة >= 600 وحدة بكسل مستقلة الكثافة): تتوافق جميع التطبيقات مع وضع النوافذ المتعدّدة. تشير السمة إلى ما إذا كان يمكن تغيير حجم التطبيق، وليس إلى ما إذا كان التطبيق يتيح وضع النوافذ المتعدّدة. إذا كانت القيمة resizeableActivity="false"، سيتم وضع التطبيق في وضع التوافق عند الضرورة ليتوافق مع أبعاد الشاشة.
    • الشاشات الصغيرة (أصغر عرض < 600 بكسل مستقل الكثافة): إذا كان resizeableActivity="true" والحد الأدنى للعرض والحد الأدنى للارتفاع للنشاط الرئيسي ضمن متطلبات النوافذ المتعددة، يعني ذلك أنّ التطبيق يتيح وضع النوافذ المتعددة. إذا كانت القيمة resizeableActivity="false"، يعني ذلك أنّ التطبيق لا يتيح وضع النوافذ المتعددة بغض النظر عن الحد الأدنى لعرض وارتفاع النشاط.

    يتم تطبيق قيمة النشاط الأساسي للمهمة على جميع الأنشطة الإضافية التي يتم تشغيلها في المهمة. وهذا يعني أنّه إذا كان النشاط الأساسي لإحدى المهام قابلاً لتغيير الحجم، سيتعامل النظام مع جميع الأنشطة الأخرى في المهمة على أنّها قابلة لتغيير الحجم. إذا لم يكن النشاط الأساسي قابلاً لتغيير الحجم، لن تكون الأنشطة الأخرى في المهمة قابلة لتغيير الحجم.

    تمت إضافة هذه السمة في المستوى 24 من واجهة برمجة التطبيقات.

    android:restrictedAccountType
    تحدّد هذه السمة نوع الحساب المطلوب لهذا التطبيق وتشير إلى أنّ الملفات الشخصية المحدودة يمكنها الوصول إلى هذه الحسابات التي تخص المستخدم المالك. إذا كان تطبيقك يتطلّب Account وكان بإمكان الملفات الشخصية المحدودة الوصول إلى حسابات المستخدم الأساسي، يجب أن تتوافق قيمة هذه السمة مع نوع مصادقة الحساب الذي يستخدمه تطبيقك، كما هو محدّد في AuthenticatorDescription، مثل "com.google".

    القيمة التلقائية هي null، وتشير إلى أنّ التطبيق يمكنه العمل بدون أي حسابات.

    تنبيه: يؤدي تحديد هذه السمة إلى السماح للملفات الشخصية المقيّدة باستخدام تطبيقك مع حسابات تابعة للمستخدم المالك، ما قد يؤدي إلى الكشف عن معلومات تكشف الهوية الشخصية. إذا كان الحساب قد يكشف عن تفاصيل شخصية، لا تستخدم هذه السمة. بدلاً من ذلك، عليك التعريف بالسمة android:requiredAccountType لجعل تطبيقك غير متاح للملفات الشخصية المقيّدة.

    تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 18.

    android:supportsRtl

    توضّح هذه السمة ما إذا كان تطبيقك متوافقًا مع تنسيقات العرض من اليمين إلى اليسار.

    إذا تم ضبط هذه السمة على "true" وتم ضبط targetSdkVersion على 17 أو أعلى، سيتم تفعيل واستخدام العديد من واجهات برمجة التطبيقات التي تتوافق مع اللغات المكتوبة من اليمين إلى اليسار من قِبل النظام، ما يتيح لتطبيقك عرض التنسيقات التي تتوافق مع هذه اللغات. إذا تم ضبط هذا الخيار على "false" أو إذا تم ضبط targetSdkVersion على 16 أو أقل، سيتم تجاهل واجهات برمجة التطبيقات من اليمين إلى اليسار أو لن يكون لها أي تأثير، وسيتصرف تطبيقك بالطريقة نفسها بغض النظر عن اتجاه التنسيق المرتبط بخيار اللغة الذي اختاره المستخدم. أي أنّ تخطيطاتك تكون دائمًا من اليمين إلى اليسار.

    القيمة التلقائية لهذه السمة هي "false".

    تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 17.

    android:taskAffinity
    اسم تقارب ينطبق على جميع الأنشطة داخل التطبيق، باستثناء الأنشطة التي تحدّد تقاربًا مختلفًا باستخدام taskAffinity سماتها الخاصة. يمكنك الاطّلاع على هذه السمة لمزيد من المعلومات.

    تتشارك جميع الأنشطة داخل أحد التطبيقات في الانجذاب نفسه تلقائيًا. ويكون اسم هذا التطبيق المشابه هو نفسه اسم الحزمة الذي تم ضبطه بواسطة العنصر <manifest>.

    android:testOnly
    يشير إلى ما إذا كان هذا التطبيق مخصّصًا لأغراض الاختبار فقط. على سبيل المثال، قد يعرض وظائف أو بيانات خارج نطاقه يمكن أن تتسبّب في ثغرة أمنية، ولكنها قد تكون مفيدة للاختبار. لا يمكن تثبيت هذا النوع من حِزم APK إلا من خلال adb. لا يمكنك نشرها على Google Play.

    يضيف استوديو Android هذه السمة تلقائيًا عند النقر على تشغيل .

    android:theme
    مرجع إلى مورد نمط يحدّد مظهرًا تلقائيًا لجميع الأنشطة في التطبيق يمكن للأنشطة الفردية إلغاء الإعداد التلقائي من خلال ضبط سمات theme الخاصة بها. لمزيد من المعلومات، يُرجى الاطّلاع على الأنماط والمظاهر.
    android:uiOptions
    خيارات إضافية لواجهة مستخدم النشاط يجب أن تكون إحدى القيم التالية:
    القيمةالوصف
    "none"لا تتوفّر خيارات إضافية في واجهة المستخدم. وهذا هو الخيار التلقائي.
    "splitActionBarWhenNarrow"تضيف هذه السمة شريطًا في أسفل الشاشة لعرض عناصر الإجراءات في شريط التطبيق، المعروف أيضًا باسم شريط الإجراءات، وذلك عند عدم توفّر مساحة أفقية كافية، مثلاً عند استخدام الجهاز في الوضع العمودي. بدلاً من ظهور عدد صغير من عناصر الإجراء في شريط التطبيق في أعلى الشاشة، يتم تقسيم شريط التطبيق إلى قسم التنقّل العلوي وشريط سفلي لعناصر الإجراء. وهذا يعني توفُّر مساحة معقولة لعناصر الإجراءات وعناصر التنقّل والعنوان في الأعلى. لا يتم تقسيم عناصر القائمة على الشريطَين. ويظهران دائمًا معًا.

    لمزيد من المعلومات حول شريط التطبيقات، اطّلِع على إضافة شريط التطبيقات.

    تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 14.

    android:usesCleartextTraffic
    توضّح هذه السمة ما إذا كان التطبيق ينوي استخدام حركة بيانات الشبكة بنص غير مرمّز، مثل HTTP بنص غير مرمّز. القيمة التلقائية للتطبيقات التي تستهدف المستوى 27 أو أقل لواجهة برمجة التطبيقات هي "true". تستخدِم التطبيقات التي تستهدف المستوى 28 أو أعلى من واجهة برمجة التطبيقات القيمة التلقائية "false".

    ملاحظة: سيتم إيقاف هذه السمة نهائيًا وسيتم تجاهلها في التطبيقات التي تستهدف المستوى 38 من واجهة برمجة التطبيقات والإصدارات الأحدث. حدِّد إعداد أمان الشبكات للتحكّم في زيارات cleartext في المستوى 24 من واجهة برمجة التطبيقات والإصدارات الأحدث. إذا كان تطبيقك يستهدف المستويات 23 أو أقل من واجهة برمجة التطبيقات، يجب تحديد android:usesCleartextTraffic بالإضافة إلى إعداد أمان الشبكة.

    عند ضبط السمة على "false"، ترفض مكوّنات النظام الأساسي، مثل حِزم HTTP وFTP، وDownloadManager، وMediaPlayer، طلبات التطبيق لاستخدام زيارات نصية غير مشفّرة.

    ننصح بشدة المكتبات التابعة لجهات خارجية بالالتزام بهذا الإعداد أيضًا. والسبب الرئيسي لتجنُّب نقل البيانات بنص عادي هو عدم توفّر السرية والمصداقية والحماية من التلاعب. يمكن للمهاجم على الشبكة التنصت على البيانات المنقولة وتعديلها بدون أن يتم رصده.

    يتم الالتزام بهذا الخيار قدر الإمكان لأنّه من المستحيل منع جميع الزيارات بنص عادي من تطبيقات Android نظرًا إلى مستوى الوصول الممنوح لها. على سبيل المثال، لا يُتوقّع أن يلتزم برنامج Socket بهذه العلامة، لأنّه لا يمكنه تحديد ما إذا كانت الزيارات التي يتلقّاها بنص غير مرمّز أم لا.

    ومع ذلك، يتم التعامل مع معظم حركة بيانات الشبكة من التطبيقات بواسطة حِزم ومكوّنات الشبكة ذات المستوى الأعلى، والتي يمكنها الاستجابة لهذه العلامة إما بقراءتها من ApplicationInfo.flags أو NetworkSecurityPolicy.isCleartextTrafficPermitted().

    ملاحظة: تلتزم WebView بهذه السمة في التطبيقات التي تستهدف المستوى 26 من واجهة برمجة التطبيقات والإصدارات الأحدث.

    أثناء تطوير التطبيق، يمكن استخدام StrictMode لتحديد أي حركة بيانات بنص غير مرمّز من التطبيق. لمزيد من المعلومات، يمكنك الاطّلاع على StrictMode.VmPolicy.Builder.detectCleartextNetwork().

    تمت إضافة هذه السمة في المستوى 23 من واجهة برمجة التطبيقات.

    يتم تجاهل هذا العلامة في الإصدار 7.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 24) والإصدارات الأحدث في حال توفُّر إعدادات أمان شبكة Android.

    android:vmSafeMode
    تشير إلى ما إذا كان التطبيق يريد أن يعمل الجهاز الافتراضي (VM) في الوضع الآمن. القيمة التلقائية هي "false".

    تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 8، حيث أدّت القيمة "true" إلى إيقاف برنامج التجميع أثناء التشغيل (JIT) في Dalvik.

    تم تعديل هذه السمة في المستوى 22 من واجهة برمجة التطبيقات، حيث أدّت القيمة "true" إلى إيقاف برنامج التجميع المسبق (AOT) في وقت تشغيل Android ‏(ART).

    تم إدخال القدرة لأول مرة في:
    مستوى واجهة برمجة التطبيقات 1
    راجِع أيضًا:
    <activity>
    <service>
    <receiver>
    <provider>