وبلاگ شخصی فرزاد تباشیر

بایگانی
پیوندها
  • ۰
  • ۰
در این جا در مورد سه مورد مهم از تنظیماتی که در فایل gradle اعمال میشن مختصر صحبت میکنیم.
تفاوت میان android:minSdkVersion و android:targetSdkVersion و compileSdkVersion نکته ی مهم و ساده ای است که خیلی از برنامه نویس ها ممکنه به اون توجه نکنند. در حالیکه دونستنش مهمه و مفهوم پیچیده ای هم نیست.
ابتدا در مورد compileSdkVersion بگم. این مورد تعیین می کند که شما میخواهید اپلیکیشن خود را با چه sdk ی کامپایل کنید. طبیعتا باید sdk مذکور را روی محیط توسعه خودتون داشته باشید.
minSdkVersion حداقل api level ی را مشخص می کند که برنامه شما بطور کامل با آن سازگاری دارد و بدون نقص اجرا می شود. بطور مثال ممکن است که api هایی که استفاده کرده اید در api level 16 (یا همان نسخه Jelly  Bean) به بعد وجود داشته باشد. پس شما به minSdkVersion=16 نیاز دارید و برنامه شما روی دستگاه هایی با android sdk های پایین تر قابل اجرا نیست.
اما گاهی ممکن است که شما قصد دارید از api های جدیدتر برای کسانی که نسخه اندروید جدیدتر را روی دستگاه خود دارند استفاده کنید، و همچنان نسخه های قدیمی تر هم بدون مشکل اجرا شوند. بطور مثال اگر قصد دارید از ویژگی درخواست permission در زمان runtime که در اندروید 23 (Marshmallow) معرفی شده است، استفاده کنید لازم است تا از targetSdkVersion=23 یا بالاتر استفاده کنید.
در واقع targetSdkVersion باید از minSdkVersion بزرگتر باشد و شما میبایست در کد خود، قبل از استفاده از api هایی که فقط از targetSdkVersion به بعد موجود هستند، در زمان  runtime چک کنید دستگاهی که برنامه روی آن در حال اجرا است، آن api داشته باشد و اگر نداشت یا از استفاده از api مورد نظر میبایست صرفنظر کنید و یا به روش دیگر و بکمک سایر api های موجود کارتان را انجام دهید.
  • فرزاد تباشیر