برآورده کردن الزامات سطح میانای برنامه‌سازی کاربردی هدف Google Play

وقتی فایل APK بارگذاری می‌کنید، این فایل باید الزامات سطح میانای برنامه‌سازی کاربردی هدف Google Play را برآورده کند.

از ۳۱ اوت ۲۰۲۶:

  • برنامه‌های جدید و به‌روزرسانی‌های برنامه باید Android 16 (سطح میانای برنامه‌سازی کاربردی ۳۶) یا بالاتر را هدف قرار دهند تا بتوانند به Google Play ارسال شوند؛ به‌جز برنامه‌های Wear OS و «سیستم‌عامل Android Automotive» که باید Android 15 (سطح میانای برنامه‌سازی کاربردی ۳۵) یا بالاتر را هدف قرار دهند، و برنامه‌های Android TV و Android XR که باید Android 14 (سطح میانای برنامه‌سازی کاربردی ۳۴) یا بالاتر را هدف قرار دهند.
  • برنامه‌های موجود باید Android نسخه ۱۵ (سطح میانای برنامه‌سازی کاربردی ۳۵) یا بالاتر را هدف قرار دهند تا برای کاربران جدید در دستگاه‌هایی که سیستم‌عامل Android بالاتر از سطح میانای برنامه‌سازی کاربردی هدف برنامه‌تان دارند دردسترس باقی بمانند. برنامه‌هایی که Android 14 (سطح میانای برنامه‌سازی کاربردی ۳۴) یا پایین‌تر را هدف قرار می‌دهند، ازجمله Android 13 (سطح میانای برنامه‌سازی کاربردی ۳۳) یا پایین‌تر برای Wear OS،‏ Android TV، و Android XR، و Android 12 (سطح میانای برنامه‌سازی کاربردی ۳۱) یا پایین‌تر برای Android Automotive OS، فقط در دستگاه‌هایی که سیستم‌عامل Android آن‌ها همان سطح میانای برنامه‌سازی کاربردی هدف برنامه شما یا پایین‌تر از آن است دردسترس خواهند بود.

اگر برای به‌روزرسانی برنامه‌تان به زمان بیشتری نیاز دارید، می‌توانید درخواست کنید مهلت زمانی تا ۱ نوامبر ۲۰۲۶ تمدید شود. اواخر امسال می‌توانید به فرم‌های تمدید برنامه‌تان در «کنسول Play» دسترسی پیدا کنید.

استثنائات این الزامات عبارتند از:

  • برنامه‌های خصوصی دائمی که به کاربران سازمان خاصی محدود شده‌اند و فقط برای توزیع داخلی درنظر گرفته شده‌اند.

چرا کیت‌های توسعه نرم‌افزار جدیدتر را هدف قرار دهیم؟

هر نسخه جدید Android تغییراتی را معرفی می‌کند که بهبودهایی در امنیت و عملکرد ایجاد می‌کند و تجربه کاربری Android را ارتقا می‌دهد. برخی‌از این تغییرات فقط برای برنامه‌هایی اعمال می‌شود که صراحتاً ازطریق مشخصه مانیفست targetSdkVersion (که به‌عنوان سطح میانای برنامه‌سازی کاربردی هدف نیز شناخته می‌شود) اعلام پشتیبانی می‌کنند.

پیکربندی برنامه برای هدف قرار دادن سطح میانای برنامه‌سازی کاربردی اخیر تضمین می‌کند که کاربران می‌توانند از این بهبودها بهره‌مند شوند، درحالی‌که برنامه شما همچنان می‌تواند در نسخه‌های قدیمی‌تر Android اجرا شود. هدف‌یابی سطح میانای برنامه‌سازی کاربردی اخیر همچنین به برنامه شما امکان می‌دهد از جدیدترین ویژگی‌های پلاتفرم برای جلب رضایت کاربران استفاده کند. علاوه‌براین، از Android 10 (سطح میانای برنامه‌سازی کاربردی ۲۹)، کاربران وقتی برنامه‌ای را برای اولین‌بار راه‌اندازی می‌کنند، اگر برنامه Android 5.1 (سطح میانای برنامه‌سازی کاربردی ۲۲) یا پایین‌تر را هدف قرار دهد، هشداری می‌بینند.

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

انتقال از Android 12 و بالاتر (سطح میانای برنامه‌سازی کاربردی ۳۱) به نسخه‌ای جدیدتر

برای به‌روزرسانی برنامه‌تان به‌منظور هدف‌یابی نسخه جدیدتری از Android، فهرست تغییرات رفتاری مربوطه را دنبال کنید:

