- بناء الجملة:
<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
- تشير هذه السمة إلى ما إذا كانت أداة تثبيت الحزمة يستخرج المكتبات الأصلية من 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
- ما إذا كان التطبيق يحتوي على أي رمز 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"
.بدءًا من 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 من واجهة برمجة التطبيقات.
ملاحظة: يتم تطبيق قيمة نشاط الجذر للمهمة على جميع الأنشطة الإضافية التي تم إطلاقها في المهمة. ويعني ذلك أنّه إذا كان من الممكن تغيير حجم نشاط الجذر لمهمة ما، سيتعامل النظام مع جميع الأنشطة الأخرى في المهمة على أنّها يمكن تغيير حجمها. إذا تعذّر تغيير حجم النشاط الجذر، لا يمكن تغيير حجم الأنشطة الأخرى في المهمة.
- الشاشات الكبيرة (sw >= 600dp): تتيح جميع التطبيقات وضع النوافذ المتعددة. تشير السمة
إلى ما إذا كان من الممكن تغيير حجم التطبيق، وليس إلى ما إذا كان التطبيق يتيح وضع النوافذ المتعددة. إذا
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).
بدءًا من الإصدار 4.2.0 من AGP، سيحلّ خيار DSL
useLegacyPackaging
محلّ سمة البيانextractNativeLibs
. استخدِمuseLegacyPackaging
في ملفbuild.gradle
الخاص بتطبيقك بدلاً منextractNativeLibs
في ملف البيان لإعداد سلوك ضغط المكتبة الأصلية. لمزيد من المعلومات، يُرجى الاطّلاع على ملاحظة الإصدار استخدام DSL لتعبئة المكتبات الأصلية المضغوطة.- تم تقديمه في:
- المستوى 1 من واجهة برمجة التطبيقات
- راجع أيضًا:
<activity>
<service>
<receiver>
<provider>
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2024-04-19 (حسب التوقيت العالمي المتفَّق عليه)
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"لا يحتوي على المعلومات التي أحتاج إليها."
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"الخطوات معقدة للغاية / كثيرة جدًا."
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"المحتوى قديم."
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"ثمة مشكلة في الترجمة."
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"مشكلة في العيّنات / التعليمات البرمجية"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"غير ذلك"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"يسهُل فهم المحتوى."
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"ساعَدني المحتوى في حلّ مشكلتي."
},{
"type": "thumb-up",
"id": "otherUp",
"label":"غير ذلك"
}]
{
"last_modified": "تاريخ التعديل الأخير: 2024-04-19 (حسب التوقيت العالمي المتفَّق عليه)",
"state": ""
}