<برنامه>

نحو:
<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>
توضیحات:

اعلامیه درخواست این عنصر حاوی عناصر فرعی است که هر یک از مؤلفه های برنامه را اعلام می کند و دارای ویژگی هایی است که می تواند بر همه مؤلفه ها تأثیر بگذارد.

بسیاری از این ویژگی‌ها، مانند icon ، label ، permission ، process ، taskAffinity ، و allowTaskReparenting ، مقادیر پیش‌فرض را برای ویژگی‌های متناظر عناصر جزء تنظیم می‌کنند. موارد دیگر، مانند debuggable ، enabled ، description ، و allowClearUserData ، مقادیری را برای برنامه به عنوان یک کل تنظیم می کنند و توسط مؤلفه ها لغو نمی شوند.

صفات
android:allowTaskReparenting
این که آیا فعالیت‌هایی که برنامه تعریف می‌کند می‌تواند از کاری که آنها را شروع کرده است به کاری که با آن علاقه دارند حرکت کند یا خیر. اگر آنها بتوانند حرکت کنند، "true" است، و اگر باید در همان جایی که شروع کرده اند باقی بمانند، "false" است. مقدار پیش فرض "false" است.

عنصر <activity> ویژگی allowTaskReparenting خود را دارد که می تواند مقدار تنظیم شده در اینجا را لغو کند.

android:allowBackup

آیا به برنامه اجازه می دهیم در پشتیبان گیری و بازیابی زیرساخت شرکت کند یا خیر. اگر این ویژگی روی "false" تنظیم شود، هیچ نسخه پشتیبان یا بازیابی از برنامه انجام نمی شود، حتی با یک نسخه پشتیبان کامل از سیستم که در غیر این صورت باعث می شود تمام داده های برنامه با استفاده از adb ذخیره شوند. مقدار پیش فرض این ویژگی "true" است.

توجه: برای برنامه‌هایی که Android 12 (سطح API 31) یا بالاتر را هدف قرار می‌دهند، این رفتار متفاوت است. در دستگاه‌های برخی از سازندگان دستگاه، نمی‌توانید انتقال دستگاه به دستگاه فایل‌های برنامه خود را غیرفعال کنید.

با این حال، می‌توانید پشتیبان‌گیری مبتنی بر ابر و بازیابی فایل‌های برنامه خود را با تنظیم این ویژگی روی "false" غیرفعال کنید، حتی اگر برنامه شما اندروید 12 (سطح API 31) یا بالاتر را هدف قرار دهد.

