<uses-sdk>

‫Google Play از ویژگی‌های <uses-sdk> اعلام‌شده در مانیفست برنامه‌تان استفاده می‌کند تا برنامه‌تان را از دستگاه‌هایی که الزامات نسخه پلاتفرم آن را برآورده نمی‌کنند فیلتر کند. قبل‌از تنظیم این مشخصه‌ها، مطمئن شوید که فیلترهای Google Play را درک می‌کنید.

نحو:
<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />
موجود در:
<manifest>
description:

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

باوجود نامی که دارد، از این عنصر برای مشخص کردن سطح میانای برنامه‌سازی کاربردی استفاده می‌شود، نه شماره نسخه کیت توسعه نرم‌افزار (SDK) یا پلاتفرم Android. سطح API همیشه یک عدد صحیح است. نمی‌توانید سطح میانای برنامه‌سازی کاربردی را از شماره نسخه Android مرتبط با آن استخراج کنید. برای مثال، این عدد با نسخه عمده یا مجموع نسخه‌های عمده و جزئی یکسان نیست.

نمی‌توان مشخص کرد که برنامه نسخه جزئی کیت توسعه نرم‌افزار را هدف قرار می‌دهد یا به آن نیاز دارد.

همچنین سند مربوط به نسخه‌بندی برنامه‌ها را بخوانید.

مشخصه‌ها:
android:minSdkVersion
عددی صحیح که حداقل سطح میانای برنامه‌سازی کاربردی موردنیاز برای اجرای برنامه را تعیین می‌کند. اگر سطح میانای برنامه‌سازی کاربردی سیستم از مقدار مشخص‌شده در این مشخصه پایین‌تر باشد، سیستم Android مانع نصب برنامه توسط کاربر می‌شود. همیشه این مشخصه را اعلام کنید.

احتیاط: اگر این مشخصه را اعلام نکنید، سیستم مقدار پیش‌فرض «۱» را درنظر می‌گیرد که نشان می‌دهد برنامه شما با همه نسخه‌های Android سازگار است. اگر نباشد و minSdkVersion مناسب را اعلام نکرده باشید، هنگام نصب در سیستمی با سطح API ناسازگار، برنامه درطول زمان اجرا هنگام تلاش برای دسترسی به APIهای غیرقابل‌دسترس از کار می‌افتد. به همین دلیل، حتماً سطح میانای برنامه‌سازی کاربردی مناسب را در مشخصه minSdkVersion اعلام کنید.

android:targetSdkVersion
عدد صحیحی که سطح میانای برنامه‌سازی کاربردی هدف برنامه را تعیین می‌کند. اگر تنظیم نشده باشد، مقدار پیش‌فرض برابر با مقدار داده‌شده به minSdkVersion است.

این مشخصه به سیستم اطلاع می‌دهد که شما درمقابل نسخه هدف آزمایش کرده‌اید و سیستم هیچ رفتار سازگاری را برای حفظ سازگاری روبه‌جلوی برنامه شما با نسخه هدف فعال نمی‌کند. برنامه همچنان می‌تواند در نسخه‌های پایین‌تر (تا minSdkVersion) اجرا شود.

با تکامل Android در هر نسخه جدید، ممکن است برخی‌از رفتارها و حتی ظاهر آن تغییر کند. بااین‌حال، اگر سطح میانای برنامه‌سازی کاربردی پلاتفرم بالاتر از نسخه‌ای باشد که توسط targetSdkVersion برنامه‌تان اعلام شده است، سیستم می‌تواند رفتارهای سازگاری را فعال کند تا برنامه‌تان همچنان به همان روشی که انتظار دارید کار کند. می‌توانید این رفتارهای سازگاری را با مشخص کردن targetSdkVersion برای مطابقت با سطح API پلاتفرمی که در آن اجرا می‌شود غیرفعال کنید.

