کتابخانه پشتیبانی

توجه: با انتشار اندروید 9.0 (سطح API 28) نسخه جدیدی از کتابخانه پشتیبانی به نام AndroidX وجود دارد که بخشی از Jetpack است. کتابخانه AndroidX شامل کتابخانه پشتیبانی موجود و همچنین شامل آخرین اجزای Jetpack است.

می توانید به استفاده از کتابخانه پشتیبانی ادامه دهید. مصنوعات تاریخی (آنهایی که نسخه 27 و قبل از آن منتشر شده اند و به عنوان android.support.* ) در Google Maven در دسترس خواهند بود. با این حال، تمام توسعه کتابخانه جدید در کتابخانه AndroidX رخ خواهد داد.

توصیه می کنیم از کتابخانه های AndroidX در تمام پروژه های جدید استفاده کنید. همچنین باید پروژه های موجود را به AndroidX منتقل کنید .

هنگام توسعه برنامه‌هایی که از چندین نسخه API پشتیبانی می‌کنند، ممکن است بخواهید یک راه استاندارد برای ارائه ویژگی‌های جدیدتر در نسخه‌های قبلی اندروید داشته باشید یا به طرز دلپذیری به عملکردهای مشابه برگردید. به جای ساخت کد برای مدیریت نسخه های قبلی پلتفرم، می توانید از این کتابخانه ها برای ارائه لایه سازگاری استفاده کنید. علاوه بر این، کتابخانه‌های پشتیبانی، کلاس‌ها و ویژگی‌های راحتی اضافی را ارائه می‌کنند که در API استاندارد Framework برای توسعه و پشتیبانی آسان‌تر در دستگاه‌های بیشتر موجود نیستند.

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

این سند یک نمای کلی از کتابخانه پشتیبانی ارائه می دهد تا به شما در درک اجزای آن و نحوه استفاده موثر از آن در برنامه خود کمک کند.

احتیاط: با شروع نسخه 26.0.0 کتابخانه پشتیبانی (ژوئیه 2017)، حداقل سطح API پشتیبانی شده در اکثر کتابخانه های پشتیبانی به Android 4.0 (سطح API 14) برای اکثر بسته های کتابخانه افزایش یافته است. برای اطلاعات بیشتر، پشتیبانی نسخه و نام‌های بسته را در این صفحه ببینید.

موارد استفاده برای کتابخانه های پشتیبانی

چند کاربرد متمایز برای کتابخانه های پشتیبانی وجود دارد. کلاس‌های سازگاری با نسخه‌های قبلی پلتفرم تنها یکی از آنهاست. در اینجا لیست کامل تری از روش هایی وجود دارد که می توانید از کتابخانه های پشتیبانی در برنامه خود استفاده کنید:

  • سازگاری به عقب برای API های جدیدتر - تعداد زیادی از کتابخانه های پشتیبانی سازگاری عقب مانده را برای کلاس ها و روش های چارچوب جدیدتر فراهم می کنند. به عنوان مثال، کلاس پشتیبانی Fragment از قطعات در دستگاه‌هایی که نسخه‌های قدیمی‌تر از Android 3.0 (سطح API 11) دارند، پشتیبانی می‌کند.
  • کلاس‌های کمکی و راحتی - کتابخانه‌های پشتیبانی تعدادی کلاس کمکی، به‌ویژه برای توسعه رابط کاربری فراهم می‌کنند. به عنوان مثال، کلاس RecyclerView یک ویجت رابط کاربری برای نمایش و مدیریت لیست های بسیار طولانی، قابل استفاده در نسخه های Android از سطح API 7 و بالاتر ارائه می دهد.
  • اشکال زدایی و ابزارهای کمکی - تعدادی ویژگی وجود دارد که فراتر از کدهایی که در برنامه خود گنجانده اید، ابزار مفیدی را ارائه می دهند، از جمله کتابخانه support-annotations برای بررسی بهتر کدها در ورودی های روش و پشتیبانی Multidex برای پیکربندی و توزیع برنامه ها با بیش از 65536 روش.

