<manifest>

بناء الجملة:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource" 
          android:sharedUserMaxSdkVersion="integer"
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    ...
</manifest>

الواردة في:
بدون

يجب أن يحتوي على:
<application>
يمكن أن يحتوي على:
<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<queries>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>

description:
العنصر الجذر لملف AndroidManifest.xml. يجب تحتوي على العنصر <application> وتحديد السمتين xmlns:android وpackage.
:
xmlns:android
تحدِّد مساحة الاسم في Android. يتم ضبط هذه السمة دائمًا. إلى "http://schemas.android.com/apk/res/android".
package
تمثل قيمة السمة package في ملف بيان حزمة APK معرّف التطبيق الفريد عالميًا للتطبيق. تم تنسيقه كنمط لغة جافا كامل اسم حزمة تطبيق Android. يمكن أن يحتوي الاسم على أحرف كبيرة أو صغيرة أو أرقام والشرطات السفلية ('_'). في المقابل، يمكن أن تبدأ الأجزاء الفردية الخاصة باسم الحزمة فقط الأحرف.

احرص على عدم تغيير قيمة package، لأنها إنشاء تطبيق جديد. لا يتلقّى مستخدمو الإصدار السابق من تطبيقك تحديثًا ولا يمكنهم نقل بياناتهم بين الإصدارين القديم والجديد.

في نظام التصميم المستند إلى Gradle، بدءًا من AGP 7.3، لا تُعين قيمة package في ملف بيان المصدر مباشرةً. لمزيد من المعلومات، يُرجى مراجعة اضبط رقم تعريف التطبيق.

android:sharedUserId

تم إيقاف هذا الثابت نهائيًا اعتبارًا من المستوى 29 من واجهة برمجة التطبيقات.
تؤدّي أرقام تعريف المستخدمين المشترَكة إلى حدوث سلوك غير حاسم في أداة إدارة الحِزم. وعلى هذا النحو، فإن استخدامها لا ننصح باستخدامها أبدًا وقد تتم إزالتها في إصدار مستقبلي من Android. بدلاً من ذلك، استخدم آليات التواصل المناسبة، مثل الخدمات ومقدمي المحتوى، بهدف تسهيل التوافقية بين المكونات المشتركة. لا يمكن للتطبيقات الحالية إزالة هذه القيمة لأن لا تتوفر إمكانية ترحيل رقم تعريف مستخدم مشترك. في هذه التطبيقات، إضافة android:sharedUserMaxSdkVersion="32" لتجنب استخدام العناصر المشتركة رقم تعريف المستخدم في عمليات التثبيت الجديدة للمستخدمين.

اسم رقم تعريف مستخدم Linux الذي تتم مشاركته مع التطبيقات الأخرى يعيّن Android تلقائيًا لكل تطبيق رقم تعريف مستخدم فريدًا خاصًا به. في المقابل، إذا تم ضبط هذه السمة على القيمة نفسها لاثنتين أو أكثر تطبيقات، فإنها جميعًا تشترك في نفس المعرّف، بشرط أن مجموعات الشهادات متطابقة. يمكن للتطبيقات التي لها رقم تعريف المستخدم نفسه الوصول بيانات بعضها البعض، وإذا رغبت، تعمل في نفس العملية.

android:targetSandboxVersion
وضع الحماية المستهدف الذي يستخدمه هذا التطبيق. وكلما زاد رقم إصدار وضع الحماية، ارتفع مستوى الأمان. وقيمتها التلقائية هي 1. يمكنك أيضًا ضبطه على 2. يؤدي ضبط هذه السمة على 2 إلى تغيير على وضع حماية SELinux مختلف.

تنطبق القيود التالية على وضع الحماية من المستوى 2:

  • إن القيمة الافتراضية usesCleartextTraffic في Network Security Config هي قيمة false.
  • لا يُسمح بمشاركة المعرّف الفريد للمنتج.