برای مثال، تنظیم این مقدار روی «۱۱» یا بالاتر به سیستم اجازه می‌دهد تا درصورت اجرا در Android نسخه ۳.۰ یا بالاتر، طرح زمینه پیش‌فرض Holo را روی برنامه‌تان اعمال کند و همچنین حالت سازگاری صفحه‌نمایش را درصورت اجرا در صفحه‌نمایش‌های بزرگ‌تر غیرفعال می‌کند، زیرا پشتیبانی از سطح میانای برنامه‌سازی کاربردی ۱۱ به‌طور ضمنی از صفحه‌نمایش‌های بزرگ‌تر پشتیبانی می‌کند.

رفتارهای سازگاری زیادی وجود دارد که سیستم می‌تواند براساس مقداری که برای این مشخصه تنظیم می‌کنید فعال کند. چند مورد از این رفتارها در نسخه‌های پلاتفرم مربوطه در مرجع Build.VERSION_CODES شرح داده شده است.

برای حفظ برنامه‌تان همراه با هر نسخه Android، مقدار این مشخصه را افزایش دهید تا با جدیدترین سطح API مطابقت داشته باشد، سپس برنامه‌تان را به‌طور کامل در نسخه پلاتفرم مربوطه آزمایش کنید.

معرفی‌شده در: سطح ای‌پی‌آی ۴

android:maxSdkVersion
عدد صحیحی که حداکثر سطح میانای برنامه‌سازی کاربردی را که برنامه برای اجرا روی آن طراحی شده است مشخص می‌کند.

در Android 1.5،‏ 1.6،‏ 2.0، و 2.0.1، سیستم هنگام نصب برنامه و هنگام اعتبارسنجی مجدد برنامه پس‌از به‌روزرسانی سیستم، مقدار این مشخصه را بررسی می‌کند. در هر دو مورد، اگر مشخصه maxSdkVersion برنامه از سطح میانای برنامه‌سازی کاربردی مورداستفاده خود سیستم پایین‌تر باشد، سیستم اجازه نصب برنامه را نمی‌دهد. درصورت اعتبارسنجی مجدد پس‌از به‌روزرسانی سیستم، این کار به‌طور مؤثر برنامه شما را از دستگاه برمی‌دارد.

برای نشان دادن اینکه این مشخصه چگونه می‌تواند بر برنامه شما پس‌از به‌روزرسانی‌های سیستم تأثیر بگذارد، مثال زیر را درنظر بگیرید:

برنامه‌ای که maxSdkVersion="5" را در مانیفست خود اعلام می‌کند در Google Play منتشر شده است. کاربری که دستگاهش از Android نسخه ۱.۶ (سطح میانای برنامه‌سازی کاربردی ۴) استفاده می‌کند، برنامه را بارگیری و نصب می‌کند. پس‌از چند هفته، کاربر به‌روزرسانی سیستم بی‌سیم به Android نسخه ۲.۰ (سطح میانای برنامه‌سازی کاربردی ۵) را دریافت می‌کند. پس‌از نصب به‌روزرسانی، سیستم maxSdkVersion برنامه را بررسی می‌کند و آن را باموفقیت دوباره اعتبارسنجی می‌کند.

برنامه به‌طور عادی کار می‌کند. بااین‌حال، مدتی بعد، دستگاه به‌روزرسانی سیستم دیگری دریافت می‌کند، این بار به Android 2.0.1 (سطح API 6). پس‌از به‌روزرسانی، سیستم دیگر نمی‌تواند برنامه را دوباره اعتبارسنجی کند زیرا سطح میانای برنامه‌سازی کاربردی خود سیستم (۶) اکنون بالاتر از حداکثر سطح پشتیبانی‌شده توسط برنامه (۵) است. سیستم مانع از دیده شدن برنامه توسط کاربر می‌شود و درواقع آن را از دستگاه برمی‌دارد.