انتقال از Android 11 (میانای برنامه‌سازی کاربردی سطح ۳۰) به Android 12 (میانای برنامه‌سازی کاربردی سطح ۳۱)

امنیت و اجازه‌ها

تجربه کاربری

  • اعلان‌های سفارشی: اعلان‌های دارای نماهای محتوای سفارشی دیگر از کل فضای اعلان استفاده نخواهند کرد؛ درعوض، سیستم از الگوی استانداردی استفاده می‌کند. این الگو تضمین می‌کند که اعلان‌های سفارشی در همه حالت‌ها تزیین یکسانی با سایر اعلان‌ها داشته باشند. این رفتار تقریباً مشابه رفتار Notification.DecoratedCustomViewStyle است.
  • تغییرات درستی‌سنجی «پیوندهای برنامه Android»: هنگام استفاده از درستی‌سنجی «پیوند برنامه Android»، مطمئن شوید فیلترهای قصد شما شامل دسته BROWSABLE باشد و از طرح HTTPS پشتیبانی کند.

عملکرد

  • محدودیت‌های راه‌اندازی سرویس پیش‌زمینه‌ای: برای هدف‌یابی Android 12 یا بالاتر، برنامه‌تان نمی‌تواند سرویس‌های پیش‌زمینه‌ای را درحین اجرا در پس‌زمینه راه‌اندازی کند، به‌جز در چند مورد خاص. اگر برنامه‌ای تلاش کند درحین اجرا در پس‌زمینه، سرویس پیش‌زمینه‌ای راه‌اندازی کند، استثنایی رخ می‌دهد (به‌جز چند مورد خاص).

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

  • محدودیت‌های ترامپولین اعلان: وقتی کاربران روی اعلان‌ها تک‌ضرب می‌زنند، برخی‌از برنامه‌ها با راه‌اندازی مؤلفه برنامه‌ای که فعالیت را شروع می‌کند پاسخ می‌دهند که کاربر آن را می‌بیند و با آن تعامل برقرار می‌کند. این مؤلفه برنامه به‌عنوان ترامپولین اعلان شناخته می‌شود.

    برنامه‌ها نباید فعالیت‌ها را از سرویس‌ها یا گیرنده‌های رویداد ثبت‌شده‌ای که به‌عنوان ترامپولین اعلان استفاده می‌شوند شروع کنند. پس‌از اینکه کاربر روی اعلان یا دکمه کنش درون اعلان تک‌ضرب می‌زند، برنامه شما نمی‌تواند startActivity() را در سرویس یا گیرنده رویداد ثبت‌شده فراخوانی کند.

مجموعه کامل تغییراتی را که بر برنامه‌های هدف Android 12 (سطح میانای برنامه‌سازی کاربردی ۳۱) تأثیر می‌گذارد مشاهده کنید.

انتقال از نسخه‌های پایین‌تر از Android 11 (سطح میانای برنامه‌سازی کاربردی ۳۰)

نسخه Android را که می‌خواهید از آن مهاجرت کنید انتخاب کنید:

انتقال به Android 5 (سطح میانای برنامه‌سازی کاربردی ۲۱)

برای اطمینان از اینکه برنامه‌تان تغییرات معرفی‌شده در این نسخه‌های پخش را درنظر گرفته است، به صفحه «تغییرات رفتار» مربوط به هریک از نسخه‌های پخش زیر مراجعه کنید:

با دنبال کردن دستورالعمل‌های بخش بعدی ادامه دهید.

انتقال به Android 6 (سطح میانای برنامه‌سازی کاربردی ۲۳)

ملاحظات زیر برای برنامه‌هایی که Android نسخه ۶.۰ و نسخه‌های بالاتر پلاتفرم را هدف قرار می‌دهند اعمال می‌شود:

  • اجازه‌های زمان اجرا

    • اجازه‌های خطرناک فقط در زمان اجرا اعطا می‌شوند. جریان‌های واسط کاربر شما باید امکان اعطای این اجازه‌ها را فراهم کند.

    • هرجا ممکن بود، مطمئن شوید برنامه‌تان برای رسیدگی به رد درخواست‌های اجازه آماده است. برای مثال، اگر کاربری درخواست دسترسی به GPS دستگاه را رد کرد، مطمئن شوید برنامه‌تان روش دیگری برای ادامه دادن دارد.

