Api Level های اندروید

Runtime Checks for Android Versions
هر نسخه ی جدیدی از اندروید که ارائه می شود ، ساختار framework api بروزرسانی می شود و قابلیتهای جدید اضافه و یا جایگزین می شود . کارکرد api های ورژنهای قدیمی تر بدون هیچ تغییری با اندکی خطای احتمالی ، به ورژن جدید منتقل می شود.
در نتیجه اگر برنامه ی شما روی api level خاصی اجرا شود معمولا روی ورژنهای جدید نیز بدون تغییر اجرا می شود . امابه این شرط که خواسته باشید برنامه تان روی ورژنهای قدیمی اجرا شود.
اگر minimum android version را انتخاب کرده باشید این پایین تر از تنظیمات target framework است ، بنابراین ممکن است api level مورد نظرتان در زمان اجرا در دسترس برنامه نباشد. به هرحال ، برنامه شما می تواند هنوز روی دستگاههای قدیمی تر اجرا شود ، اما با قابلیتهای محدودتر . برای هر api level در پلتفرمهای سیستم عاملهای مختلف اندروید تنظیمات minimum android version در دسترس نیست ، کد شما باید صراحتا مقدار خصوصیت Android.OS.Build.Version.SdkInt را بررسی نماید . اگر api levelای که پشتیبانی می کند پایین تر از minimum android version ای است که می خواهید در برنامه ی خود صدا بزنید ، راهی جدید برای اجرای کد خود روی دستگاه پیدا کنید .
به عنوان مثال فرض کنید میخواهیم متد جدید NotificationBuilder.SetCategory را در دسته بندی Notification ها زمانی که برنامه روی اندروید 5.0 Lollipop ( و بالاتر) اجرا می شود استفاده نماییم ، اما هنوز مایل هستیم که برنامه ای که ایجاد نموده ایم روی ورژنهای قدیمی تر مانند اندروید 4.1 Jelly Bean ( جایی که SetCategory در دسترس نیست ) اجرا شود . با اشاره به جدول ورژنهای اندروید که در بخش اول همین راهنما آمده است ، ما می توانیم مشاهده کنیم که ورژن کد اجرای اندروید 5.0 (Lollipop ) Android.OS.BuildVersionCodes.Lollipop می باشد . برای پشتیبانی از ورژنهای قدیمی که SetCategory در آنها در دسترس نیست میتوانیم Api Level را در زمان اجرا شناسایی نموده و به صورت مشروط SetCategory را صدا نماییم، (تنها زمانی که Api Level بزرگتر یا مساوی ورژن کد اجرای Lollipop است ).

در این مثال ، target framework برنامه ی ما برابر اندروید 5.0 (API Level 21) و minimum Android version را برابر با اندروید 4.1 (API Level 16) قرار داده ایم . برای اینکه SetCategory در API level مربوط به Android.OS.BuildVersionCodes.Lollipop یا بالاتر در دسترس است ، کد این مثال SetCategory را فقط زمانی که در دسترس است صدا می کند . در این کد زمانی که api level برابر با 16 ، 17 ، 18 ، 19 و 20 است تلاشی برای صدا کردن SetCategory نمی شود . کارکرد در این ورژنهای اندروید کاهش میابد به این شکل که پیغامها فقط اضافه می شوند و به درستی سورت نشده اند (زیرا آنها بر اساس نوع دسته بندی نشده اند ) ، ولی هنوز پیغام ها به صورت پاپ آپ به کاربر نمایش داده می شوند . نرم افزار ما هنوز کار می کند اما کارکرد آن کمی کاهش یافته است .
به طور کلی ، چک نسخه در زمان اجرا به شما کمک می کند که کدتان بین انجام یک کار و یا یافتن راه دیگر برای اجرا تصمیم بگیرد . برای مثال :

این قوانین و راهنمایی ها کمک می کند که نرم افزار با کاهش یا تغییر کارکرد در زمان اجرا روی یک یا بیشتر ورژنهای قدیمی Api کار کند . در نمونه های مشابه (از قبیل مثال SetCategory ) کافی است از صدا کردن Api مورد نظر وقتی در دسترس نیست صرف نظر کنید. به هر حال در سایر موارد برای اینکه نرم افزارتان همیشه کار کند ، شاید به اجرای متناوب توابع مختلف نیاز داشته باشید برای زمانی که ورژن شناسایی شده ی Android.OS.Build.Version.SdkInt پایین تر از Api Level ای است که شما برای برنامه ی خود نیاز داشته اید .


API Levels and Libraries
وقتی ما پروژه ی کتابخانه یXamarin.Android را ایجاد می نماییم (از قبیل یک کلاس کتابخانه یا کتابخانه ی ارتباطات ) تنها می توانیم تنظیمات target framework را ست نماییم و تنظیمات minimum Android version و target Android version در دسترس نیستند .
کتابخانه ی اندروید
تنظیمات minimum Android version و target Android version حذف شده اند زیرا کتابخانه یک برنامه مستقل نیست ، کتابخانه نمی تواند روی هیچ ورژن اندرویدی اجرا شود ، به پکیجی که در آن است وابسته می باشد . ما می توانیم مشخص کنیم که کدام کتابخانه وارد شود ، اما نمی توانیم پیش بینی کنیم که روی ورژن Api پلتفرم اجرا می شود یا نه . با داشتن این نکته در ذهن ، برای نوشتن کتابخانه بهتر، باید روشهای زیر رعایت شود :
زمان استفاده کتابخانه ی اندروید : اگر از یک کتابخانه ی اندروید در برنامه ی خود استفاده می نمایید ، مطمئن شوید تنظیمات target framework برنامه در Api Level بالاتر از target framework کتابخانه یتان است .
زمان ساخت یک کتابخانه ی اندروید : اگر در حال ساخت یک کتابخانه ی اندروید برای استفاده در برنامه های دیگر هستید ، باید مطمئن شوید که تنظیمات target framework برابر با minimum API level که در زمان کامپایل مورد نیاز است می باشد.
این بهترین روش پیشنهادی برای ایجاد کتابخانه برای صدا کردن Api هایی که در زمان اجرا در دسترس نمی باشند است (که می تواند باعث کرش شدن برنامه شود). اگر شما یک برنامه نویس کتابخانه هستید ، باید تلاش کنید بجای استفاده از مجموعه های کوچک Api کتابخانه هایتان را محدود کنید به Api های تثبیت شده و خوب . انجام این کار کمک می کند تا اطمینان حاصل شود که کتابخانه شما می تواند با خیال راحت در سراسر طیف گسترده ای از نسخه های اندروید استفاده شود.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

38 − = 30