هشدار: توصیه نمی‌کنیم این مشخصه را اعلام کنید. اول اینکه نیازی نیست این مشخصه را به‌عنوان ابزاری برای مسدود کردن استقرار برنامه‌تان در نسخه‌های جدید پلاتفرم Android (به‌محض انتشار) تنظیم کنید. طبق طراحی، نسخه‌های جدید پلاتفرم کاملاً با نسخه‌های قدیمی سازگار هستند. برنامه‌تان در نسخه‌های جدید به‌درستی کار می‌کند، به‌شرطی که فقط از میاناهای برنامه‌سازی کاربردی استاندارد استفاده کند و از روال‌های مطلوب توسعه پیروی کند. دوم، در برخی موارد، اعلام این مشخصه می‌تواند منجر به حذف برنامه شما از دستگاه‌های کاربران پس‌از به‌روزرسانی سیستم به سطح API بالاتر شود. اکثر دستگاه‌هایی که احتمالاً برنامه شما در آن‌ها نصب می‌شود، به‌روزرسانی‌های دوره‌ای سیستم را به‌صورت بی‌سیم دریافت می‌کنند، بنابراین قبل‌از تنظیم این ویژگی، تأثیر آن‌ها را بر برنامه خود درنظر بگیرید.

معرفی‌شده در: سطح ای‌پی‌آی ۴

برخی‌از نسخه‌های Android (بالاتر از Android 2.0.1) مشخصه maxSdkVersion را درطول نصب یا اعتبارسنجی مجدد بررسی یا اعمال نمی‌کنند. بااین‌حال، Google Play همچنان از این مشخصه به‌عنوان فیلتر هنگام ارائه برنامه‌های دردسترس برای بارگیری به کاربران استفاده می‌کند.
معرفی‌شده در:
سطح ای‌پی‌آی ۱

سطح میانای برنامه‌سازی کاربردی چیست؟

سطح API مقدار عدد صحیحی است که بازبینی چارچوب API ارائه‌شده توسط نسخه‌ای از پلاتفرم Android را به‌طور منحصربه‌فرد شناسایی می‌کند.

پلاتفرم Android میانای برنامه‌سازی کاربردی چارچوبی ارائه می‌دهد که برنامه‌ها می‌توانند از آن برای تعامل با سیستم Android زیربنایی استفاده کنند. میانای برنامه‌سازی کاربردی چارچوب شامل موارد زیر است:

  • مجموعه اصلی بسته‌ها و کلاس‌ها
  • مجموعه‌ای از عناصر و مشخصه‌های XML برای اعلام فایل مانیفست
  • مجموعه‌ای از عناصر و مشخصه‌های XML برای اعلام و دسترسی به منابع
  • مجموعه‌ای از هدف‌ها
  • مجموعه‌ای از اجازه‌ها که برنامه‌ها می‌توانند درخواست کنند، و همچنین اجبار به اعطای اجازه که در سیستم گنجانده شده است

هر نسخه بعدی پلاتفرم Android می‌تواند شامل به‌روزرسانی‌هایی برای میانای برنامه‌سازی کاربردی چارچوب برنامه Android باشد که ارائه می‌دهد.

به‌روزرسانی‌های میانای برنامه‌سازی کاربردی چارچوب به‌گونه‌ای طراحی شده‌اند که میانای برنامه‌سازی کاربردی جدید با نسخه‌های قبلی میانای برنامه‌سازی کاربردی سازگار باقی بماند. یعنی اکثر تغییرات در API افزایشی هستند و عملکرد جدید یا جایگزین معرفی می‌کنند. با ارتقا یافتن بخش‌هایی از میانای برنامه‌سازی کاربردی، بخش‌های قدیمی‌تر جایگزین‌شده منسوخ می‌شوند اما برداشته نمی‌شوند تا برنامه‌های موجود همچنان بتوانند از آن‌ها استفاده کنند.

در موارد بسیار معدودی، بخش‌هایی از میانای برنامه‌سازی کاربردی اصلاح یا حذف می‌شود، هرچند معمولاً چنین تغییراتی فقط برای پشتیبانی از استحکام میانای برنامه‌سازی کاربردی و امنیت برنامه یا سیستم لازم است. همه بخش‌های دیگر API از بازبینی‌های قبلی بدون تغییر منتقل می‌شوند.

