- البنية:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowCrossUidActivitySwitchFromBelow=["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:enabledOnBackInvokedCallback=["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"
، حتى إذا كان تطبيقك يستهدف الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.لمزيد من المعلومات، يُرجى الاطّلاع على قسم الاحتفاظ بنسخة احتياطية من البيانات واستعادتها من الصفحة التي تصف تغييرات السلوك في التطبيقات التي تستهدف الإصدار 12 من Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.
android:allowClearUserData
ما إذا كان سيتم السماح للتطبيق بإعادة ضبط بيانات المستخدم وتشمل هذه البيانات الإشارات، مثل ما إذا كان المستخدم قد شاهد نصائح إرشادية تمهيدية، بالإضافة إلى الإعدادات والإعدادات المفضّلة التي يمكن للمستخدم تخصيصها. القيمة التلقائية لهذه السمة هي
"true"
.ملاحظة: يمكن فقط للتطبيقات التي تشكّل جزءًا من صورة النظام تحديد هذه السمة صراحةً. لا يمكن للتطبيقات التابعة لجهات خارجية تضمين هذه القيمة في ملفات البيان الخاصة بها.
لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على الاحتفاظ بنسخة احتياطية من البيانات.
android:allowCrossUidActivitySwitchFromBelow
يحدِّد ما إذا كان بإمكان الأنشطة أدناه في المهمة أيضًا بدء أنشطة أخرى أو إنهاء المهمة.
اعتبارًا من المستوى
Build.VERSION_CODES.VANILLA_ICE_CREAM
من حزمة تطوير البرامج (SDK) المستهدَفة، قد يتم حظر التطبيقات من بدء أنشطة جديدة أو إنهاء مهمتها ما لم يكن النشاط الرئيسي لهذه المهمة ينتمي إلى المعرّف الفريد نفسه لأسباب تتعلق بالأمان.سيؤدي ضبط هذا العلامة على
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
- تشير هذه السمة إلى ما إذا كان أداة تثبيت الحِزمة تستخرج المكتبات الأصلية منملف APK ونقلها إلى نظام الملفات. في حال ضبط القيمة على
"false"
، يتم تخزين المكتبات الأصلية غير مضغوطة في حزمة APK. على الرغم من أنّ حزمة APK قد تكون أكبر حجمًا، يتم تحميل تطبيقك بشكل أسرع لأنّ المكتبات يتم تحميلها مباشرةً من حزمة APK أثناء التشغيل.تعتمد القيمة التلقائية لسمة
extractNativeLibs
علىminSdkVersion
و إصدار AGP الذي تستخدمه. في معظم الحالات، يكون السلوك التلقائي هو ما تريده، ولا تحتاج إلى ضبط هذه السمة بشكل صريح. android:fullBackupContent
- تشير هذه السمة إلى ملف XML يحتوي على قواعد احتياطية كاملة لميزة
الاحتفاظ بنسخة احتياطية تلقائية.
تحدِّد هذه القواعد الملفات التي يتم الاحتفاظ بنسخة احتياطية منها. لمزيد من المعلومات، يُرجى الاطّلاع على بنية تنسيق XML لميزة "الاحتفاظ بنسخة احتياطية تلقائية".
هذه السمة اختيارية. إذا لم يتم تحديدها، تشمل ميزة "الاحتفاظ بنسخة احتياطية تلقائية" تلقائيًا معظم ملفات تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على الملفات التي يتم الاحتفاظ بنسخة احتياطية منها.
android:fullBackupOnly
- تشير هذه السمة إلى ما إذا كان سيتم استخدام ميزة
الاحتفاظ بنسخة احتياطية تلقائية على الأجهزة
التي تتوفّر فيها هذه الميزة. في حال ضبط القيمة على
"true"
، سينفِّذ تطبيقك ميزة "الاحتفاظ بنسخة احتياطية تلقائيًا" عند تثبيته على جهاز يعمل بنظام التشغيل Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) أو إصدار أحدث. على الأجهزة القديمة، يتجاهل تطبيقك هذه السمة وينفّذ عمليات الاحتفاظ بنسخة احتياطية من المفاتيح/القيم.تكون القيمة التلقائية
"false"
. android:gwpAsanMode
- تشير هذه السمة إلى ما إذا كان سيتم استخدام
GWP-ASan، وهي ميزة لتوزيع الذاكرة الأصلية تساعد في
العثور على أخطاء استخدام ذاكرة معيّنة بعد تفريغها (Use-After-Free) وتجاوز سعة المخزن المؤقت للذاكرة الديناميكية (Heap-Buffer-Overflow).
تكون القيمة التلقائية
"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 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 مثيلًا من فئة dasar
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 من واجهة برمجة التطبيقات.
ملاحظة: يتم تطبيق قيمة النشاط الجذر للمهمة على جميع الأنشطة الإضافية التي يتم إطلاقها في المهمة. وهذا يعني أنّه إذا كان النشاط الجذر ل مهمة قابلاً لتغيير الحجم، سيتعامل النظام مع جميع الأنشطة الأخرى في المهمة على أنّها قابلة لتغيير الحجم. إذا لم يكن من الممكن تغيير حجم النشاط الجذر، لن يكون من الممكن تغيير حجم الأنشطة الأخرى في المهمة.
- الشاشات الكبيرة (sw >= 600dp): تتيح جميع التطبيقات وضع "النوافذ المتعددة". تشير السمة إلى
ما إذا كان بإمكان المستخدم تغيير حجم التطبيق، وليس ما إذا كان التطبيق متوافقًا مع وضع "نوافذ متعدّدة". في حال
android:restrictedAccountType
- يحدد نوع الحساب المطلوب لهذا التطبيق ويشير إلى أنّ الملفات الشخصية المحظورة
يمكنها الوصول إلى هذه الحسابات التي يملكها المستخدم. إذا كان تطبيقك يتطلّب استخدام
Account
ويمكن للملفات الشخصية المحظورة الوصول إلى حسابات المستخدم الأساسي، يجب أن تتوافق قيمة هذه السمة مع نوع معتمِد الحساب المستخدَم في تطبيقك، كما هومحدد فيAuthenticatorDescription
، مثل"com.google"
.القيمة التلقائية هي فارغة وتشير إلى أنّه يمكن للتطبيق العمل بدون أي حسابات.
تحذير: يؤدي تحديد هذه السمة إلى السماح للملفات الشخصية المحظورة باستخدام تطبيقك مع الحسابات التي يملكها المستخدم، ما قد يؤدي إلى الكشف عن معلومات تحديد الهوية الشخصية. إذا كان الحساب قد يكشف عن تفاصيل شخصية، لا تستخدِم هذه السمة. بدلاً من ذلك، يمكنك الإفصاح عن سمة
android:requiredAccountType
لإبقاء تطبيقك غير متاح للملفات الشخصية المحظورة.تمت إضافة هذه السمة في المستوى 18 من واجهة برمجة التطبيقات.
android:supportsRtl
تُستخدَم للإشارة إلى ما إذا كان تطبيقك متوافقًا مع التنسيقات من اليمين إلى اليسار.
إذا تم ضبط هذا الخيار على
"true"
وtargetSdkVersion
على 17 أو إصدار أحدث، يتم تفعيل واجهات برمجة التطبيقات المختلفة للغة RTL واستخدامها من قِبل النظام حتى يتمكّن تطبيقك من عرض تنسيقات RTL. إذا تم ضبط هذا الخيار على"false"
أو إذا تم ضبطtargetSdkVersion
على 16 أو أقل، يتم تجاهل واجهات برمجة التطبيقات للغة RTL أو لا يكون لها أي تأثير، وسيعمل تطبيقك بالطريقة نفسها بغض النظر عن اتجاه التنسيق المرتبط بخيار اللغة الذي اختاره المستخدم. وهذا يعني أنّ التنسيقات تكون دائمًا من اليمين إلى اليسار.القيمة التلقائية لهذه السمة هي
"false"
.تمت إضافة هذه السمة في المستوى 17 من واجهة برمجة التطبيقات.
android:taskAffinity
- اسم صلة ينطبق على جميع الأنشطة داخل التطبيق،
باستثناء الأنشطة التي تضبط صلة مختلفة باستخدام سمات
taskAffinity
خاصة بها. اطّلِع على هذه السمة للحصول على مزيد من المعلومات.تشترك جميع الأنشطة ضمن تطبيق معيّن تلقائيًا في الميل نفسه. يكون اسم هذه الصلة مطابقًا لاسم الحزمة الذي يحدّده العنصر
<manifest>
. android:testOnly
- يشير هذا الحقل إلى ما إذا كان هذا التطبيق مخصّصًا لأغراض الاختبار فقط. على سبيل المثال،
قد يعرِض التطبيق وظائف أو بيانات خارج نطاق التطبيق يمكن أن تؤدي إلى ثغرة أمان، ولكنه قد يكون مفيدًا للاختبار. لا يمكن تثبيت هذا النوع من حِزم APK إلا
من خلال
adb
. لا يمكنك نشرها على Google Play.تضيف أداة Android Studio هذه السمة تلقائيًا عند النقر على تشغيل
.
android:theme
- إشارة إلى مصدر نمط يحدِّد مظهرًا تلقائيًا لجميع
الأنشطة في التطبيق يمكن للأنشطة الفردية إلغاء
الإعداد التلقائي من خلال ضبط سمات
theme
الخاصة بها. لمزيد من المعلومات، يُرجى الاطّلاع على الأنماط والمظاهر. android:uiOptions
- خيارات إضافية لواجهة مستخدم النشاط يجب أن تكون إحدى القيم التالية:
القيمة الوصف "none"
لا تتوفّر خيارات إضافية لواجهة المستخدم. هذا هو الخيار التلقائي. "splitActionBarWhenNarrow"
تضيف هذه السمة شريطًا في أسفل الشاشة لعرض عناصر الإجراءات في شريط التطبيق، المعروف أيضًا باسم شريط الإجراءات، عندما تكون المساحة الأفقية محدودة، مثل الوضع العمودي على الهاتف الجوّال. بدلاً من عرض عدد صغير من عناصر الإجراءات في شريط التطبيق في أعلى الشاشة، يتم تقسيم شريط التطبيق إلى قسم التنقّل العلوي والشريط السفلي لعناصر الإجراءات. وهذا يعني أنّه تتوفّر مساحة معقولة لعناصر الإجراءات وعناصر التنقّل والعنوان في الأعلى. لا يتم تقسيم عناصر القائمة على الشريطين. وتظهر دائمًا معًا. لمزيد من المعلومات عن شريط التطبيقات، يُرجى الاطّلاع على مقالة إضافة شريط التطبيقات.
تمت إضافة هذه السمة في المستوى 14 من واجهة برمجة التطبيقات.
android:usesCleartextTraffic
- يشير إلى ما إذا كان التطبيق سيستخدم حركة بيانات الشبكة بتنسيق نص عادي، مثل HTTP بتنسيق نص عادي.
القيمة التلقائية للتطبيقات التي تستهدف المستوى 27 أو أقل من واجهة برمجة التطبيقات هي
"true"
. تكون التطبيقات التي تستهدف المستوى 28 من واجهة برمجة التطبيقات أو أعلى تلقائيًا على الإصدار"false"
.عند ضبط السمة على
"false"
، ترفض مكونات النظام الأساسي، مثل مجموعات HTTP وDownloadManager
وMediaPlayer
و، طلبات التطبيق لاستخدام زيارات النصّ الواضح.وننصحك بشدة بالتزام المكتبات التابعة لجهات خارجية بهذه الإعدادات أيضًا. ويتمثل السبب الرئيسي في تجنُّب الزيارات النصية الواضحة في عدم توفّر السرية والمصداقية ووسائل الحماية من التلاعب. يمكن لمهاجم الشبكة التنصت على data المُرسَلة وتعديلها أيضًا بدون أن يتم رصده.
يتمّ الالتزام بهذا الشعار على أساس أفضل الجهود المتاحة، لأنّه من المستحيل منع جميع الزيارات المرسَلة بتنسيق نص عادي من تطبيقات 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"
إلى إيقاف برنامج تجميع Dalvik أثناء التشغيل (JIT).تم تعديل هذه السمة في المستوى 22 لواجهة برمجة التطبيقات، حيث أدّت القيمة
"true"
إلى إيقاف أداة التحويل المسبق (AOT) لـ ART.
بدءًا من الإصدار AGP 4.2.0، يحلّ خيار DSL
useLegacyPackaging
محلّ سمة البيانextractNativeLibs
. استخدِمuseLegacyPackaging
في ملفbuild.gradle
في تطبيقك بدلاً منextractNativeLibs
في ملف البيان لضبط سلوك ضغط المكتبة المُجمَّعة من رموز برمجية أصلية. لمزيد من المعلومات، يُرجى الاطّلاع على ملاحظات الإصدار استخدام لغة وصف البيانات لحزم المكتبات الأصلية المضغوطة.- تمّت إتاحة هذه الميزة لأول مرة في:
- المستوى 1 من واجهة برمجة التطبيقات
- راجِع أيضًا:
<activity>
<service>
<receiver>
<provider>
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-01-23 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-01-23 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]