<نمایش>

نحو:
<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>

توضیحات:
عنصر ریشه فایل AndroidManifest.xml . باید یک عنصر <application> داشته باشد و ویژگی های xmlns:android و package را مشخص کند.
صفات:
xmlns:android
فضای نام اندروید را تعریف می کند. این ویژگی همیشه روی "http://schemas.android.com/apk/res/android" تنظیم می شود.
package
مقدار مشخصه package در فایل مانیفست APK نشان دهنده شناسه برنامه منحصر به فرد جهانی برنامه شما است. این به عنوان یک نام بسته کامل به سبک جاوا برای برنامه Android فرمت شده است. نام می تواند شامل حروف بزرگ یا کوچک، اعداد و زیرخط ('_') باشد. با این حال، تک تک قطعات نام بسته فقط می توانند با حروف شروع شوند.

مراقب باشید که مقدار package را تغییر ندهید، زیرا اساساً یک برنامه جدید ایجاد می شود. کاربران نسخه قبلی برنامه شما به‌روزرسانی دریافت نمی‌کنند و نمی‌توانند اطلاعات خود را بین نسخه‌های قدیمی و جدید منتقل کنند.

در سیستم ساخت مبتنی بر Gradle، با شروع AGP 7.3، مقدار package را مستقیماً در فایل مانیفست منبع تنظیم نکنید. برای اطلاعات بیشتر، به تنظیم شناسه برنامه مراجعه کنید.

android:sharedUserId

این ثابت از سطح API 29 منسوخ شده است.
شناسه های مشترک کاربر باعث رفتار غیر قطعی در مدیر بسته می شود. به این ترتیب، استفاده از آنها به شدت ممنوع است و ممکن است در نسخه بعدی اندروید حذف شود. در عوض، از مکانیسم‌های ارتباطی مناسب، مانند ارائه‌دهندگان خدمات و محتوا، برای تسهیل قابلیت همکاری بین اجزای مشترک استفاده کنید. برنامه‌های موجود نمی‌توانند این مقدار را حذف کنند، زیرا انتقال از شناسه کاربری مشترک پشتیبانی نمی‌شود. در این برنامه‌ها، android:sharedUserMaxSdkVersion="32" را اضافه کنید تا از استفاده از شناسه کاربری مشترک در نصب‌های کاربر جدید خودداری کنید.

نام شناسه کاربری لینوکس که با سایر برنامه ها به اشتراک گذاشته شده است. به‌طور پیش‌فرض، اندروید به هر اپلیکیشن شناسه کاربری منحصربه‌فرد خود را اختصاص می‌دهد. با این حال، اگر این ویژگی برای دو یا چند برنامه روی یک مقدار تنظیم شود، همه آنها شناسه یکسانی را به اشتراک می‌گذارند، مشروط بر اینکه مجموعه‌های گواهی آنها یکسان باشد. برنامه‌هایی با شناسه کاربری یکسان می‌توانند به داده‌های یکدیگر دسترسی داشته باشند و در صورت تمایل، در همان فرآیند اجرا شوند.

android:targetSandboxVersion
جعبه شنی هدف برای استفاده از این برنامه. هرچه شماره نسخه سندباکس بیشتر باشد، سطح امنیت بالاتر است. مقدار پیش فرض آن 1 است. همچنین می توانید آن را روی 2 تنظیم کنید. با تنظیم این ویژگی روی 2 ، برنامه به یک SELinux sandbox دیگر تغییر می کند.

محدودیت‌های زیر برای ماسه‌بازی سطح ۲ اعمال می‌شود:

  • مقدار پیش فرض usesCleartextTraffic در پیکربندی امنیت شبکه نادرست است.
  • اشتراک Uid مجاز نیست.

برای برنامه‌های فوری Android که Android 8.0 (سطح API 26) یا بالاتر را هدف قرار می‌دهند، این ویژگی روی 2 تنظیم شده است. می توانید سطح جعبه ایمنی را در نسخه نصب شده برنامه خود روی سطح کمتر محدودکننده 1 تنظیم کنید. اما اگر این کار را انجام دهید، برنامه شما داده های برنامه را از برنامه فوری به نسخه نصب شده برنامه شما منتقل نمی کند. باید مقدار جعبه ایمنی برنامه نصب شده را روی 2 تنظیم کنید تا داده ها از برنامه فوری تا نسخه نصب شده باقی بمانند.