میانای برنامه‌سازی کاربردی چارچوبی که پلاتفرم Android ارائه می‌دهد بااستفاده از شناسه عدد صحیحی به‌نام سطح میانای برنامه‌سازی کاربردی مشخص می‌شود. هر نسخه پلاتفرم Android دقیقاً از یک سطح میانای برنامه‌سازی کاربردی پشتیبانی می‌کند، هرچند پشتیبانی از همه سطوح میانای برنامه‌سازی کاربردی قبلی (تا سطح میانای برنامه‌سازی کاربردی ۱) به‌طور ضمنی وجود دارد. اولین نسخه پخش پلاتفرم Android سطح میانای برنامه‌سازی کاربردی ۱ را ارائه کرد و نسخه‌های پخش بعدی سطح میانای برنامه‌سازی کاربردی را افزایش داده‌اند. رابط‌های برنامه‌سازی کاربردی که در کیت‌های توسعه نرم‌افزار پیش‌نمایش پیش‌انتشار معرفی یا منسوخ شده‌اند و به پایداری پلتفرم نرسیده‌اند، به‌جای شماره سطح رابط برنامه‌سازی کاربردی، با عنوان «رابط برنامه‌سازی کاربردی درحال توسعه» علامت‌گذاری می‌شوند.

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

نسخه پلتفورمسطح APIVERSION_CODEیادداشت‌ها
Android 17 37 CINNAMON_BUN برگزیده‌های پلاتفرم
Android 16 36 BAKLAVA برگزیده‌های پلاتفرم
Android 15 35 VANILLA_ICE_CREAM برگزیده‌های پلاتفرم
Android 14 34 UPSIDE_DOWN_CAKE برگزیده‌های پلاتفرم
Android 13 33 TIRAMISU برگزیده‌های پلاتفرم
Android 12 32 S_V2 برگزیده‌های پلاتفرم
31 S برگزیده‌های پلاتفرم
Android 11 30 R برگزیده‌های پلاتفرم
Android 10 29 Q برگزیده‌های پلاتفرم
Android 9 28 P برگزیده‌های پلاتفرم
Android 8.1 27 O_MR1 برگزیده‌های پلاتفرم
Android 8.0 26 O برگزیده‌های پلاتفرم
Android 7.1.1
Android 7.1
25 N_MR1 برگزیده‌های پلاتفرم
Android 7.0 24 N برگزیده‌های پلاتفرم
Android 6.0 23 M برگزیده‌های پلاتفرم
Android 5.1 22 LOLLIPOP_MR1 نکات برجسته پلاتفرم
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat فقط برای فناوری‌های پوشیدنی
Android 4.4 19 KITKAT نکات برجسته پلاتفرم
Android 4.3 18 JELLY_BEAN_MR2 نکات برجسته پلاتفرم
Android 4.2،‏ 4.2.2 17 JELLY_BEAN_MR1 نکات برجسته پلاتفرم
Android 4.1, 4.1.1 16 JELLY_BEAN نکات برجسته پلاتفرم
Android 4.0.3،‏ 4.0.4 15 ICE_CREAM_SANDWICH_MR1 نکات برجسته پلاتفرم
Android 4.0،‏ 4.0.1،‏ 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 برگزیده‌های پلاتفرم
Android 3.0.x 11 HONEYCOMB برگزیده‌های پلاتفرم
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1 نکات برجسته پلاتفرم
Android 2.3.2
Android 2.3.1
Android 2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO برگزیده‌های پلاتفرم
Android 2.1.x 7 ECLAIR_MR1 نکات برجسته پلاتفرم
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT برگزیده‌های پلاتفرم
Android 1.5 3 CUPCAKE برگزیده‌های پلاتفرم
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

میاناهای برنامه‌سازی کاربردی درحال توسعه

