<برنامه>

نحو:
<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" است.

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

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

برای اطلاعات بیشتر، به بخش پشتیبان‌گیری و بازیابی صفحه‌ای که تغییرات رفتاری برنامه‌های اندروید ۱۲ (سطح API ۳۱) یا بالاتر را شرح می‌دهد، مراجعه کنید.

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
اینکه آیا سیستم اندروید می‌تواند اجزای برنامه را نمونه‌سازی کند یا خیر. اگر بتواند "true" و در غیر این صورت "false" است. اگر مقدار "true" باشد، ویژگی enabled هر جزء تعیین می‌کند که آیا آن جزء فعال است یا خیر. اگر مقدار "false" باشد، مقادیر مختص به جزء را نادیده می‌گیرد و همه اجزا غیرفعال می‌شوند.

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

android:enableOnBackInvokedCallback

این پرچم به شما امکان می‌دهد از انیمیشن‌های سیستم پیش‌بینی در سطح برنامه انصراف دهید.

برای غیرفعال کردن انیمیشن‌های پیش‌بینی‌کننده‌ی بازگشت به عقب در سطح برنامه و دستور دادن به سیستم که فراخوانی‌های API پلتفرم OnBackInvokedCallback را نادیده بگیرد، مقدار android:enableOnBackInvokedCallback=false را تنظیم کنید.

android:extractNativeLibs

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

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

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

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

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

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

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

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

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

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

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

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

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

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

از اندروید ۳.۰ (API سطح ۱۱)، یک رندرکننده 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 پیروی کند.

مقدار پیش‌فرضی وجود ندارد. توسعه‌دهنده باید یکی از مقادیر زیر را مشخص کند:

ارزش توضیحات
"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 همچنین با عنصر <activity> تعریف می‌شود.
android:name
نام کامل یک زیرکلاس Application که برای برنامه پیاده‌سازی شده است. وقتی فرآیند برنامه شروع می‌شود، این کلاس قبل از هر یک از اجزای برنامه، نمونه‌سازی می‌شود.

زیرکلاس اختیاری است. اکثر برنامه‌ها به آن نیازی ندارند. در صورت عدم وجود زیرکلاس، اندروید از نمونه‌ای از کلاس پایه Application استفاده می‌کند.

android:networkSecurityConfig

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

این ویژگی در API سطح ۲۴ اضافه شده است.

android:permission
نام مجوزی که کلاینت‌ها برای تعامل با برنامه به آن نیاز دارند. این ویژگی، روشی مناسب برای تنظیم مجوزی است که برای همه اجزای برنامه اعمال می‌شود. این مجوز با تنظیم ویژگی‌های permission اجزای منفرد، بازنویسی می‌شود.

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

android:persistent
اینکه آیا برنامه همیشه در حال اجرا باقی می‌ماند یا خیر. اگر در حال اجرا باشد "true" و در غیر این صورت "false" است. مقدار پیش‌فرض "false" است. برنامه‌ها معمولاً این پرچم را تنظیم نمی‌کنند. حالت پایداری فقط برای برنامه‌های سیستمی خاصی در نظر گرفته شده است.
android:process
نام فرآیندی که تمام اجزای برنامه در آن اجرا می‌شوند. هر جزء می‌تواند با تنظیم ویژگی process خود، این پیش‌فرض را لغو کند.

به طور پیش‌فرض، اندروید زمانی که اولین کامپوننت یک برنامه نیاز به اجرا داشته باشد، یک فرآیند برای آن ایجاد می‌کند. سپس تمام کامپوننت‌ها در آن فرآیند اجرا می‌شوند. نام فرآیند پیش‌فرض با نام بسته‌ای که توسط عنصر <manifest> تعیین شده است، مطابقت دارد.

با تنظیم این ویژگی به نام فرآیندی که با برنامه دیگری به اشتراک گذاشته شده است، می‌توانید ترتیبی دهید که اجزای هر دو برنامه در یک فرآیند اجرا شوند، اما تنها در صورتی که دو برنامه یک شناسه کاربری مشترک داشته باشند و با یک گواهی امضا شده باشند.

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