پس از نصب یک برنامه، فقط می‌توانید مقدار جعبه هدف آن را به مقدار بالاتر به‌روزرسانی کنید. برای تنزل دادن مقدار جعبه ایمنی هدف، برنامه را حذف نصب کنید و نسخه‌ای را جایگزین کنید که مانیفست حاوی مقدار کمتری برای این ویژگی باشد.

android:sharedUserLabel

این ثابت از سطح API 29 منسوخ شده است.
شناسه های مشترک کاربر باعث رفتار غیر قطعی در مدیر بسته می شود. به این ترتیب، استفاده از آنها به شدت ممنوع است و ممکن است در نسخه بعدی اندروید حذف شود. در عوض، از مکانیسم‌های ارتباطی مناسب، مانند ارائه‌دهندگان خدمات و محتوا، برای تسهیل قابلیت همکاری بین اجزای مشترک استفاده کنید. برنامه‌های موجود نمی‌توانند این مقدار را حذف کنند، زیرا انتقال از شناسه کاربری مشترک پشتیبانی نمی‌شود.

یک برچسب قابل خواندن توسط کاربر برای شناسه کاربری مشترک. برچسب به عنوان یک مرجع به یک منبع رشته تنظیم شده است. این نمی تواند یک رشته خام باشد.

این ویژگی در سطح 3 API معرفی شد. تنها در صورتی معنادار است که ویژگی sharedUserId نیز تنظیم شده باشد.

android:sharedUserMaxSdkVersion

شناسه های مشترک کاربر باعث رفتار غیر قطعی در مدیر بسته می شود. به این ترتیب، استفاده از آنها به شدت ممنوع است و ممکن است در نسخه بعدی اندروید حذف شود. در عوض، از مکانیسم‌های ارتباطی مناسب، مانند ارائه‌دهندگان خدمات و محتوا، برای تسهیل قابلیت همکاری بین اجزای مشترک استفاده کنید.

حداکثر نسخه SDK که در آن سیستم هنوز از android:sharedUserId . اگر برنامه شما به تازگی بر روی دستگاهی نصب شده است که دارای نسخه SDK بالاتر از مقدار مشخص شده است، برنامه شما طوری رفتار می کند که گویی هرگز android:sharedUserId تعریف نکرده اید.

این ویژگی در سطح API 33 معرفی شده است. تنها در صورتی معنادار است که ویژگی sharedUserId نیز تنظیم شده باشد.

android:versionCode
شماره نسخه داخلی این عدد فقط برای تعیین اینکه آیا یک نسخه جدیدتر از نسخه دیگر است یا نه استفاده می شود، با اعداد بالاتر نشان دهنده نسخه های جدیدتر است. این شماره نسخه نمایش داده شده به کاربران نیست، که توسط ویژگی versionName تنظیم شده است.

مقدار به عنوان یک عدد صحیح مثبت بزرگتر از 0 تنظیم می شود. شما می توانید آن را هر طور که می خواهید تعریف کنید، تا زمانی که هر نسخه متوالی دارای یک عدد بالاتر باشد. به عنوان مثال، می تواند یک شماره ساخت باشد یا می توانید یک شماره نسخه را با فرمت "xy" با رمزگذاری "x" و "y" به طور جداگانه در 16 بیت پایین و بالا به یک عدد صحیح ترجمه کنید. یا می توانید هر بار که نسخه جدیدی منتشر می شود، تعداد را یک عدد افزایش دهید.

android:versionName
شماره نسخه نمایش داده شده به کاربران این ویژگی به عنوان یک رشته خام یا به عنوان مرجع یک منبع رشته تنظیم می شود. رشته هدف دیگری جز نمایش دادن به کاربران ندارد. ویژگی versionCode تعداد نسخه قابل توجهی را که در داخل استفاده می شود را نگه می دارد.
android:installLocation
محل نصب پیش فرض برنامه. رشته های کلیدواژه زیر پذیرفته می شوند:

ارزش توضیحات
"internalOnly" برنامه فقط در حافظه داخلی دستگاه نصب می شود. اگر این تنظیم باشد، برنامه هرگز روی حافظه خارجی مانند کارت SD نصب نمی‌شود. اگر حافظه داخلی پر باشد، سیستم برنامه را نصب نمی کند. اگر android:installLocation تعریف نکنید، این رفتار پیش‌فرض است.
"auto" برنامه می تواند روی حافظه خارجی نصب شود، اما سیستم به طور پیش فرض برنامه را روی حافظه داخلی نصب می کند. اگر حافظه داخلی پر باشد، سیستم آن را روی حافظه خارجی نصب می کند. پس از نصب، کاربر می تواند برنامه را از طریق تنظیمات سیستم به حافظه داخلی یا خارجی منتقل کند.
"preferExternal" این برنامه ترجیح می دهد روی حافظه خارجی نصب شود. هیچ تضمینی وجود ندارد که سیستم به این درخواست احترام بگذارد. اگر رسانه خارجی در دسترس یا پر باشد، ممکن است برنامه در حافظه داخلی نصب شود. پس از نصب، کاربر می تواند برنامه را از طریق تنظیمات سیستم به حافظه داخلی یا خارجی منتقل کند.