در سند مرجع Android API، میاناهای برنامه‌سازی کاربردی اضافه‌شده یا منسوخ‌شده در کیت توسعه نرم‌افزار پیش‌انتشار به‌جای شماره سطح میانای برنامه‌سازی کاربردی با «میانای برنامه‌سازی کاربردی درحال توسعه» علامت‌گذاری می‌شوند. این برچسب هم برای اعلان‌های «افزوده‌شده در» و هم برای اعلان‌های «منسوخ‌شده در» اعمال می‌شود تا زمانی که کیت توسعه نرم‌افزار به پایداری پلاتفرم برسد و سطح نهایی میانای برنامه‌سازی کاربردی اصلی یا فرعی را دریافت کند. میاناهای برنامه‌سازی کاربردی درحال توسعه دارای ویژگی‌های زیر هستند:

  • وضعیت پیش‌نمایش پیش‌انتشار: افزودن یا منسوخ شدن میانای برنامه‌سازی کاربردی بخشی از انتشار کیت توسعه نرم‌افزار پیش‌نمایش بتا یا Canary فعال قبل‌از نهایی‌سازی سطح میانای برنامه‌سازی کاربردی است.
  • بدون تضمین پایداری: برخلاف میاناهای برنامه‌سازی کاربردی منتشرشده (که سطح میانای برنامه‌سازی کاربردی دائمی دارند و با نسخه‌های پخش آتی سازگار با نسخه قدیمی هستند)، میاناهای برنامه‌سازی کاربردی درحال توسعه ممکن است امضاها را تغییر دهند، نامشان تغییر کند، یا به‌طور کامل بین نسخه‌های پخش کیت توسعه نرم‌افزار پیش‌نمایش برداشته شوند.

بررسی میاناهای برنامه‌سازی کاربردی درحال توسعه در زمان اجرا (PREVIEW_SDK_INT)

چون میاناهای برنامه‌سازی کاربردی درحال توسعه ممکن است بین نسخه‌های پیش‌نمایش تغییر کنند یا ناپدید شوند، هرگز از بررسی بزرگ‌تر یا مساوی (>=) برای محافظت از فراخوانی‌های میاناهای برنامه‌سازی کاربردی منتشرنشده استفاده نکنید. ممکن است API موجود در پیش‌نمایش ۱ در پیش‌نمایش ۲ اصلاح یا حذف شود.

درعوض، برنامه‌هایی که ویژگی‌های پیش‌نمایش را آزمایش می‌کنند باید مقدار Build.VERSION.PREVIEW_SDK_INT را برای برابری دقیق (==) با نسخه پیش‌نمایش دقیقی که برنامه با آن کامپایل شده است بررسی کنند:

  • در ساخت‌ها و نسخه‌های پخش نهایی و تولید، Build.VERSION.PREVIEW_SDK_INT همیشه 0 است.
  • در نسخه‌های پیش‌نمایش، PREVIEW_SDK_INT برای هر نسخه پخش منحصربه‌فرد است.

موارد استفاده از سطح میانای برنامه‌سازی کاربردی در Android

شناسه سطح API نقش کلیدی در کمک به تضمین بهترین تجربه ممکن برای کاربران و توسعه‌دهندگان برنامه دارد:

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

هر نسخه پلاتفرم Android شناسه سطح میانای برنامه‌سازی کاربردی خود را به‌طور داخلی در خود سیستم Android ذخیره می‌کند.

برنامه‌ها می‌توانند از عنصر مانیفست ارائه‌شده توسط چارچوب API (‏<uses-sdk>) برای توصیف حداقل و حداکثر سطوح API که تحت آن قادر به اجرا هستند و همچنین سطح API ترجیحی که برای پشتیبانی از آن طراحی شده‌اند استفاده کنند. این عنصر سه مشخصه کلیدی دارد:

  • android:minSdkVersion: حداقل سطح میانای برنامه‌سازی کاربردی که برنامه می‌تواند روی آن اجرا شود. مقدار پیش‌فرض «۱» است.
  • android:targetSdkVersion: سطح میانای برنامه‌سازی کاربردی که برنامه برای اجرا روی آن طراحی شده است. در برخی موارد، این کار به برنامه اجازه می‌دهد از عناصر مانیفست یا رفتارهای تعریف‌شده در سطح میانای برنامه‌سازی کاربردی هدف استفاده کند، به‌جای اینکه محدود به استفاده از موارد تعریف‌شده برای حداقل سطح میانای برنامه‌سازی کاربردی باشد.
  • android:maxSdkVersion: حداکثر سطح میانای برنامه‌سازی کاربردی که برنامه می‌تواند در آن اجرا شود. مهم: پیش‌از استفاده از این مشخصه، اطلاعات مربوط به آن را در این صفحه بخوانید.