برای مشاهده فهرست کامل تغییرات معرفی‌شده در Android نسخه ۶.۰ (سطح میانای برنامه‌سازی کاربردی ۲۳)، به صفحه تغییرات رفتاری برای آن نسخه از پلاتفرم مراجعه کنید.

با دنبال کردن دستورالعمل‌های بخش بعدی ادامه دهید.

انتقال به Android 7 (سطح میانای برنامه‌سازی کاربردی ۲۴)

ملاحظات زیر برای برنامه‌هایی که Android نسخه ۷.۰ و نسخه‌های بالاتر پلاتفرم را هدف قرار می‌دهند اعمال می‌شود:

  • Doze و حالت آماده به‌کار برنامه

    طراحی برای رفتارهای شرح‌داده‌شده در بهینه‌سازی برای «حالت چرت» و «حالت آماده‌به‌کار برنامه»، که شامل تغییرات افزایشی معرفی‌شده در چندین نسخه پلاتفرم است.

    وقتی دستگاه در «حالت چرت زدن» و «حالت آماده‌به‌کار برنامه» باشد، سیستم به‌صورت زیر عمل می‌کند:

    • دسترسی به شبکه را محدود می‌کند
    • زنگ‌های ساعت، همگام‌سازی‌ها، و کارها را به‌تعویق می‌اندازد
    • اسکن‌های GPS و Wi-Fi را محدود می‌کند
    • پیام‌های با اولویت عادی پیام‌رسانی ابریِ Firebase را محدود می‌کند.
  • تغییرات اجازه

    • سیستم دسترسی به دایرکتوری‌های خصوصی برنامه را محدود می‌کند.
    • نمایان کردن file:// URI در خارج از برنامه شما باعث راه‌اندازی FileUriExposedException می‌شود. اگر لازم است فایل‌ها را خارج از برنامه‌تان هم‌رسانی کنید، FileProvider را پیاده‌سازی کنید
  • سیستم پیوند دادن به کتابخانه‌های غیر NDK را ممنوع می‌کند.

برای مشاهده فهرست کامل تغییرات معرفی‌شده در Android 7.0 (سطح API‏ ۲۴)، به صفحه تغییرات رفتاری برای آن نسخه از پلاتفرم مراجعه کنید.

با دنبال کردن دستورالعمل‌های بخش بعدی ادامه دهید.

انتقال به Android 8 (سطح میانای برنامه‌سازی کاربردی ۲۶)

ملاحظات زیر برای برنامه‌هایی که Android 8.0 و نسخه‌های بالاتر پلاتفرم را هدف قرار می‌دهند اعمال می‌شود:

  • محدودیت‌های اجرای پس‌زمینه
    • سیستم سرویس‌های برنامه‌هایی را که در پیش‌زمینه اجرا نمی‌شوند محدود می‌کند.
    • همه‌فرستی‌های غیرصریح
      • همه‌فرستی‌های غیرصریح محدود شده‌اند. برای کسب اطلاعات درباره مدیریت رویدادهای پس‌زمینه، به مستندات مربوط به میانای برنامه‌سازی کاربردی JobScheduler مراجعه کنید.
    • محدودیت‌های مکان پس‌زمینه‌ای
      • برنامه‌هایی که در پس‌زمینه اجرا می‌شوند دسترسی محدودی به داده‌های مکان دارند.
  • کانال‌های اعلان
    • باید ویژگی‌های وقفه اعلان را به‌صورت کانال‌به‌کانال تعریف کنید.
    • برای اینکه اعلان‌ها نشان داده شوند، باید آن‌ها را به کانالی اختصاص دهید.
    • این نسخه از پلاتفرم از NotificationCompat.Builder پشتیبانی می‌کند.
  • حریم خصوصی
    • ANDROID_ID برای هر کلید امضای برنامه محدود شده است.

برای مشاهده فهرست کامل تغییرات معرفی‌شده در Android 8.0 (میانای برنامه‌سازی کاربردی سطح ۲۶)، به صفحه تغییرات رفتاری برای آن نسخه از پلاتفرم مراجعه کنید.

انتقال از Android 8 (میانای برنامه‌سازی کاربردی ۲۶) به Android 9 (میانای برنامه‌سازی کاربردی ۲۸)

برای مشاهده فهرست کامل تغییرات معرفی‌شده در Android 9.0 (سطح میانای برنامه‌سازی کاربردی ۲۸)، به تغییرات رفتاری مراجعه کنید.

