<التطبيق>

بناء الجملة:
<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: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، قيمًا للتطبيق ككل ولا تتجاهلها المكونات.

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

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

android:allowBackup

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

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

ومع ذلك، يمكنك إيقاف الاحتفاظ بنسخة احتياطية من ملفات تطبيقك واستعادتها استنادًا إلى السحابة الإلكترونية من خلال ضبط هذه السمة على "false" حتى إذا كان تطبيقك يستهدف الإصدار Android 12 (المستوى 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:extractNativeLibs

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

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

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

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

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

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

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

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

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

android:hasCode
ما إذا كان التطبيق يحتوي على أي رمز أم لا. وتكون القيمة "true" إذا حدث ذلك، و"false" إذا لم يحدث ذلك. عندما تكون القيمة "false"، لا يحاول النظام تحميل أي رمز تطبيق عند تشغيل المكوّنات. القيمة التلقائية هي "true".

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

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

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

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

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

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

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" إلى السماح "لمدير النسخ الاحتياطي" بمحاولة استعادة البيانات حتى عندما يشير عدم تطابق الإصدار إلى أنّ البيانات غير متوافقة. يُرجى توخي الحذر عند الاستخدام.

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

android:requestLegacyExternalStorage

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

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

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

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

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

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

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

android:resizeableActivity

تحدِّد هذه السياسة ما إذا كان التطبيق متوافقًا مع وضع النوافذ المتعددة. يمكنك ضبط هذه السمة إما في العنصر <activity> أو في العنصر <application>.

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

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

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

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

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

ملاحظة: يمكن للشركات المصنّعة للأجهزة إلغاء سلوك المستوى 31 من واجهة برمجة التطبيقات.

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

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

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

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

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

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

android:supportsRtl
يوضح ما إذا كان تطبيقك متوافقًا مع تنسيقات اليمين إلى اليسار (RTL).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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