برای اطلاعات بیشتر، بخش پشتیبان‌گیری و بازیابی صفحه را ببینید که تغییرات رفتاری برنامه‌هایی را که Android 12 (سطح API 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 را تنظیم کنید تا انیمیشن‌های پیش‌بینی‌کننده پیش‌بینی‌کننده را در سطح برنامه خاموش کند و به سیستم دستور دهید که تماس‌های API پلتفرم OnBackInvokedCallback نادیده بگیرد.

android:extractNativeLibs

با شروع AGP 4.2.0، گزینه DSL useLegacyPackaging جایگزین ویژگی مانیفست extractNativeLibs می شود. از useLegacyPackaging در فایل build.gradle برنامه خود به جای extractNativeLibs در فایل مانیفست برای پیکربندی رفتار فشرده سازی کتابخانه بومی استفاده کنید. برای اطلاعات بیشتر، به یادداشت انتشار مراجعه کنید از DSL برای بسته بندی کتابخانه های بومی فشرده استفاده کنید .

این ویژگی نشان می دهد که آیا نصب کننده بسته، کتابخانه های بومی را از APK به سیستم فایل استخراج می کند یا خیر. اگر روی "false" تنظیم شود، کتابخانه های بومی شما به صورت فشرده در APK ذخیره می شوند. اگرچه ممکن است APK شما بزرگتر باشد، برنامه شما سریعتر بارگیری می شود زیرا کتابخانه ها در زمان اجرا مستقیماً از APK بارگیری می شوند.

مقدار پیش فرض extractNativeLibs به minSdkVersion و نسخه AGP که استفاده می کنید بستگی دارد. در بیشتر موارد، رفتار پیش‌فرض احتمالاً همان چیزی است که شما می‌خواهید، و نیازی نیست که این ویژگی را به صراحت تنظیم کنید.

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

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

android:fullBackupOnly
این ویژگی نشان می‌دهد که آیا از پشتیبان‌گیری خودکار در دستگاه‌هایی که در دسترس است استفاده شود یا خیر. اگر روی "true" تنظیم شود، برنامه شما وقتی روی دستگاهی با Android نسخه ۶.۰ (سطح API ۲۳) یا بالاتر نصب می‌شود، پشتیبان‌گیری خودکار انجام می‌دهد. در دستگاه‌های قدیمی‌تر، برنامه شما این ویژگی را نادیده می‌گیرد و از کلید/مقدار پشتیبان‌گیری می‌کند.

مقدار پیش فرض "false" است.

android:gwpAsanMode
این ویژگی نشان می‌دهد که آیا باید از GWP-ASan ، یک ویژگی تخصیص‌دهنده حافظه بومی که به یافتن اشکال‌های استفاده پس از استفاده رایگان و heap-buffer-overflow کمک می‌کند، استفاده کرد.

مقدار پیش فرض "never" است.

android:hasCode
این که آیا برنامه حاوی هر کد DEX باشد، یعنی کدی با استفاده از زبان برنامه نویسی Kotlin یا Java. اگر این کار را کرد "true" و اگر نه "false" است. هنگامی که مقدار "false" است، سیستم سعی نمی کند هیچ کد برنامه ای را هنگام راه اندازی اجزا بارگیری کند. مقدار پیش فرض "true" است.

اگر برنامه دارای کد بومی (C/C++) باشد، اما کد DEX ندارد، باید روی "false" تنظیم شود. اگر زمانی که APK حاوی کد DEX نیست، روی "true" تنظیم شود، ممکن است برنامه بارگیری نشود.

این ویژگی باید کد موجود در برنامه را بر اساس وابستگی ها در نظر بگیرد. اگر برنامه به یک AAR که از کد جاوا/کاتلین استفاده می‌کند یا مستقیماً روی یک JAR بستگی دارد، app:hasCode باید "true" باشد یا حذف شود زیرا پیش‌فرض است.

برای مثال، برنامه شما ممکن است از تحویل ویژگی Play پشتیبانی کند و شامل ماژول‌های ویژگی باشد که هیچ فایل DEX تولید نمی‌کنند، که بایت کد برای پلتفرم Android بهینه‌سازی شده است. اگر چنین است، باید این ویژگی را در فایل مانیفست ماژول روی "false" تنظیم کنید تا از خطاهای زمان اجرا جلوگیری کنید.

android:hasFragileUserData
وقتی کاربر برنامه را حذف نصب می‌کند، درخواستی برای حفظ داده‌های برنامه به کاربر نشان داده شود. مقدار پیش فرض "false" است.
android:hardwareAccelerated
اینکه آیا رندر سخت افزاری برای همه فعالیت ها و نمایش ها در این برنامه فعال است یا خیر. اگر فعال باشد "true" و در غیر این صورت "false" است. اگر minSdkVersion یا targetSdkVersion روی "14" یا بالاتر تنظیم کنید، مقدار پیش فرض "true" است. در غیر این صورت، "false" است.

با شروع از Android 3.0 (سطح API 11)، یک رندر OpenGL با شتاب سخت افزاری برای برنامه ها در دسترس است تا عملکرد بسیاری از عملیات گرافیکی دوبعدی رایج را بهبود بخشد. هنگامی که رندر شتاب‌دهنده سخت‌افزاری فعال است، بیشتر عملیات‌ها در Canvas، Paint، Xfermode، ColorFilter، Shader و Camera تسریع می‌شوند.

این منجر به انیمیشن‌های روان‌تر، اسکرول نرم‌تر و به طور کلی پاسخ‌دهی بهتر می‌شود، حتی برای برنامه‌هایی که به‌صراحت از کتابخانه‌های 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 جداگانه برای عناصر