وقتی یک APK آپلود میکنید، باید الزامات سطح API هدف گوگل پلی را برآورده کند.
از ۳۱ آگوست ۲۰۲۵:
- برنامههای جدید و بهروزرسانیهای آنها برای ارسال به گوگل پلی باید اندروید ۱۵ (سطح API 35) یا بالاتر را هدف قرار دهند؛ به جز برنامههای Wear OS، Android Automotive OS و Android TV که باید اندروید ۱۴ (سطح API 34) یا بالاتر را هدف قرار دهند.
- برنامههای موجود باید اندروید ۱۴ (سطح API ۳۴) یا بالاتر را هدف قرار دهند تا در دستگاههایی که سیستم عامل اندروید آنها بالاتر از سطح API هدف برنامه شماست، برای کاربران جدید در دسترس باشند. برنامههایی که اندروید ۱۳ (سطح API ۳۳) یا پایینتر را هدف قرار میدهند، از جمله اندروید ۱۲ (سطح API ۳۱) یا پایینتر برای Wear OS و Android TV، فقط در دستگاههایی با سیستم عامل اندروید که مشابه یا پایینتر از سطح API هدف برنامه شما هستند، در دسترس خواهند بود.
اگر برای بهروزرسانی برنامه خود به زمان بیشتری نیاز دارید، میتوانید درخواست تمدید تا ۱ نوامبر ۲۰۲۵ را بدهید. در اواخر امسال میتوانید به فرمهای تمدید برنامه خود در کنسول Play دسترسی داشته باشید.
استثنائات این الزامات عبارتند از:
- برنامههای خصوصی دائمی که محدود به کاربران یک سازمان خاص هستند و فقط برای توزیع داخلی در نظر گرفته شدهاند.
چرا SDK های جدیدتر را هدف قرار دهیم؟
هر نسخه جدید اندروید تغییراتی را معرفی میکند که باعث بهبود امنیت و عملکرد و بهبود تجربه کاربری اندروید میشود. برخی از این تغییرات فقط در مورد برنامههایی اعمال میشود که صریحاً از طریق ویژگی manifest در targetSdkVersion (که به عنوان سطح API هدف نیز شناخته میشود) پشتیبانی خود را اعلام میکنند.
پیکربندی برنامه شما برای هدف قرار دادن یک سطح API جدید تضمین میکند که کاربران میتوانند از این پیشرفتها بهرهمند شوند، در حالی که برنامه شما همچنان میتواند روی نسخههای قدیمیتر اندروید اجرا شود. هدف قرار دادن یک سطح API جدید همچنین به برنامه شما اجازه میدهد تا از جدیدترین ویژگیهای پلتفرم برای لذت بردن کاربران خود استفاده کند. علاوه بر این، از اندروید 10 (سطح API 29)، کاربران هنگام اجرای برنامه برای اولین بار، اگر برنامه اندروید 5.1 (سطح API 22) یا پایینتر را هدف قرار دهد، هشداری مشاهده میکنند.
این سند نکات مهمی را که باید در بهروزرسانی سطح API هدف خود برای برآورده کردن الزامات Google Play بدانید، برجسته میکند. بسته به نسخهای که به آن مهاجرت میکنید، دستورالعملهای بخشهای بعدی را مشاهده کنید.
مهاجرت از اندروید ۱۲ و بالاتر (سطح API ۳۱) به نسخه جدیدتر
برای بهروزرسانی برنامه خود برای نسخههای جدیدتر اندروید، فهرست تغییرات رفتاری مربوطه را دنبال کنید:
- تغییرات رفتاری اندروید ۱۳
- تغییرات رفتاری اندروید ۱۴
- تغییرات رفتاری اندروید ۱۵
- تغییرات رفتاری اندروید ۱۶
مهاجرت از اندروید ۱۱ (سطح API 30) به اندروید ۱۲ (سطح API 31)
امنیت و مجوزها
- بلوتوث : شما باید اعلانهای مربوط به مجوزهای
BLUETOOTHوBLUETOOTH_ADMINرا با مجوزهایBLUETOOTH_SCAN،BLUETOOTH_ADVERTISEیاBLUETOOTH_CONNECTجایگزین کنید. دیگر نیازی به درخواست مجوزLOCATIONدر زمان اجرا برای عملیات بلوتوث ندارید. - موقعیت مکانی: کاربران میتوانند از برنامهها بخواهند که فقط اطلاعات تقریبی موقعیت مکانی را بازیابی کنند. هر زمان که درخواست
ACCESS_FINE_LOCATIONمیکنید، باید مجوزACCESS_COARSE_LOCATIONرا درخواست کنید.- فیلترهای Intent: اگر برنامه شما شامل activityها ، serviceها یا broadcast receiverهایی است که از فیلترهای intent استفاده میکنند، باید صریحاً ویژگی android:exported را برای این کامپوننتها اعلام کنید.
- خواب زمستانی: اگر برنامهها برای مدت زمانی استفاده نشوند، ممکن است در حالت خواب زمستانی قرار گیرند. در حالت خواب زمستانی، مجوزهای زمان اجرا و حافظه پنهان برنامه شما بازنشانی میشوند و نمیتوانید کارها یا هشدارها را اجرا کنید. میتوانید وضعیت خواب زمستانی برنامه خود را بررسی کنید.
- قابلیت تغییرپذیری در انتظار هدف : شما باید قابلیت تغییرپذیری هر شیء PendingIntent را که برنامه شما ایجاد میکند، مشخص کنید.
تجربه کاربری
- اعلانهای سفارشی : اعلانهایی که دارای نمای محتوای سفارشی هستند، دیگر از کل ناحیه اعلان استفاده نمیکنند؛ در عوض، سیستم یک الگوی استاندارد را اعمال میکند. این الگو تضمین میکند که اعلانهای سفارشی در همه حالتها، همان تزئینات سایر اعلانها را داشته باشند. این رفتار تقریباً مشابه رفتار
Notification.DecoratedCustomViewStyleاست. - تغییرات تأیید لینکهای اپلیکیشن اندروید : هنگام استفاده از تأیید لینک اپلیکیشن اندروید، مطمئن شوید که فیلترهای هدف شما شامل دسته BROWSABLE باشند و از طرح HTTPS پشتیبانی کنند.
عملکرد
محدودیتهای راهاندازی سرویس پیشزمینه : برای اندروید ۱۲ یا بالاتر، برنامه شما نمیتواند سرویسهای پیشزمینه را در حین اجرا در پسزمینه شروع کند، به جز چند مورد خاص. اگر برنامهای سعی کند یک سرویس پیشزمینه را در حین اجرا در پسزمینه شروع کند، یک استثنا رخ میدهد (به جز چند مورد خاص).
استفاده از WorkManager را برای زمانبندی و شروع کارهای سریع در حالی که برنامه شما در پسزمینه اجرا میشود، در نظر بگیرید. برای تکمیل اقدامات حساس به زمان که کاربر درخواست میکند، سرویسهای پیشزمینه را در یک زنگ هشدار دقیق شروع کنید.
محدودیتهای ترامپولین اعلان : وقتی کاربران روی اعلانها ضربه میزنند، برخی از برنامهها با راهاندازی یک جزء برنامه که فعالیتی را که کاربر میبیند و با آن تعامل دارد، شروع میکند، پاسخ میدهند. این جزء برنامه به عنوان ترامپولین اعلان شناخته میشود.
برنامهها نباید فعالیتها را از سرویسها یا گیرندههای پخش که به عنوان تابلوهای اعلان استفاده میشوند، شروع کنند. پس از اینکه کاربر روی یک اعلان یا دکمه عمل در اعلان ضربه میزند، برنامه شما نمیتواند
startActivity()در داخل یک سرویس یا گیرنده پخش فراخوانی کند.
مجموعه کامل تغییراتی که بر برنامههای اندروید ۱۲ (سطح API 31) تأثیر میگذارند را مشاهده کنید.
مهاجرت از اندروید پایینتر از ۱۱ (سطح API 30)
نسخه اندروید مورد نظر خود را برای مهاجرت انتخاب کنید:
مهاجرت به اندروید ۵ (سطح API 21)
برای اطمینان از اینکه برنامه شما تغییرات معرفی شده در این نسخهها را در نظر گرفته است، به صفحه تغییرات رفتاری مربوط به هر یک از نسخههای زیر مراجعه کنید:
با دنبال کردن دستورالعملهای بخش بعدی، ادامه دهید.
مهاجرت به اندروید ۶ (سطح API ۲۳)
ملاحظات زیر در مورد برنامههایی که اندروید ۶.۰ و نسخههای بالاتر این پلتفرم را هدف قرار میدهند، اعمال میشود:
مجوزهای خطرناک فقط در زمان اجرا اعطا میشوند. جریانهای رابط کاربری شما باید امکان اعطای این مجوزها را فراهم کنند.
هر جا که ممکن است، مطمئن شوید که برنامه شما برای مدیریت رد درخواستهای مجوز آماده است. به عنوان مثال، اگر کاربری درخواست دسترسی به GPS دستگاه را رد کرد، مطمئن شوید که برنامه شما راه دیگری برای ادامه کار دارد.
برای مشاهده فهرست کاملی از تغییرات معرفی شده در اندروید ۶.۰ (سطح API ۲۳)، به صفحه تغییرات رفتاری (Behavior Changes) برای آن نسخه از پلتفرم مراجعه کنید.
با دنبال کردن دستورالعملهای بخش بعدی، ادامه دهید.
مهاجرت به اندروید ۷ (سطح API 24)
ملاحظات زیر در مورد برنامههایی که اندروید ۷.۰ و نسخههای بالاتر این پلتفرم را هدف قرار میدهند، اعمال میشود:
چرت زدن و آماده به کار برنامه
طراحی برای رفتارهایی که در «بهینهسازی برای Doze و App Standby» شرح داده شده است، که شامل تغییرات تدریجی معرفی شده در چندین نسخه پلتفرم میشود.
وقتی دستگاهی در حالت Doze و App Standby قرار دارد، سیستم به شرح زیر رفتار میکند:
- دسترسی به شبکه را محدود میکند
- هشدارها، همگامسازیها و کارها را به تعویق میاندازد
- اسکنهای GPS و Wi-Fi را محدود میکند
- پیامهای Firebase Cloud Messaging با اولویت عادی را محدود میکند.
تغییرات مجوز
- این سیستم دسترسی به دایرکتوریهای خصوصی برنامه را محدود میکند.
- قرار دادن یک آدرس فایل به نام
file://در خارج از برنامه شما، باعث ایجاد خطایFileUriExposedExceptionمیشود. اگر نیاز دارید فایلها را در خارج از برنامه خود به اشتراک بگذارید،FileProviderپیادهسازی کنید.
این سیستم پیوند دادن به کتابخانههای غیر NDK را ممنوع میکند .
برای مشاهده فهرست کاملی از تغییرات معرفیشده در اندروید ۷.۰ (سطح API ۲۴)، به صفحه تغییرات رفتاری (Behavior Changes) برای آن نسخه از پلتفرم مراجعه کنید.
با دنبال کردن دستورالعملهای بخش بعدی، ادامه دهید.
مهاجرت به اندروید ۸ (سطح API 26)
ملاحظات زیر در مورد برنامههایی که برای اندروید ۸.۰ و نسخههای بالاتر این پلتفرم طراحی شدهاند، اعمال میشود:
- محدودیتهای اجرای پسزمینه
- این سیستم، سرویسهای مربوط به برنامههایی که در پیشزمینه اجرا نمیشوند را محدود میکند.
-
startService()اکنون وقتی برنامهای سعی میکند آن را در حالی کهstartService()ممنوع است، فراخوانی کند، یک استثنا ایجاد میکند. - برای شروع سرویسهای پیشزمینه، یک برنامه باید از
startForeground()وstartForegroundService()استفاده کند. - تغییرات ایجاد شده در API مربوط به JobScheduler را که در صفحه تغییرات رفتاری اندروید ۸.۰ (سطح API ۲۶) مستند شده است، با دقت بررسی کنید.
- پیامرسان ابری فایربیس به نسخه ۱۰.۲.۱ کیت توسعه نرمافزاری (SDK) سرویسهای گوگل پلی یا بالاتر نیاز دارد.
- هنگام استفاده از Firebase Cloud Messaging ، تحویل پیام مشمول محدودیتهای اجرای پسزمینه است. هنگامی که پس از دریافت پیام، کار پسزمینهای لازم است، مانند انجام همگامسازی دادههای پسزمینه، برنامه شما باید کارها را با استفاده از Firebase Job Dispatcher یا JobIntentService زمانبندی کند. برای اطلاعات بیشتر، به مستندات Firebase Cloud Messaging مراجعه کنید.
-
- پخشهای ضمنی
- پخشهای ضمنی محدود شدهاند. برای اطلاعات بیشتر در مورد مدیریت رویدادهای پسزمینه، به مستندات مربوط به API مربوط به
JobSchedulerمراجعه کنید.
- پخشهای ضمنی محدود شدهاند. برای اطلاعات بیشتر در مورد مدیریت رویدادهای پسزمینه، به مستندات مربوط به API مربوط به
- محدودیتهای مکان پسزمینه
- برنامههایی که در پسزمینه اجرا میشوند، دسترسی محدودی به دادههای موقعیت مکانی دارند.
- در دستگاههایی که از سرویسهای گوگل پلی استفاده میکنند، از ارائهدهنده موقعیت مکانی ادغامشده برای دریافت بهروزرسانیهای دورهای موقعیت مکانی استفاده کنید.
- برنامههایی که در پسزمینه اجرا میشوند، دسترسی محدودی به دادههای موقعیت مکانی دارند.
- این سیستم، سرویسهای مربوط به برنامههایی که در پیشزمینه اجرا نمیشوند را محدود میکند.
- کانالهای اعلان
- شما باید ویژگیهای وقفه اعلان را بر اساس هر کانال تعریف کنید.
- برای نمایش اعلانها، باید آنها را به یک کانال اختصاص دهید.
- این نسخه از پلتفرم از
NotificationCompat.Builderپشتیبانی میکند.
- حریم خصوصی
- ANDROID_ID به ازای هر کلید امضای برنامه، محدود شده است.
برای مشاهده فهرست کاملی از تغییرات معرفیشده در اندروید ۸.۰ (سطح API ۲۶)، به صفحه تغییرات رفتاری (Behavior Changes) برای آن نسخه از پلتفرم مراجعه کنید.
مهاجرت از اندروید ۸ (API 26) به اندروید ۹ (API 28)
- مدیریت برق
- بخشهای آماده به کار برنامه، محدودیتهای پسزمینه جدیدی را بر اساس میزان مشارکت برنامه، مانند کارهای معوق، هشدارها و سهمیهبندی پیامهای با اولویت بالا، ایجاد میکنند.
- بهبودهای صرفهجویی در مصرف باتری، محدودیتهای برنامههای در حالت آماده به کار را افزایش میدهد.
- مجوز سرویس پیشزمینه
- نیاز به درخواست مجوز معمولی
FOREGROUND_SERVICE(نه مجوز زمان اجرا)
- نیاز به درخواست مجوز معمولی
- تغییرات حریم خصوصی
- دسترسی محدود به حسگرهای پسزمینه
- دسترسی محدود به گزارشهای تماس، اکنون در گروه مجوز
CALL_LOG - دسترسی محدود به شماره تلفنها، که نیاز به مجوز
READ_CALL_LOGدارد - دسترسی محدود به اطلاعات وایفای
برای فهرست جامعی از تغییرات معرفیشده در اندروید ۹.۰ (سطح API ۲۸)، به تغییرات رفتاری مراجعه کنید.
مهاجرت از اندروید ۹ (سطح API 28) به اندروید ۱۰ (سطح API 29)
- اعلانها با هدف نمایش تمام صفحه
- نیاز به درخواست مجوز عادی
USE_FULL_SCREEN_INTENT(نه مجوز زمان اجرا) دارید.
- نیاز به درخواست مجوز عادی
- پشتیبانی از دستگاههای تاشو و صفحه نمایش بزرگ
- اکنون چندین فعالیت میتوانند همزمان در حالت «از سر گرفته شده» باشند، اما فقط یکی از آنها در واقع تمرکز دارد.
- این تغییر بر رفتار
onResume()وonPause()تأثیر میگذارد. - مفهوم جدید چرخه حیات "بالاترین از سر گرفته شده" که با اشتراک در
onTopResumedActivityChanged()قابل شناسایی است.- فقط یک فعالیت میتواند «از سر گرفته شود».
- این تغییر بر رفتار
- وقتی
resizeableActivityرویfalseتنظیم شده باشد، برنامهها میتوانند علاوه بر این، یکminAspectRatioمشخص کنند که به طور خودکار برنامه را در نسبتهای ابعاد باریکتر، letterbox میکند.
- اکنون چندین فعالیت میتوانند همزمان در حالت «از سر گرفته شده» باشند، اما فقط یکی از آنها در واقع تمرکز دارد.
- تغییرات حریم خصوصی
- ذخیرهسازی محدود
- دسترسی به حافظه خارجی فقط به یک دایرکتوری خاص برنامه و انواع خاصی از رسانههایی که برنامه ایجاد کرده است محدود میشود.
- دسترسی محدود به موقعیت مکانی در حالی که برنامه در پسزمینه است و به مجوز
ACCESS_BACKGROUND_LOCATIONنیاز دارد. - دسترسی محدود به شناسههای غیرقابل تنظیم مجدد مانند IMEI و شماره سریال.
- دسترسی محدود به اطلاعات فعالیت بدنی مانند تعداد گامهای کاربر، که نیاز به مجوز
ACTIVITY_RECOGNITIONدارد. - دسترسی محدود به برخی از APIهای تلفن، بلوتوث و وایفای ، که نیاز به مجوز
ACCESS_FINE_LOCATIONدارد. - دسترسی محدود به تنظیمات وایفای
- برنامهها دیگر نمیتوانند مستقیماً وایفای را فعال یا غیرفعال کنند و باید این کار را با استفاده از پنلهای تنظیمات انجام دهند.
- محدودیتهایی در شروع اتصال به شبکه وایفای، که نیاز به استفاده از
WifiNetworkSpecifierیاWifiNetworkSuggestionدارد.
- ذخیرهسازی محدود
مهاجرت از اندروید ۱۰ (سطح API ۲۹) به اندروید ۱۱ (سطح API ۳۰)
- حریم خصوصی
- اجرای ذخیرهسازی محدود : برنامهها باید مدل ذخیرهسازی محدود را اتخاذ کنند که در آن انواع فایلهای خاص برنامه، رسانه و سایر فایلها با استفاده از مکانهای اختصاصی ذخیره و قابل دسترسی باشند.
- تنظیم مجدد خودکار مجوزها : اگر کاربران برای چند ماه با یک برنامه تعامل نداشته باشند، سیستم مجوزهای حساس برنامه را به طور خودکار تنظیم مجدد میکند. این نباید روی اکثر برنامهها تأثیر بگذارد. اگر برنامه شما در درجه اول در پسزمینه و بدون تعامل کاربر کار میکند، میتوانید از کاربران بخواهید که تنظیم مجدد خودکار را غیرفعال کنند.
- دسترسی به موقعیت مکانی در پسزمینه : برنامهها باید مجوز موقعیت مکانی در پیشزمینه و پسزمینه را بهطور جداگانه درخواست کنند. اعطای دسترسی به مجوز موقعیت مکانی در پسزمینه فقط میتواند در تنظیمات برنامه انجام شود ، نه در پنجرههای مجوز زمان اجرا.
- قابلیت مشاهده بسته : وقتی یک برنامه لیست برنامهها و سرویسهای نصب شده روی دستگاه را جستجو میکند، لیست برگشتی فیلتر میشود.
- اگر از سرویسهای تبدیل متن به گفتار یا تشخیص گفتار استفاده میکنید، باید عناصر کوئری مربوط به سرویسها را به فایل مانیفست اضافه کنید.
- امنیت
- فایلهای فشردهی `resource.arsc` دیگر پشتیبانی نمیشوند.
- اکنون نسخه ۲ طرح امضای APK مورد نیاز است. به دلایل سازگاری با نسخههای قبلی، توسعهدهندگان باید همچنان از طرح امضای APK نسخه ۱ نیز استفاده کنند.
- محدودیت رابط کاربری غیر SDK. استفاده از رابطهای کاربری غیر SDK برای برنامههایی که سطح API 30 را هدف قرار میدهند توصیه نمیشود، زیرا برخی از این رابطهای کاربری غیر SDK اکنون مسدود شدهاند. برای مشاهده لیست جامعی از رابطهای کاربری غیر SDK مسدود شده، به رابطهای کاربری غیر SDK که اکنون در اندروید 11 مسدود شدهاند، مراجعه کنید.
برای مشاهده فهرست کاملی از تغییرات معرفیشده در اندروید ۱۱ (سطح API 30)، به صفحه تغییرات رفتاری مراجعه کنید.
با دنبال کردن دستورالعملهای بخش قبلی، بهروزرسانی به API 31 را ادامه دهید.
برنامههای خود را مدرن کنید
همزمان با بهروزرسانی سطح API هدف برای برنامههایتان، استفاده از ویژگیهای جدید پلتفرم را برای مدرنسازی برنامههایتان و راضی نگهداشتن کاربرانتان در نظر بگیرید.
- برای استفادهی حداکثری از دوربین، استفاده از CameraX که در مرحلهی بتا است را در نظر بگیرید.
- از کامپوننتهای Jetpack استفاده کنید تا به شما در پیروی از بهترین شیوهها کمک کنند، شما را از نوشتن کد تکراری رها کنند و کارهای پیچیده را ساده کنند تا بتوانید روی کدی که برایتان مهم است تمرکز کنید.
- از کاتلین برای نوشتن برنامههای بهتر، سریعتر و با کد کمتر استفاده کنید.
- مطمئن شوید که الزامات حریم خصوصی و بهترین شیوهها را رعایت میکنید.
- پشتیبانی از تم تیره را به برنامههای خود اضافه کنید.
- پشتیبانی از ناوبری حرکتی را به برنامههای خود اضافه کنید.
- برنامه خود را از Google Cloud Messaging (GCM) به آخرین نسخه Firebase Cloud Messaging منتقل کنید .
- از مدیریت پیشرفته پنجرهها بهره ببرید.
- از نسبتهای ابعاد بزرگتر (بیش از 16:9) پشتیبانی کنید تا از پیشرفتهای اخیر سختافزار بهرهمند شوید. مطمئن شوید که برنامه شما برای پر کردن فضای صفحه نمایش موجود، تغییر اندازه میدهد. حداکثر نسبت ابعاد را فقط به عنوان آخرین راه حل اعلام کنید. برای اطلاعات بیشتر در مورد حداکثر نسبت ابعاد، به بخش «اعلام پشتیبانی محدود از صفحه نمایش» مراجعه کنید.
- پشتیبانی از چند پنجره را اضافه کنید تا به برنامه شما کمک کند تا بهرهوری را افزایش دهد و چندین نمایشگر را مدیریت کند.
- اگر یک تجربه عالی از برنامه در حالت مینیمایز، تجربه کاربری را بهبود میبخشد، پشتیبانی از تصویر در تصویر را اضافه کنید.
- برای دستگاههایی که بریدگی نمایشگر دارند، بهینه شده است.
- ارتفاع نوار وضعیت را فرض نکنید. در عوض، از
WindowInsetsوView.OnApplyWindowInsetsListenerاستفاده کنید. برای کسب اطلاعات بیشتر، به ویدیوی droidcon NYC 2017 مراجعه کنید. - فرض نکنید که برنامه کل پنجره را دارد. در عوض، مکان آن را با استفاده از
View.getLocationInWindow()تأیید کنید، نهView.getLocationOnScreen(). * هنگام مدیریتMotionEvent، ازMotionEvent.getX()وMotionEvent.getY()استفاده کنید، نهMotionEvent.getRawX()وMotionEvent.getRawY().
SDKها و کتابخانههای خود را بررسی و بهروزرسانی کنید
مطمئن شوید که وابستگیهای SDK شخص ثالث شما از API 31 پشتیبانی میکنند: برخی از ارائهدهندگان SDK این موضوع را در مانیفست خود منتشر میکنند؛ برخی دیگر نیاز به بررسی بیشتر دارند. اگر از SDK استفاده میکنید که از API 31 پشتیبانی نمیکند، همکاری با ارائهدهنده SDK را برای حل مشکل در اولویت قرار دهید.
علاوه بر این، توجه داشته باشید که targetSdkVersion برنامه یا بازی شما ممکن است دسترسی به کتابخانههای خصوصی پلتفرم اندروید را محدود کند؛ برای جزئیات بیشتر به بخش «پیوند برنامههای NDK به کتابخانههای پلتفرم» مراجعه کنید.
همچنین باید هرگونه محدودیتی را که ممکن است در نسخه کتابخانه پشتیبانی اندروید مورد استفاده شما وجود داشته باشد، بررسی کنید. مانند همیشه، باید از سازگاری بین نسخه اصلی کتابخانه پشتیبانی اندروید و compileSdkVersion برنامه خود اطمینان حاصل کنید.
توصیه میکنیم targetSdkVersion کوچکتر یا مساوی نسخه اصلی کتابخانه پشتیبانی را انتخاب کنید. برای بهرهمندی از جدیدترین ویژگیهای سازگاری و رفع اشکالات، توصیه میکنیم که آن را به یک کتابخانه پشتیبانی سازگار بهروزرسانی کنید.
برنامه خود را آزمایش کنید
پس از اینکه سطح API و ویژگیهای برنامه خود را به طور مناسب بهروزرسانی کردید، باید برخی از موارد استفاده اصلی را آزمایش کنید. پیشنهادات زیر جامع نیستند، اما هدف آنها راهنمایی فرآیند آزمایش شماست. ما آزمایش موارد زیر را پیشنهاد میکنیم:
- اینکه برنامه شما بدون خطا یا هشدار به API 29 کامپایل شود.
اینکه برنامه شما برای مواردی که کاربر درخواستهای مجوز را رد میکند، استراتژی داشته باشد و از کاربر درخواست مجوز کند. برای انجام این کار:
- به صفحه اطلاعات برنامه خود بروید و هر مجوز را غیرفعال کنید.
- برنامه را باز کنید و مطمئن شوید که هیچ مشکلی وجود ندارد.
- تستهای مورد استفاده اصلی را انجام دهید و مطمئن شوید که مجوزهای مورد نیاز دوباره درخواست میشوند.
Doze را با نتایج مورد انتظار و بدون خطا مدیریت میکند.
- با استفاده از adb، دستگاه آزمایشی خود را در حالی که برنامه در حال اجرا است، در حالت Doze قرار دهید.
- هر مورد استفادهای که پیامهای Firebase Cloud Messaging را فعال میکند، آزمایش کنید.
- هر مورد استفادهای که از هشدارها یا کارها استفاده میکند را آزمایش کنید.
- هرگونه وابستگی به سرویسهای پسزمینه را حذف کنید.
- برنامه خود را در حالت آماده به کار برنامه قرار دهید
- هر مورد استفادهای که پیامهای Firebase Cloud Messaging را فعال میکند، آزمایش کنید.
- هر مورد استفادهای که از هشدارها استفاده میکند را آزمایش کنید.
- با استفاده از adb، دستگاه آزمایشی خود را در حالی که برنامه در حال اجرا است، در حالت Doze قرار دهید.
عکسها/فیلمهای جدید گرفته شده را مدیریت میکند
- بررسی کنید که برنامه شما پخشهای محدود
ACTION_NEW_PICTUREوACTION_NEW_VIDEOرا به درستی مدیریت میکند (یعنی به کارهای JobScheduler منتقل شده است). - اطمینان حاصل کنید که هرگونه مورد استفاده حیاتی که به این رویدادها وابسته است، همچنان کار میکند.
- بررسی کنید که برنامه شما پخشهای محدود
مدیریت اشتراکگذاری فایلها با برنامههای دیگر - هر مورد استفادهای را که دادههای فایل را با هر برنامه دیگری (حتی برنامه دیگری از همان توسعهدهنده) به اشتراک میگذارد، آزمایش کنید.
- بررسی کنید که آیا محتوا در برنامهی دیگر قابل مشاهده است و باعث خرابی نمیشود.
اطلاعات بیشتر
در کنسول گوگل پلی، ایمیلهای ما را فعال کنید تا بتوانیم بهروزرسانیها و اطلاعیههای مهم از اندروید و گوگل پلی، از جمله خبرنامه ماهانه شرکایمان را برای شما ارسال کنیم.