بالنسبة إلى تطبيقات Android الفورية التي تستهدف الإصدار 8.0 (المستوى 26 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث، تم ضبط هذه السمة على 2. يمكنك ضبط مستوى وضع الحماية في الإصدار المثبَّت من تطبيقك إلى أقل تقييدًا المستوى 1. ولكن في حال إجراء ذلك، لن يحتفظ تطبيقك ببيانات التطبيق من التطبيق الفوري إلى الإصدار المثبّت من تطبيقك. يجب ضبط قيمة وضع الحماية للتطبيق المثبَّت على 2 لاستمرار البيانات من التطبيق الفوري إلى الإصدار المثبت.

بعد تثبيت التطبيق، يمكنك فقط تعديل قيمة وضع الحماية المستهدَف إلى قيمة أعلى. لخفض قيمة وضع الحماية المستهدَف، عليك إلغاء تثبيت التطبيق واستبداله بإصدار يحتوي ملف البيان الخاص به على قيمة أقل لهذه السمة.

android:sharedUserLabel

تم إيقاف هذا الثابت نهائيًا اعتبارًا من المستوى 29 من واجهة برمجة التطبيقات.
تؤدّي أرقام تعريف المستخدمين المشترَكة إلى حدوث سلوك غير حاسم في أداة إدارة الحِزم. وعلى هذا النحو، فإن استخدامها لا ننصح باستخدامها أبدًا وقد تتم إزالتها في إصدار مستقبلي من Android. بدلاً من ذلك، استخدم آليات التواصل المناسبة، مثل الخدمات ومقدمي المحتوى، بهدف تسهيل التوافقية بين المكونات المشتركة. لا يمكن للتطبيقات الحالية إزالة هذه القيمة لأن لا يمكن ترحيل رقم تعريف مستخدم مشترك.

تصنيف سهل القراءة للمستخدم على رقم تعريف المستخدم المشترَك. تم ضبط التصنيف كـ مرجعًا إلى مورد سلسلة. ولا يمكن أن تكون سلسلة أولية.

تمّ تقديم هذه السمة في المستوى 3 من واجهة برمجة التطبيقات. لا يكون مفيدًا إلا إذا تم تم أيضًا ضبط السمة sharedUserId.

android:sharedUserMaxSdkVersion

تؤدّي أرقام تعريف المستخدمين المشترَكة إلى حدوث سلوك غير حاسم في أداة إدارة الحِزم. وعلى هذا النحو، فإن استخدامها لا ننصح باستخدامها أبدًا وقد تتم إزالتها في إصدار مستقبلي من Android. بدلاً من ذلك، استخدم آليات التواصل المناسبة، مثل الخدمات ومقدمي المحتوى، بهدف تسهيل التوافقية بين المكونات المشتركة.

يشير إلى الحد الأقصى لإصدار حزمة تطوير البرامج (SDK) الذي لا يزال النظام يستخدم فيه android:sharedUserId. إذا كان تم تثبيت التطبيق مؤخرًا على جهاز يعمل بإصدار حزمة تطوير برامج (SDK) أعلى من القيمة المحدّدة، كما لو أنك لم تحدد من قبل android:sharedUserId.

تمّ تقديم هذه السمة في المستوى 33 من واجهة برمجة التطبيقات. لا يكون مفيدًا إلا إذا تم تم أيضًا ضبط السمة sharedUserId.

android:versionCode
رقم إصدار داخلي يُستخدم هذا الرقم فقط لتحديد ما إذا أحد الإصدارات أحدث من آخر، حيث تشير الأرقام الأعلى إلى وجود النُسخ الحديثة. هذا ليس رقم الإصدار المعروض للمستخدمين، والذي يتم ضبطها من خلال السمة versionName.

يتم ضبط القيمة كعدد صحيح موجب أكبر من 0. يمكنك تحديدها بالطريقة التي تريدها، طالما أن كل إصدار متتابع يحتوي على رقم أعلى. على سبيل المثال، يمكن أن يكون رقم إصدار أو يمكنك ترجمة نسخة رقم في "x.y" إلى عدد صحيح من خلال ترميز "x" و"y" بشكل منفصل في 16 بت صغيرة وأعلى. أو يمكنك زيادة العدد بمقدار واحد في كل مرة يتم فيها طرح إصدار جديد.

android:versionName
رقم الإصدار المعروض للمستخدمين تمّ ضبط هذه السمة على أنّها قيمة أولية. سلسلة أو كمرجع لمورد السلسلة. ليس للسلسلة غرض آخر من عرضها للمستخدمين. تعليق السمة versionCode رقم الإصدار المهم المستخدم داخليًا.
android:installLocation
موقع التثبيت التلقائي للتطبيق. يتم قبول سلاسل الكلمات الرئيسية التالية:

القيمة الوصف
"internalOnly" يتم تثبيت التطبيق على مساحة تخزين الجهاز الداخلية فقط. إذا تم تعيين هذا، لا يتم تثبيت التطبيق مطلقًا على وحدة تخزين خارجية، مثل بطاقة SD. إذا كانت التفاصيل الداخلية مساحة التخزين ممتلئة، يعني ذلك أنّ النظام لا يثبِّت التطبيق. هذا هو الإعداد التلقائي. إذا لم تحدّد android:installLocation.
"auto" يمكن تثبيت التطبيق على وحدة تخزين خارجية، ولكن النظام يثبّت التطبيق على وحدة التخزين الداخلية افتراضيًا. إذا كانت وحدة التخزين الداخلية ممتلئة، فسيبدأ النظام بتثبيتها على وحدة التخزين الخارجية. بعد التثبيت، يمكن للمستخدم نقل التطبيق. إلى وحدة تخزين داخلية أو خارجية من خلال إعدادات النظام.
"preferExternal" يُفضَّل تثبيت التطبيق على وحدة تخزين خارجية. لا يوجد أن يفي النظام بهذا الطلب. قد يتم تثبيت التطبيق على منصات داخلية التخزين في حالة عدم توفر الوسائط الخارجية أو امتلائها. بمجرد التثبيت، يمكن للمستخدم نقل التطبيق إلى إما وحدة تخزين داخلية أو خارجية من خلال إعدادات النظام.

ملاحظة: بشكلٍ تلقائي، يتم تثبيت تطبيقك على لا يمكن تثبيته على وحدة تخزين خارجية ما لم تحدد هذه السمة إما "auto" أو "preferExternal".

عند تثبيت تطبيق على وحدة تخزين خارجية:

  • تم حفظ ملف APK إلى وحدة التخزين الخارجية، ولكن أي بيانات تطبيق، مثل قواعد البيانات، لا تزال تحفظ على ذاكرة الجهاز الداخلية.
  • يتم تشفير الحاوية التي يتم حفظ ملف APK فيها باستخدام مفتاح يسمح لا يعمل التطبيق إلا على الجهاز الذي تم تثبيته. لا يمكن للمستخدم نقل بطاقة SD إلى جهاز آخر واستخدام التطبيقات المثبتة عليها يمكن استخدام عدة بطاقات SD مع الجهاز نفسه.
  • يمكن نقل التطبيق إلى وحدة التخزين الداخلية بناءً على طلب المستخدم.

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

بالنسبة مزيد من المعلومات حول استخدام هذه السمة، بما في ذلك كيفية الحفاظ على التوافق مع الأنظمة القديمة، اطّلِع على موقع تثبيت التطبيق.

تم طرح هذا الإصدار في المستوى 8 من واجهة برمجة التطبيقات.

تم تقديمها في:
مستوى واجهة برمجة التطبيقات 1 لجميع السمات، ما لم يُذكر خلاف ذلك في وصف السمة

راجِع أيضًا:
<application>