توجه: به‌طور پیش‌فرض، برنامه شما در حافظه داخلی نصب می‌شود و نمی‌تواند در حافظه خارجی نصب شود، مگر اینکه این ویژگی را "auto" یا "preferExternal" تعریف کنید.

هنگامی که یک برنامه در حافظه خارجی نصب می شود:

  • فایل APK در حافظه خارجی ذخیره می شود، اما هر گونه داده برنامه، مانند پایگاه داده، همچنان در حافظه داخلی دستگاه ذخیره می شود.
  • محفظه ای که فایل APK در آن ذخیره می شود با کلیدی رمزگذاری شده است که به برنامه اجازه می دهد فقط روی دستگاهی که آن را نصب کرده است کار کند. کاربر نمی تواند کارت SD را به دستگاه دیگری منتقل کند و از برنامه های نصب شده روی کارت استفاده کند. چندین کارت SD را می توان با یک دستگاه استفاده کرد.
  • بنا به درخواست کاربر، برنامه می تواند به حافظه داخلی منتقل شود.

کاربر همچنین ممکن است درخواست کند یک برنامه را از حافظه داخلی به حافظه خارجی منتقل کند. با این حال، اگر این ویژگی روی "internalOnly" تنظیم شده باشد، سیستم به کاربر اجازه نمی‌دهد برنامه را به حافظه خارجی منتقل کند، که تنظیم پیش‌فرض است.

برای اطلاعات بیشتر در مورد استفاده از این ویژگی، از جمله نحوه حفظ سازگاری به عقب، به مکان نصب برنامه مراجعه کنید.

معرفی شده در: سطح API 8.

معرفی شده در:
API سطح 1 برای همه ویژگی‌ها، مگر اینکه در توضیحات ویژگی به طور دیگری ذکر شده باشد.

همچنین ببینید:
<application>
،
نحو:
<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>

توضیحات:
عنصر ریشه فایل AndroidManifest.xml . باید یک عنصر <application> داشته باشد و ویژگی های xmlns:android و package را مشخص کند.
صفات:
xmlns:android
فضای نام اندروید را تعریف می کند. این ویژگی همیشه روی "http://schemas.android.com/apk/res/android" تنظیم می شود.
package
مقدار مشخصه package در فایل مانیفست APK نشان دهنده شناسه برنامه منحصر به فرد جهانی برنامه شما است. این به عنوان یک نام بسته کامل به سبک جاوا برای برنامه Android فرمت شده است. نام می تواند شامل حروف بزرگ یا کوچک، اعداد و زیرخط ('_') باشد. با این حال، تک تک قطعات نام بسته فقط می توانند با حروف شروع شوند.

مراقب باشید که مقدار package را تغییر ندهید، زیرا اساساً یک برنامه جدید ایجاد می شود. کاربران نسخه قبلی برنامه شما به‌روزرسانی دریافت نمی‌کنند و نمی‌توانند اطلاعات خود را بین نسخه‌های قدیمی و جدید منتقل کنند.

در سیستم ساخت مبتنی بر Gradle، با شروع AGP 7.3، مقدار package را مستقیماً در فایل مانیفست منبع تنظیم نکنید. برای اطلاعات بیشتر، به تنظیم شناسه برنامه مراجعه کنید.

android:sharedUserId

این ثابت از سطح API 29 منسوخ شده است.
شناسه های مشترک کاربر باعث رفتار غیر قطعی در مدیر بسته می شود. به این ترتیب، استفاده از آنها به شدت ممنوع است و ممکن است در نسخه بعدی اندروید حذف شود. در عوض، از مکانیسم‌های ارتباطی مناسب، مانند ارائه‌دهندگان خدمات و محتوا، برای تسهیل قابلیت همکاری بین اجزای مشترک استفاده کنید. برنامه‌های موجود نمی‌توانند این مقدار را حذف کنند، زیرا انتقال از شناسه کاربری مشترک پشتیبانی نمی‌شود. در این برنامه‌ها، android:sharedUserMaxSdkVersion="32" را اضافه کنید تا از استفاده از شناسه کاربری مشترک در نصب‌های کاربر جدید خودداری کنید.