انتقال از Android 9 (سطح میانای برنامه‌سازی کاربردی ۲۸) به Android 10 (سطح میانای برنامه‌سازی کاربردی ۲۹)

  • اعلان‌های دارای هدف تمام‌صفحه
    • باید اجازه معمول USE_FULL_SCREEN_INTENT (نه اجازه زمان اجرا) را درخواست کند.
  • پشتیبانی از دستگاه‌های تاشو و دستگاه‌های با صفحه‌نمایش بزرگ
    • اکنون چندین فعالیت می‌توانند به‌طور هم‌زمان در وضعیت «ازسرگرفته‌شده» باشند، اما فقط یکی از آن‌ها واقعاً در کانون توجه است.
      • این تغییر بر رفتار onResume() و onPause() تأثیر می‌گذارد.
      • مفهوم چرخه حیات جدید «بالاترین ازسرگرفته‌شده» که با مشترک شدن در onTopResumedActivityChanged() قابل‌شناسایی است.
        • فقط یک فعالیت می‌تواند «ازسرگرفته‌شده در بالاترین سطح» باشد.
    • وقتی resizeableActivity روی false تنظیم شده باشد، برنامه‌ها می‌توانند علاوه‌براین minAspectRatio را مشخص کنند که به‌طور خودکار برنامه را در نسبت‌های ابعادی باریک‌تر به‌صورت جعبه‌ای نمایش می‌دهد.
  • تغییرات حریم خصوصی

انتقال از Android 10 (میانای برنامه‌سازی کاربردی سطح ۲۹) به Android 11 (میانای برنامه‌سازی کاربردی سطح ۳۰)

برای مشاهده فهرست کامل تغییرات معرفی‌شده در Android 11 (میانای برنامه‌سازی کاربردی سطح ۳۰)، به صفحه تغییرات رفتاری مراجعه کنید.

با دنبال کردن دستورالعمل‌های بخش قبلی، به به‌روزرسانی به API 31 ادامه دهید.

برنامه‌هایتان را مدرن کنید

وقتی سطح میانای برنامه‌سازی کاربردی هدف را برای برنامه‌هایتان به‌روز می‌کنید، ویژگی‌های اخیر پلاتفرم را برای مدرن‌سازی برنامه‌هایتان و جلب رضایت کاربران درنظر بگیرید.

  • برای استفاده بهینه از دوربین، استفاده از CameraX را که در نسخه بتا است درنظر بگیرید.
  • از مؤلفه‌های Jetpack استفاده کنید تا به شما کمک کند روال‌های مطلوب را دنبال کنید، شما را از نوشتن کد متن استاندارد رها کند، و کارهای پیچیده را ساده کند تا بتوانید روی کدی که برایتان مهم است تمرکز کنید.
  • از Kotlin برای نوشتن سریع‌تر برنامه‌های بهتر و با کد کمتر استفاده کنید.
  • مطمئن شوید که الزامات و روال‌های مطلوب حریم خصوصی را رعایت می‌کنید.
  • پشتیبانی از زمینه تیره را به برنامه‌هایتان اضافه کنید.
  • پشتیبانی از پیمایش اشاره‌ای را به برنامه‌هایتان اضافه کنید.
  • برنامه‌تان را از Google Cloud Messaging (GCM) به جدیدترین نسخه Firebase Cloud Messaging انتقال دهید.
  • از مدیریت پیشرفته پنجره بهره ببرید.
    • از نسبت‌های ابعادی بزرگ‌تر (بیشتر از ۱۶:۹) پشتیبانی کنید تا از پیشرفت‌های اخیر در سخت‌افزار بهره ببرید. مطمئن شوید که اندازه برنامه‌تان برای پر کردن فضای صفحه‌نمایش دردسترس تغییر می‌کند. فقط به‌عنوان آخرین راه چاره، حداکثر نسبت ابعادی را اعلام کنید. برای اطلاعات بیشتر درباره حداکثر نسبت ابعادی، به اعلام پشتیبانی محدودشده از صفحه‌نمایش مراجعه کنید.
    • پشتیبانی از چندپنجره‌ای را اضافه کنید تا به برنامه‌تان کمک کنید بهره‌وری را افزایش دهد، و چند نمایشگر را مدیریت کند.
    • اگر تجربه عالی برنامه کوچک‌شده تجربه کاربری را بهبود می‌بخشد، پشتیبانی از تصویردرتصویر را اضافه کنید.

کیت‌های توسعه نرم‌افزار و کتابخانه‌هایتان را بررسی و به‌روز کنید

