Android 9 (سطح API 28) و نسخه های بعدی از App Standby Buckets پشتیبانی می کند. سطلهای آماده به کار به سیستم کمک میکنند درخواستهای برنامهها برای منابع را براساس میزان اخیر و تعداد دفعات استفاده از برنامهها اولویتبندی کند. بر اساس الگوهای استفاده از برنامه، هر برنامه در یکی از پنج سطل اولویت قرار می گیرد. این سیستم منابع دستگاه در دسترس برای هر برنامه را بر اساس سطل برنامه محدود می کند.
سطل های اولویت دار
سیستم به صورت پویا هر برنامه را به یک سطل اولویت اختصاص می دهد و برنامه ها را در صورت نیاز مجدداً اختصاص می دهد. این سیستم ممکن است به یک برنامه از پیش بارگذاری شده متکی باشد که از یادگیری ماشینی برای تعیین میزان احتمال استفاده از هر برنامه استفاده می کند و برنامه ها را به سطل های مناسب اختصاص می دهد.
اگر برنامه سیستم در دستگاهی موجود نباشد، سیستم به طور پیشفرض برنامهها را بر اساس اخیراً استفاده شده مرتب میکند. برنامه هایی که فعال تر هستند به سطل هایی اختصاص داده می شوند که به آنها اولویت بیشتری می دهند و منابع سیستم بیشتری را در اختیار برنامه قرار می دهند. به طور خاص، سطل تعیین میکند که کارهای برنامه چند بار اجرا میشوند و هر چند وقت یکبار برنامه میتواند آلارمها را ایجاد کند. این محدودیتها فقط زمانی اعمال میشوند که دستگاه از باتری استفاده میکند. در حالی که دستگاه در حال شارژ است، سیستم این محدودیت ها را اعمال نمی کند.
سطل های اولویت به شرح زیر است:
- فعال : برنامه در حال استفاده است یا اخیراً استفاده شده است.
- مجموعه کاری : برنامه در حال استفاده منظم است.
- مکرر : برنامه اغلب استفاده می شود اما نه روزانه.
- نادر : برنامه اغلب استفاده نمی شود.
- محدود شده : برنامه منابع زیادی از سیستم را مصرف می کند یا ممکن است رفتار نامطلوبی از خود نشان دهد.
علاوه بر این سطل های اولویت دار، یک سطل هرگز ویژه برای برنامه هایی که نصب شده اند اما هرگز اجرا نشده اند وجود دارد. این سیستم محدودیت های شدیدی را برای این برنامه ها اعمال می کند.
توضیحات زیر برای مورد غیر پیش بینی است. در مقابل، زمانی که پیشبینی از یادگیری ماشین برای پیشبینی رفتار استفاده میکند، سطلها با پیشبینی اقدامات بعدی کاربر انتخاب میشوند نه بر اساس استفاده اخیر. به عنوان مثال، یک برنامه اخیراً استفاده شده ممکن است در سطل کمیاب قرار گیرد زیرا یادگیری ماشینی پیش بینی می کند که برنامه ممکن است برای چندین ساعت استفاده نشود.
فعال
یک برنامه در زمانی که از آن استفاده می شود، اخیراً استفاده می شود یا هر یک از کارهای زیر را انجام می دهد، در سطل فعال است:
- فعالیتی را راه اندازی می کند.
- یک سرویس پیش زمینه طولانی مدت را اجرا می کند.
- توسط کاربر از یک اعلان ضربه زده می شود.
اگر برنامهای در سطل فعال باشد، سیستم حداقل محدودیتهایی را روی کارها یا آلارمهای برنامه اعمال میکند:
- با شروع Android 16 (سطح API 36)، مشاغل پسزمینه دارای سهمیه زمان اجرا سخاوتمندانه هستند، اگر توسط یک برنامه در سطل فعال شروع شوند. این شامل کارهایی است که مستقیماً با
JobScheduler
برنامه ریزی شده اند و همچنین مشاغل ایجاد شده توسط کتابخانه های دیگر مانند WorkManager یاDownloadManager
.
تعامل کاربر، برنامه ها را به عنوان فعال اختصاص می دهد
در اندروید 9 (سطح API 28) و بالاتر، وقتی کاربر به روشهای خاصی با برنامه شما تعامل دارد، سیستم به طور موقت برنامه شما را در سطل فعال قرار میدهد. پس از اینکه کاربر تعامل با برنامه شما را متوقف کرد، سیستم آن را بر اساس سابقه استفاده در یک سطل قرار می دهد.
در زیر نمونه هایی از فعل و انفعالاتی هستند که این رفتار سیستم را تحریک می کنند:
کاربر روی اعلانی که برنامه شما ارسال می کند ضربه می زند.
کاربر با ضربه زدن روی دکمه رسانه با یک سرویس پیش زمینه در برنامه شما تعامل دارد.
کاربر هنگام تعامل با سیستم عامل Android Automotive به برنامه شما متصل می شود، جایی که برنامه شما از یک سرویس پیش زمینه یا
CONNECTION_TYPE_PROJECTION
استفاده می کند.
مجموعه کاری
اگر یک برنامه اغلب اجرا می شود اما فعال نیست، در سطل مجموعه کار قرار دارد. به عنوان مثال، یک برنامه رسانه اجتماعی که کاربر تقریباً هر روز راه اندازی می کند احتمالاً در مجموعه کار قرار دارد. اگر برنامهها بهطور غیرمستقیم استفاده شوند، به سطل مجموعه کار ارتقا مییابند.
اگر برنامهای در مجموعه کار باشد، سیستم محدودیتهای ملایمی را بر توانایی آن برای اجرای کارها و راهاندازی آلارم اعمال میکند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
مکرر
اگر یک برنامه به طور منظم استفاده شود، اما نه لزوماً هر روز، در سطل مکرر قرار می گیرد. به عنوان مثال، یک برنامه ردیابی تمرین که کاربر در باشگاه اجرا می کند ممکن است در سطل مکرر باشد.
اگر برنامه ای در سطل مکرر قرار داشته باشد، سیستم محدودیت های قوی تری بر توانایی آن برای اجرای کارها و راه اندازی آلارم اعمال می کند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
نادر
اگر یک برنامه اغلب استفاده نشود، در سطل کمیاب قرار دارد. به عنوان مثال، یک برنامه هتل که کاربر فقط هنگام اقامت در آن هتل اجرا می کند، ممکن است در سطل کمیاب باشد.
اگر یک برنامه در سطل کمیاب باشد، سیستم محدودیتهای سختی را بر توانایی آن برای اجرای کارها و راهاندازی آلارم اعمال میکند. این سیستم همچنین توانایی برنامه برای اتصال به اینترنت را محدود می کند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
محدود شده است
این سطل که در اندروید 12 (سطح API 31) اضافه شده است، کمترین اولویت و بیشترین محدودیت را در بین تمام سطل ها دارد. این سیستم رفتار برنامه شما را در نظر می گیرد، مانند اینکه کاربر چند وقت یکبار با آن تعامل دارد تا تصمیم بگیرد که آیا برنامه شما را در سطل محدود قرار دهد یا خیر.
در Android 13 (سطح API 33) و بالاتر، مگر اینکه برنامه شما واجد شرایط معافیت باشد، سیستم برنامه شما را در سطل محدود شده در شرایط زیر قرار میدهد:
کاربر برای چند روز مشخص با برنامه شما ارتباط برقرار نمی کند. در اندروید 12 (سطح API 31) و 12L (سطح API 32)، تعداد روزها 45 روز است. اندروید 13 تعداد روزها را به 8 کاهش می دهد.
برنامه شما در طول یک دوره 24 ساعته تعداد زیادی پخش یا اتصال را فراخوانی می کند.
اگر سیستم برنامه شما را در سطل محدود قرار می دهد، محدودیت های زیر اعمال می شود:
- شما می توانید کارها را یک بار در روز در یک جلسه دسته ای 10 دقیقه ای اجرا کنید . در طول این جلسه، سیستم مشاغل برنامه شما را با کارهای برنامه های دیگر گروه بندی می کند.
- مشاغل محدود به خودی خود اجرا نمی شوند. باید حداقل یک کار دیگر در حال اجرا یا معلق باشد که می تواند شامل هر کار دیگری باشد.
- برنامه شما میتواند کارهای سریع کمتری را در مقایسه با زمانی که سیستم برنامه شما را در یک سطل با محدودیت کمتر قرار میدهد اجرا کند.
- برنامه شما میتواند یک زنگ هشدار را در روز فراخوانی کند. این آلارم می تواند یک زنگ دقیق یا یک زنگ هشدار غیر دقیق باشد.
معافیت از سطل محدود
انواع برنامههای زیر حتی در اندروید ۱۲ و بالاتر از ورود به سطل محدود و دور زدن محرک عدم فعالیت معاف هستند:
- برنامه های دستگاه همراه
- برنامه های در حال اجرا بر روی دستگاه در حالت نمایشی
- برنامه های صاحب دستگاه
- برنامه های مالک نمایه
- برنامه های ماندگار
- برنامه های VPN
- برنامههایی که نقش
ROLE_DIALER
دارند - برنامه هایی که کاربر صراحتاً برای ارائه عملکرد "نامحدود" در تنظیمات سیستم تعیین کرده است
- برنامه هایی با ویجت های فعال
- برنامه هایی که حداقل یکی از مجوزهای زیر را دارند:
سطل اولویت را ارزیابی کنید
برای بررسی اینکه برنامه شما به کدام باکت اختصاص داده شده است، یکی از موارد زیر را انجام دهید:
با
getAppStandbyBucket()
تماس بگیرید.دستور زیر را در پنجره ترمینال اجرا کنید:
adb shell am get-standby-bucket PACKAGE_NAME
سیستم هر زمان که برنامه شما را در یک سطل آماده به کار برنامه قرار می دهد که مقدار آن از STANDBY_BUCKET_ACTIVE
بیشتر است (10) گاز می گیرد.
بهترین شیوه ها
اگر برنامه شما بهترین روشها را برای Doze و آماده به کار برنامه دنبال میکند، ویژگیهای مدیریت انرژی بعدی دشوار نیستند. با این حال، برخی از رفتارهای برنامه که قبلاً به خوبی کار می کردند ممکن است مشکلاتی ایجاد کنند.
- سعی نکنید سیستم را برای قرار دادن برنامه خود در یک سطل خاص دستکاری کنید. روش سیستم برای قرار دادن اولویت می تواند تغییر کند و هر سازنده دستگاه ممکن است تصمیم بگیرد برنامه سطل خود را با الگوریتم خاص خود بنویسد. درعوض، مطمئن شوید که برنامه شما بدون توجه به اینکه در کدام سطل قرار دارد، رفتار مناسبی دارد.
- اگر برنامهای فعالیت راهاندازی نداشته باشد، ممکن است هرگز به سطل فعال ارتقا پیدا نکند. طراحی مجدد اپلیکیشن خود را برای داشتن چنین فعالیتی در نظر بگیرید.
اگر کاربران نتوانند با اعلانهای برنامه تعامل داشته باشند، کاربران نمیتوانند تبلیغ برنامه را به سطل فعال فعال کنند. در این مورد، طراحی مجدد برخی اعلانها را در نظر بگیرید که به کاربران اجازه تعامل میدهد. برای برخی از دستورالعملها، الگوهای طراحی اعلانهای طراحی مواد را ببینید.
اگر برنامه با دریافت یک پیام با اولویت بالا Firebase Cloud Messaging (FCM) اعلانی را نشان ندهد، کاربر نمیتواند با برنامه تعامل داشته باشد و در نتیجه آن را به سطل فعال ارتقا دهد. در واقع، تنها استفاده در نظر گرفته شده برای پیام های FCM با اولویت بالا، ارسال اعلان به کاربر است، بنابراین این وضعیت نباید رخ دهد. در 12L (سطح API 32) و پایینتر، اگر پیام FCM را بهطور نامناسب بهعنوان اولویت بالا علامتگذاری کنید، زمانی که تعامل کاربر را راهاندازی نمیکند، میتواند باعث شود که پیامهای آینده از اولویت برخوردار شوند.
اگر برنامهها در چندین بسته تقسیم شوند، آن بستهها ممکن است در سطلهای مختلف باشند و سطوح دسترسی متفاوتی داشته باشند. این برنامه ها را با بسته های اختصاص داده شده به سطل های مختلف تست کنید تا مطمئن شوید برنامه به درستی عمل می کند.
Android 9 (سطح API 28) و نسخه های بعدی از App Standby Buckets پشتیبانی می کند. سطلهای آماده به کار به سیستم کمک میکنند درخواستهای برنامهها برای منابع را براساس میزان اخیر و تعداد دفعات استفاده از برنامهها اولویتبندی کند. بر اساس الگوهای استفاده از برنامه، هر برنامه در یکی از پنج سطل اولویت قرار می گیرد. این سیستم منابع دستگاه در دسترس برای هر برنامه را بر اساس سطل برنامه محدود می کند.
سطل های اولویت دار
سیستم به صورت پویا هر برنامه را به یک سطل اولویت اختصاص می دهد و برنامه ها را در صورت نیاز مجدداً اختصاص می دهد. این سیستم ممکن است به یک برنامه از پیش بارگذاری شده متکی باشد که از یادگیری ماشینی برای تعیین میزان احتمال استفاده از هر برنامه استفاده می کند و برنامه ها را به سطل های مناسب اختصاص می دهد.
اگر برنامه سیستم در دستگاهی موجود نباشد، سیستم به طور پیشفرض برنامهها را بر اساس اخیراً استفاده شده مرتب میکند. برنامه هایی که فعال تر هستند به سطل هایی اختصاص داده می شوند که به آنها اولویت بیشتری می دهند و منابع سیستم بیشتری را در اختیار برنامه قرار می دهند. به طور خاص، سطل تعیین میکند که کارهای برنامه چند بار اجرا میشوند و هر چند وقت یکبار برنامه میتواند آلارمها را ایجاد کند. این محدودیتها فقط زمانی اعمال میشوند که دستگاه از باتری استفاده میکند. در حالی که دستگاه در حال شارژ است، سیستم این محدودیت ها را اعمال نمی کند.
سطل های اولویت به شرح زیر است:
- فعال : برنامه در حال استفاده است یا اخیراً استفاده شده است.
- مجموعه کاری : برنامه در حال استفاده منظم است.
- مکرر : برنامه اغلب استفاده می شود اما نه روزانه.
- نادر : برنامه اغلب استفاده نمی شود.
- محدود شده : برنامه منابع زیادی از سیستم را مصرف می کند یا ممکن است رفتار نامطلوبی از خود نشان دهد.
علاوه بر این سطل های اولویت دار، یک سطل هرگز ویژه برای برنامه هایی که نصب شده اند اما هرگز اجرا نشده اند وجود دارد. این سیستم محدودیت های شدیدی را برای این برنامه ها اعمال می کند.
توضیحات زیر برای مورد غیر پیش بینی است. در مقابل، زمانی که پیشبینی از یادگیری ماشین برای پیشبینی رفتار استفاده میکند، سطلها با پیشبینی اقدامات بعدی کاربر انتخاب میشوند نه بر اساس استفاده اخیر. به عنوان مثال، یک برنامه اخیراً استفاده شده ممکن است در سطل کمیاب قرار گیرد زیرا یادگیری ماشینی پیش بینی می کند که برنامه ممکن است برای چندین ساعت استفاده نشود.
فعال
یک برنامه در زمانی که از آن استفاده می شود، اخیراً استفاده می شود یا هر یک از کارهای زیر را انجام می دهد، در سطل فعال است:
- فعالیتی را راه اندازی می کند.
- یک سرویس پیش زمینه طولانی مدت را اجرا می کند.
- توسط کاربر از یک اعلان ضربه زده می شود.
اگر برنامهای در سطل فعال باشد، سیستم حداقل محدودیتهایی را روی کارها یا آلارمهای برنامه اعمال میکند:
- با شروع Android 16 (سطح API 36)، مشاغل پسزمینه دارای سهمیه زمان اجرا سخاوتمندانه هستند، اگر توسط یک برنامه در سطل فعال شروع شوند. این شامل کارهایی است که مستقیماً با
JobScheduler
برنامه ریزی شده اند و همچنین مشاغل ایجاد شده توسط کتابخانه های دیگر مانند WorkManager یاDownloadManager
.
تعامل کاربر، برنامه ها را به عنوان فعال اختصاص می دهد
در اندروید 9 (سطح API 28) و بالاتر، وقتی کاربر به روشهای خاصی با برنامه شما تعامل دارد، سیستم به طور موقت برنامه شما را در سطل فعال قرار میدهد. پس از اینکه کاربر تعامل با برنامه شما را متوقف کرد، سیستم آن را بر اساس سابقه استفاده در یک سطل قرار می دهد.
در زیر نمونه هایی از فعل و انفعالاتی هستند که این رفتار سیستم را تحریک می کنند:
کاربر روی اعلانی که برنامه شما ارسال می کند ضربه می زند.
کاربر با ضربه زدن روی دکمه رسانه با یک سرویس پیش زمینه در برنامه شما تعامل دارد.
کاربر هنگام تعامل با سیستم عامل Android Automotive به برنامه شما متصل می شود، جایی که برنامه شما از یک سرویس پیش زمینه یا
CONNECTION_TYPE_PROJECTION
استفاده می کند.
مجموعه کاری
اگر یک برنامه اغلب اجرا می شود اما فعال نیست، در سطل مجموعه کار قرار دارد. به عنوان مثال، یک برنامه رسانه اجتماعی که کاربر تقریباً هر روز راه اندازی می کند احتمالاً در مجموعه کار قرار دارد. اگر برنامهها بهطور غیرمستقیم استفاده شوند، به سطل مجموعه کار ارتقا مییابند.
اگر برنامهای در مجموعه کار باشد، سیستم محدودیتهای ملایمی را بر توانایی آن برای اجرای کارها و راهاندازی آلارم اعمال میکند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
مکرر
اگر یک برنامه به طور منظم استفاده شود، اما نه لزوماً هر روز، در سطل مکرر قرار می گیرد. به عنوان مثال، یک برنامه ردیابی تمرین که کاربر در باشگاه اجرا می کند ممکن است در سطل مکرر باشد.
اگر برنامه ای در سطل مکرر قرار داشته باشد، سیستم محدودیت های قوی تری بر توانایی آن برای اجرای کارها و راه اندازی آلارم اعمال می کند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
نادر
اگر یک برنامه اغلب استفاده نشود، در سطل کمیاب قرار دارد. به عنوان مثال، یک برنامه هتل که کاربر فقط هنگام اقامت در آن هتل اجرا می کند، ممکن است در سطل کمیاب باشد.
اگر یک برنامه در سطل کمیاب باشد، سیستم محدودیتهای سختی را بر توانایی آن برای اجرای کارها و راهاندازی آلارم اعمال میکند. این سیستم همچنین توانایی برنامه برای اتصال به اینترنت را محدود می کند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
محدود شده است
این سطل که در اندروید 12 (سطح API 31) اضافه شده است، کمترین اولویت و بیشترین محدودیت را در بین تمام سطل ها دارد. این سیستم رفتار برنامه شما را در نظر می گیرد، مانند اینکه کاربر چند وقت یکبار با آن تعامل دارد تا تصمیم بگیرد که آیا برنامه شما را در سطل محدود قرار دهد یا خیر.
در Android 13 (سطح API 33) و بالاتر، مگر اینکه برنامه شما واجد شرایط معافیت باشد، سیستم برنامه شما را در سطل محدود شده در شرایط زیر قرار میدهد:
کاربر برای چند روز مشخص با برنامه شما ارتباط برقرار نمی کند. در اندروید 12 (سطح API 31) و 12L (سطح API 32)، تعداد روزها 45 روز است. اندروید 13 تعداد روزها را به 8 کاهش می دهد.
برنامه شما در طول یک دوره 24 ساعته تعداد زیادی پخش یا اتصال را فراخوانی می کند.
اگر سیستم برنامه شما را در سطل محدود قرار می دهد، محدودیت های زیر اعمال می شود:
- شما می توانید کارها را یک بار در روز در یک جلسه دسته ای 10 دقیقه ای اجرا کنید . در طول این جلسه، سیستم مشاغل برنامه شما را با کارهای برنامه های دیگر گروه بندی می کند.
- مشاغل محدود به خودی خود اجرا نمی شوند. باید حداقل یک کار دیگر در حال اجرا یا معلق باشد که می تواند شامل هر کار دیگری باشد.
- برنامه شما میتواند کارهای سریع کمتری را در مقایسه با زمانی که سیستم برنامه شما را در یک سطل با محدودیت کمتر قرار میدهد اجرا کند.
- برنامه شما میتواند یک زنگ هشدار را در روز فراخوانی کند. این آلارم می تواند یک زنگ دقیق یا یک زنگ هشدار غیر دقیق باشد.
معافیت از سطل محدود
انواع برنامههای زیر حتی در اندروید ۱۲ و بالاتر از ورود به سطل محدود و دور زدن محرک عدم فعالیت معاف هستند:
- برنامه های دستگاه همراه
- برنامه های در حال اجرا بر روی دستگاه در حالت نمایشی
- برنامه های صاحب دستگاه
- برنامه های مالک نمایه
- برنامه های ماندگار
- برنامه های VPN
- برنامههایی که نقش
ROLE_DIALER
دارند - برنامه هایی که کاربر صراحتاً برای ارائه عملکرد "نامحدود" در تنظیمات سیستم تعیین کرده است
- برنامه هایی با ویجت های فعال
- برنامه هایی که حداقل یکی از مجوزهای زیر را دارند:
سطل اولویت را ارزیابی کنید
برای بررسی اینکه برنامه شما به کدام باکت اختصاص داده شده است، یکی از موارد زیر را انجام دهید:
با
getAppStandbyBucket()
تماس بگیرید.دستور زیر را در پنجره ترمینال اجرا کنید:
adb shell am get-standby-bucket PACKAGE_NAME
سیستم هر زمان که برنامه شما را در یک سطل آماده به کار برنامه قرار می دهد که مقدار آن از STANDBY_BUCKET_ACTIVE
بیشتر است (10) گاز می گیرد.
بهترین شیوه ها
اگر برنامه شما بهترین روشها را برای Doze و آماده به کار برنامه دنبال میکند، ویژگیهای مدیریت انرژی بعدی دشوار نیستند. با این حال، برخی از رفتارهای برنامه که قبلاً به خوبی کار می کردند ممکن است مشکلاتی ایجاد کنند.
- سعی نکنید سیستم را برای قرار دادن برنامه خود در یک سطل خاص دستکاری کنید. روش سیستم برای قرار دادن اولویت می تواند تغییر کند و هر سازنده دستگاه ممکن است تصمیم بگیرد برنامه سطل خود را با الگوریتم خاص خود بنویسد. درعوض، مطمئن شوید که برنامه شما بدون توجه به اینکه در کدام سطل قرار دارد، رفتار مناسبی دارد.
- اگر برنامهای فعالیت راهاندازی نداشته باشد، ممکن است هرگز به سطل فعال ارتقا پیدا نکند. طراحی مجدد اپلیکیشن خود را برای داشتن چنین فعالیتی در نظر بگیرید.
اگر کاربران نتوانند با اعلانهای برنامه تعامل داشته باشند، کاربران نمیتوانند تبلیغ برنامه را به سطل فعال فعال کنند. در این مورد، طراحی مجدد برخی اعلانها را در نظر بگیرید که به کاربران اجازه تعامل میدهد. برای برخی از دستورالعملها، الگوهای طراحی اعلانهای طراحی مواد را ببینید.
اگر برنامه با دریافت یک پیام با اولویت بالا Firebase Cloud Messaging (FCM) اعلانی را نشان ندهد، کاربر نمیتواند با برنامه تعامل داشته باشد و در نتیجه آن را به سطل فعال ارتقا دهد. در واقع، تنها استفاده در نظر گرفته شده برای پیام های FCM با اولویت بالا، ارسال اعلان به کاربر است، بنابراین این وضعیت نباید رخ دهد. در 12L (سطح API 32) و پایینتر، اگر پیام FCM را بهطور نامناسب بهعنوان اولویت بالا علامتگذاری کنید، زمانی که تعامل کاربر را راهاندازی نمیکند، میتواند باعث شود که پیامهای آینده از اولویت برخوردار شوند.
اگر برنامهها در چندین بسته تقسیم شوند، آن بستهها ممکن است در سطلهای مختلف باشند و سطوح دسترسی متفاوتی داشته باشند. این برنامه ها را با بسته های اختصاص داده شده به سطل های مختلف تست کنید تا مطمئن شوید برنامه به درستی عمل می کند.
Android 9 (سطح API 28) و نسخه های بعدی از App Standby Buckets پشتیبانی می کند. سطلهای آماده به کار به سیستم کمک میکنند درخواستهای برنامهها برای منابع را براساس میزان اخیر و تعداد دفعات استفاده از برنامهها اولویتبندی کند. بر اساس الگوهای استفاده از برنامه، هر برنامه در یکی از پنج سطل اولویت قرار می گیرد. این سیستم منابع دستگاه در دسترس برای هر برنامه را بر اساس سطل برنامه محدود می کند.
سطل های اولویت دار
سیستم به صورت پویا هر برنامه را به یک سطل اولویت اختصاص می دهد و برنامه ها را در صورت نیاز مجدداً اختصاص می دهد. این سیستم ممکن است به یک برنامه از پیش بارگذاری شده متکی باشد که از یادگیری ماشینی برای تعیین میزان احتمال استفاده از هر برنامه استفاده می کند و برنامه ها را به سطل های مناسب اختصاص می دهد.
اگر برنامه سیستم در دستگاهی موجود نباشد، سیستم به طور پیشفرض برنامهها را بر اساس اخیراً استفاده شده مرتب میکند. برنامه هایی که فعال تر هستند به سطل هایی اختصاص داده می شوند که به آنها اولویت بیشتری می دهند و منابع سیستم بیشتری را در اختیار برنامه قرار می دهند. به طور خاص، سطل تعیین میکند که کارهای برنامه چند بار اجرا میشوند و هر چند وقت یکبار برنامه میتواند آلارمها را ایجاد کند. این محدودیتها فقط زمانی اعمال میشوند که دستگاه از باتری استفاده میکند. در حالی که دستگاه در حال شارژ است، سیستم این محدودیت ها را اعمال نمی کند.
سطل های اولویت به شرح زیر است:
- فعال : برنامه در حال استفاده است یا اخیراً استفاده شده است.
- مجموعه کاری : برنامه در حال استفاده منظم است.
- مکرر : برنامه اغلب استفاده می شود اما نه روزانه.
- نادر : برنامه اغلب استفاده نمی شود.
- محدود شده : برنامه منابع زیادی از سیستم را مصرف می کند یا ممکن است رفتار نامطلوبی از خود نشان دهد.
علاوه بر این سطل های اولویت دار، یک سطل هرگز ویژه برای برنامه هایی که نصب شده اند اما هرگز اجرا نشده اند وجود دارد. این سیستم محدودیت های شدیدی را برای این برنامه ها اعمال می کند.
توضیحات زیر برای مورد غیر پیش بینی است. در مقابل، زمانی که پیشبینی از یادگیری ماشین برای پیشبینی رفتار استفاده میکند، سطلها با پیشبینی اقدامات بعدی کاربر انتخاب میشوند نه بر اساس استفاده اخیر. به عنوان مثال، یک برنامه اخیراً استفاده شده ممکن است در سطل کمیاب قرار گیرد زیرا یادگیری ماشینی پیش بینی می کند که برنامه ممکن است برای چندین ساعت استفاده نشود.
فعال
یک برنامه در زمانی که از آن استفاده می شود، اخیراً استفاده می شود یا هر یک از کارهای زیر را انجام می دهد، در سطل فعال است:
- فعالیتی را راه اندازی می کند.
- یک سرویس پیش زمینه طولانی مدت را اجرا می کند.
- توسط کاربر از یک اعلان ضربه زده می شود.
اگر برنامهای در سطل فعال باشد، سیستم حداقل محدودیتهایی را روی کارها یا آلارمهای برنامه اعمال میکند:
- با شروع Android 16 (سطح API 36)، مشاغل پسزمینه دارای سهمیه زمان اجرا سخاوتمندانه هستند، اگر توسط یک برنامه در سطل فعال شروع شوند. این شامل کارهایی است که مستقیماً با
JobScheduler
برنامه ریزی شده اند و همچنین مشاغل ایجاد شده توسط کتابخانه های دیگر مانند WorkManager یاDownloadManager
.
تعامل کاربر، برنامه ها را به عنوان فعال اختصاص می دهد
در اندروید 9 (سطح API 28) و بالاتر، وقتی کاربر به روشهای خاصی با برنامه شما تعامل دارد، سیستم به طور موقت برنامه شما را در سطل فعال قرار میدهد. پس از اینکه کاربر تعامل با برنامه شما را متوقف کرد، سیستم آن را بر اساس سابقه استفاده در یک سطل قرار می دهد.
در زیر نمونه هایی از فعل و انفعالاتی هستند که این رفتار سیستم را تحریک می کنند:
کاربر روی اعلانی که برنامه شما ارسال می کند ضربه می زند.
کاربر با ضربه زدن روی دکمه رسانه با یک سرویس پیش زمینه در برنامه شما تعامل دارد.
کاربر هنگام تعامل با سیستم عامل Android Automotive به برنامه شما متصل می شود، جایی که برنامه شما از یک سرویس پیش زمینه یا
CONNECTION_TYPE_PROJECTION
استفاده می کند.
مجموعه کاری
اگر یک برنامه اغلب اجرا می شود اما فعال نیست، در سطل مجموعه کار قرار دارد. به عنوان مثال، یک برنامه رسانه اجتماعی که کاربر تقریباً هر روز راه اندازی می کند احتمالاً در مجموعه کار قرار دارد. اگر برنامهها بهطور غیرمستقیم استفاده شوند، به سطل مجموعه کار ارتقا مییابند.
اگر برنامهای در مجموعه کار باشد، سیستم محدودیتهای ملایمی را بر توانایی آن برای اجرای کارها و راهاندازی آلارم اعمال میکند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
مکرر
اگر یک برنامه به طور منظم استفاده شود، اما نه لزوماً هر روز، در سطل مکرر قرار می گیرد. به عنوان مثال، یک برنامه ردیابی تمرین که کاربر در باشگاه اجرا می کند ممکن است در سطل مکرر باشد.
اگر برنامه ای در سطل مکرر قرار داشته باشد، سیستم محدودیت های قوی تری بر توانایی آن برای اجرای کارها و راه اندازی آلارم اعمال می کند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
نادر
اگر یک برنامه اغلب استفاده نشود، در سطل کمیاب قرار دارد. به عنوان مثال، یک برنامه هتل که کاربر فقط هنگام اقامت در آن هتل اجرا می کند، ممکن است در سطل کمیاب باشد.
اگر یک برنامه در سطل کمیاب باشد، سیستم محدودیتهای سختی را بر توانایی آن برای اجرای کارها و راهاندازی آلارم اعمال میکند. این سیستم همچنین توانایی برنامه برای اتصال به اینترنت را محدود می کند. برای جزئیات، به محدودیت های منابع مدیریت نیرو مراجعه کنید.
محدود شده است
این سطل که در اندروید 12 (سطح API 31) اضافه شده است، کمترین اولویت و بیشترین محدودیت را در بین تمام سطل ها دارد. این سیستم رفتار برنامه شما را در نظر می گیرد، مانند اینکه کاربر چند وقت یکبار با آن تعامل دارد تا تصمیم بگیرد که آیا برنامه شما را در سطل محدود قرار دهد یا خیر.
در Android 13 (سطح API 33) و بالاتر، مگر اینکه برنامه شما واجد شرایط معافیت باشد، سیستم برنامه شما را در سطل محدود شده در شرایط زیر قرار میدهد:
کاربر برای چند روز مشخص با برنامه شما ارتباط برقرار نمی کند. در اندروید 12 (سطح API 31) و 12L (سطح API 32)، تعداد روزها 45 روز است. اندروید 13 تعداد روزها را به 8 کاهش می دهد.
برنامه شما در طول یک دوره 24 ساعته تعداد زیادی پخش یا اتصال را فراخوانی می کند.
اگر سیستم برنامه شما را در سطل محدود قرار می دهد، محدودیت های زیر اعمال می شود:
- شما می توانید کارها را یک بار در روز در یک جلسه دسته ای 10 دقیقه ای اجرا کنید . در طول این جلسه، سیستم مشاغل برنامه شما را با کارهای برنامه های دیگر گروه بندی می کند.
- مشاغل محدود به خودی خود اجرا نمی شوند. باید حداقل یک کار دیگر در حال اجرا یا معلق باشد که می تواند شامل هر کار دیگری باشد.
- برنامه شما میتواند کارهای سریع کمتری را در مقایسه با زمانی که سیستم برنامه شما را در یک سطل با محدودیت کمتر قرار میدهد اجرا کند.
- برنامه شما میتواند یک زنگ هشدار را در روز فراخوانی کند. این آلارم می تواند یک زنگ دقیق یا یک زنگ هشدار غیر دقیق باشد.
معافیت از سطل محدود
انواع برنامههای زیر حتی در اندروید ۱۲ و بالاتر از ورود به سطل محدود و دور زدن محرک عدم فعالیت معاف هستند:
- برنامه های دستگاه همراه
- برنامه های در حال اجرا بر روی دستگاه در حالت نمایشی
- برنامه های صاحب دستگاه
- برنامه های مالک نمایه
- برنامه های ماندگار
- برنامه های VPN
- برنامههایی که نقش
ROLE_DIALER
دارند - برنامه هایی که کاربر صراحتاً برای ارائه عملکرد "نامحدود" در تنظیمات سیستم تعیین کرده است
- برنامه هایی با ویجت های فعال
- برنامه هایی که حداقل یکی از مجوزهای زیر را دارند:
سطل اولویت را ارزیابی کنید
برای بررسی اینکه برنامه شما به کدام باکت اختصاص داده شده است، یکی از موارد زیر را انجام دهید:
با
getAppStandbyBucket()
تماس بگیرید.دستور زیر را در پنجره ترمینال اجرا کنید:
adb shell am get-standby-bucket PACKAGE_NAME
سیستم هر زمان که برنامه شما را در یک سطل آماده به کار برنامه قرار می دهد که مقدار آن از STANDBY_BUCKET_ACTIVE
بیشتر است (10) گاز می گیرد.
بهترین شیوه ها
اگر برنامه شما بهترین روشها را برای Doze و آماده به کار برنامه دنبال میکند، ویژگیهای مدیریت انرژی بعدی دشوار نیستند. با این حال، برخی از رفتارهای برنامه که قبلاً به خوبی کار می کردند ممکن است مشکلاتی ایجاد کنند.
- سعی نکنید سیستم را برای قرار دادن برنامه خود در یک سطل خاص دستکاری کنید. روش سیستم برای قرار دادن اولویت می تواند تغییر کند و هر سازنده دستگاه ممکن است تصمیم بگیرد برنامه سطل خود را با الگوریتم خاص خود بنویسد. درعوض، مطمئن شوید که برنامه شما بدون توجه به اینکه در کدام سطل قرار دارد، رفتار مناسبی دارد.
- اگر برنامهای فعالیت راهاندازی نداشته باشد، ممکن است هرگز به سطل فعال ارتقا پیدا نکند. طراحی مجدد اپلیکیشن خود را برای داشتن چنین فعالیتی در نظر بگیرید.
اگر کاربران نتوانند با اعلانهای برنامه تعامل داشته باشند، کاربران نمیتوانند تبلیغ برنامه را به سطل فعال فعال کنند. در این مورد، طراحی مجدد برخی اعلانها را در نظر بگیرید که به کاربران اجازه تعامل میدهد. برای برخی از دستورالعملها، الگوهای طراحی اعلانهای طراحی مواد را ببینید.
اگر برنامه با دریافت یک پیام با اولویت بالا Firebase Cloud Messaging (FCM) اعلانی را نشان ندهد، کاربر نمیتواند با برنامه تعامل داشته باشد و در نتیجه آن را به سطل فعال ارتقا دهد. در واقع، تنها استفاده در نظر گرفته شده برای پیام های FCM با اولویت بالا، ارسال اعلان به کاربر است، بنابراین این وضعیت نباید رخ دهد. در 12L (سطح API 32) و پایینتر، اگر پیام FCM را بهطور نامناسب بهعنوان اولویت بالا علامتگذاری کنید، زمانی که تعامل کاربر را راهاندازی نمیکند، میتواند باعث شود که پیامهای آینده از اولویت برخوردار شوند.
اگر برنامهها در چندین بسته تقسیم شوند، آن بستهها ممکن است در سطلهای مختلف باشند و سطوح دسترسی متفاوتی داشته باشند. این برنامه ها را با بسته های اختصاص داده شده به سطل های مختلف تست کنید تا مطمئن شوید برنامه به درستی عمل می کند.
Android 9 (سطح API 28) و نسخه های بعدی از App Standby Buckets پشتیبانی می کند. سطلهای آماده به کار به سیستم کمک میکنند درخواستهای برنامهها برای منابع را براساس میزان اخیر و تعداد دفعات استفاده از برنامهها اولویتبندی کند. بر اساس الگوهای استفاده از برنامه، هر برنامه در یکی از پنج سطل اولویت قرار می گیرد. این سیستم منابع دستگاه در دسترس برای هر برنامه را بر اساس سطل برنامه محدود می کند.
سطل های اولویت دار
سیستم به صورت پویا هر برنامه را به یک سطل اولویت اختصاص می دهد و برنامه ها را در صورت نیاز مجدداً اختصاص می دهد. این سیستم ممکن است به یک برنامه از پیش بارگذاری شده متکی باشد که از یادگیری ماشینی برای تعیین میزان احتمال استفاده از هر برنامه استفاده می کند و برنامه ها را به سطل های مناسب اختصاص می دهد.
اگر برنامه سیستم در دستگاهی موجود نباشد، سیستم به طور پیشفرض برنامهها را بر اساس اخیراً استفاده شده مرتب میکند. برنامه هایی که فعال تر هستند به سطل هایی اختصاص داده می شوند که به آنها اولویت بیشتری می دهند و منابع سیستم بیشتری را در اختیار برنامه قرار می دهند. به طور خاص، سطل تعیین میکند که کارهای برنامه چند بار اجرا میشوند و هر چند وقت یکبار برنامه میتواند آلارمها را ایجاد کند. این محدودیتها فقط زمانی اعمال میشوند که دستگاه از باتری استفاده میکند. در حالی که دستگاه در حال شارژ است، سیستم این محدودیت ها را اعمال نمی کند.
سطل های اولویت به شرح زیر است:
- فعال : برنامه در حال استفاده است یا اخیراً استفاده شده است.
- مجموعه کاری : برنامه در حال استفاده منظم است.
- مکرر : برنامه اغلب استفاده می شود اما نه روزانه.
- نادر : برنامه اغلب استفاده نمی شود.
- محدود شده : برنامه منابع زیادی از سیستم را مصرف می کند یا ممکن است رفتار نامطلوبی از خود نشان دهد.
علاوه بر این سطل های اولویت دار، یک سطل هرگز ویژه برای برنامه هایی که نصب شده اند اما هرگز اجرا نشده اند وجود دارد. این سیستم محدودیت های شدیدی را برای این برنامه ها اعمال می کند.
توضیحات زیر برای مورد غیر پیش بینی است. در مقابل، زمانی که پیشبینی از یادگیری ماشین برای پیشبینی رفتار استفاده میکند، سطلها با پیشبینی اقدامات بعدی کاربر انتخاب میشوند نه بر اساس استفاده اخیر. به عنوان مثال، یک برنامه اخیراً استفاده شده ممکن است در سطل کمیاب قرار گیرد زیرا یادگیری ماشینی پیش بینی می کند که برنامه ممکن است برای چندین ساعت استفاده نشود.
فعال
یک برنامه در زمانی که از آن استفاده می شود، اخیراً استفاده می شود یا هر یک از کارهای زیر را انجام می دهد، در سطل فعال است:
- فعالیتی را راه اندازی می کند.
- یک سرویس پیش زمینه طولانی مدت را اجرا می کند.
- توسط کاربر از یک اعلان ضربه زده می شود.
اگر برنامهای در سطل فعال باشد، سیستم حداقل محدودیتهایی را روی کارها یا آلارمهای برنامه اعمال میکند:
- با شروع Android 16 (API سطح 36) ، مشاغل پس زمینه در صورت شروع کار توسط یک برنامه در سطل فعال ، سهمیه ای سخاوتمندانه را دارند. این شامل مشاغل برنامه ریزی شده به طور مستقیم با
JobScheduler
و همچنین مشاغل ایجاد شده توسط سایر کتابخانه ها مانند WorkManager یاDownloadManager
است.
تعامل کاربر برنامه ها را به عنوان فعال اختصاص می دهد
در Android 9 (API سطح 28) و بالاتر ، هنگامی که کاربر به روش های خاصی با برنامه شما ارتباط برقرار می کند ، سیستم به طور موقت برنامه شما را در سطل فعال قرار می دهد. بعد از اینکه کاربر تعامل با برنامه شما را متوقف کرد ، سیستم آن را بر اساس تاریخچه استفاده در یک سطل قرار می دهد.
موارد زیر نمونه هایی از تعامل است که باعث ایجاد این رفتار سیستم می شود:
کاربر به اعلان هایی که برنامه شما ارسال می کند ، می پردازد.
کاربر با ضربه زدن به دکمه رسانه ای با یک سرویس پیش زمینه در برنامه شما تعامل دارد.
کاربر ضمن تعامل با سیستم عامل Android Automobile ، جایی که برنامه شما از یک سرویس پیش زمینه یا
CONNECTION_TYPE_PROJECTION
استفاده می کند ، به برنامه شما متصل می شود.
مجموعه کاری
اگر اغلب اجرا شود ، یک برنامه در سطل مجموعه کار است اما فعال نیست. به عنوان مثال ، یک برنامه رسانه های اجتماعی که کاربر تقریباً روزانه راه اندازی می کند ، احتمالاً در مجموعه کار قرار دارد. در صورت استفاده غیرمستقیم ، برنامه ها نیز به سطل مجموعه کار ارتقا می یابند.
اگر یک برنامه در مجموعه کار باشد ، سیستم محدودیت های خفیف را در توانایی خود در اجرای شغل و ایجاد هشدارهای ایجاد می کند. برای جزئیات بیشتر ، به محدودیت منابع مدیریت انرژی مراجعه کنید.
مکرر
اگر به طور مرتب از آن استفاده شود اما لزوماً هر روز از آن استفاده می شود ، یک برنامه در سطل مکرر قرار دارد. به عنوان مثال ، یک برنامه ردیابی تمرین که کاربر در ورزشگاه اجرا می کند ممکن است در سطل مکرر باشد.
اگر یک برنامه در سطل مکرر باشد ، این سیستم محدودیت های قوی تری را در توانایی خود در اجرای شغل و ایجاد زنگ هشدار تحمیل می کند. برای جزئیات بیشتر ، به محدودیت منابع مدیریت انرژی مراجعه کنید.
نادر
اگر اغلب از آن استفاده نشود ، یک برنامه در سطل نادر است. به عنوان مثال ، یک برنامه هتل که کاربر فقط هنگام اقامت در آن هتل اجرا می کند ممکن است در سطل نادر باشد.
اگر یک برنامه در سطل نادر باشد ، این سیستم محدودیت های سختی را در توانایی خود در اجرای شغل و ایجاد زنگ هشدار تحمیل می کند. این سیستم همچنین توانایی برنامه برای اتصال به اینترنت را محدود می کند. برای جزئیات بیشتر ، به محدودیت منابع مدیریت انرژی مراجعه کنید.
محدود شده است
این سطل ، که در Android 12 (API سطح 31) اضافه شده است ، کمترین اولویت و بالاترین محدودیت در تمام سطل ها را دارد. سیستم رفتار برنامه شما را ، مانند چند بار در تعامل با آن ، در نظر می گیرد تا تصمیم بگیرد که آیا برنامه خود را در سطل محدود قرار دهید.
در Android 13 (API سطح 33) و بالاتر ، مگر اینکه برنامه شما واجد شرایط برای معافیت باشد ، سیستم برنامه شما را در شرایط زیر در سطل محدود قرار می دهد:
کاربر برای تعداد مشخصی از روزها با برنامه شما تعامل ندارد. در Android 12 (سطح API 31) و 12L (سطح API 32) ، تعداد روزها 45 است. Android 13 تعداد روزها را به 8 کاهش می دهد.
برنامه شما در طی یک دوره 24 ساعته تعداد بیش از حد پخش یا اتصالات را فراخوانی می کند.
اگر سیستم برنامه شما را در سطل محدود قرار دهد ، محدودیت های زیر اعمال می شود:
- شما می توانید یک بار در روز در یک جلسه 10 دقیقه ای کار کنید . در طول این جلسه ، سیستم مشاغل برنامه شما را با مشاغل سایر برنامه ها گروه بندی می کند.
- مشاغل محدود به خودی خود اداره نمی شوند. حداقل باید یک کار دیگر در همان زمان در حال اجرا یا در انتظار باشد ، که می تواند شامل هر کار دیگری باشد.
- برنامه شما می تواند کمتر مشاغل تسریع شده را انجام دهد ، در مقایسه با زمانی که سیستم برنامه شما را در یک سطل کمتر محدود کننده قرار می دهد.
- برنامه شما می تواند یک هشدار در روز را فراخوانی کند. این زنگ هشدار می تواند یک زنگ دقیق یا زنگ خطر باشد.
معافیت از سطل محدود
انواع برنامه های زیر از ورود به سطل محدود معاف هستند و حتی در Android 12 و بالاتر از ماشه عدم تحرک دور می شوند:
- برنامه های دستگاه همراهی
- برنامه هایی که در حالت نسخه ی نمایشی روی دستگاه اجرا می شوند
- برنامه های مالک دستگاه
- برنامه های صاحب پروفایل
- برنامه های مداوم
- برنامه های VPN
- برنامه هایی که نقش
ROLE_DIALER
دارند - برنامه هایی که کاربر به صراحت برای ارائه عملکرد "نامحدود" در تنظیمات سیستم تعیین کرده است
- برنامه هایی با ابزارک های فعال
- برنامه هایی که حداقل یکی از مجوزهای زیر اعطا می شوند:
سطل اولویت را ارزیابی کنید
برای بررسی اینکه برنامه شما به کدام سطل اختصاص داده شده است ، یکی از موارد زیر را انجام دهید:
با
getAppStandbyBucket()
تماس بگیرید.دستور زیر را در یک پنجره ترمینال اجرا کنید:
adb shell am get-standby-bucket PACKAGE_NAME
این سیستم هر زمان که در یک سطل آماده به کار قرار داده شود ، برنامه شما را تحت فشار قرار می دهد که مقدار آن از STANDBY_BUCKET_ACTIVE
بیشتر است (10).
بهترین شیوه ها
اگر برنامه شما بهترین شیوه های Doze و App را دنبال می کند ، ویژگی های بعدی مدیریت انرژی دشوار نیست. با این حال ، برخی از رفتارهای برنامه ای که قبلاً به خوبی کار کرده بودند ممکن است باعث ایجاد مشکلاتی شود.
- سعی نکنید سیستم را برای قرار دادن برنامه خود در یک سطل خاص دستکاری کنید. روش سیستم برای قرار دادن اولویت می تواند تغییر کند ، و هر تولید کننده دستگاه ممکن است برنامه سطل خود را با الگوریتم خاص خود بنویسد. درعوض ، اطمینان حاصل کنید که برنامه شما بدون توجه به کدام سطل در آن رفتار مناسب دارد.
- اگر یک برنامه فعالیت پرتاب کننده نداشته باشد ، ممکن است هرگز به سطل فعال ارتقا یابد. در نظر بگیرید که برنامه خود را دوباره طراحی کنید تا چنین فعالیتی داشته باشید.
اگر کاربران نتوانند با اعلان های برنامه ارتباط برقرار کنند ، کاربران قادر به تبلیغ برنامه به سطل فعال نیستند. در این حالت ، دوباره طراحی برخی اعلان ها را که به کاربران امکان تعامل را می دهد ، در نظر بگیرید. برای برخی از دستورالعمل ها ، الگوهای طراحی اعلان های طراحی مواد را ببینید.
اگر برنامه در مورد دریافت پیام پیام رسانی ابری Firebase با اولویت بالا (FCM) اعلان را نشان ندهد ، کاربر نمی تواند با برنامه تعامل داشته باشد و در نتیجه آن را به سطل فعال ارتقا دهد. در حقیقت ، تنها استفاده در نظر گرفته شده برای پیام های FCM با اولویت بالا ، فشار آوردن به یک اعلان به کاربر است ، بنابراین این وضعیت نباید رخ دهد. در 12L (API سطح 32) و پایین تر ، اگر به طور نامناسب پیام FCM را به عنوان اولویت بالا مشخص کنید وقتی باعث تعامل کاربر نمی شود ، می تواند باعث شود پیام های آینده محروم شود.
اگر برنامه ها در چندین بسته تقسیم شوند ، این بسته ها ممکن است در سطل های مختلف باشند و سطح دسترسی متفاوتی داشته باشند. این برنامه ها را با بسته های اختصاص داده شده به سطل های مختلف آزمایش کنید تا اطمینان حاصل شود که برنامه به درستی رفتار می کند.