استفاده از پشتیبانی در مقابل APIهای چارچوب

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

  • سازگاری برای یک ویژگی خاص - اگر می‌خواهید از ویژگی پلتفرم اخیر در دستگاه‌هایی که نسخه‌های قبلی پلتفرم را اجرا می‌کنند، پشتیبانی کنید، از کلاس‌ها و روش‌های معادل کتابخانه پشتیبانی استفاده کنید.
  • سازگاری با ویژگی‌های کتابخانه مرتبط - کلاس‌های کتابخانه پشتیبانی پیچیده‌تر ممکن است به یک یا چند کلاس کتابخانه پشتیبانی اضافی بستگی داشته باشند، بنابراین باید از کلاس‌های کتابخانه پشتیبانی برای آن وابستگی‌ها استفاده کنید. برای مثال، کلاس پشتیبانی ViewPager باید با کلاس های پشتیبانی FragmentPagerAdapter یا FragmentStatePagerAdapter استفاده شود.
  • سازگاری عمومی دستگاه - اگر ویژگی پلتفرمی خاصی ندارید که قصد دارید با برنامه خود به روشی سازگار با عقب استفاده کنید، همچنان ایده خوبی است که از کلاس های کتابخانه پشتیبانی در برنامه خود استفاده کنید. به عنوان مثال، ممکن است بخواهید به جای کلاس Activity Framework از ActivityCompat استفاده کنید، بنابراین می توانید بعداً از ویژگی های جدیدتر استفاده کنید، مانند ترکیب مدل مجوزهای جدید معرفی شده در Android 6.0 (سطح API 23).

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

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

پشتیبانی نسخه و نام بسته

برخی از بسته‌های کتابخانه پشتیبانی دارای نام بسته هستند تا حداقل سطح API را که در ابتدا پشتیبانی می‌کردند، با استفاده از نماد av#، مانند بسته support-v4، نشان دهند. با شروع نسخه 26.0.0 کتابخانه پشتیبانی (منتشر شده در ژوئیه 2017)، حداقل سطح API پشتیبانی شده برای همه بسته‌های کتابخانه پشتیبانی به Android 4.0 (سطح API 14) تغییر کرده است. به همین دلیل، هنگام کار با هر نسخه اخیر از کتابخانه پشتیبانی، نباید فرض کنید که نماد بسته v# حداقل سطح پشتیبانی API را نشان می دهد. این تغییر در نسخه‌های اخیر همچنین به این معنی است که بسته‌های کتابخانه‌ای با v4 و v7 اساساً در حداقل سطح API که پشتیبانی می‌کنند معادل هستند. به عنوان مثال، بسته support-v4 و support-v7 هر دو حداقل سطح API 14 را برای نسخه های پشتیبانی کتابخانه از نسخه 26.0.0 و بالاتر پشتیبانی می کنند.

پشتیبانی از نسخه های انتشار کتابخانه

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

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

وابستگی های کتابخانه

اکثر کتابخانه‌های مجموعه کتابخانه پشتیبانی Android به یک یا چند کتابخانه وابستگی دارند. به عنوان مثال، تقریباً تمام کتابخانه های پشتیبانی به بسته support-compat وابستگی دارند. به طور کلی، شما نیازی به نگرانی در مورد پشتیبانی از وابستگی های کتابخانه ندارید، زیرا ابزار ساخت gradle، وابستگی های کتابخانه را برای شما مدیریت می کند، با درج خودکار کتابخانه های وابسته.

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

gradle -q dependencies your-app-project:dependencies

برای اطلاعات بیشتر در مورد افزودن کتابخانه های پشتیبانی به پروژه توسعه خود با استفاده از Gradle، به راه اندازی کتابخانه پشتیبانی مراجعه کنید. برای اطلاعات بیشتر در مورد کار با Gradle، به پیکربندی ساخت خود مراجعه کنید.

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