نام شناسه کاربری لینوکس که با سایر برنامه ها به اشتراک گذاشته شده است. به‌طور پیش‌فرض، اندروید به هر اپلیکیشن شناسه کاربری منحصربه‌فرد خود را اختصاص می‌دهد. با این حال، اگر این ویژگی برای دو یا چند برنامه روی یک مقدار تنظیم شود، همه آنها شناسه یکسانی را به اشتراک می‌گذارند، مشروط بر اینکه مجموعه‌های گواهی آنها یکسان باشد. برنامه‌هایی با شناسه کاربری یکسان می‌توانند به داده‌های یکدیگر دسترسی داشته باشند و در صورت تمایل، در همان فرآیند اجرا شوند.

android:targetSandboxVersion
جعبه شنی هدف برای استفاده از این برنامه. هرچه شماره نسخه سندباکس بیشتر باشد، سطح امنیت بالاتر است. مقدار پیش فرض آن 1 است. همچنین می توانید آن را روی 2 تنظیم کنید. با تنظیم این ویژگی روی 2 ، برنامه به یک SELinux sandbox دیگر تغییر می کند.

محدودیت‌های زیر برای ماسه‌بازی سطح ۲ اعمال می‌شود:

  • مقدار پیش فرض usesCleartextTraffic در پیکربندی امنیت شبکه نادرست است.
  • اشتراک Uid مجاز نیست.

برای برنامه‌های فوری Android که Android 8.0 (سطح API 26) یا بالاتر را هدف قرار می‌دهند، این ویژگی روی 2 تنظیم شده است. می توانید سطح جعبه ایمنی را در نسخه نصب شده برنامه خود روی سطح کمتر محدودکننده 1 تنظیم کنید. اما اگر این کار را انجام دهید، برنامه شما داده های برنامه را از برنامه فوری به نسخه نصب شده برنامه شما منتقل نمی کند. باید مقدار جعبه ایمنی برنامه نصب شده را روی 2 تنظیم کنید تا داده ها از برنامه فوری تا نسخه نصب شده باقی بمانند.

پس از نصب یک برنامه، فقط می‌توانید مقدار جعبه هدف آن را به مقدار بالاتر به‌روزرسانی کنید. برای تنزل دادن مقدار جعبه ایمنی هدف، برنامه را حذف نصب کنید و نسخه‌ای را جایگزین کنید که مانیفست حاوی مقدار کمتری برای این ویژگی باشد.

android:sharedUserLabel

این ثابت از سطح API 29 منسوخ شده است.
شناسه های مشترک کاربر باعث رفتار غیر قطعی در مدیر بسته می شود. به این ترتیب، استفاده از آنها به شدت ممنوع است و ممکن است در نسخه بعدی اندروید حذف شود. در عوض، از مکانیسم‌های ارتباطی مناسب، مانند ارائه‌دهندگان خدمات و محتوا، برای تسهیل قابلیت همکاری بین اجزای مشترک استفاده کنید. برنامه‌های موجود نمی‌توانند این مقدار را حذف کنند، زیرا انتقال از شناسه کاربری مشترک پشتیبانی نمی‌شود.

یک برچسب قابل خواندن توسط کاربر برای شناسه کاربری مشترک. برچسب به عنوان یک مرجع به یک منبع رشته تنظیم شده است. این نمی تواند یک رشته خام باشد.

این ویژگی در سطح 3 API معرفی شد. تنها در صورتی معنادار است که ویژگی sharedUserId نیز تنظیم شده باشد.

android:sharedUserMaxSdkVersion

شناسه های مشترک کاربر باعث رفتار غیر قطعی در مدیر بسته می شود. به این ترتیب، استفاده از آنها به شدت ممنوع است و ممکن است در نسخه بعدی اندروید حذف شود. در عوض، از مکانیسم‌های ارتباطی مناسب، مانند ارائه‌دهندگان خدمات و محتوا، برای تسهیل قابلیت همکاری بین اجزای مشترک استفاده کنید.

حداکثر نسخه SDK که در آن سیستم هنوز از android:sharedUserId . اگر برنامه شما به تازگی بر روی دستگاهی نصب شده است که دارای نسخه SDK بالاتر از مقدار مشخص شده است، برنامه شما طوری رفتار می کند که گویی هرگز android:sharedUserId تعریف نکرده اید.

این ویژگی در سطح API 33 معرفی شده است. تنها در صورتی معنادار است که ویژگی sharedUserId نیز تنظیم شده باشد.

