در حالی که آخرین نسخههای Android اغلب APIهای عالی برای برنامه شما ارائه میکنند، باید تا زمانی که دستگاههای بیشتری بهروزرسانی شوند، از نسخههای قدیمیتر Android پشتیبانی کنید. این درس به شما نشان میدهد که چگونه از آخرین APIها استفاده کنید و در عین حال از نسخههای قدیمیتر نیز پشتیبانی کنید.
از جادوگر Android Studio New Project برای یافتن توزیع دستگاههای فعالی که هر نسخه از Android را اجرا میکنند استفاده کنید. این توزیع بر اساس تعداد دستگاه هایی است که از فروشگاه Google Play بازدید می کنند. به طور کلی، توصیه می کنیم از حدود 90٪ دستگاه های فعال پشتیبانی کنید، در حالی که برنامه خود را به آخرین نسخه هدف قرار دهید.
نکته: برای ارائه بهترین ویژگیها و عملکرد در چندین نسخه اندروید، باید از کتابخانه پشتیبانی Android در برنامه خود استفاده کنید، که به شما امکان میدهد از چندین API پلتفرم اخیر در نسخههای قدیمیتر استفاده کنید.
سطوح API حداقل و هدف را مشخص کنید
فایل AndroidManifest.xml جزئیات برنامه شما را شرح می دهد و مشخص می کند که کدام نسخه از Android را پشتیبانی می کند. به طور خاص، ویژگیهای minSdkVersion
و targetSdkVersion
برای عنصر <uses-sdk>
پایینترین سطح API را که برنامه شما با آن سازگار است و بالاترین سطح API را که برنامه خود را با آن طراحی و آزمایش کردهاید مشخص میکند.
به عنوان مثال:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
با انتشار نسخه های جدید اندروید، برخی از سبک ها و رفتارها ممکن است تغییر کند. برای اینکه برنامه شما از این تغییرات استفاده کند و اطمینان حاصل شود که برنامه شما متناسب با سبک دستگاه هر کاربر است، باید مقدار targetSdkVersion
را طوری تنظیم کنید که با آخرین نسخه اندروید موجود مطابقت داشته باشد.
نسخه سیستم را در زمان اجرا بررسی کنید
اندروید یک کد منحصر به فرد برای هر نسخه پلتفرم در کلاس Build
ثابت ها ارائه می دهد. از این کدها در برنامه خود برای ایجاد شرایطی استفاده کنید که تضمین کند کدی که به سطوح بالاتر API بستگی دارد فقط زمانی اجرا می شود که آن API ها در سیستم موجود باشند.
کاتلین
private fun setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { actionBar.setDisplayHomeAsUpEnabled(true) } }
جاوا
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
توجه: هنگام تجزیه منابع XML، Android ویژگیهای XML را که توسط دستگاه فعلی پشتیبانی نمیشوند، نادیده میگیرد. بنابراین میتوانید با خیال راحت از ویژگیهای XML استفاده کنید که فقط توسط نسخههای جدیدتر پشتیبانی میشوند، بدون اینکه نگران خراب شدن نسخههای قدیمی در هنگام مواجهه با آن کد باشید. برای مثال، اگر targetSdkVersion="11"
را تنظیم کنید، برنامه شما به طور پیشفرض دارای ActionBar
در اندروید 3.0 و بالاتر است. سپس برای افزودن آیتم های منو به نوار اقدام، باید android:showAsAction="ifRoom"
در منبع منوی XML خود تنظیم کنید. انجام این کار در یک فایل XML با نسخه متقاطع بی خطر است، زیرا نسخه های قدیمی اندروید به سادگی ویژگی showAsAction
را نادیده می گیرند (یعنی نیازی به نسخه جداگانه در res/menu-v11/
ندارید ).
از سبک ها و تم های پلتفرم استفاده کنید
اندروید تم های تجربه کاربری را ارائه می کند که ظاهر و احساس سیستم عامل زیرین را به برنامه ها می دهد. این تم ها را می توان در فایل مانیفست روی برنامه شما اعمال کرد. با استفاده از این سبک ها و تم های داخلی، برنامه شما به طور طبیعی با هر نسخه جدید از جدیدترین ظاهر و احساس اندروید پیروی می کند.
برای اینکه فعالیت خود مانند یک کادر محاوره ای به نظر برسد:
<activity android:theme="@android:style/Theme.Dialog">
برای اینکه فعالیت شما پسزمینه شفافی داشته باشد:
<activity android:theme="@android:style/Theme.Translucent">
برای اعمال تم سفارشی خود تعریف شده در /res/values/styles.xml
:
<activity android:theme="@style/CustomTheme">
برای اعمال یک تم به کل برنامه خود (همه فعالیت ها)، ویژگی android:theme
به عنصر <application>
اضافه کنید:
<application android:theme="@style/CustomTheme">
برای اطلاعات بیشتر در مورد ایجاد و استفاده از تم ها، راهنمای سبک ها و تم ها را بخوانید.