وقتی یک APK آپلود میکنید، باید الزامات سطح API هدف Google Play را برآورده کند.
شروع از 31 آگوست 2024:
- برنامهها و بهروزرسانیهای برنامه جدید باید Android 14 (سطح API 34) یا بالاتر را هدف قرار دهند تا به Google Play ارسال شوند. به جز برنامههای Wear OS و Android TV که باید Android 13 (سطح API 33) یا بالاتر را هدف قرار دهند.
- برنامههای موجود باید Android 13 (سطح API 33) یا بالاتر را هدف قرار دهند تا در دستگاههای دارای سیستم عامل Android بالاتر از سطح API هدف برنامه شما در دسترس کاربران جدید باقی بمانند. برنامههایی که Android 12 (سطح API 31) یا پایینتر (Android 10 (سطح API 29) یا پایینتر برای Wear OS و Android 11 (سطح API 30) یا پایینتر برای Android TV را هدف قرار میدهند، فقط در دستگاههای دارای سیستمعامل Android در دسترس خواهند بود. یکسان یا کمتر از سطح API هدف برنامه شما هستند.
اگر به زمان بیشتری برای بهروزرسانی برنامه خود نیاز دارید، میتوانید درخواست تمدید تا 1 نوامبر 2024 کنید. اواخر سال جاری میتوانید به فرمهای برنامه افزودنی در Play Console دسترسی پیدا کنید.
استثناهای این الزامات عبارتند از:
- برنامههای خصوصی دائمی که محدود به کاربران یک سازمان خاص هستند و فقط برای توزیع داخلی در نظر گرفته شدهاند.
- برنامههایی که سیستمعامل Android Automotive را هدف قرار میدهند یا با فایلهای APK بستهبندی شدهاند که سیستمعامل Android Automotive را هدف قرار میدهند.
هر نسخه جدید اندروید تغییراتی را ارائه میکند که امنیت و عملکرد را بهبود میبخشد و تجربه کاربر اندروید را افزایش میدهد. برخی از این تغییرات فقط برای برنامههایی اعمال میشود که صریحاً از طریق مشخصه مانیفست targetSdkVersion
خود (همچنین به عنوان سطح API هدف شناخته میشود) پشتیبانی را اعلام میکنند.
پیکربندی برنامه شما برای هدف قرار دادن سطح API اخیر تضمین می کند که کاربران می توانند از این پیشرفت ها بهره مند شوند، در حالی که برنامه شما همچنان می تواند در نسخه های قدیمی Android اجرا شود. هدف قرار دادن یک سطح API اخیر همچنین به برنامه شما اجازه می دهد تا از آخرین ویژگی های پلتفرم استفاده کند تا کاربران شما را خوشحال کند. علاوه بر این، از اندروید 10 (سطح API 29)، اگر برنامه اندروید 5.1 (سطح API 22) یا پایینتر را هدف قرار دهد، وقتی برای اولین بار یک برنامه را شروع میکنند، یک هشدار مشاهده میکنند .
این سند نکات مهمی را که باید در بهروزرسانی سطح API هدف خود برای برآورده کردن نیاز Google Play بدانید، برجسته میکند. بسته به اینکه به کدام نسخه مهاجرت می کنید، دستورالعمل های بخش های زیر را ببینید.
برای به روز رسانی برنامه خود برای هدف قرار دادن نسخه جدیدتر Android، لیست تغییرات رفتار مربوطه را دنبال کنید:
امنیت و مجوزها
- بلوتوث : باید اعلانهای مجوزهای
BLUETOOTH
وBLUETOOTH_ADMIN
را با مجوزهایBLUETOOTH_SCAN
،BLUETOOTH_ADVERTISE
، یاBLUETOOTH_CONNECT
جایگزین کنید. دیگر نیازی به درخواست مجوز زمان اجراLOCATION
برای عملیات بلوتوث ندارید. - مکان: کاربران می توانند از برنامه ها درخواست کنند که فقط اطلاعات موقعیت مکانی تقریبی را بازیابی کنند. هر زمان که درخواست کردید
ACCESS_FINE_LOCATION
باید مجوزACCESS_COARSE_LOCATION
را درخواست کنید.- فیلترهای هدف: اگر برنامه شما دارای فعالیتها ، سرویسها یا گیرندههای پخشی است که از فیلترهای هدف استفاده میکنند، باید مشخصه android:exported را برای این مؤلفهها به صراحت اعلام کنید.
- Hibernation: اگر برنامهها در مدت زمان معینی از آنها استفاده نشوند، ممکن است در حالت خواب زمستانی قرار بگیرند. در حالت Hibernation، مجوزهای زمان اجرا و حافظه پنهان برنامه شما بازنشانی می شود و نمی توانید کارها یا هشدارها را اجرا کنید. می توانید وضعیت خواب زمستانی برنامه خود را بررسی کنید.
- تغییرپذیری intent در انتظار : باید تغییرپذیری هر شی PendingIntent را که برنامه شما ایجاد میکند مشخص کنید.
تجربه کاربری
- اعلانهای سفارشی : اعلانهایی با نمایش محتوای سفارشی دیگر از منطقه اعلان کامل استفاده نمیکنند. در عوض، سیستم یک الگوی استاندارد را اعمال می کند. این الگو تضمین میکند که اعلانهای سفارشی مانند سایر اعلانها در همه ایالتها تزئین میشوند. این رفتار تقریباً مشابه رفتار
Notification.DecoratedCustomViewStyle
است. - تغییرات تأیید صحت پیوندهای برنامه Android : هنگام استفاده از تأیید صحت پیوند برنامه Android، مطمئن شوید که فیلترهای هدف شما شامل دسته BROWSABLE هستند و از طرح HTTPS پشتیبانی می کنند.
عملکرد
محدودیتهای راهاندازی سرویس پیشزمینه : برای هدف قرار دادن Android 12 یا بالاتر، برنامه شما نمیتواند خدمات پیشزمینه را در حالی که در پسزمینه اجرا میشود راهاندازی کند، به جز چند مورد خاص. اگر برنامه ای سعی کند یک سرویس پیش زمینه را در حالی که در پس زمینه اجرا می شود راه اندازی کند، یک استثنا رخ می دهد (به جز چند مورد خاص).
استفاده از WorkManager را برای زمانبندی و شروع کار سریع در حالی که برنامه شما در پسزمینه اجرا میشود، در نظر بگیرید. برای تکمیل اقدامات حساس به زمان که کاربر درخواست می کند، خدمات پیش زمینه را در یک زنگ دقیق شروع کنید.
محدودیتهای ترامپولین اعلان : وقتی کاربران روی اعلانها ضربه میزنند، برخی از برنامهها با راهاندازی یک مؤلفه برنامه پاسخ میدهند که فعالیتی را که کاربر میبیند و با آن تعامل دارد، شروع میکند. این جزء برنامه به عنوان یک ترامپولین اعلان شناخته می شود.
برنامهها نباید فعالیتها را از سرویسها یا گیرندههای پخشی که به عنوان ترامپولین اعلان استفاده میشوند شروع کنند. پس از ضربه زدن کاربر بر روی دکمه اعلان یا اقدام در اعلان، برنامه شما نمی تواند
startActivity()
در داخل یک سرویس یا گیرنده پخش فراخوانی کند.
مجموعه کامل تغییراتی را که بر برنامههای هدفمند Android 12 تأثیر میگذارد (سطح API 31) مشاهده کنید.
نسخه اندرویدی که از آن مهاجرت خواهید کرد را انتخاب کنید:
همانطور که سطح API هدف را برای برنامههای خود بهروزرسانی میکنید، ویژگیهای پلتفرم اخیر را برای مدرن کردن برنامهها و خوشحال کردن کاربران خود در نظر بگیرید.
- برای استفاده حداکثری از دوربین، از CameraX که در نسخه بتا است استفاده کنید.
- از اجزای Jetpack استفاده کنید تا به شما کمک کند بهترین شیوه ها را دنبال کنید، شما را از نوشتن کد دیگ بخار رها کنید، و کارهای پیچیده را ساده کنید تا بتوانید روی کدی که به آن اهمیت می دهید تمرکز کنید.
- از Kotlin برای نوشتن برنامه های بهتر سریعتر و با کد کمتر استفاده کنید.
- اطمینان حاصل کنید که الزامات حفظ حریم خصوصی و بهترین شیوه ها را دنبال می کنید.
- پشتیبانی از تم تیره را به برنامه های خود اضافه کنید.
- پشتیبانی از پیمایش حرکتی را به برنامه های خود اضافه کنید.
- برنامه خود را از Google Cloud Messaging (GCM) به آخرین نسخه Firebase Cloud Messaging منتقل کنید .
- از مدیریت پیشرفته پنجره بهره ببرید.
- از نسبت های بزرگتر (بیش از 16:9) پشتیبانی کنید تا از پیشرفت های اخیر در سخت افزار استفاده کنید. اطمینان حاصل کنید که اندازه برنامه شما برای پر کردن فضای صفحه نمایش موجود تغییر می کند. فقط حداکثر نسبت تصویر را به عنوان آخرین راه حل اعلام کنید. برای اطلاعات بیشتر درباره حداکثر نسبت ابعاد، به اعلام پشتیبانی محدود از صفحه مراجعه کنید.
- برای کمک به افزایش بهره وری برنامه خود و مدیریت نمایشگرهای متعدد ، پشتیبانی چند پنجره ای را اضافه کنید.
- اگر یک تجربه کوچک برنامه عالی باعث بهبود تجربه کاربر میشود، پشتیبانی از Picture-in-Picture را اضافه کنید.
- بهینه سازی برای دستگاه های دارای بریدگی نمایشگر.
- ارتفاع نوار وضعیت را فرض نکنید. در عوض، از
WindowInsets
وView.OnApplyWindowInsetsListener
استفاده کنید. برای کسب اطلاعات بیشتر، ویدیوی droidcon NYC 2017 را ببینید. برای توضیح - تصور نکنید که برنامه کل پنجره را دارد. در عوض، مکان آن را با استفاده از
View.getLocationInWindow()
و نهView.getLocationOnScreen()
تایید کنید. * هنگام مدیریتMotionEvent
، ازMotionEvent.getX()
وMotionEvent.getY()
استفاده کنید، نهMotionEvent.getRawX()
،MotionEvent.getRawY()
.
مطمئن شوید که وابستگیهای SDK شخص ثالث شما از API 31 پشتیبانی میکنند: برخی از ارائهدهندگان SDK آن را در مانیفست خود منتشر میکنند. بقیه به بررسی بیشتر نیاز دارند. اگر از SDK استفاده میکنید که از API 31 پشتیبانی نمیکند، برای حل مشکل، کار با ارائهدهنده SDK را در اولویت قرار دهید.
علاوه بر این، توجه داشته باشید که برنامه یا بازی شما targetSdkVersion
ممکن است دسترسی به کتابخانه های پلتفرم خصوصی اندروید را محدود کند. برای جزئیات بیشتر ، پیوند برنامههای NDK به کتابخانههای پلتفرم را ببینید.
همچنین باید هرگونه محدودیتی را که ممکن است در نسخه کتابخانه پشتیبانی Android که استفاده میکنید وجود داشته باشد تأیید کنید. مثل همیشه، باید از سازگاری بین نسخه اصلی کتابخانه پشتیبانی Android و compileSdkVersion
برنامه خود اطمینان حاصل کنید.
توصیه می کنیم یک targetSdkVersion
کوچکتر یا مساوی با نسخه اصلی کتابخانه پشتیبانی انتخاب کنید. ما شما را تشویق میکنیم که بهمنظور استفاده از آخرین ویژگیهای سازگاری و رفع اشکالها، به کتابخانه پشتیبانی سازگار اخیر بهروزرسانی کنید.
پس از بهروزرسانی سطح و ویژگیهای API برنامهتان، باید برخی موارد استفاده اصلی را آزمایش کنید. پیشنهادات زیر جامع نیستند، اما هدفشان هدایت فرآیند تست شماست. ما آزمایش را پیشنهاد می کنیم:
- که برنامه شما بدون خطا یا اخطار در API 29 کامپایل می شود.
اینکه برنامه شما برای مواردی که کاربر درخواستهای مجوز را رد میکند و از کاربر درخواست مجوز میکند، استراتژی دارد. برای انجام این کار:
- به صفحه اطلاعات برنامه برنامه خود بروید و هر مجوز را غیرفعال کنید.
- برنامه را باز کنید و مطمئن شوید که هیچ خرابی ندارد.
- آزمایشهای مورد استفاده اصلی را انجام دهید و اطمینان حاصل کنید که مجوزهای مورد نیاز مجدداً درخواست میشوند.
Doze را با نتایج مورد انتظار و بدون خطا کنترل می کند.
- با استفاده از adb، دستگاه آزمایشی خود را در حین اجرای برنامه در Doze قرار دهید.
- موارد استفاده که باعث ایجاد پیامهای Firebase Cloud Messaging میشوند را آزمایش کنید.
- موارد استفاده که از هشدارها یا مشاغل استفاده می کنند را آزمایش کنید.
- هرگونه وابستگی به خدمات پس زمینه را حذف کنید.
- برنامه خود را در حالت App Standby قرار دهید
- موارد استفاده که باعث ایجاد پیامهای Firebase Cloud Messaging میشوند را آزمایش کنید.
- موارد استفاده ای که از هشدارها استفاده می کنند را آزمایش کنید.
- با استفاده از adb، دستگاه آزمایشی خود را در حین اجرای برنامه در Doze قرار دهید.
عکسها/فیلمهای جدید در حال گرفتن را کنترل میکند
- بررسی کنید که برنامه شما پخشهای محدود شده
ACTION_NEW_PICTURE
وACTION_NEW_VIDEO
را به درستی انجام دهد (یعنی به کارهای JobScheduler منتقل شده است). - اطمینان حاصل کنید که هر مورد استفاده حیاتی که به این رویدادها بستگی دارد همچنان کار می کند.
- بررسی کنید که برنامه شما پخشهای محدود شده
به اشتراک گذاری فایل ها با برنامه های دیگر را مدیریت می کند - هر موردی را که داده های فایل را با هر برنامه دیگری به اشتراک می گذارد (حتی برنامه دیگری توسط همان توسعه دهنده) آزمایش کنید.
- آزمایش کنید محتوا در برنامه دیگر قابل مشاهده است و باعث خرابی نمی شود.
ایمیلهای موجود در کنسول Google Play را انتخاب کنید تا بتوانیم بهروزرسانیها و اعلانهای مهم را از Android و Google Play، از جمله خبرنامه شریک ماهانهمان، برای شما ارسال کنیم.