برای مثال، برای مشخص کردن حداقل سطح میانای برنامه‌سازی کاربردی سیستم که برنامه برای اجرا نیاز دارد، برنامه در مانیفست خود عنصر <uses-sdk> با مشخصه android:minSdkVersion را اضافه می‌کند. مقدار android:minSdkVersion عدد صحیحی است که با سطح میانای برنامه‌سازی کاربردی قدیمی‌ترین نسخه پلاتفرم Android که برنامه می‌تواند تحت آن اجرا شود مطابقت دارد.

وقتی کاربر تلاش می‌کند برنامه‌ای را نصب کند، یا وقتی برنامه‌ای پس‌از به‌روزرسانی سیستم دوباره اعتبارسنجی می‌شود، سیستم Android ابتدا مشخصه‌های <uses-sdk> را در مانیفست برنامه بررسی می‌کند و مقادیر را با سطح API داخلی خود مقایسه می‌کند. سیستم فقط درصورت برآورده شدن این شرایط اجازه می‌دهد نصب شروع شود:

  • اگر مشخصه android:minSdkVersion اعلام شده باشد، مقدار آن کمتر یا مساوی عدد صحیح سطح میانای برنامه‌سازی کاربردی سیستم است. اگر اعلام نشود، سیستم فرض می‌کند که برنامه به سطح میانای برنامه‌سازی کاربردی ۱ نیاز دارد.
  • اگر مشخصه android:maxSdkVersion اعلام شده باشد، مقدار آن برابر یا بیشتر از عدد صحیح سطح API سیستم است. اگر اعلام نشود، سیستم فرض می‌کند که برنامه حداکثر سطح میانای برنامه‌سازی کاربردی ندارد. برای اطلاعات بیشتر درباره نحوه مدیریت این مشخصه توسط سیستم، شرح این مشخصه را بخوانید.

وقتی در مانیفیست برنامه اعلام می‌شود، عنصر <uses-sdk> ممکن است به این شکل باشد:

<manifest>
  <uses-sdk android:minSdkVersion="5" />
  ...
</manifest>

دلیل اصلی اینکه برنامه سطح میانای برنامه‌سازی کاربردی را در android:minSdkVersion اعلام می‌کند این است که به سیستم Android بگوید از میاناهای برنامه‌سازی کاربردی‌ای استفاده می‌کند که در سطح میانای برنامه‌سازی کاربردی مشخص‌شده معرفی شده‌اند.

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

ملاحظات توسعه

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

سازگاری برنامه با نسخه‌های جدیدتر

برنامه‌های Android معمولاً با نسخه‌های جدید پلاتفرم Android سازگار هستند.

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

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

تغییرات زیر میانای برنامه‌سازی کاربردی، مانند تغییرات در خود سیستم زیربنایی، می‌تواند بر برنامه شما هنگام اجرا در محیط جدید تأثیر بگذارد. برای شما به‌عنوان توسعه‌دهنده برنامه مهم است که بدانید برنامه در هر محیط سیستم چگونه به‌نظر می‌رسد و رفتار می‌کند.

برای کمک به شما در آزمایش برنامه‌تان در نسخه‌های مختلف پلاتفرم Android، کیت توسعه نرم‌افزار Android شامل چندین پلاتفرم است که می‌توانید بارگیری کنید. هر پلاتفرم شامل یک تصویر سیستم سازگار است که می‌توانید آن را در یک AVD اجرا کنید تا برنامه خود را آزمایش کنید.

سازگاری برنامه با نسخه قدیمی