android:versionCode
شماره نسخه داخلی این عدد فقط برای تعیین اینکه آیا یک نسخه جدیدتر از نسخه دیگر است یا نه استفاده می شود، با اعداد بالاتر نشان دهنده نسخه های جدیدتر است. این شماره نسخه نمایش داده شده به کاربران نیست، که توسط ویژگی versionName تنظیم شده است.

مقدار به عنوان یک عدد صحیح مثبت بزرگتر از 0 تنظیم می شود. شما می توانید آن را هر طور که می خواهید تعریف کنید، تا زمانی که هر نسخه متوالی دارای یک عدد بالاتر باشد. به عنوان مثال، می تواند یک شماره ساخت باشد یا می توانید یک شماره نسخه را با فرمت "xy" با رمزگذاری "x" و "y" به طور جداگانه در 16 بیت پایین و بالا به یک عدد صحیح ترجمه کنید. یا می توانید هر بار که نسخه جدیدی منتشر می شود، تعداد را یک عدد افزایش دهید.

android:versionName
شماره نسخه نمایش داده شده به کاربران این ویژگی به عنوان یک رشته خام یا به عنوان مرجع یک منبع رشته تنظیم می شود. رشته هدف دیگری جز نمایش دادن به کاربران ندارد. ویژگی versionCode تعداد نسخه قابل توجهی را که در داخل استفاده می شود را نگه می دارد.
android:installLocation
محل نصب پیش فرض برنامه. رشته های کلیدواژه زیر پذیرفته می شوند:

ارزش توضیحات
"internalOnly" برنامه فقط در حافظه داخلی دستگاه نصب می شود. اگر این تنظیم باشد، برنامه هرگز روی حافظه خارجی مانند کارت SD نصب نمی‌شود. اگر حافظه داخلی پر باشد، سیستم برنامه را نصب نمی کند. اگر android:installLocation تعریف نکنید، این رفتار پیش‌فرض است.
"auto" برنامه می تواند روی حافظه خارجی نصب شود، اما سیستم به طور پیش فرض برنامه را روی حافظه داخلی نصب می کند. اگر حافظه داخلی پر باشد، سیستم آن را روی حافظه خارجی نصب می کند. پس از نصب، کاربر می تواند برنامه را از طریق تنظیمات سیستم به حافظه داخلی یا خارجی منتقل کند.
"preferExternal" این برنامه ترجیح می دهد روی حافظه خارجی نصب شود. هیچ تضمینی وجود ندارد که سیستم به این درخواست احترام بگذارد. اگر رسانه خارجی در دسترس یا پر باشد، ممکن است برنامه در حافظه داخلی نصب شود. پس از نصب، کاربر می تواند برنامه را از طریق تنظیمات سیستم به حافظه داخلی یا خارجی منتقل کند.

توجه: به‌طور پیش‌فرض، برنامه شما در حافظه داخلی نصب می‌شود و نمی‌تواند در حافظه خارجی نصب شود، مگر اینکه این ویژگی را "auto" یا "preferExternal" تعریف کنید.

هنگامی که یک برنامه در حافظه خارجی نصب می شود:

  • فایل APK در حافظه خارجی ذخیره می شود، اما هر گونه داده برنامه، مانند پایگاه داده، همچنان در حافظه داخلی دستگاه ذخیره می شود.
  • محفظه ای که فایل APK در آن ذخیره می شود با کلیدی رمزگذاری شده است که به برنامه اجازه می دهد فقط روی دستگاهی که آن را نصب کرده است کار کند. کاربر نمی تواند کارت SD را به دستگاه دیگری منتقل کند و از برنامه های نصب شده روی کارت استفاده کند. چندین کارت SD را می توان با یک دستگاه استفاده کرد.
  • بنا به درخواست کاربر، برنامه می تواند به حافظه داخلی منتقل شود.

کاربر همچنین ممکن است درخواست کند یک برنامه را از حافظه داخلی به حافظه خارجی منتقل کند. با این حال، اگر این ویژگی روی "internalOnly" تنظیم شده باشد، سیستم به کاربر اجازه نمی‌دهد برنامه را به حافظه خارجی منتقل کند، که تنظیم پیش‌فرض است.

برای اطلاعات بیشتر در مورد استفاده از این ویژگی، از جمله نحوه حفظ سازگاری به عقب، به مکان نصب برنامه مراجعه کنید.

معرفی شده در: سطح API 8.

معرفی شده در:
API سطح 1 برای همه ویژگی‌ها، مگر اینکه در توضیحات ویژگی به طور دیگری ذکر شده باشد.

همچنین ببینید:
<application>