android:restoreAnyVersion
نشان می‌دهد که برنامه آماده است تا هرگونه مجموعه داده پشتیبان‌گیری شده را بازیابی کند، حتی اگر نسخه پشتیبان توسط نسخه جدیدتری از برنامه نسبت به نسخه فعلی نصب شده روی دستگاه ذخیره شده باشد. تنظیم این ویژگی روی "true" به مدیر پشتیبان‌گیری اجازه می‌دهد
  • $1
  • حتی زمانی که عدم تطابق نسخه نشان می‌دهد که داده‌ها ناسازگار هستند، بازیابی را امتحان کنید. با احتیاط استفاده کنید!

    مقدار پیش‌فرض این ویژگی "false" است.

    android:requestLegacyExternalStorage

    اینکه آیا برنامه می‌خواهد از ذخیره‌سازی محدود (scoped storage) انصراف دهد یا خیر.

    توجه: بسته به تغییرات مربوط به سیاست یا سازگاری برنامه، سیستم ممکن است این درخواست انصراف را نپذیرد.

    android:requiredAccountType
    نوع حساب مورد نیاز برنامه برای عملکرد را مشخص می‌کند. اگر برنامه شما به یک Account نیاز دارد، مقدار این ویژگی باید با نوع تأییدکننده حساب مورد استفاده برنامه شما، همانطور که توسط AuthenticatorDescription تعریف شده است، مانند "com.google" مطابقت داشته باشد.

    مقدار پیش‌فرض null است و نشان می‌دهد که برنامه می‌تواند بدون هیچ حسابی کار کند.

    از آنجا که پروفایل‌های محدود شده نمی‌توانند حساب کاربری اضافه کنند، تعیین این ویژگی باعث می‌شود برنامه شما از یک پروفایل محدود شده غیرقابل دسترس شود، مگر اینکه android:restrictedAccountType نیز با همان مقدار تعریف کنید.

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

    این ویژگی در API سطح ۱۸ اضافه شده است.

    android:resizeableActivity

    مشخص می‌کند که آیا برنامه از حالت چند پنجره‌ای پشتیبانی می‌کند یا خیر.

    می‌توانید این ویژگی را در عنصر <activity> یا <application> تنظیم کنید.

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

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

    برای برنامه‌هایی که سطح API 24 یا بالاتر را هدف قرار می‌دهند، مقدار پیش‌فرض "true" است.

    اگر برنامه شما سطح API 31 یا بالاتر را هدف قرار داده است، این ویژگی در صفحه نمایش‌های کوچک و بزرگ متفاوت عمل می‌کند:

    • صفحه نمایش‌های بزرگ (sw >= 600dp): همه برنامه‌ها از حالت چند پنجره‌ای پشتیبانی می‌کنند. این ویژگی نشان می‌دهد که آیا می‌توان اندازه یک برنامه را تغییر داد یا خیر، نه اینکه آیا برنامه از حالت چند پنجره‌ای پشتیبانی می‌کند یا خیر. اگر resizeableActivity="false" ، برنامه در صورت لزوم برای مطابقت با ابعاد صفحه نمایش، در حالت سازگاری قرار می‌گیرد.
    • صفحات نمایش کوچک (sw < 600dp): اگر resizeableActivity="true" و حداقل عرض و حداقل ارتفاع فعالیت اصلی در محدوده الزامات چند پنجره‌ای باشند، برنامه از حالت چند پنجره‌ای پشتیبانی می‌کند. اگر resizeableActivity="false" ، برنامه صرف نظر از حداقل عرض و ارتفاع فعالیت، از حالت چند پنجره‌ای پشتیبانی نمی‌کند.

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

    این ویژگی در API سطح ۲۴ اضافه شده است.

    android:restrictedAccountType
    نوع حساب مورد نیاز این برنامه را مشخص می‌کند و نشان می‌دهد که پروفایل‌های محدود می‌توانند به حساب‌هایی که متعلق به کاربر مالک هستند دسترسی داشته باشند. اگر برنامه شما به یک Account نیاز دارد و پروفایل‌های محدود می‌توانند به حساب‌های کاربر اصلی دسترسی داشته باشند، مقدار این ویژگی باید با نوع تأییدکننده حساب مورد استفاده برنامه شما، همانطور که توسط AuthenticatorDescription تعریف شده است، مانند "com.google" مطابقت داشته باشد.

    مقدار پیش‌فرض null است و نشان می‌دهد که برنامه می‌تواند بدون هیچ حسابی کار کند.

    احتیاط: مشخص کردن این ویژگی به پروفایل‌های محدود شده اجازه می‌دهد تا از برنامه شما با حساب‌هایی که متعلق به کاربر مالک هستند استفاده کنند، که ممکن است اطلاعات شخصی قابل شناسایی را فاش کند. اگر حساب ممکن است جزئیات شخصی را فاش کند، از این ویژگی استفاده نکنید . در عوض، ویژگی android:requiredAccountType را تعریف کنید تا برنامه شما برای پروفایل‌های محدود شده غیرقابل دسترس شود.

    این ویژگی در API سطح ۱۸ اضافه شده است.

    android:supportsRtl

    مشخص می‌کند که آیا برنامه شما از طرح‌بندی‌های راست به چپ (RTL) پشتیبانی می‌کند یا خیر.

    اگر این گزینه روی "true" تنظیم شده باشد و targetSdkVersion روی ۱۷ ​​یا بالاتر تنظیم شده باشد، APIهای RTL مختلفی فعال شده و توسط سیستم استفاده می‌شوند تا برنامه شما بتواند طرح‌بندی‌های RTL را نمایش دهد. اگر این گزینه روی "false" تنظیم شده باشد یا targetSdkVersion روی ۱۶ یا پایین‌تر تنظیم شده باشد، APIهای RTL نادیده گرفته می‌شوند یا هیچ تاثیری ندارند و برنامه شما صرف نظر از جهت طرح‌بندی مرتبط با انتخاب زبان کاربر، رفتار یکسانی دارد. یعنی طرح‌بندی‌های شما همیشه از چپ به راست هستند.

    مقدار پیش‌فرض این ویژگی "false" است.

    این ویژگی در API سطح ۱۷ اضافه شده است.

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

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

    android:testOnly
    نشان می‌دهد که آیا این برنامه فقط برای اهداف آزمایشی است یا خیر. برای مثال، ممکن است عملکرد یا داده‌هایی را در خارج از خود افشا کند که می‌تواند باعث ایجاد حفره امنیتی شود، اما برای آزمایش مفید باشد. این نوع APK فقط از طریق adb نصب می‌شود. نمی‌توانید آن را در Google Play منتشر کنید.

    اندروید استودیو به طور خودکار این ویژگی را هنگام کلیک روی Run اضافه می‌کند. .

    android:theme
    ارجاعی به یک منبع سبک که یک تم پیش‌فرض را برای همه فعالیت‌های برنامه تعریف می‌کند. فعالیت‌های منفرد می‌توانند با تنظیم ویژگی‌های theme خود، پیش‌فرض را لغو کنند. برای اطلاعات بیشتر، به بخش سبک‌ها و تم‌ها مراجعه کنید.
    android:uiOptions
    گزینه‌های اضافی برای رابط کاربری یک فعالیت. باید یکی از مقادیر زیر باشد:
    ارزش توضیحات
    "none" هیچ گزینه رابط کاربری اضافی وجود ندارد. این پیش‌فرض است.
    "splitActionBarWhenNarrow" نواری در پایین صفحه اضافه می‌کند تا موارد عملیاتی را در نوار برنامه ، که به عنوان نوار عملیات نیز شناخته می‌شود، در صورت محدود بودن فضای افقی، مانند حالت عمودی در گوشی، نمایش دهد. به جای تعداد کمی از موارد عملیاتی که در نوار برنامه در بالای صفحه نمایش داده می‌شوند، نوار برنامه به بخش ناوبری بالا و نوار پایین برای موارد عملیاتی تقسیم می‌شود. این بدان معناست که فضای معقولی برای موارد عملیاتی و عناصر ناوبری و عنوان در بالا در دسترس است. موارد منو در دو نوار تقسیم نمی‌شوند. آنها همیشه با هم ظاهر می‌شوند.

    برای اطلاعات بیشتر در مورد نوار برنامه، به افزودن نوار برنامه مراجعه کنید.

    این ویژگی در API سطح ۱۴ اضافه شده است.

    android:usesCleartextTraffic
    نشان می‌دهد که آیا برنامه قصد دارد از ترافیک شبکه cleartext، مانند cleartext HTTP، استفاده کند یا خیر. مقدار پیش‌فرض برای برنامه‌هایی که API سطح ۲۷ یا پایین‌تر را هدف قرار می‌دهند، "true" است. برنامه‌هایی که API سطح ۲۸ یا بالاتر را هدف قرار می‌دهند، به طور پیش‌فرض روی "false" قرار دارند.

    توجه: این ویژگی در حال منسوخ شدن است و برای برنامه‌هایی که سطح API 38 و بالاتر را هدف قرار می‌دهند، نادیده گرفته می‌شود. برای کنترل ترافیک cleartext برای سطوح API 24 و بالاتر، یک پیکربندی امنیت شبکه مشخص کنید. اگر برنامه شما سطح API 23 و پایین‌تر را هدف قرار می‌دهد، باید android:usesCleartextTraffic علاوه بر پیکربندی امنیت شبکه مشخص کنید.

    وقتی این ویژگی روی "false" تنظیم شده باشد، اجزای پلتفرم، برای مثال، پشته‌های HTTP و FTP، DownloadManager و MediaPlayer ، درخواست‌های برنامه برای استفاده از ترافیک cleartext را رد می‌کنند.

    کتابخانه‌های شخص ثالث نیز اکیداً تشویق می‌شوند که این تنظیمات را رعایت کنند. دلیل اصلی اجتناب از ترافیک متن ساده، عدم محرمانگی، اصالت و محافظت در برابر دستکاری است. یک مهاجم شبکه می‌تواند داده‌های منتقل شده را استراق سمع کند و همچنین آنها را بدون شناسایی تغییر دهد.

    این پرچم بر اساس بهترین تلاش رعایت می‌شود، زیرا با توجه به سطح دسترسی ارائه شده به برنامه‌های اندروید، جلوگیری از تمام ترافیک متن ساده از آنها غیرممکن است. برای مثال، هیچ انتظاری وجود ندارد که API Socket این پرچم را رعایت کند، زیرا نمی‌تواند تشخیص دهد که آیا ترافیک آن به صورت متن ساده است یا خیر.

    با این حال، بیشتر ترافیک شبکه از برنامه‌ها توسط پشته‌ها و اجزای شبکه سطح بالاتر مدیریت می‌شود که می‌توانند با خواندن این پرچم از ApplicationInfo.flags یا NetworkSecurityPolicy.isCleartextTrafficPermitted() آن را رعایت کنند.

    نکته: WebView این ویژگی را برای برنامه‌هایی که سطح API 26 و بالاتر را هدف قرار می‌دهند، در نظر می‌گیرد.

    در طول توسعه برنامه، می‌توان از StrictMode برای شناسایی هرگونه ترافیک cleartext از برنامه استفاده کرد. برای اطلاعات بیشتر، به StrictMode.VmPolicy.Builder.detectCleartextNetwork() مراجعه کنید.

    این ویژگی در API سطح ۲۳ اضافه شده است.

    این پرچم در اندروید ۷.۰ (سطح API ۲۴) و بالاتر، در صورت وجود پیکربندی امنیت شبکه اندروید، نادیده گرفته می‌شود.

    android:vmSafeMode
    نشان می‌دهد که آیا برنامه می‌خواهد ماشین مجازی (VM) در حالت ایمن (safe mode) کار کند یا خیر. مقدار پیش‌فرض "false" است.

    این ویژگی در API سطح ۸ اضافه شد، که در آن مقدار "true" کامپایلر Dalvik just-in-time (JIT) را غیرفعال می‌کرد.

    این ویژگی در سطح API 22 اقتباس شده است، که در آن مقدار "true" کامپایلر ART ahead-of-time (AOT) را غیرفعال می‌کند.

    معرفی شده در:
    API سطح ۱
    همچنین ببینید:
    <activity>
    <service>
    <receiver>
    <provider>