برنامه‌های Android لزوماً با نسخه‌های قدیمی‌تر از نسخه‌ای که در آن کامپایل شده‌اند سازگار نیستند.

هر نسخه جدید از پلاتفرم Android می‌تواند شامل میاناهای برنامه‌سازی کاربردی چارچوب جدید باشد، مانند میاناهایی که به برنامه‌ها امکان دسترسی به قابلیت‌های جدید پلاتفرم را می‌دهند یا جایگزین بخش‌های میانای برنامه‌سازی کاربردی موجود می‌شوند. میاناهای برنامه‌سازی کاربردی جدید برای برنامه‌هایی که در پلاتفرم جدید اجرا می‌شوند و همچنین برنامه‌هایی که در نسخه‌های جدیدتر پلاتفرم اجرا می‌شوند (همان‌طور که سطح میانای برنامه‌سازی کاربردی مشخص کرده است) قابل‌دسترسی هستند. اما چون نسخه‌های قبلی پلاتفرم شامل APIهای جدید نیستند، برنامه‌هایی که از APIهای جدید استفاده می‌کنند نمی‌توانند روی آن پلاتفرم‌ها اجرا شوند.

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

نسخه پلاتفرم و سطح API را انتخاب کنید

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

می‌توانید پایین‌ترین نسخه ممکن پلاتفرم را با کامپایل کردن برنامه دربرابر هدف‌های ساخت به‌طور متوالی پایین‌تر تعیین کنید. پس‌از تعیین پایین‌ترین نسخه، بااستفاده از نسخه پلاتفرم و سطح API مربوطه، یک AVD ایجاد کنید و برنامه‌تان را به‌طور کامل آزمایش کنید. حتماً مشخصه android:minSdkVersion را در مانیفست برنامه اعلام کنید و مقدار آن را روی سطح میانای برنامه‌سازی کاربردی نسخه پلاتفرم تنظیم کنید.

اعلام حداقل سطح ای‌پی‌آی

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

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

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

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

کیت توسعه نرم‌افزار Android شامل چندین نسخه پلاتفرم است که می‌توانید از آن‌ها استفاده کنید، ازجمله جدیدترین نسخه، و ابزار به‌روزرسانی‌ای ارائه می‌دهد که می‌توانید از آن برای بارگیری نسخه‌های دیگر پلاتفرم درصورت لزوم استفاده کنید.

برای دسترسی به به‌روزرسان، از ابزار خط فرمان android استفاده کنید، که در فهرست راهنمای <sdk>/tools قرار دارد. می‌توانید به‌روزرسان کیت توسعه نرم‌افزار را با اجرای android sdk راه‌اندازی کنید. همچنین می‌توانید روی فایل android.bat (Windows) یا android (OS X/Linux) دوکلیک کنید.

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

فیلتر کردن اسناد مرجع براساس سطح میانای برنامه‌سازی کاربردی

صفحات اسناد مرجع پلاتفرم Android کنترل «سطح API» را در قسمت بالا سمت راست هر صفحه ارائه می‌دهند. می‌توانید از کنترل برای نمایش اسناد فقط برای بخش‌هایی از API استفاده کنید که درواقع برای برنامه‌تان قابل‌دسترسی است، براساس سطح API که در ویژگی android:minSdkVersion فایل مانیفست آن مشخص شده است.

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

فیلتر کردن براساس سطح میانای برنامه‌سازی کاربردی در اسناد، نمایی از آنچه جدید است یا در هر سطح میانای برنامه‌سازی کاربردی معرفی شده است ارائه نمی‌دهد. این ابزار روشی برای مشاهده کل API مرتبط با یک سطح API خاص ارائه می‌دهد، درحالی‌که عناصر API معرفی‌شده در سطوح API بعدی را مستثنی می‌کند.

برای بازگشت به مشاهده مستندات کامل، REL را در بالای منو سطح API انتخاب کنید. به‌طور پیش‌فرض، فیلتر کردن سطح API غیرفعال است تا بتوانید API چارچوب کامل را بدون توجه به سطح API مشاهده کنید.

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