- نحو:
<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 - این ویژگی نشان میدهد که آیا نصبکننده بسته، کتابخانههای بومی را از 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 سطح ۲۴ اضافه شده است.
- صفحه نمایشهای بزرگ (sw >= 600dp): همه برنامهها از حالت چند پنجرهای پشتیبانی میکنند. این ویژگی نشان میدهد که آیا میتوان اندازه یک برنامه را تغییر داد یا خیر، نه اینکه آیا برنامه از حالت چند پنجرهای پشتیبانی میکند یا خیر. اگر
-
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) را غیرفعال میکند.
از نسخه AGP 4.2.0 به بعد، گزینه DSL
useLegacyPackagingجایگزین ویژگی manifest مربوطextractNativeLibsمیشود. برای پیکربندی رفتار فشردهسازی کتابخانههای native، به جایextractNativeLibsدر فایل manifest، ازuseLegacyPackagingدر فایلbuild.gradleبرنامه خود استفاده کنید. برای اطلاعات بیشتر، به یادداشت انتشار «از DSL برای بستهبندی کتابخانههای native فشرده استفاده کنید» مراجعه کنید.-
- معرفی شده در:
- API سطح ۱
- همچنین ببینید:
-
<activity>
<service>
<receiver>
<provider>
<برنامه>
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2026-05-16 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2026-05-16 بهوقت ساعت هماهنگ جهانی."],[],[]]