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