مطمئن شوید که وابستگی‌های کیت توسعه نرم‌افزار شخص ثالث شما از API 31 پشتیبانی می‌کنند: برخی از ارائه‌دهندگان کیت توسعه نرم‌افزار آن را در مانیفست خود منتشر می‌کنند؛ دیگران نیاز به بررسی بیشتری خواهند داشت. اگر از کیت توسعه نرم‌افزاری استفاده می‌کنید که از API 31 پشتیبانی نمی‌کند، همکاری با ارائه‌دهنده کیت توسعه نرم‌افزار را برای حل مشکل در اولویت قرار دهید.

علاوه‌براین، توجه داشته باشید که targetSdkVersion برنامه یا بازی‌تان ممکن است دسترسی به کتابخانه‌های خصوصی پلاتفرم Android را محدود کند؛ برای جزئیات، به پیوند دادن برنامه‌های NDK به کتابخانه‌های پلاتفرم مراجعه کنید.

همچنین باید هرگونه محدودیتی را که ممکن است در نسخه «کتابخانه پشتیبانی Android» که استفاده می‌کنید وجود داشته باشد درستی‌سنجی کنید. مثل همیشه، باید از سازگاری بین نسخه اصلی «کتابخانه پشتیبانی Android» و compileSdkVersion برنامه‌تان مطمئن شوید.

توصیه می‌کنیم targetSdkVersion را کوچک‌تر یا مساوی با نسخه اصلی «کتابخانه پشتیبانی» انتخاب کنید. توصیه می‌کنیم برای بهره‌مندی از جدیدترین ویژگی‌های سازگاری و رفع اشکال‌ها، به «کتابخانه پشتیبانی» سازگار اخیر به‌روزرسانی کنید.

آزمایش برنامه

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

  • برنامه شما بدون خطا یا هشدار در API 29 کامپایل می‌شود.
  • برنامه شما برای مواردی که کاربر درخواست‌های اجازه را رد می‌کند و از کاربر درخواست اجازه می‌کند، استراتژی داشته باشد. برای انجام این کار:

    • به صفحه «اطلاعات برنامه» بروید و هرکدام از اجازه‌ها را غیرفعال کنید.
    • برنامه را باز کنید و مطمئن شوید ازکار نمی‌افتد.
      • آزمایش‌های مورد استفاده اصلی را انجام دهید و مطمئن شوید اجازه‌های لازم دوباره درخواست می‌شود.
  • Doze را با نتایج موردانتظار و بدون خطا مدیریت می‌کند.

    • بااستفاده از adb، دستگاه آزمایشی‌تان را درحالی‌که برنامه‌تان درحال اجرا است در حالت «چرت زدن» قرار دهید.
      • هر مورد استفاده‌ای را که پیام‌های «پیام‌رسانی ابری Firebase» را راه‌اندازی می‌کند آزمایش کنید.
      • هرگونه مورد استفاده‌ای را که از «هشدارها» یا «کارها» استفاده می‌کند آزمایش کنید.
      • هرگونه وابستگی به سرویس‌های پس‌زمینه‌ای را حذف کنید.
    • تنظیم کردن برنامه در «حالت آماده‌به‌کار برنامه»
      • هر مورد استفاده‌ای را که پیام‌های «پیام‌رسانی ابری Firebase» را راه‌اندازی می‌کند آزمایش کنید.
      • هر مورد استفاده‌ای را که از «هشدارها» استفاده می‌کند آزمایش کنید.
  • عکس‌ها / ویدیوهای جدیدی را که گرفته می‌شود مدیریت می‌کند

    • بررسی کنید که برنامه‌تان همه‌فرستی‌های محدودشده ACTION_NEW_PICTURE و ACTION_NEW_VIDEO را به‌درستی مدیریت می‌کند (یعنی به کارهای JobScheduler منتقل شده‌اند).
    • مطمئن شوید که هر مورد استفاده حیاتی که به این رویدادها وابسته است همچنان کار می‌کند.
  • هم‌رسانی فایل‌ها با برنامه‌های دیگر را مدیریت می‌کند - هر مورد استفاده‌ای را که داده‌های فایل را با هر برنامه دیگری (حتی برنامه دیگری از همان توسعه‌دهنده) هم‌رسانی می‌کند آزمایش کنید

    • آزمایش کنید که محتوا در برنامه دیگر قابل‌مشاهده باشد و باعث ازکارافتادن نشود.

اطلاعات بیشتر

در «کنسول Google Play» با دریافت ایمیل موافقت کنید تا بتوانیم به‌روزرسانی‌ها و اعلامیه‌های مهم Android و Google Play را برایتان ارسال کنیم، ازجمله خبرنامه ماهانه شریک.