<التطبيق>

بناء الجملة:
<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 أو الإصدارات الأحدث، ويستهدف أيضًا الإصدار 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"، سيجري تطبيقك ميزة الاحتفاظ التلقائي بنسخة احتياطية عند تثبيته على جهاز يعمل بالإصدار 6.0 من نظام التشغيل Android (المستوى 23 من واجهة برمجة التطبيقات) أو بإصدار أحدث. على الأجهزة القديمة، يتجاهل تطبيقك هذه السمة وينفّذ نُسخ احتياطية للمفتاح/القيمة.

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

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

القيمة التلقائية هي "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 وShayder والكاميرا.

وينتج عن ذلك رسوم متحركة أكثر سلاسة وتمرير أكثر سلاسة وتحسين الاستجابة بشكل عام، حتى في التطبيقات التي لا تستخدم بشكل صريح مكتبات 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 متعددة ويستخدمها النظام ليتمكّن التطبيق من عرض تنسيقات 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
يشير إلى ما إذا كان التطبيق يهدف إلى استخدام حركة بيانات الشبكة بدون استخدام نصوص واضحة، مثل cloudtext HTTP. إنّ القيمة التلقائية للتطبيقات التي تستهدف المستوى 27 من واجهة برمجة التطبيقات أو مستوى أقل هي "true". إنّ التطبيقات التي تستهدف المستوى 28 من واجهة برمجة التطبيقات أو مستوى أعلى يتم ضبطها تلقائيًا على "false".

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

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

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

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

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

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

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

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

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

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

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

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