- البنية:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowNativeHeapPointerTagging=["true" | "false"] android:appCategory=["accessibility" | "audio" | "game" | "image" | "maps" | "news" | "productivity" | "social" | "video"] android:backupAgent="string" android:backupInForeground=["true" | "false"] android:banner="drawable resource" android:dataExtractionRules="string resource" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:enableOnBackInvokedCallback=["true" | "false"] android:extractNativeLibs=["true" | "false"] android:fullBackupContent="string" android:fullBackupOnly=["true" | "false"] android:gwpAsanMode=["always" | "never"] android:hasCode=["true" | "false"] android:hasFragileUserData=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:isGame=["true" | "false"] android:isMonitoringTool=["parental_control" | "enterprise_management" | "other"] android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:networkSecurityConfig="xml resource" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requestLegacyExternalStorage=["true" | "false"] android:requiredAccountType="string" android:resizeableActivity=["true" | "false"] android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:usesCleartextTraffic=["true" | "false"] android:vmSafeMode=["true" | "false"] > . . . </application>
- مضمّنة في:
<manifest>- يمكن أن تحتوي على:
<activity><activity-alias><meta-data><service><receiver><profileable><provider><uses-library><uses-native-library>- description:
بيان التطبيق يحتوي هذا العنصر على عناصر فرعية تحدّد كل مكون من مكونات التطبيق، كما يحتوي على سمات يمكن أن تؤثر في جميع المكونات.
تحدّد العديد من هذه السمات، مثل
iconوlabelوpermissionوprocessوtaskAffinityوallowTaskReparenting، قيمًا تلقائية للسمات المقابلة لعناصر المكوّن. تحدّد سمات أخرى، مثلdebuggableوenabledوdescriptionوallowClearUserData، قيمًا للتطبيق ككل ولا يتم تجاهلها من خلال المكوّنات.- attributes
android:allowTaskReparenting- تحديد ما إذا كان يمكن نقل الأنشطة التي يحدّدها التطبيق من المهمة التي بدأت هذه الأنشطة إلى المهمة التي تتوافق معها عند إعادة هذه المهمة إلى المقدّمة تكون القيمة
"true"إذا كان بإمكانهم الانتقال، و"false"إذا كان عليهم البقاء في المهمة التي بدأوا بها. القيمة التلقائية هي"false".يحتوي العنصر
<activity>على السمةallowTaskReparentingالخاصة به التي يمكنها إلغاء القيمة المحدّدة هنا. android:allowBackupتُستخدَم لتحديد ما إذا كان سيتم السماح للتطبيق بالمشاركة في البنية الأساسية للاحتفاظ بنسخة احتياطية واستعادة البيانات. إذا تم ضبط هذه السمة على
"false"، لن يتم الاحتفاظ بنسخة احتياطية من التطبيق أو استعادتها أبدًا، حتى من خلال نسخة احتياطية كاملة للنظام تؤدي عادةً إلى حفظ جميع بيانات التطبيق باستخدامadb. القيمة التلقائية لهذه السمة هي"true".ملاحظة: يختلف هذا السلوك في التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأحدث. على الأجهزة التي تصنّعها بعض الشركات، لا يمكنك إيقاف ميزة نقل ملفات تطبيقك من جهاز إلى آخر.
ومع ذلك، يمكنك إيقاف ميزة الاحتفاظ بنسخة احتياطية من ملفات تطبيقك واستعادتها استنادًا إلى السحابة الإلكترونية من خلال ضبط هذه السمة على
"false"، حتى إذا كان تطبيقك يستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأحدث.لمزيد من المعلومات، يُرجى الاطّلاع على قسم الاحتفاظ بنسخة احتياطية والاستعادة في الصفحة التي توضّح التغييرات في سلوك التطبيقات التي تستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأحدث.
android:allowClearUserDataتحديد ما إذا كان سيتم السماح للتطبيق بإعادة ضبط بيانات المستخدم أم لا وتشمل هذه البيانات علامات، مثل ما إذا كان المستخدم قد شاهد تلميحات الأدوات التمهيدية، بالإضافة إلى الإعدادات والخيارات المفضّلة التي يمكن للمستخدم تخصيصها. القيمة التلقائية لهذه السمة هي
"true".ملاحظة: لا يمكن للتطبيقات التي تشكّل جزءًا من صورة النظام تحديد هذه السمة بشكل صريح. لا يمكن للتطبيقات التابعة لجهات خارجية تضمين هذه السمة في ملفات البيان الخاصة بها.
لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على الاحتفاظ بنسخة احتياطية من البيانات.
android:allowNativeHeapPointerTaggingتحدّد هذه السمة ما إذا كان التطبيق يفعّل ميزة "وضع علامات على مؤشرات Heap". القيمة التلقائية لهذه السمة هي
"true".ملاحظة: لن يؤدي إيقاف هذه الميزة إلى حلّ مشكلة سلامة الرمز الأساسية. قد لا تتوافق أجهزة الأجهزة المستقبلية مع علامة البيان هذه.
لمزيد من المعلومات، يُرجى الاطّلاع على المؤشرات الموسومة.
android:appCategoryتحدّد هذه السمة فئة التطبيق. تُستخدَم الفئات لتجميع تطبيقات متعددة معًا في مجموعات ذات صلة، مثل عند تلخيص استخدام البطارية أو الشبكة أو مساحة التخزين على القرص. يجب تحديد هذه القيمة للتطبيقات التي تتناسب بشكل جيد مع إحدى الفئات المحدّدة فقط.
يجب أن تكون إحدى القيم الثابتة التالية.
القيمة الوصف accessibilityالتطبيقات التي تُعنى بشكل أساسي بتسهيل الاستخدام، مثل تطبيقات قراءة الشاشة audioالتطبيقات التي تعمل بشكل أساسي مع الصوت أو الموسيقى، مثل مشغّلات الموسيقى gameالتطبيقات التي تكون ألعابًا في المقام الأول imageالتطبيقات التي تعمل بشكل أساسي مع الصور، مثل تطبيقات الكاميرا أو معرض الصور mapsالتطبيقات التي تكون في الأساس تطبيقات خرائط، مثل تطبيقات التنقّل newsالتطبيقات التي تكون في الأساس تطبيقات أخبار، مثل تطبيقات الصحف أو المجلات أو الرياضة productivityالتطبيقات التي تكون في الأساس تطبيقات إنتاجية، مثل تطبيقات التخزين السحابي أو تطبيقات مكان العمل socialالتطبيقات التي تكون في الأساس تطبيقات اجتماعية، مثل تطبيقات المراسلة أو التواصل أو البريد الإلكتروني أو شبكات التواصل الاجتماعي videoالتطبيقات التي تعمل بشكل أساسي مع الفيديوهات أو الأفلام، مثل تطبيقات بث الفيديو android:backupAgent- اسم الفئة التي تنفّذ وكيل النسخ الاحتياطي للتطبيق،
وهي فئة فرعية من
BackupAgent. قيمة السمة هي اسم فئة مؤهَّل بالكامل، مثل"com.example.project.MyBackupAgent". ومع ذلك، كاختصار، إذا كان الحرف الأول من الاسم نقطة، على سبيل المثال،".MyBackupAgent"، تتم إضافته إلى اسم الحزمة المحدّد في العنصر<manifest>.لا يوجد إعداد تلقائي. يجب أن يكون الاسم محدّدًا.
android:backupInForeground- يشير إلى أنّه يمكن تنفيذ عمليات الاحتفاظ التلقائي بنسخة احتياطية على هذا التطبيق حتى إذا كان التطبيق في حالة مكافئة لحالة التشغيل في المقدّمة. يُغلِق النظام تطبيقًا أثناء عملية النسخ الاحتياطي التلقائي، لذا استخدِم هذه السمة بحذر. قد يؤدي ضبط هذا العلامة على
"true"إلى التأثير في سلوك التطبيق أثناء نشاطه.القيمة التلقائية هي
"false"، ما يعني أنّ نظام التشغيل يتجنّب إجراء نسخ احتياطي من التطبيق أثناء تشغيله في المقدّمة، مثل تطبيق موسيقى يشغّل الموسيقى بنشاط باستخدام خدمة في حالةstartForeground(). android:banner- مورد قابل للرسم
يوفر بانرًا رسوميًا موسّعًا للعنصر المرتبط به. يُستخدَم مع العلامة
<application>لتوفير بانر تلقائي لجميع أنشطة التطبيق أو مع العلامة<activity>لتوفير بانر لنشاط معيّن.يستخدم النظام البانر لتمثيل تطبيق في الشاشة الرئيسية على Android TV. لذلك، لا تحدِّد هذا الخيار إلا للتطبيقات التي تتضمّن نشاطًا يعالج الغرض
CATEGORY_LEANBACK_LAUNCHER.يتم ضبط هذه السمة كمرجع إلى مورد قابل للرسم يحتوي على الصورة، مثل
"@drawable/banner". لا يتوفّر بانر تلقائي.لمزيد من المعلومات، يُرجى الاطّلاع على توفير بانر للشاشة الرئيسية.
android:dataExtractionRulesيمكن للتطبيقات ضبط هذه السمة على أحد موارد XML التي تحدّد القواعد التي تحدّد الملفات والأدلة التي يمكن نسخها من الجهاز كجزء من عمليات النسخ الاحتياطي أو النقل.
للحصول على معلومات حول تنسيق ملف XML، يُرجى الاطّلاع على الاحتفاظ بنسخة احتياطية واستعادة البيانات.
android:debuggable- تحديد ما إذا كان يمكن تصحيح أخطاء التطبيق، حتى عند تشغيله
على جهاز في وضع المستخدم. تكون القيمة
"true"إذا كان ذلك ممكنًا، و"false"إذا لم يكن كذلك. القيمة التلقائية هي"false". android:description- نص يمكن للمستخدم قراءته حول التطبيق، وهو أطول وأكثر وصفًا من تصنيف التطبيق. يتم ضبط القيمة كمرجع لمصدر السلاسل النصية. وعلى عكس التصنيف، لا يمكن أن يكون سلسلة أولية. لا توجد قيمة تلقائية.
android:enabled- تحديد ما إذا كان بإمكان نظام التشغيل Android إنشاء مثيل لمكوّنات التطبيق. يجب إدخال
"true"إذا كان بإمكانك ذلك، و"false"إذا لم يكن ذلك ممكنًا. إذا كانت القيمة"true"، تحدّد السمةenabledلكل مكوّن ما إذا كان هذا المكوّن مفعَّلاً. إذا كانت القيمة"false"، فإنّها تلغي القيم الخاصة بالمكوّنات، ويتم إيقاف جميع المكوّنات.القيمة التلقائية هي
"true". android:enableOnBackInvokedCallbackتتيح لك هذه العلامة إيقاف الصور المتحركة التنبؤية في النظام على مستوى التطبيق.
اضبط قيمة
android:enableOnBackInvokedCallback=falseلإيقاف الصور المتحركة الخاصة بإيماءة إظهار شاشة الرجوع على مستوى التطبيق واطلب من النظام تجاهل طلبات البيانات من واجهة برمجة التطبيقاتOnBackInvokedCallback.android:extractNativeLibs- تشير هذه السمة إلى ما إذا كان مثبِّت الحِزم يستخرج المكتبات الأصلية من حزمة APK إلى نظام الملفات. في حال ضبط القيمة على
"false"، يتم تخزين المكتبات المجمّعة من رموز برمجية أصلية غير مضغوطة في حزمة APK. على الرغم من أنّ حزمة APK قد تكون أكبر حجمًا، يتم تحميل تطبيقك بشكل أسرع لأنّه يتم تحميل المكتبات مباشرةً من حزمة APK في وقت التشغيل.تعتمد القيمة التلقائية
extractNativeLibsعلىminSdkVersionوإصدار "مكوّن Android الإضافي في Gradle" الذي تستخدمه. في معظم الحالات، يكون السلوك التلقائي هو ما تريده، ولن تحتاج إلى ضبط هذه السمة بشكل صريح. android:fullBackupContent- تشير هذه السمة إلى ملف XML يحتوي على قواعد الاحتفاظ الكامل بنسخة احتياطية الخاصة بميزة
الاحتفاظ التلقائي بنسخة احتياطية.
تحدّد هذه القواعد الملفات التي يتم الاحتفاظ بنسخة احتياطية منها. لمزيد من المعلومات، يُرجى الاطّلاع على
بنية إعدادات XML
لخدمة "الاحتفاظ التلقائي بنسخة احتياطية".
هذه السمة اختيارية. إذا لم يتم تحديدها، ستتضمّن ميزة "الاحتفاظ التلقائي بنسخة احتياطية" تلقائيًا معظم ملفات تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على الملفات التي يتم الاحتفاظ بنسخة احتياطية منها.
android:fullBackupOnly- تشير هذه السمة إلى ما إذا كان سيتم استخدام ميزة
الاحتفاظ التلقائي بنسخة احتياطية على الأجهزة
التي تتوفّر فيها هذه الميزة. إذا تم ضبط القيمة على
"true"، سيُجري تطبيقك عملية الاحتفاظ التلقائي بنسخة احتياطية عند تثبيته على جهاز يعمل بالإصدار 6.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 23) أو الإصدارات الأحدث. على الأجهزة القديمة، يتجاهل تطبيقك هذه السمة وينفّذ عمليات الاحتفاظ بنسخ احتياطية من المفتاح/القيمة.القيمة التلقائية هي
"false". android:gwpAsanMode- تحدّد هذه السمة ما إذا كان سيتم استخدام
GWP-ASan، وهي ميزة لتخصيص الذاكرة الأصلية تساعد في
العثور على الأخطاء المرتبطة باستخدام ذاكرة معيّنة بعد تفريغها وتجاوز المخزن المؤقت للذاكرة الديناميكية.
القيمة التلقائية هي
"never". android:hasCode- تُستخدَم لتحديد ما إذا كان التطبيق يحتوي على أي رمز DEX، أي رمز يستخدم لغة البرمجة Kotlin أو Java.
يجب إدخال
"true"إذا كان ذلك ممكنًا و"false"إذا لم يكن ذلك ممكنًا. عندما تكون القيمة"false"، لا يحاول النظام تحميل أي رمز تطبيق عند تشغيل المكوّنات. القيمة التلقائية هي"true".إذا كان التطبيق يتضمّن رموزًا برمجية أصلية (C/C++)، ولكن لا يتضمّن أي رموز DEX، يجب ضبط هذه القيمة على
"false". إذا تم ضبطها على"true"عندما لا يحتوي ملف APK على رمز DEX، قد يتعذّر تحميل التطبيق.يجب أن تأخذ هذه السمة في الاعتبار الرمز البرمجي المضمّن في التطبيق من خلال التبعيات. إذا كان التطبيق يعتمد على ملف AAR يستخدم رمز Java/Kotlin، أو يعتمد مباشرةً على ملف JAR، يجب أن تكون قيمة
app:hasCodeهي"true"، أو يمكن حذفها لأنّها القيمة التلقائية.على سبيل المثال، قد يتيح تطبيقك استخدام ميزة عرض الميزات في Play ويتضمّن وحدات ميزات لا تنشئ أي ملفات DEX، وهي رموز بايت محسَّنة لمنصة Android. في هذه الحالة، عليك ضبط قيمة هذا الموقع على
"false"في ملف بيان الوحدة لتجنُّب أخطاء وقت التشغيل. android:hasFragileUserData- تحديد ما إذا كان سيتم عرض طلب للمستخدم
للاحتفاظ ببيانات التطبيق عند إلغاء تثبيته. القيمة التلقائية هي
"false". android:hardwareAccelerated- تُستخدَم لتحديد ما إذا كان عرض تسارع الأجهزة مفعَّلاً لجميع الأنشطة وطرق العرض في هذا التطبيق. تكون القيمة
"true"إذا كانت مفعَّلة و"false"إذا لم تكن كذلك. القيمة التلقائية هي"true"إذا ضبطت إماminSdkVersionأوtargetSdkVersionعلى"14"أو أعلى. في ما عدا ذلك، تكون القيمة"false".بدءًا من الإصدار 3.0 من Android (المستوى 11 لواجهة برمجة التطبيقات)، يتوفّر للتطبيقات برنامج عرض OpenGL مزوّد بميزة تسريع الأجهزة، وذلك لتحسين الأداء في العديد من عمليات الرسومات الثنائية الأبعاد الشائعة. عند تفعيل أداة العرض المستندة إلى تسريع الأجهزة، يتم تسريع معظم العمليات في Canvas وPaint وXfermode وColorFilter وShader وCamera.
ويؤدي ذلك إلى عرض صور متحركة أكثر سلاسة وتصفّح أكثر سلاسة وتحسين سرعة الاستجابة بشكل عام، حتى بالنسبة إلى التطبيقات التي لا تستخدم مكتبات OpenGL في إطار العمل بشكل صريح.
لا يتم تسريع جميع عمليات OpenGL الثنائية الأبعاد. في حال تفعيل أداة العرض المستندة إلى تسريع الأجهزة، اختبِر تطبيقك للتأكّد من أنّه يمكنه استخدام أداة العرض بدون حدوث أخطاء.
لمزيد من المعلومات، يُرجى الاطّلاع على دليل تسريع الأجهزة.
android:icon- رمز للتطبيق ككل والرمز التلقائي لكل مكون من مكونات التطبيق اطّلِع على سمات
iconالفردية الخاصة بعناصر<activity>و<activity-alias>و<service>و<receiver>و<provider>.يتم ضبط هذه السمة كمرجع إلى مورد قابل للرسم يحتوي على الصورة، مثل
"@drawable/icon". لا يتوفّر رمز تلقائي. android:isGame- تُستخدَم لتحديد ما إذا كان التطبيق عبارة عن لعبة. قد يجمع النظام التطبيقات المصنَّفة كألعاب معًا أو يعرضها بشكل منفصل عن التطبيقات الأخرى. القيمة التلقائية هي
"false". android:isMonitoringToolيشير إلى أنّ هذا التطبيق مصمّم لمراقبة أفراد آخرين.
ملاحظة: إذا كان التطبيق يحدّد هذه السمة في ملف البيان الخاص به، على المطوّر الالتزام بسياسة برنامج stalkerware لنشر التطبيق على Google Play.
لا توجد قيمة تلقائية. يجب أن يحدّد المطوّر إحدى القيم التالية:
القيمة الوصف "parental_control"يوفّر التطبيق أدوات رقابة الأهل ويستهدف بشكل خاص الأهل الذين يريدون الحفاظ على أمان أطفالهم. "enterprise_management"يستهدف التطبيق المؤسسات التي تريد إدارة وتتبُّع الأجهزة المقدَّمة للموظفين. "other"يوفّر التطبيق حالة استخدام غير محدّدة في هذا الجدول. android:killAfterRestoreتحديد ما إذا كان التطبيق سيتم إيقافه بعد استعادة إعداداته أثناء عملية استعادة النظام بالكامل لا تؤدي عمليات استعادة الحزمة الفردية إلى إيقاف التطبيق. لا تحدث عمليات استعادة النظام بالكامل عادةً إلا مرة واحدة، عند إعداد الهاتف لأول مرة. لا تحتاج التطبيقات التابعة لجهات خارجية عادةً إلى استخدام هذه السمة.
القيمة التلقائية هي
"true"، ما يعني أنّه بعد أن ينتهي التطبيق من معالجة بياناته أثناء عملية استعادة النظام بالكامل، سيتم إيقافه.android:largeHeapتحديد ما إذا كانت عمليات التطبيق يتم إنشاؤها باستخدام مساحة كبيرة من الذاكرة المؤقتة في Dalvik وينطبق ذلك على جميع العمليات التي تم إنشاؤها للتطبيق. وينطبق ذلك على التطبيق الأول الذي يتم تحميله في إحدى العمليات. إذا كنت تستخدم معرّف مستخدم مشتركًا للسماح لتطبيقات متعددة باستخدام عملية، يجب أن تستخدم جميعها هذا الخيار بشكل متّسق لتجنُّب نتائج غير متوقّعة.
لا تحتاج معظم التطبيقات إلى ذلك، بل تركّز على تقليل إجمالي استخدام الذاكرة لتحسين الأداء. لا يضمن تفعيل هذه الميزة أيضًا زيادة ثابتة في الذاكرة المتاحة، لأنّ بعض الأجهزة تكون محدودة بإجمالي الذاكرة المتاحة.
للاستعلام عن حجم الذاكرة المتاحة في وقت التشغيل، استخدِم الطريقتَين
getMemoryClass()أوgetLargeMemoryClass().android:label- تصنيف يمكن للمستخدم قراءته للتطبيق ككل وتصنيف تلقائي لكل مكون من مكونات التطبيق اطّلِع على سمات
labelالفردية الخاصة بعناصر<activity>و<activity-alias>و<service>و<receiver>و<provider>.يتم ضبط التصنيف كمرجع إلى مصدر السلاسل النصية، حتى يمكن أقلمته مثل السلاسل الأخرى في واجهة المستخدم. ومع ذلك، لتسهيل عملية تطوير التطبيق، يمكن أيضًا ضبطها كسلسلة أولية.
android:logo- شعار التطبيق ككل والشعار التلقائي للأنشطة
يتم ضبط هذه السمة كمرجع إلى مورد قابل للرسم يحتوي على الصورة، مثل
"@drawable/logo". لا يوجد شعار تلقائي. android:manageSpaceActivity- الاسم المؤهَّل بالكامل لفئة فرعية من
Activityيطلقها النظام ليتمكّن المستخدمون من إدارة الذاكرة التي يشغلها التطبيق على الجهاز. يتم أيضًا تعريف النشاط باستخدام العنصر<activity>. android:name- الاسم المؤهَّل بالكامل لفئة فرعية
Applicationتم تنفيذها للتطبيق عند بدء عملية التطبيق، يتم إنشاء مثيل لهذه الفئة قبل أي من مكوّنات التطبيق.الفئة الفرعية اختيارية. لا تحتاج معظم التطبيقات إلى ذلك. في حال عدم توفّر فئة فرعية، يستخدم نظام التشغيل Android مثيلاً للفئة الأساسية
Application. android:networkSecurityConfigتحدّد هذه السمة اسم ملف XML الذي يحتوي على إعدادات أمان الشبكة لتطبيقك. القيمة هي مرجع إلى ملف موارد XML الذي يحتوي على الإعدادات.
تمت إضافة هذه السمة في المستوى 24 من واجهة برمجة التطبيقات.
android:permission- اسم الإذن الذي يحتاج إليه العملاء للتفاعل مع التطبيق. هذه السمة هي طريقة ملائمة لضبط إذن ينطبق على جميع مكوّنات التطبيق. ويتم استبدالها من خلال ضبط سمات
permissionللمكوّنات الفردية.لمزيد من المعلومات عن الأذونات، يُرجى الاطّلاع على قسم الأذونات في النظرة العامة على بيان التطبيق ونصائح الأمان.
android:persistent- ما إذا كان التطبيق سيظل قيد التشغيل في جميع الأوقات. يجب إدخال
"true"إذا كان الأمر كذلك و"false"إذا لم يكن كذلك. القيمة التلقائية هي"false". لا تضبط التطبيقات عادةً هذه العلامة. وضع الثبات مخصّص لتطبيقات النظام معيّنة فقط. android:process- اسم العملية التي يتم فيها تشغيل جميع مكوّنات التطبيق
يمكن لكل مكوّن إلغاء هذا الإعداد التلقائي من خلال ضبط سمة
processالخاصة به.ينشئ نظام التشغيل Android تلقائيًا عملية لتطبيق ما عندما يحتاج أول مكوناته إلى التشغيل. بعد ذلك، يتم تشغيل جميع المكوّنات في هذه العملية. يتطابق اسم العملية التلقائية مع اسم الحزمة الذي تم ضبطه بواسطة العنصر
<manifest>.من خلال ضبط هذه السمة على اسم عملية مشترَك مع تطبيق آخر، يمكنك ترتيب تشغيل مكوّنات كلا التطبيقَين في العملية نفسها، ولكن فقط إذا كان التطبيقان يشتركان أيضًا في معرّف مستخدم وتم توقيعهما باستخدام الشهادة نفسها.
إذا كان الاسم المعيّن لهذه السمة يبدأ بنقطتَين رأسيتَين (
:)، يتم إنشاء عملية جديدة خاصة بالتطبيق عند الحاجة إليها. إذا بدأ اسم العملية بحرف صغير، يتم إنشاء عملية عامة بهذا الاسم. يمكن مشاركة عملية عامة مع تطبيقات أخرى، ما يقلّل من استخدام الموارد. android:restoreAnyVersion- يشير إلى أنّ التطبيق جاهز لمحاولة استعادة أي مجموعة بيانات تم الاحتفاظ بنسخة احتياطية منها، حتى إذا تم تخزين النسخة الاحتياطية بواسطة إصدار أحدث من التطبيق مقارنةً بالإصدار المثبَّت حاليًا على الجهاز. يؤدي ضبط هذه السمة على
"true"إلى السماح لـ "مدير الاحتفاظ بنسخة احتياطية" محاولة إجراء عملية استعادة حتى عندما يشير عدم تطابق الإصدار إلى أنّ البيانات غير متوافقة يُرجى توخّي الحذر!$1القيمة التلقائية لهذه السمة هي
"false". android:requestLegacyExternalStorage-
تحدّد هذه السمة ما إذا كان التطبيق يريد إيقاف ميزة التخزين المحصور النطاق.
ملاحظة: قد لا يستجيب النظام لطلب إيقاف هذه الميزة استنادًا إلى التغييرات المتعلّقة بالسياسة أو توافق التطبيق.
android:requiredAccountType- تحدّد هذه السمة نوع الحساب المطلوب لتشغيل التطبيق.
إذا كان تطبيقك يتطلّب
Account، يجب أن تتطابق قيمة هذه السمة مع نوع مصادقة الحساب الذي يستخدمه تطبيقك، كما هو محدّد فيAuthenticatorDescription، مثل"com.google".القيمة التلقائية هي null وتشير إلى أنّ التطبيق يمكنه العمل بدون أي حسابات.
بما أنّه لا يمكن للملفات الشخصية المقيّدة إضافة حسابات، فإنّ تحديد هذه السمة يجعل تطبيقك غير متاح من ملف شخصي مقيّد ما لم تحدّد أيضًا
android:restrictedAccountTypeبالقيمة نفسها.تنبيه: إذا كانت بيانات الحساب قد تكشف عن معلومات تكشف الهوية الشخصية، من المهم تحديد هذه السمة وترك
android:restrictedAccountTypeفارغًا، حتى لا تتمكّن الملفات الشخصية المقيدة من استخدام تطبيقك للوصول إلى المعلومات الشخصية الخاصة بالمستخدم المالك.تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 18.
android:resizeableActivity-
تحدِّد هذه السمة ما إذا كان التطبيق يتيح وضع النوافذ المتعددة.
يمكنك ضبط هذه السمة في العنصر
<activity>أو العنصر<application>.إذا ضبطت هذه السمة على
"true"، يمكن للمستخدم تشغيل النشاط في وضعَي تقسيم الشاشة والنافذة الحرة. إذا ضبطت السمة على"false"، لن يتم اختبار التطبيق أو تحسينه ليتوافق مع بيئة النوافذ المتعددة. سيظل بإمكان النظام وضع النشاط في وضع النوافذ المتعددة مع تطبيق وضع التوافق.لا يضمن ضبط هذه السمة على
"true"عدم ظهور تطبيقات أخرى في وضع النوافذ المتعددة على الشاشة، مثل وضع "نافذة ضمن النافذة"، أو على شاشات أخرى. لذلك، لا يعني ضبط هذا العلامة أنّ تطبيقك لديه إذن حصري بالوصول إلى الموارد.بالنسبة إلى التطبيقات التي تستهدف المستوى 24 من واجهة برمجة التطبيقات أو المستويات الأحدث، تكون القيمة التلقائية هي
"true".إذا كان تطبيقك يستهدف المستوى 31 لواجهة برمجة التطبيقات أو الإصدارات الأحدث، تعمل هذه السمة بشكل مختلف على الشاشات الصغيرة والكبيرة:
- الشاشات الكبيرة (عرض الشاشة >= 600 وحدة بكسل مستقلة الكثافة): تتوافق جميع التطبيقات مع وضع النوافذ المتعدّدة. تشير السمة إلى ما إذا كان يمكن تغيير حجم التطبيق، وليس إلى ما إذا كان التطبيق يتيح وضع النوافذ المتعدّدة. إذا كانت القيمة
resizeableActivity="false"، سيتم وضع التطبيق في وضع التوافق عند الضرورة ليتوافق مع أبعاد الشاشة. - الشاشات الصغيرة (أصغر عرض < 600 بكسل مستقل الكثافة): إذا كان
resizeableActivity="true"والحد الأدنى للعرض والحد الأدنى للارتفاع للنشاط الرئيسي ضمن متطلبات النوافذ المتعددة، يعني ذلك أنّ التطبيق يتيح وضع النوافذ المتعددة. إذا كانت القيمةresizeableActivity="false"، يعني ذلك أنّ التطبيق لا يتيح وضع النوافذ المتعددة بغض النظر عن الحد الأدنى لعرض وارتفاع النشاط.
يتم تطبيق قيمة النشاط الأساسي للمهمة على جميع الأنشطة الإضافية التي يتم تشغيلها في المهمة. وهذا يعني أنّه إذا كان النشاط الأساسي لإحدى المهام قابلاً لتغيير الحجم، سيتعامل النظام مع جميع الأنشطة الأخرى في المهمة على أنّها قابلة لتغيير الحجم. إذا لم يكن النشاط الأساسي قابلاً لتغيير الحجم، لن تكون الأنشطة الأخرى في المهمة قابلة لتغيير الحجم.
تمت إضافة هذه السمة في المستوى 24 من واجهة برمجة التطبيقات.
- الشاشات الكبيرة (عرض الشاشة >= 600 وحدة بكسل مستقلة الكثافة): تتوافق جميع التطبيقات مع وضع النوافذ المتعدّدة. تشير السمة إلى ما إذا كان يمكن تغيير حجم التطبيق، وليس إلى ما إذا كان التطبيق يتيح وضع النوافذ المتعدّدة. إذا كانت القيمة
android:restrictedAccountType- تحدّد هذه السمة نوع الحساب المطلوب لهذا التطبيق وتشير إلى أنّ الملفات الشخصية المحدودة يمكنها الوصول إلى هذه الحسابات التي تخص المستخدم المالك. إذا كان تطبيقك يتطلّب
Accountوكان بإمكان الملفات الشخصية المحدودة الوصول إلى حسابات المستخدم الأساسي، يجب أن تتوافق قيمة هذه السمة مع نوع مصادقة الحساب الذي يستخدمه تطبيقك، كما هو محدّد فيAuthenticatorDescription، مثل"com.google".القيمة التلقائية هي null، وتشير إلى أنّ التطبيق يمكنه العمل بدون أي حسابات.
تنبيه: يؤدي تحديد هذه السمة إلى السماح للملفات الشخصية المقيّدة باستخدام تطبيقك مع حسابات تابعة للمستخدم المالك، ما قد يؤدي إلى الكشف عن معلومات تكشف الهوية الشخصية. إذا كان الحساب قد يكشف عن تفاصيل شخصية، لا تستخدم هذه السمة. بدلاً من ذلك، عليك التعريف بالسمة
android:requiredAccountTypeلجعل تطبيقك غير متاح للملفات الشخصية المقيّدة.تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 18.
android:supportsRtlتوضّح هذه السمة ما إذا كان تطبيقك متوافقًا مع تنسيقات العرض من اليمين إلى اليسار.
إذا تم ضبط هذه السمة على
"true"وتم ضبطtargetSdkVersionعلى 17 أو أعلى، سيتم تفعيل واستخدام العديد من واجهات برمجة التطبيقات التي تتوافق مع اللغات المكتوبة من اليمين إلى اليسار من قِبل النظام، ما يتيح لتطبيقك عرض التنسيقات التي تتوافق مع هذه اللغات. إذا تم ضبط هذا الخيار على"false"أو إذا تم ضبطtargetSdkVersionعلى 16 أو أقل، سيتم تجاهل واجهات برمجة التطبيقات من اليمين إلى اليسار أو لن يكون لها أي تأثير، وسيتصرف تطبيقك بالطريقة نفسها بغض النظر عن اتجاه التنسيق المرتبط بخيار اللغة الذي اختاره المستخدم. أي أنّ تخطيطاتك تكون دائمًا من اليمين إلى اليسار.القيمة التلقائية لهذه السمة هي
"false".تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 17.
android:taskAffinity- اسم تقارب ينطبق على جميع الأنشطة داخل التطبيق،
باستثناء الأنشطة التي تحدّد تقاربًا مختلفًا باستخدام
taskAffinityسماتها الخاصة. يمكنك الاطّلاع على هذه السمة لمزيد من المعلومات.تتشارك جميع الأنشطة داخل أحد التطبيقات في الانجذاب نفسه تلقائيًا. ويكون اسم هذا التطبيق المشابه هو نفسه اسم الحزمة الذي تم ضبطه بواسطة العنصر
<manifest>. android:testOnly- يشير إلى ما إذا كان هذا التطبيق مخصّصًا لأغراض الاختبار فقط. على سبيل المثال، قد يعرض وظائف أو بيانات خارج نطاقه يمكن أن تتسبّب في ثغرة أمنية، ولكنها قد تكون مفيدة للاختبار. لا يمكن تثبيت هذا النوع من حِزم APK إلا من خلال
adb. لا يمكنك نشرها على Google Play.يضيف استوديو Android هذه السمة تلقائيًا عند النقر على تشغيل
. android:theme- مرجع إلى مورد نمط يحدّد مظهرًا تلقائيًا لجميع الأنشطة في التطبيق يمكن للأنشطة الفردية إلغاء الإعداد التلقائي من خلال ضبط سمات
themeالخاصة بها. لمزيد من المعلومات، يُرجى الاطّلاع على الأنماط والمظاهر. android:uiOptions- خيارات إضافية لواجهة مستخدم النشاط يجب أن تكون إحدى القيم التالية:
القيمة الوصف "none"لا تتوفّر خيارات إضافية في واجهة المستخدم. وهذا هو الخيار التلقائي. "splitActionBarWhenNarrow"تضيف هذه السمة شريطًا في أسفل الشاشة لعرض عناصر الإجراءات في شريط التطبيق، المعروف أيضًا باسم شريط الإجراءات، وذلك عند عدم توفّر مساحة أفقية كافية، مثلاً عند استخدام الجهاز في الوضع العمودي. بدلاً من ظهور عدد صغير من عناصر الإجراء في شريط التطبيق في أعلى الشاشة، يتم تقسيم شريط التطبيق إلى قسم التنقّل العلوي وشريط سفلي لعناصر الإجراء. وهذا يعني توفُّر مساحة معقولة لعناصر الإجراءات وعناصر التنقّل والعنوان في الأعلى. لا يتم تقسيم عناصر القائمة على الشريطَين. ويظهران دائمًا معًا. لمزيد من المعلومات حول شريط التطبيقات، اطّلِع على إضافة شريط التطبيقات.
تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 14.
android:usesCleartextTraffic- توضّح هذه السمة ما إذا كان التطبيق ينوي استخدام حركة بيانات الشبكة بنص غير مرمّز، مثل HTTP بنص غير مرمّز.
القيمة التلقائية للتطبيقات التي تستهدف المستوى 27 أو أقل لواجهة برمجة التطبيقات هي
"true". تستخدِم التطبيقات التي تستهدف المستوى 28 أو أعلى من واجهة برمجة التطبيقات القيمة التلقائية"false".ملاحظة: سيتم إيقاف هذه السمة نهائيًا وسيتم تجاهلها في التطبيقات التي تستهدف المستوى 38 من واجهة برمجة التطبيقات والإصدارات الأحدث. حدِّد إعداد أمان الشبكات للتحكّم في زيارات cleartext في المستوى 24 من واجهة برمجة التطبيقات والإصدارات الأحدث. إذا كان تطبيقك يستهدف المستويات 23 أو أقل من واجهة برمجة التطبيقات، يجب تحديد
android:usesCleartextTrafficبالإضافة إلى إعداد أمان الشبكة.عند ضبط السمة على
"false"، ترفض مكوّنات النظام الأساسي، مثل حِزم HTTP وFTP، وDownloadManager، وMediaPlayer، طلبات التطبيق لاستخدام زيارات نصية غير مشفّرة.ننصح بشدة المكتبات التابعة لجهات خارجية بالالتزام بهذا الإعداد أيضًا. والسبب الرئيسي لتجنُّب نقل البيانات بنص عادي هو عدم توفّر السرية والمصداقية والحماية من التلاعب. يمكن للمهاجم على الشبكة التنصت على البيانات المنقولة وتعديلها بدون أن يتم رصده.
يتم الالتزام بهذا الخيار قدر الإمكان لأنّه من المستحيل منع جميع الزيارات بنص عادي من تطبيقات Android نظرًا إلى مستوى الوصول الممنوح لها. على سبيل المثال، لا يُتوقّع أن يلتزم برنامج
Socketبهذه العلامة، لأنّه لا يمكنه تحديد ما إذا كانت الزيارات التي يتلقّاها بنص غير مرمّز أم لا.ومع ذلك، يتم التعامل مع معظم حركة بيانات الشبكة من التطبيقات بواسطة حِزم ومكوّنات الشبكة ذات المستوى الأعلى، والتي يمكنها الاستجابة لهذه العلامة إما بقراءتها من
ApplicationInfo.flagsأوNetworkSecurityPolicy.isCleartextTrafficPermitted().ملاحظة: تلتزم
WebViewبهذه السمة في التطبيقات التي تستهدف المستوى 26 من واجهة برمجة التطبيقات والإصدارات الأحدث.أثناء تطوير التطبيق، يمكن استخدام StrictMode لتحديد أي حركة بيانات بنص غير مرمّز من التطبيق. لمزيد من المعلومات، يمكنك الاطّلاع على
StrictMode.VmPolicy.Builder.detectCleartextNetwork().تمت إضافة هذه السمة في المستوى 23 من واجهة برمجة التطبيقات.
يتم تجاهل هذا العلامة في الإصدار 7.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 24) والإصدارات الأحدث في حال توفُّر إعدادات أمان شبكة Android.
android:vmSafeMode- تشير إلى ما إذا كان التطبيق يريد أن يعمل الجهاز الافتراضي (VM) في الوضع الآمن. القيمة التلقائية هي
"false".تمت إضافة هذه السمة في مستوى واجهة برمجة التطبيقات 8، حيث أدّت القيمة
"true"إلى إيقاف برنامج التجميع أثناء التشغيل (JIT) في Dalvik.تم تعديل هذه السمة في المستوى 22 من واجهة برمجة التطبيقات، حيث أدّت القيمة
"true"إلى إيقاف برنامج التجميع المسبق (AOT) في وقت تشغيل Android (ART).
بدءًا من الإصدار 4.2.0 من "مكوّن Android الإضافي في Gradle"، يحل خيار DSL
useLegacyPackagingمحل سمة البيانextractNativeLibs. استخدِمuseLegacyPackagingفي ملفbuild.gradleالخاص بتطبيقك بدلاً منextractNativeLibsفي ملف البيان لضبط سلوك ضغط المكتبة المجمّعة من رموز برمجية أصلية. لمزيد من المعلومات، يُرجى الاطّلاع على ملاحظة الإصدار استخدام لغة خاصة بالمجال لتجميع المكتبات الأصلية المضغوطة.- تم إدخال القدرة لأول مرة في:
- مستوى واجهة برمجة التطبيقات 1
- راجِع أيضًا:
<activity><service><receiver><provider>
<التطبيق>
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2026-05-16 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2026-05-16 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]