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

این صفحه جزئیاتی درباره نسخه‌های قدیمی‌تر بسته «کتابخانه پشتیبانی» ارائه می‌دهد. برای جدیدترین نسخه‌های «کتابخانه پشتیبانی»، به نسخه‌های اخیر «کتابخانه پشتیبانی» مراجعه کنید.

بازبینی 26.0.0 نسخه بتای 2

(ژوئن ۲۰۱۷)

لطفاً توجه داشته باشید که نسخه ۲-beta‏ ۰.۰.۲۶ یک نسخه پیش‌انتشار است. سطح API آن ممکن است تغییر کند و لزوماً شامل ویژگی‌ها یا رفع اشکالات از جدیدترین نسخه‌های پایدار «کتابخانه پشتیبانی» نمی‌شود.

مهم: کتابخانه‌های پشتیبانی اکنون ازطریق مخزن Maven در Google دردسترس است. نیازی نیست مخزن پشتیبانی را از «مدیر کیت توسعه نرم‌افزار» بارگیری کنید. برای اطلاعات بیشتر، راه‌اندازی کتابخانه پشتیبانی را ببینید.

میاناهای برنامه‌سازی کاربردی جدید

تفاوت‌های API

رفع اشکال‌ها

  • حذف کیت توسعه نرم‌افزار Android O باعث ازدست رفتن حروف کج در TextViews می‌شود
  • استثنای اشاره‌گر تهی هنگام اتصال به MediaBrowserServiceCompat
  • ‫TextInputLayout باید خوانایاری‌ها را در onProvideAutofillStructure() تنظیم کند
  • سرریز پشته هنگام استفاده از اندازه خودکار TextView در O

بازبینی ۲۶.۰.۰ نسخه بتای ۱

(مه ۲۰۱۷)

لطفاً توجه داشته باشید که 26.0.0-beta1 نسخه پیش‌انتشار است. سطح API آن ممکن است تغییر کند و لزوماً شامل ویژگی‌ها یا رفع اشکالات از جدیدترین نسخه‌های پایدار «کتابخانه پشتیبانی» نمی‌شود.

مهم: کتابخانه‌های پشتیبانی اکنون ازطریق مخزن Maven در Google دردسترس است. نیازی نیست مخزن پشتیبانی را از «مدیر کیت توسعه نرم‌افزار» بارگیری کنید. برای اطلاعات بیشتر، راه‌اندازی کتابخانه پشتیبانی را ببینید.

تغییرات مهم

  • ‫FragmentActivity.setSupportMediaController() و FragmentActivity.getSupportMediaController() برداشته شدند. لطفاً از روش‌های جدید MediaControllerCompat.setMediaController() و MediaControllerCompat.getMediaController() ایستا استفاده کنید.
  • اکنون BottomNavigationView onNavigationItemReselected() را فرا می‌خواند وقتی که موردی ازقبل انتخاب‌شده انتخاب می‌شود، به‌جای فراخواندن onNavigationItemSelected().
  • اکنون همه نمونه‌های روش findViewById() به‌جای View، مقدار <T extends View> T را برمی‌گردانند. این تغییر پیامدهای زیر را دارد:
    • این کار ممکن است باعث شود کد موجود اکنون نوع برگشتی مبهم داشته باشد، برای مثال اگر هم someMethod(View) و هم someMethod(TextView) وجود داشته باشد که نتیجه تماس با findViewById() را می‌گیرد.
    • هنگام استفاده از زبان منبع Java 8، اگر نوع برگشتی محدود نشده باشد (برای مثال، assertNotNull(findViewById(...)).someViewMethod()))، این کار نیاز به تبدیل صریح به View دارد.
    • جایگزینی‌های روش‌های غیرنهایی findViewById() (برای مثال، Activity.findViewById()) باید نوع برگشتی‌شان به‌روز شود.

میاناهای برنامه‌سازی کاربردی جدید

  • ‫FragmentManager و Fragment روشی برای isStateSaved() دارند که به شما امکان می‌دهد بدون ازدست دادن وضعیت، پرس‌وجو کنید که آیا تراکنش مجاز خواهد بود یا نه. این ویژگی به‌ویژه برای بررسی هنگام مدیریت رویداد onClick() قبل‌از اجرای هرگونه تراکنش مفید است.
  • حرکت مسیر در AnimatedVectorDrawableCompat پشتیبانی می‌شود. حرکت مسیر به یک پویانمای شیء اجازه می‌دهد دو ویژگی را به‌طور هم‌زمان براساس یک مسیر تغییر دهد؛ مسیر به‌عنوان android:pathData در XML پویانما مشخص می‌شود.
  • پویانمایی مبتنی بر فیزیک:
    • ‫FlingAnimation جدید که از پویانمایی با سرعت اولیه پشتیبانی می‌کند و به‌آرامی سرعت آن کاهش می‌یابد.
    • زیرکلاس‌های DynamicAnimation از پویانمایی ویژگی سفارشی برای هر شیء پشتیبانی می‌کنند.
    • اکنون هم SpringAnimation و هم FlingAnimation می‌توانند مقدار شناور را بدون نیاز به View یا Object مرتبط با آن پویانمایی کنند.

    برای اطلاعات بیشتر، صفحه‌های پیش‌نمایش پویانمایی فنری و پویانمایی پرتابی را ببینید.

  • پشتیبانی از «قلم» در زبان نشانه‌گذاری توسعه‌پذیر:
    • ‫ResourcesCompat.getFont اجازه می‌دهد منابع قلم—ازجمله XML خانواده قلم—که ممکن است با TextView.setTypeface() استفاده شود بار شود.
    • هنگام استفاده از AppCompat،‏ TextView از مشخص کردن منبع قلم یا خانواده قلم XML ازطریق ویژگی android:fontFamily XML پشتیبانی می‌کند.
    • از خانواده قلم XML برای ایجاد خانواده‌های قلم با سبک و وزن متفاوت استفاده کنید. (اگر از کلاس‌های کتابخانه پشتیبانی برای انجام این کار استفاده می‌کنید، از مشخصه‌های app: و همچنین مشخصه‌های android: استفاده کنید.)
  • قلم‌های قابل‌بارگیری:
    • ‫FontsContractCompat جدید که به شما امکان می‌دهد به‌جای دسته‌بندی کردن قلم‌ها در برنامه‌تان، قلم‌ها را از ارائه‌دهنده قلم درخواست کنید.
    • قلم‌ها را می‌توان در XML نیز درخواست کرد و در چیدمان‌ها استفاده کرد.
  • سازگاری اموجی کتابخانه:
    • ‫EmojiCompat می‌تواند CharSequence داده‌شده را پردازش کند و EmojiSpans را اضافه کند.
    • EmojiTextView و ابزارک‌های دیگر برای نمایش اموجی.
    • FontRequestEmojiCompatConfig برای درخواست قلم اموجی از ارائه‌دهنده قلم.
  • تغییر اندازه خودکار TextView:
    • روش‌های جدید در TextViewCompat و همچنین مشخصه‌های XML برای کنترل اندازه خودکار در TextView.
  • کنترل‌های بازپخش Leanback با پشتیبانی از جستجو:
    • ‫PlaybackTransportRowPresenter جدیدی که کنترل‌های بازپخش را با «نوار لغزنده» ارائه می‌کند.
    • PlaybackTransportControlGlue جدیدی که با PlaybackTransportRowPresenter کار می‌کند و از جستجو پشتیبانی می‌کند.
    • کلاس پایه جدید PlaybackSeekDataProvider برای برنامه تا ریزعکس‌های جستجو را به PlaybackTransportControlGlue ارائه دهد.
  • «انبار داده اولویت‌ها»:
    • ‫PreferenceDataStore اکنون به شما امکان می‌دهد ذخیره‌سازی اولویت‌های خودتان را پیاده‌سازی کنید، که با روش‌های جدید در Preference و PreferenceManager تنظیم می‌شود.

مشکلات شناخته‌شده

  • ادغام سازگاری «قلم‌ها و اموجی‌های قابل‌بارگیری» با «خدمات Google Play» فقط در «خدمات Google Play» نسخه ۱۱ و بالاتر کار می‌کند که درحال‌حاضر ازطریق برنامه بتا «خدمات Google Play» دردسترس است.

رفع اشکال‌ها

  • ‫MediaBrowserCompat.search() API کار نمی‌کند (مشکل AOSP 262170)
  • ‫ViewCompat.postInvalidateOnAnimation() استثنا قائل می‌شود (AOSP مشکل ۸۰۱۴۶)
  • ‫onActivityCreated() برای تکه‌کدها در «فعالیت» ازهم‌پاشیده‌شده فراخواند
  • ‫RecyclerView.isComputingLayout() باید درطول پیش‌بارگیری درست برگرداند
  • وقتی گذار Fade قطع و معکوس می‌شود، View پویانمایی را از ابتدا شروع می‌کند. (اصلاح از چارچوب Android منتقل شده است.)
  • ‫Transition.Fade آلفای اولیه View را نادیده می‌گیرد (مشکل AOSP 221820)

بازبینی 26.0.0 Alpha 1

(مارس ۲۰۱۷)

لطفاً توجه داشته باشید که 26.0.0-alpha1 نسخه پیش‌انتشار است. سطح API آن ممکن است تغییر کند و لزوماً شامل ویژگی‌ها یا رفع اشکالات از جدیدترین نسخه‌های پایدار «کتابخانه پشتیبانی» نمی‌شود.

تغییرات مهم

توجه: حداقل نسخه کیت توسعه نرم‌افزار به ۱۴ افزایش یافته است. درنتیجه، بسیاری از «میاناهای برنامه‌سازی کاربردی» که فقط برای سازگاری با «میانای برنامه‌سازی کاربردی» < 14 وجود داشتند منسوخ شده‌اند. کاربران این میاناهای برنامه‌سازی کاربردی باید به معادل‌های چارچوب خود که در صفحه مرجع هر میانای برنامه‌سازی کاربردی منسوخ‌شده ذکر شده است منتقل شوند.

  • واحد support-percent منسوخ شده است. کاربران این واحد باید به ابزارک جدید ConstraintLayout که به‌عنوان آرتیفکت جداگانه‌ای در «مدیر کیت توسعه نرم‌افزار» ارائه می‌شود انتقال دهند.
  • واحد support-fragment دیگر به واحد support-media-compat وابسته نیست.

میاناهای برنامه‌سازی کاربردی جدید

کلاس‌ها، روش‌ها، و ثابت‌های جدید زیادی اضافه شده است تا از میاناهای برنامه‌سازی کاربردی پلاتفرم که در «پیش‌نمایش O» اضافه شده است پشتیبانی سازگار با نسخه‌های قدیمی ارائه شود.

  • IME_FLAG_NO_PERSONALIZED_LEARNING: «روش‌های ورودی» می‌توانند پرچم‌های «بدون یادگیری» را برای برنامه‌هایی که حالت خصوصی دارند، مثل مرورگرها، بشنوند. این ویژگی به «روش‌های ورودی» کمک می‌کند متوجه شوند آیا برنامه در حالت خصوصی است یا نه، تا بتوانند عملکرد یادگیری یا تطبیقی خود را درحالی‌که برنامه در این حالت است غیرفعال کنند.

برای مشاهده فهرست کامل تغییرات میانای برنامه‌سازی کاربردی بین نسخه 25.2.0 و 26.0.0-alpha1، گزارش تفاوت‌های میانای برنامه‌سازی کاربردی کتابخانه پشتیبانی را ببینید.

رفع اشکال‌ها

  • در برخی موارد، AutoTransition پویانمایی ساده می‌تواند با «پرش‌های» نما قطع شود. (مشکل AOSP 221816)

نسخه اصلاحی ۲۵.۴.۰

(ژوئن ۲۰۱۷)

مهم: کتابخانه‌های پشتیبانی اکنون ازطریق مخزن Maven در Google دردسترس است. نیازی نیست مخزن پشتیبانی را از «مدیر کیت توسعه نرم‌افزار» بارگیری کنید. برای اطلاعات بیشتر، راه‌اندازی کتابخانه پشتیبانی را ببینید.

تغییرات مهم

  • ‫executePendingTransactions()، commitNow()، popBackStackImmediate()، و تماس‌های تراکنش مشابه درطول تغییرات وضعیت FragmentManager مجاز نیستند. اجرای مجدد تراکنش‌ها ناامن است و FragmentManager اکنون این را درطول تغییرات وضعیت خود اعمال می‌کند.
  • هم‌زمان با انتشار این کتابخانه پشتیبانی، ما نیز multidex نسخه ۱.۰.۲ را منتشر می‌کنیم. این نسخه شامل تغییرات مهم زیر است:
    • امکان چندفایلی کردن فایل APK ابزار دقیق را فراهم می‌کند.
    • ‫MultiDexTestRunner را منسوخ می‌کند (به‌جای آن باید از AndroidJUnitRunner استفاده شود).
    • محافظت بهتری دربرابر برخی‌از استخراج‌های بایگانی بد مدیریت برنامه ارائه می‌دهد.
    • اشکالی را که می‌توانست منجر به رها شدن فایل‌های موقت شود برطرف می‌کند.
    • وقتی در فرایند هم‌زمان انجام شود، نصب سریع‌تری ارائه می‌دهد.
    • اشکال نصب در API 19 و 20 را برطرف می‌کند.

میاناهای برنامه‌سازی کاربردی جدید و اصلاح‌شده

در AnimatedVectorDrawableCompat، از تغییر شکل مسیر و میان‌یابی مسیر پشتیبانی می‌شود. تغییر شکل مسیر به شکل‌ها اجازه می‌دهد از یک مسیر (مشخص‌شده به‌عنوان android:valueFrom) به مسیر دیگر (مشخص‌شده به‌عنوان android:valueTo) تغییر کنند تا جلوه‌های دیداری پیچیده و جذابی ارائه دهند. درون‌یابی مسیر به درون‌یاب‌های AnimatedVectorDrawableCompat اجازه می‌دهد به‌صورت مسیر (به‌صورت android:pathData در XML درون‌یاب مشخص شده است) مشخص شوند.

تفاوت‌های API

مشکلات برطرف‌شده

  • استثنای اشاره‌گر تهی هنگام اتصال به MediaBrowserServiceCompat
  • میانای برنامه‌سازی کاربردی MediaBrowserCompat.search() کار نمی‌کند (مشکل AOSP 262170)
  • فراخوان‌های BrowseFragment onItemClicked در نسخه ۲۵.۳.۰ کار نمی‌کند
  • ‫NullPointerException (استثنای اشاره‌گر تهی) هنگام پیمایش به بالا و پایین در VerticalGridView در 25.3.1
  • ‫ClassCastException در SimpleArrayMap.allocArrays()

بازبینی ۲۵.۳.۱

(مارس ۲۰۱۷)

مشکلات برطرف‌شده

  • ‫SwitchCompat به حداقل نسخه کیت توسعه نرم‌افزار ۱۴ یا بالاتر نیاز دارد. (مشکل AOSP ۲۵۱۳۰۲)
  • پویانمایی مبتنی بر فیزیک updateListener از قاب اول می‌گذرد.
  • پویانمایی برچسب BottomNavigationView خراب است.

بازبینی ۲۵.۳.۰

(مارس ۲۰۱۷)

تغییرات مهم

فراداده نسخه «کتابخانه پشتیبانی» هنگام ساختن از Gradle به‌طور خودکار به AndroidManifest.xml اضافه می‌شود که پیگیری نسخه‌ها در ساخت‌های عمومی را ساده‌تر می‌کند. برای مثال:

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

منسوخ‌سازی‌ها

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

ExifInterface
روش بولی getLatLong(float[]) منسوخ شده است. درعوض، از روش جدید getLatLong() استفاده کنید، که هیچ آرگومانی نمی‌گیرد و double[] را برمی‌گرداند.
mediacompat
‫
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) منسوخ شده است. به‌جای آن، از روش جدید setErrorMessage(int, CharSequence) استفاده کنید که کد خطا و شرح اختیاری را ارسال می‌کند.
EXTRA_SUGGESTION_KEYWORDS منسوخ شده است. درعوض، از عملکرد جستجوی MediaBrowserCompat استفاده کنید.
v7.recyclerview
نام
LinearLayoutManager.getInitialItemPrefetchCount() به LinearLayoutManager.getInitialPrefetchItemCount() تغییر کرد. نام قدیمی همچنان پشتیبانی می‌شود اما در نسخهٔ پخش بعدی برداشته خواهد شد.

میاناهای برنامه‌سازی کاربردی جدید و اصلاح‌شده

appcompat-v7
روش جدید ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) پویانمایی نماد روشن/خاموش کشوی پیمایش را ساده‌تر غیرفعال می‌کند.
customtabs
پشتیبانی از کانال‌های پیام اضافه شد. برای جزئیات، به CustomTabsService.requestPostMessageChannel() و CustomTabsService.postMessage() مرجع مراجعه کنید.
dynamic-animation
کتابخانه پویانمایی جدید مبتنی بر فیزیک که مجموعه‌ای از میاناهای برنامه‌سازی کاربردی را برای ساختن پویانمایی‌هایی که به‌صورت پویا به درونداد کاربر واکنش نشان می‌دهند ارائه می‌دهد.
leanback-v17
پشتیبانی از پس‌زمینه‌های اختلاف منظر اضافه شد. برای جزئیات، به Parallax مرجع مراجعه کنید.
ابزاره TimePicker برای انتخاب زمان در میانای تلویزیون اضافه شد.
mediacompat
عملکرد جستجو اضافه شد. برای جزئیات، به MediaBrowserCompat.search() و MediaBrowserServiceCompat.onSearch() مرجع مراجعه کنید.
پشتیبانی از حالت‌های درهم و تکرار اضافه شد. برای جزئیات، به MediaSessionCompat.setRepeatMode() و setShuffleModeEnabled() مرجع مراجعه کنید.

مشکلات برطرف‌شده

نسخه ۲۵.۲.۰

(فوریه ۲۰۱۷)

تغییرات مهم

مشکلات برطرف‌شده

  • این نسخه پخش مشکل جدی mediarouter را برطرف می‌کند. در این مشکل، استفاده از دستگاه A2DP و میاناهای برنامه‌سازی کاربردی مسیریابی رسانه می‌توانست باعث شود دستگاه پاسخگو نباشد و نیاز به بازراه‌اندازی داشته باشد.
  • کلاس FragmentManager.FragmentLifecycleCallbacks اکنون ایستا است.

مشکلات برطرف‌شده

  • نمایش ارائه اسلاید با قرینه‌سازی صفحه باعث می‌شود دستگاه از Wi-Fi قطع شود
  • دکمه رسانه برنامه‌های رسانه‌ای را که در setMediaButtonReceiver() ثبت نشده بودند به‌درستی مدیریت نمی‌کرد
  • خطای VectorDrawable با منبع رشته (مشکل AOSP 232407)
  • اگر نوشتار با XML تنظیم شده باشد، نوشتار و نکته‌پوشش TextInputLayout روی هم قرار می‌گیرند (مشکل AOSP 230171)
  • نشت حافظه در MediaControllerCompat (مشکل AOSP ۲۳۱۴۴۱)
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() خراب می‌شود
  • وقتی RecyclerView درحال بازیافتن نگه‌دارنده‌های نما است ازکار می‌افتد (مشکل AOSP 225762)
  • ‫getAllowGeneratedReplies() به‌اشتباه برای کنش‌های داخل WearableExtender مقدار نادرست برمی‌گرداند

بازبینی ۲۵.۱.۱

(ژانویه ۲۰۱۷)

مهم: اشکال شناخته‌شده‌ای در کلاس android.support.v7.media.MediaRouter در نسخه بازبینی ۲۵.۱.۱ و ۲۵.۱.۰ «کتابخانه پشتیبانی» وجود دارد. اگر برنامه شما از نسخه ۷ MediaRouter استفاده می‌کند، باید به Support Library Revision 25.2.0 به‌روزرسانی کنید، که این اشکال را برطرف می‌کند.

تغییرات مهم

  • اکنون می‌توان تراکنش‌های تکه‌تکه را در داخل و بین تراکنش‌ها بهینه‌سازی کرد. بهینه‌سازی کردن عملکرد تراکنش‌های تکه‌تکه می‌تواند عملکردهایی را که لغو می‌شوند حذف کند. برای مثال، فرض کنید دو تراکنش با هم اجرا می‌شوند، یکی که قطعه A را اضافه می‌کند و دیگری که قطعه A را با قطعه B جایگزین می‌کند. در این مورد، ممکن است عملیات اول لغو شود و فقط تکه B اضافه شود. این یعنی قطعه A ممکن است چرخه زندگی ایجاد/تخریب را طی نکند.

    یکی از عوارض جانبی این بهینه‌سازی این است که ممکن است تغییرات وضعیت تکه‌کدها خارج از ترتیب موردانتظار باشد. برای مثال، فرض کنید یک تراکنش تکه‌کد A را اضافه می‌کند، تراکنش دوم تکه‌کد B را اضافه می‌کند، سپس تراکنش سوم تکه‌کد A را برمی‌دارد. بدون بهینه‌سازی، قطعه B می‌تواند انتظار داشته باشد که درحین ایجاد شدن آن، قطعه A نیز وجود داشته باشد زیرا قطعه A پس‌از اضافه شدن قطعه B برداشته خواهد شد. با بهینه‌سازی، قطعه B نمی‌تواند مطمئن باشد که قطعه A درحین ایجاد B وجود خواهد داشت، زیرا ایجاد و ازبین رفتن قطعه A ممکن است با بهینه‌سازی برداشته شود.

    این بهینه‌سازی به‌طور پیش‌فرض غیرفعال است. برای فعال کردن بهینه‌سازی، با FragmentTransaction.setAllowOptimization(true) تماس بگیرید.

  • اکنون تکه‌برنامه‌ها می‌توانند انتقال‌ها و پویانمایی‌هایشان را تا زمانی که بااستفاده از Fragment.postponeEnterTransition() و Fragment.startPostponedEnterTransition() آماده شوند به‌تعویق بیندازند. این API شبیه به Activity.postponeEnterTransition() و Activity.startPostponedEnterTransition() است که با «گذار فعالیت» استفاده می‌شود.

مشکلات برطرف‌شده

  • ‫MediaSessionCompatTest با IllegalArgumentException ناموفق بود
  • ‫DetailsFragment.installTitleView() در نسخه ۲۵.۱.۰ فراخوانی نشده است
  • تراکنش قطعه نما را پس‌از خروج حفظ می‌کند (مشکل AOSP 230679)
  • ‫BottomNavigationView به فاصله نیاز دارد بین نماد و نوشتار مورد (مشکل AOSP 230653)
  • شنوندگان انتخاب‌شده در PlaybackFragment جدید و PlaybackSupportFragment وجود ندارند
  • در شبیه‌ساز، تمرکز TextInputLayout به‌درستی از کتابخانه پشتیبانی نسخه ۲۵.۱.۰ تغییر نمی‌کند (مشکل AOSP ۲۳۰۴۶۱)
  • نمی‌توان منو BottomNavigationView را جایگزین کرد (مشکل AOSP ۲۳۰۳۴۳)
  • RecyclerView با StaggeredGridLayoutManager با موارد تمام‌عرض ازکار می‌افتد (مشکل AOSP 230295)
  • خرابی در MediaSessionCompat هنگام استفاده از setCallback(null)
  • ‫PlaybackGlueHostOld و PlaybackSupportGlueHostOld وقتی ردیف بازپخش تغییر می‌کند کاربران برگشتی را مطلع نمی‌کنند
  • ‫PlaybackOverlayFragment مثال ‫/test نمی‌تواند پخش را شروع کند
  • ‫RecyclerViewFocusRecoveryTest در API 15 ناموفق است
  • ردیف «نماگرفت‌ها» در بالای صفحه متمرکز می‌شود
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() در API 15 ازکار می‌افتد
  • ‫setActions() در onSubactionClicked() خراب است
  • ‫RecyclerView هنگام بازیافت برخی‌از نگهدارنده‌های نما سقوط می‌کند

بازبینی ۲۵.۱.۰

(دسامبر ۲۰۱۶)

مهم: اشکال شناخته‌شده‌ای در کلاس android.support.v7.media.MediaRouter در نسخه بازبینی ۲۵.۱.۱ و ۲۵.۱.۰ «کتابخانه پشتیبانی» وجود دارد. اگر برنامه شما از نسخه ۷ MediaRouter استفاده می‌کند، باید به Support Library Revision 25.2.0 به‌روزرسانی کنید، که این اشکال را برطرف می‌کند.

تغییرات مهم

  • کاربران ابزارک‌های RecyclerView تودرتو (برای نمونه، فهرست پیمایش عمودی از فهرست‌های پیمایش افقی) می‌توانند با اشاره به مدیران چیدمان ابزارک‌های RecyclerView داخلی درباره تعداد مواردی که باید قبل‌از پیمایش در صفحه آماده شوند، مزایای عملکرد قابل‌توجهی دریافت کنند. تماس LinearLayoutManager.setInitialPrefetchItemCount(N)، که در آن N تعداد بازدیدهای نمایان برای هر مورد داخلی است. برای مثال، اگر فهرست‌های افقی داخلی شما حداقل سه و نیم نمای مورد را در هر زمان نشان می‌دهد، می‌توانید با فراخواندن LinearLayoutManager.setInitialPrefetchItemCount(4) عملکرد را بهبود دهید. انجام این کار به RecyclerView اجازه می‌دهد تا همه نماهای مربوطه را زودتر ایجاد کند، درحالی‌که RecyclerView بیرونی درحال پیمایش است، که این امر میزان لرزش درحین پیمایش را به‌طور قابل‌توجهی کاهش می‌دهد.
  • ‫FragmentActivity.setSupportMediaController() و FragmentActivity.getSupportMediaController() منسوخ شده‌اند. لطفاً از روش‌های جدید MediaControllerCompat.setMediaController() و MediaControllerCompat.getMediaController() ایستا استفاده کنید.
  • وقتی مشتری ازطریق رنگ‌آمیزی appcompat رنگ ابزاره‌ای را مشخص می‌کند (برای مثال، appcompat:buttonTint)، مشتری مسئول ارائه همه وضعیت‌های لازم (مثل «غیرفعال»، «فشار داده‌شده»، و غیره) است. این کار با نحوه مشخص شدن رنگ‌های ابزاره هنگام استفاده از رنگ‌آمیزی چارچوب سازگار است.

میاناهای برنامه‌سازی کاربردی جدید و اصلاح‌شده

مشکلات برطرف‌شده

  • تغییر وضعیت رؤیت‌پذیری گذرواژه در آزمون‌های دسترس‌پذیری ناموفق بود.
  • ‫Appcompat در دستگاه‌های پیش‌از L به state_enabled احترام نمی‌گذارد.
  • سازوکار بازیابی تمرکز به RecyclerView اضافه شد. این کار همچنین ازهم‌پاشیدگی تمرکز تکه‌کدهای پشتیبانی ترجیحی را هنگام استفاده از ناوبری DPAD مانند دستگاه‌های Android TV برطرف کرد.
  • Leanback: وقتی سرصفحه‌ها غیرفعال و آداپتور خالی باشد، BrowseFragment ازکار می‌افتد.
  • سازگاری برنامه: AlertDialog خیلی پهن است.
  • ‫InputContentInfoCompat تماس می‌گیرد requestPermission() درحالی‌که باید releasePermission() تماس بگیرد.
  • ‫MediaBrowserCompat خرابی.
  • وقتی رؤیت‌پذیری روی GONE تنظیم شده باشد، CoordinatorLayout نماها را اندازه‌گیری/چیدمان می‌کند.
  • ‫AnimatedVectorDrawableCompat در سطح API پایین‌تر از ۲۴ رنگ‌آمیزی نشد
  • کتابخانه Leanback خطاهای ساختگی lint را راه‌اندازی می‌کند
  • کتابخانه پالت باعث شد آزمایش‌ها در همه سطوح API ناموفق باشد
  • ‫RecyclerView آزمایش در Leanback ناموفق بود
  • وقتی RecyclerView درحال بازیافتن نگهدارنده‌های نما است، ازکار می‌افتد (مشکل AOSP ۲۲۵۷۶۲)
  • ‫Fragment.onDestroy() برای بخش در پشته برگشت فراخوانده نشد
  • وقتی CollapsingToolbarLayout جمع می‌شود، پرده نمایش رسم نمی‌شود
  • ‫CoordinatorLayout.offsetChildByInset() پرتاب می‌کند IllegalArgumentException
  • ‫RecyclerView مورد درحال جدا شدن از RecyclerView داخلی است، از پیش‌دریافت‌های آینده جلوگیری کنید
  • ‫RecyclerView مورد پیوست‌شده نمی‌تواند پیش‌دریافت تودرتو شود
  • داده‌های واکشی اولیه برای عناصر RecyclerView تودرتو درطول چیدمان اولیه دور ریخته می‌شود
  • اگر دو رویداد کشیدن در یک موقعیت برسند، پیش‌واکشی RecyclerView ناموفق است
  • ‫RecyclerView باید به‌صورت حدسی چیدمان کند درحالی‌که RenderThread درحال پردازش است
  • منابع رنگ پیکربندی‌شده برای شب که به «کشیدنی‌ها» تبدیل شده‌اند همیشه به‌درستی از حافظه نهان «منابع» پاک نمی‌شوند
  • ‫FloatingActionButton: تنظیم «فهرست رنگ پس‌زمینه» به‌صورت برنامه‌نویسی به‌درستی کار نمی‌کند (مشکل AOSP ۲۲۷۴۲۸)
  • TextInputLayout: حروف برای ErrorView تنظیم نمی‌شود (مشکل AOSP 227803)
  • TextInputLayout همیشه به رنگ خطای روشن در زیر API 23 برمی‌گردد (مشکل AOSP 221992)
  • وقتی اشاره‌گر از روی آن برداشته می‌شود، FloatingActionButton فشرده نشان داده می‌شود

فهرست کامل رفع اشکالات عمومی در AOSP Issue Tracker دردسترس است.

منسوخ‌سازی‌ها

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

بازبینی ۲۵.۰.۱

(نوامبر ۲۰۱۶)

مشکلات برطرف‌شده

  • کلید تغییر وضعیت گذرواژه TextInputLayout اکنون به‌طور پیش‌فرض غیرفعال است تا از بازنویسی غیرضروری عناصر کشیدنی پایانی مشخص‌شده توسط توسعه‌دهنده جلوگیری شود. ممکن است ازطریق passwordToggleEnabled ویژگی XML به‌صورت دستی فعال شود.
  • ‫BottomNavigationView مورد اکنون تک‌خطی است تا با مشخصات Material مطابقت داشته باشد.
  • اگر مدیر چیدمان تهی باشد، RecyclerView درطول پیش‌واکشی ازکار می‌افتد.
  • بلندی BottomNavigationView اکنون به‌درستی تنظیم شده است. (مشکل AOSP 226182)
  • BottomNavigationView هنگام افزودن گزینه‌های منو به‌صورت برنامه‌ریزی‌شده ازکار می‌افتد. (مشکل AOSP 225731)
  • به TextInputLayout چپ+راست ترکیب‌پذیرهای مرکب اصلاح کنید. (مشکل AOSP 225836)
  • وقتی دارنده نمای بازیافت می‌شود، RecyclerView ازکار می‌افتد. (مشکل AOSP ۲۲۵۷۶۲)
  • ‫Leanback: TalkBack اغلب کلمه «null» را در نماهای صفحه تقسیم‌شده می‌گوید.
  • RecyclerView: مشکلات پردازش در «استودیو Android». (مشکل AOSP 225753)
  • پس‌از اینکه onNavigationItemSelected() مقدار نادرست برمی‌گرداند، BottomNavigationView همچنان مورد منو را به‌عنوان انتخاب‌شده نشان می‌دهد. (مشکل AOSP 225898)
  • ‫ForwardingListener‏ NoSuchMethodError را پرتاب می‌کند. (AOSP issue 225647)
  • TextInputEditText در حالت استخراج «ویرایشگر روش ورودی» راهنمایی نشان نمی‌دهد. (مشکل AOSP 221880)

فهرست کامل رفع اشکالات عمومی در AOSP Issue Tracker دردسترس است.

بازبینی ۲۵.۰.۰

(اکتبر ۲۰۱۶)

تغییرات مهم

  • سازنده ContextCompat محافظت‌شده شده است. این کلاس نباید به‌صورت عمومی نمونه‌سازی شود، اما ممکن است توسط کتابخانه‌های پشتیبانی که سطوح جدیدتر API را هدف قرار می‌دهند گسترش یابد.
  • سازنده ActivityCompat محافظت‌شده است. این کلاس نباید به‌صورت عمومی نمونه‌سازی شود، اما ممکن است توسط کتابخانه‌های پشتیبانی که سطوح جدیدتر API را هدف قرار می‌دهند گسترش یابد.
  • ‫getReferrer(Activity) ثابت شده است.
  • ‫android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V) برداشته شده است. همه پیاده‌سازی‌های کارخواه این روش باید برداشته شود.
  • ‫android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object) برداشته شده است. کاربردها باید با روشی با نام مناسب‌تر fromMediaSession() جایگزین شوند.
  • ‫android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) برداشته شد. کاربردها باید با روشی با نام مناسب‌تر MediaSessionCompat.QueueItem#fromQueueItem جایگزین شوند.
  • ‫android.support.v7.widget.Space برداشته شده است. کاربردها باید با android.support.v4.widget.Space جایگزین شود.

میاناهای برنامه‌سازی کاربردی جدید

  • کلاس android.support.design.widget.BottomNavigationView الگوی پیمایش پایین را از مشخصات Material Design پیاده‌سازی می‌کند.
  • بسته جدید android.support.v13.view.inputmethod شامل کلاس‌هایی برای دسترسی به ویژگی‌های android.view.inputmethod.InputConnection معرفی‌شده پس‌از سطح ۱۳ میانای برنامه‌سازی کاربردی است.
  • کلاس android.v7.widget.RecyclerView.DividerItemDecoration پیاده‌سازی پایه را برای تقسیم‌کننده‌های عمودی یا افقی بین موارد ارائه می‌دهد.
  • سبک‌های تزئینی جدید در android.support.v7.app.NotificationCompat، DecoratedCustomViewStyle و DecoratedMediaCustomViewStyle، کلاس‌های آینه‌ای اضافه‌شده در میانای برنامه‌سازی کاربردی پلاتفرم ۲۴.

مشکلات برطرف‌شده

فهرست کامل رفع اشکالات عمومی در AOSP Issue Tracker دردسترس است.

بازبینی ۲۴.۲.۱

سپتامبر ۲۰۱۶

مشکلات برطرف‌شده:

فهرست کامل رفع اشکالات عمومی در AOSP Issue Tracker دردسترس است.

بازبینی ۲۴.۲.۰

اوت ۲۰۱۶

نسخه ۲۴.۲.۰ شامل تغییرات زیر است:

توجه: نسخه ۲۴.۲.۰ پشتیبانی از Android 2.2 (سطح میانای برنامه‌سازی کاربردی ۸) و نسخه‌های پایین‌تر را برمی‌دارد. کلاس‌ها و روش‌هایی که فقط برای ارائه آن نسخه‌های سیستم وجود دارند اکنون به‌عنوان منسوخ علامت‌گذاری شده‌اند و دیگر نباید از آن‌ها استفاده شود. این کلاس‌ها و روش‌های منسوخ‌شده ممکن است در نسخهٔ پخش بعدی برداشته شوند.

تقسیم کتابخانه پشتیبانی v4

با این نسخه، کتابخانه پشتیبانی v4 به چندین واحد کوچک‌تر تقسیم شده است:

support-compat
پوشش‌های سازگاری برای میاناهای برنامه‌سازی کاربردی چارچوب جدید، مانند Context.getDrawable() و View.performAccessibilityAction() ارائه می‌دهد.
support-core-utils
تعدادی کلاس سودمند، مانند AsyncTaskLoader و PermissionChecker، ارائه می‌دهد.
support-core-ui
مجموعه‌ای از عناصر مرتبط با واسط کاربر، مثل ViewPager،‏ NestedScrollView، و ExploreByTouchHelper را پیاده‌سازی می‌کند.
support-media-compat
بخش‌هایی از چارچوب رسانه را به نسخه‌های قبلی برمی‌گرداند، ازجمله MediaBrowser و MediaSession.
support-fragment
چارچوب قطعه را به نسخه‌های قبلی برمی‌گرداند. این واحد به support-compat، support-core-utils، support-core-ui، و support-media-compat وابسته است.

برای سازگاری با نسخه‌های قبلی، اگر support-v4 را در نوشتار Gradle خود فهرست کنید، APK شما شامل همه این واحدها خواهد بود. بااین‌حال، برای کاهش اندازه APK، توصیه می‌کنیم فقط واحدهای خاصی را که برنامه‌تان نیاز دارد فهرست کنید.

به‌روزرسانی‌های میانای برنامه‌سازی کاربردی

  • کاربرانی که از برگه‌های سفارشی استفاده می‌کنند می‌توانند کنترل کنند که «برنامه‌های فوری» باز شود یا نه. (توجه داشته باشید که «برنامه‌های فوری» هنوز به‌طور عمومی دردسترس نیستند.) برای فعال یا غیرفعال کردن «برنامه‌های فوری»، با CustomTabsIntent.Builder.setInstantAppsEnabled() تماس بگیرید یا EXTRA_ENABLE_INSTANT_APPS را مشخص کنید. به‌طور پیش‌فرض، «زبانه‌های سفارشی» وقتی ویژگی «برنامه‌های فوری» دردسترس قرار گیرد، به‌طور پیش‌فرض آن را فعال می‌کنند.
  • TextInputLayout از تغییر وضعیت رؤیت‌پذیری گذرواژه از مشخصات طراحی سه‌بعدی پشتیبانی می‌کند.
  • بسته جدید android.support.transition چارچوب گذارها را به سطوح API 14 و بالاتر برمی‌گرداند. برای اطلاعات بیشتر، به مرجع android.support.transition مراجعه کنید.
  • کتابخانه پشتیبانی «برگه‌های سفارشی» پشتیبانی از استفاده از RemoteViews در نوارابزار ثانویه را اضافه می‌کند. روش setToolbarItem() فعلی اکنون منسوخ شده است.
  • AppCompatResources امکان بار کردن <vector> (در سطح میانای برنامه‌سازی کاربردی ۹ و بالاتر) یا <animated-vector> (در سطح میانای برنامه‌سازی کاربردی ۱۱ و بالاتر) از شناسه منبع را بااستفاده از روش جدید getDrawable() اضافه می‌کند.
  • ‫CoordinatorLayout اکنون از تعریف نماهای درونی و مشخص کردن اینکه نماهای دیگر باید از نماهای درونی اجتناب کنند پشتیبانی می‌کند. این کار به برنامه‌ها امکان می‌دهد الگوهای رفتاری مشابه با روشی که FloatingActionButton از مسیر Snackbar کنار می‌رود را تکرار کنند، اما برای هر فرزند نمای دلخواه. برای اطلاعات بیشتر، به LayoutParams.insetEdge و LayoutParams.dodgeInsetEdges سند مرجع مراجعه کنید.
  • کلاس جدید DiffUtil می‌تواند تفاوت بین دو مجموعه را محاسبه کند و فهرستی از عملیات‌های به‌روزرسانی را که برای مصرف توسط RecyclerView.Adapter مناسب است ارسال کند.
  • RecyclerView.OnFlingListener برای پشتیبانی از رفتار سفارشی در پاسخ به پرتاب‌ها اضافه شده است. کلاس SnapHelper پیاده‌سازی خاصی برای چسباندن نمای فرزند ارائه می‌دهد، و کلاس LinearSnapHelper این پیاده‌سازی را گسترش می‌دهد تا رفتار چسباندن با تراز مرکزی مشابه ViewPager را ارائه دهد.
  • کتابخانه «زبانه‌های سفارشی» اکنون به مشتریان امکان می‌دهد با فراخوانی CustomTabsIntent.setAlwaysUseBrowserUI()، واسط کاربر مرورگر استاندارد را به‌جای واسط کاربر زبانه‌های سفارشی درخواست کنند. این رفتار در مواردی مفید است که مرورگر به‌طور پیش‌فرض از میانای کاربری برگه‌های سفارشی استفاده می‌کند اما کاربر ترجیح می‌دهد از میانای کاربری مرورگر استاندارد استفاده کند.

تغییرات رفتار

  • اگر از عملکرد روز/شب کتابخانه appcompat استفاده می‌کنید، سیستم اکنون هرزمان که حالت روز/شب تغییر می‌کند (چه به‌دلیل زمان روز، چه به‌دلیل فراخوانی AppCompatDelegate.setLocalNightMode())، فعالیتتان را به‌طور خودکار بازسازی می‌کند.
  • اگر نوار وضعیت نیمه‌شفاف باشد، Snackbar اکنون در پشت نوار پیمایش رسم می‌کند.

کتابخانه MediaRouter

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

منسوخ‌سازی‌ها

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

  • چندین روش در کلاس‌های زیر فقط برای API 8 و پایین‌تر لازم بود و دیگر نباید استفاده شود. به‌جای آن، از پیاده‌سازی‌های چارچوب استفاده کنید.
    • ‫android.support.v4.view.KeyEventCompat: جایگزین کردن با KeyEvent
    • ‫android.support.v4.view.MotionEventCompat: استفاده از MotionEvent
    • ‫android.support.v4.view.ViewCompat: استفاده از View
    • ‫android.support.v4.view.ViewConfigurationCompat: استفاده از ViewConfiguration
  • AccessibilityServiceInfoCompat.getDescription() به‌نفع AccessibilityServiceInfoCompat.loadDescription() منسوخ شده است، که شرحی درست بومی‌سازی‌شده برمی‌گرداند.
  • نباید کلاس ActivityCompat را مستقیماً نمونه‌سازی کنید. روش غیرایستای getReferrer(Activity) در نسخهٔ پخش آتی ایستا خواهد شد.
  • ‫CoordinatorLayout.Behavior.isDirty() منسوخ شده است و دیگر توسط CoordinatorLayout فراخوانده نمی‌شود. همه پیاده‌سازی‌ها و همچنین همه فراخوانی‌های این روش باید برداشته شود.
  • ‫MediaSessionCompat.obtain() منسوخ شده است و با روشی با نام مناسب‌تر fromMediaSession() جایگزین شده است.
  • ‫MediaSessionCompat.QueueItem.obtain() منسوخ شده است و با روشی با نام مناسب‌تر fromQueueItem() جایگزین شده است.
  • چندین کلاس انتزاعی منسوخ شده‌اند و با واسط‌هایی که معادل‌های چارچوب آن‌ها را دقیق‌تر منعکس می‌کنند جایگزین شده‌اند.
  • ‫CustomTabsSession.setToolbarItem() منسوخ شده است و با مبتنی بر RemoteViews setSecondaryToolbarViews() جایگزین شده است.

رفع اشکال‌ها

مشکلات شناخته‌شده زیر با انتشار نسخه ۲۴.۲.۰ برطرف شده است:

  • مطمئن شوید نشانگر SwipeRefreshLayout وقتی setRefreshing(true) قبل‌از اولین گذر اندازه‌گیری فراخوانده می‌شود نشان داده شود (AOSP مشکل ۷۷۷۱۲)
  • جلوگیری از پرش TabLayout هنگام تغییر صفحه (AOSP مشکل ۱۸۰۴۵۴)
  • هنگام لغو آماده‌سازی ClassNotFoundException SavedState در سطح API 11 و پایین‌تر (مشکل AOSP 196430) از آن اجتناب کنید

فهرست کامل رفع اشکالات عمومی در AOSP Issue Tracker دردسترس است.

بازبینی ۲۴.۱.۱

ژوئیه ۲۰۱۶

مشکلات برطرف‌شده:

  • مشکلی را در نسخه ۲۴.۱.۰ برطرف می‌کند که بر شناسه‌های منبع هم‌رسانی‌شده بین کتابخانه‌های پشتیبانی تأثیر می‌گذاشت. این مشکل باعث می‌شد برنامه‌هایی که به کتابخانه‌های پشتیبانی دارای منابع (مثل طراحی و appcompat) وابسته بودند با مشکلاتی ناشی از عدم تطابق شناسه منبع مواجه شوند.

بازبینی ۲۴.۱.۰

ژوئیه ۲۰۱۶

تغییرات مربوط به پشتیبانی از نسخه ۴ کتابخانه:
  • NotificationCompat.Action.WearableExtender روش‌های جدید getHintDisplayActionInline() و setHintDisplayActionInline() برای سازگاری با پیش‌نمایش Android Wear 2.0 دارد. این روش‌ها به برنامه اجازه می‌دهد مشخص کند که کنشی باید به‌صورت درون‌خطی با اعلان نمایش داده شود.
  • اگر اشاره به FragmentTransaction که هنوز ثبت نشده است اضافه شده باشد، تماس با Fragment.setUserVisbileHint() دیگر باعث نمی‌شود که تکه‌کد شروع شود. این بر کاربران FragmentPagerAdapter که setUserVisbileHint() را ملغی می‌کنند و پس‌از فراخوانی super.setUserVisibleHint()، وضعیت چرخه حیات خاصی را برای قطعه درنظر می‌گیرند تأثیر می‌گذارد. برای اطلاعات بیشتر، صفحه مرجع اسناد Fragment.setUserVisbileHint() را ببینید.

مشکلات برطرف‌شده:

  • ‫TabLayout.setCustomView(null)‎ منجر به NullPointerException می‌شود (AOSP مسئله ۲۱۴۷۵۳)
  • ‫TabLayout زبانه‌های سفارشی را به‌اشتباه برجسته می‌کند (مشکل AOSP شماره ۲۱۴۳۱۶)
  • ‫AppCompatTextHelper از آرایه مشخصه مرتب‌نشده به‌درستی استفاده می‌کند (مشکل AOSP شماره ۲۱۴۳۶۶)
  • هنگام استفاده از «پوشش زمینه‌ای» سفارشی، نمی‌توان به VectorDrawable از XML محتوی drawable ارجاع داد (مشکل AOSP‏ ۲۱۴۰۵۵)
  • ‫ViewDragHelper.saveLastMotion()‏ ArrayIndexOutOfBoundsException را ایجاد می‌کند (AOSP مسئله ۲۱۲۹۴۵)
  • وقتی از setState(STATE_EXPANDED) استفاده می‌کنید، BottomSheetBehavior تا ارتفاع محتوای قدیمی ازهم باز می‌شود (مشکل AOSP 213660)
  • ‫CollapsingToolbarLayout کودکان سنجاق‌شدنی با حاشیه‌های بالا یا پایین را مدیریت نمی‌کند (مشکل AOSP‏ 213001)
  • عنوان مرور Leanback از تراز کردن راست‌به‌چپ پشتیبانی نمی‌کند (مشکل AOSP 213461)
  • ‫PagerTabStrip به‌دلیل نبودن شرح ارثی ناپدید می‌شود (مشکل AOSP 213359)
  • هنگام استفاده از «بولی» برای تنظیم پرچم‌های شرطی، پیوند داده NullPointerException را پرتاب می‌کند (مشکل AOSP 191841)
  • ‫CoordinatorLayout به setFitsSystemWindows()‎ پاسخ نمی‌دهد (مشکل AOSP 212720)
  • وقتی وضعیت اولیه تنظیم می‌شود، BottomSheetBehavior ازکار می‌افتد (مشکل AOSP 203114)
  • اگر شاخص صفحه مقدار بزرگی داشته باشد، ViewPager از صفحات رد می‌شود (مشکل AOSP 211734)
  • ‫BottomSheetBehavior با چیدمان‌های پویا کار نمی‌کند (مشکل AOSP 205226)

بازبینی ۲۴.۰.۰

ژوئن ۲۰۱۶

تغییرات مربوط به پشتیبانی از نسخه ۴ کتابخانه:
  • ‫Fragment.commitNow() برای تعهد هم‌زمان اضافه شد
  • ‫NotificationCompat.MessagingStyle برای مکالمه‌های چندطرفه اضافه شد
  • ‫NotificationManagerCompat.areNotificationsEnabled() و getImportance() را اضافه کرد
  • ‫MediaSessionCompat اکنون عملکرد MediaSession را منعکس می‌کند و دیگر به‌طور خودکار با setMediaButtonReceiver() تماس نمی‌گیرد

توجه: فقط MediaBrowserServiceCompat در نسخه ۲۴.۰.۰ با نسخه‌های آینده Android فراتر از API 24 سازگار است. اگر از نسخه‌های قبلی استفاده می‌کنید، برای اطمینان از سازگاری، به این نسخه به‌روز کنید.

تغییرات برای کتابخانه appcompat نسخه ۷:
  • پشتیبانی از ارجاع به اشیا ColorStateList زمینه‌ای از XML اضافه شد
تغییرات پشتیبانی طراحی کتابخانه:
تغییرات کتابخانه v17 Leanback:
  • ‫OnboardingFragment برای ارائه خوشامدگویی اولین اجرا و جریان راه‌اندازی اضافه شد
تغییرات برای زبانه سفارشی:
  • پشتیبانی برای ارائه سلسله‌مراتبی RemoteViews برای نوارابزار فرعی اضافه شد
  • ‫CustomTabsClient.connectAndInitialize() برای گرم کردن یک‌خطی اضافه شد

بازبینی ۲۳.۴.۰

مه ۲۰۱۶

تغییرات مربوط به پشتیبانی از نسخه ۴ کتابخانه:
  • مشکلی که باعث می‌شد تکه‌ها به ترتیب اشتباه اضافه شوند برطرف شد. (Issue 206901)
  • مشکلی که باعث می‌شد نوار برنامه پس‌از پیمایش خارج از صفحه ترسیم نشود برطرف شد. (مشکل ۱۷۸۰۳۷)
تغییرات برای کتابخانه appcompat نسخه ۷:
تغییرات پشتیبانی طراحی کتابخانه:
تغییرات برای کتابخانه Vector Drawable:
  • اشکالی که باعث می‌شد VectorDrawableCompat در TextView در سطح میانای برنامه‌سازی کاربردی ۲۳ به‌درستی پرداز نشود برطرف شد. (مشکل 206227)

بازبینی ۲۳.۳.۰

آوریل ۲۰۱۶

تغییرات مربوط به پشتیبانی از نسخه ۴ کتابخانه:
  • ‫AppLaunchChecker اضافه شد تا به پیگیری نحوه راه‌اندازی برنامه‌تان توسط کاربر در گذشته کمک کند. ‫hasStartedFromLauncher() به شما اطلاع می‌دهد که آیا کاربر قبلاً برنامه شما را از صفحه اصلی راه‌اندازی کرده است یا اینکه برنامه فقط ازطریق روش‌های دیگر (برای مثال، برای مشاهده نشانی‌های وب خاص) شروع شده است.
  • نشت حافظه در MediaBrowserServiceCompat.mConnections برطرف شد. (مشکل ۲۰۵۲۲۰)
  • مشکلی که در آن ViewPager حاشیه‌های صفحه را هنگام ورق زدن صفحه درنظر نمی‌گرفت برطرف شد. (مشکل ۲۰۳۸۱۶)
  • ‫Fragment.onRequestPermissionsResult() اکنون به تکه‌های کودک تحویل داده می‌شود.
تغییرات برای کتابخانه appcompat نسخه ۷:
تغییرات برای کتابخانه mediarouter نسخه ۷:
تغییرات برای کتابخانه اولویت v7:
تغییرات برای کتابخانه v7 recyclerview:
  • اشکالی برطرف شد که در آن اگر محدوده موارد نمایان کوچک می‌شد، RecyclerView کاربردهای برگشتی پیمایش را فراخوانی نمی‌کرد. (Issue 200987)
  • اشکالی برطرف شد که در آن اگر RecyclerView در چیدمان خطی بود، وزن‌دار بود، و حاوی تصویر بود، منجمد می‌شد. (مشکل ۲۰۳۲۷۶)
  • ازکارافتادگی در OrientationHelper.getStartAfterPadding() رفع شد. (Issue 180521)
  • خرابی مربوط به استفاده از android:nestedScrollingEnabled برطرف شد. (Issue 197932)
تغییرات پشتیبانی طراحی کتابخانه:

بازبینی ۲۳.۲.۱

مارس ۲۰۱۶

تغییرات مربوط به پشتیبانی از نسخه ۴ کتابخانه:
تغییرات برای کتابخانه appcompat نسخه ۷:
  • وابستگی به دارایی‌های برداری را برگرداندیم تا توسعه‌دهندگانی که از کتابخانه appcompat استفاده می‌کنند مجبور نباشند از VectorDrawable و پرچم‌های ساخت مرتبط با آن استفاده کنند.
  • مشکل سازگاری «حالت شب» با سطح میانای برنامه‌سازی کاربردی ۲۳ برطرف شد. (صدور ۲۰۱۹۱۰)
  • مشکل سازگاری با SwitchCompat و سطح میانای برنامه‌سازی کاربردی ۷ برطرف شد. (مشکل ۲۰۱۹۴۲)
  • مشکل مربوط به انتشار مقادیر پیکربندی در اشیای «منابع» برطرف شد مشکل ۲۰۱۹۲۸
  • مشکل سازگاری که در آن android.support.v7.app.NotificationCompat.MediaStyle دکمه لغو در سطح API 21 و پایین‌تر نامرئی می‌شد برطرف شد. (Issue 202156)
  • خرابی سازگاری با AppCompatSpinner در سطح API 21 و پایین‌تر برطرف شد. (Issue 202246)
  • مشکلی که باعث می‌شد سبک app:textAllCaps = "false" کار نکند برطرف شد. (Issue 202117)
  • مشکل ازکارافتادن هنگام بازیابی SearchView برطرف شد. ‫(نسخه ۲۰۱۸۳۶)
  • رفع نشت حافظه‌ای که هنگام رنگ‌آمیزی منابع کشیدنی بااستفاده از AppCompat رخ می‌دهد. (Issue 202379)
  • مشکلی در KeyEvent در سطح API 11 و پایین‌تر برطرف شد. (Issue 202939)
تغییرات برای کتابخانه v7 cardview:
تغییرات برای کتابخانه v7 recyclerview:
  • اشکالات مربوط به روش‌های مختلف مشخصه اندازه‌گیری برطرف شد. (Issue 201856)
  • دوره قرنطینه را که در آن RecyclerView تغییرات آداپتور را درحین محاسبه چیدمان یا پیمایش مجاز نمی‌داند کاهش داد. (نسخه 202046)
  • خرابی هنگام تماس با notifyItemChanged() در موردی که خارج از دید است برطرف شد. (شماره 202136)
  • خرابی‌ای که وقتی RecyclerView.LayoutManager نمایشی را در همان گذر اندازه‌گیری اضافه و حذف می‌کند برطرف شد. (Issue 193958)
تغییرات برای کتابخانه mediarouter نسخه ۷:
تغییرات v17 کتابخانه Leanback:
  • مشکلی در GridLayout.onAddFocusables() برطرف شد که باعث می‌شد مورد اشتباه انتخاب شود.
  • مشکل ناپدید شدن کنش‌های GuidedStepFragment پس‌از جمع شدن کنش برطرف شد.
تغییرات پشتیبانی طراحی کتابخانه:
  • ازکارافتادن TabLayout ناشی از استفاده از استخر برگه برطرف شد. (Issue 201827)
  • اشکالی در NavigationView برطرف شد که باعث می‌شد رنگ اشتباه انتخاب شود. (Issue 201951)
  • اشکالی که در آن setBackgroundTintList() دیگر نمی‌توانست رنگ پس‌زمینه را تغییر دهد برطرف شد. (Issue 201873)
  • مشکلی که باعث می‌شد AppBarLayout هنگام استفاده با android:fitsSystemWindows = “true” به‌طور کامل از دید خارج نشود برطرف شد. (شماره ۲۰۱۸۲۲)
  • رفع مشکلی که در آن BottomSheetDialog بازدیدهای محتوای کوتاه را به‌درستی نمایش نمی‌داد. (شماره ۲۰۱۷۹۳)
  • رفع مشکلی که باعث می‌شد BottomSheetDialogFragment هنگام تغییر محتوای داخل به‌صورت پراکنده حرکت کند. (شماره ۲۰۲۱۲۵)
  • خرابی در شمارنده TextInputLayout برطرف شد پیوند
  • ازکارافتادگی‌ای که هنگام بازیابی وضعیت ذخیره‌شده توسط TextInputLayout.getCounterMaxLength() رخ می‌داد برطرف شد. (Issue 202375)
  • ClassCastException که هنگام بازیابی CoordinatorLayout بااستفاده از وضعیت ذخیره‌شده نمای غیرCoordinatorLayout رخ می‌داد برطرف شد.
تغییرات برای VectorDrawableCompat:
  • اشکالی که باعث می‌شد متغیر اشتباهی برای android:tintMode خوانده شود برطرف شد. (نسخه 201907)

نسخه ۲۳.۲.۰

فوریه ۲۰۱۶

تغییرات کتابخانه پشتیبانی v4:
  • ‫MediaBrowserCompat برای پشتیبانی از MediaBrowser و MediaBrowserServiceCompat برای پشتیبانی از MediaBrowserService اضافه شد. این ویژگی هنگام اتصال سرویس پس‌زمینه‌ای برنامه رسانه‌ای با عناصر واسط کاربر، و یکپارچه‌سازی با Android Auto و Android Wear بدون نیاز به سطح میانای برنامه‌سازی کاربردی ۲۱ یا بالاتر مفید است.
  • اکنون سیستم onActivityResult() را برای FragmentActivity تودرتو فرا می‌خواند.
تغییرات برای کتابخانه v7 AppCompat:
  • عملکرد «حالت شب» به سطح میانای برنامه‌سازی کاربردی ۱۴ و بالاتر اضافه شد. براساس زمان روز یا تنظیمات ویژه برنامه، بین زمینه روشن Material و زمینه تیره Material جابه‌جا شوید.
    • زمینه روز و شب را می‌توانید در اینجا پیدا کنید: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode(): با ارسال یکی از ثابت‌های زیر، حالت پیش‌فرض برنامه را تنظیم می‌کند:
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • ‫AppCompatDelegate.setLocalNightMode(): تنظیم حالت شب را برای عنصر برنامه محلی ملغی می‌کند.
    • ‫AppCompatDelegate.getDefaultNightMode(): حالت شب پیش‌فرض را برمی‌گرداند.
تغییرات برای کتابخانه v7 mediarouter:
  • ‫MediaRouteControllerDialog اکنون رنگ‌های زمینه سفارشی برنامه را به‌درستی اعمال می‌کند.
تغییرات کتابخانه پشتیبانی طراحی:
  • پشتیبانی از برگه‌های پایین اضافه شد. افزایه تعاملی، BottomSheetBehavior، به نمای کودک CoordinatorLayout اجازه می‌دهد به‌عنوان برگه‌ای در پایین عمل کند. کلاس پایه، BottomSheetCallback، کاربرگ‌های زیرین را برای نظارت بر رویدادها ارائه می‌دهد.
تغییرات برای کتابخانه پشتیبانی از CustomTabs:
  • اکنون Chrome Custom Tabs به برنامه‌ها اجازه می‌دهد علاوه‌بر دکمه کنش بالای موجود، نوار پایینی با دکمه‌های کنش نیز اضافه کنند.
  • CustomTabsIntent.Builder.addToolBarItem(): دکمه کنش به برگه سفارشی اضافه می‌کند. می‌توانید از این برای افزودن چند دکمه استفاده کنید.
  • ‫CustomTabsSession.setToolBarItem(): تصاویر مربوط به عناصر نوارابزار را به‌روز می‌کند. این روش تنها درصورتی موفق خواهد بود که شناسه معتبری به آن داده شود و جلسه مرورگر در پیش‌زمینه باشد.
کتابخانه پشتیبانی VectorDrawable اضافه شد:
  • کلاس‌های اضافه‌شده:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • پشتیبانی از دارایی‌های VectorDrawable را به برنامه‌هایی که در سطح میانای برنامه کاربردی ۷ یا بالاتر اجرا می‌شوند اضافه می‌کند. دارایی‌های AnimatedVectorDrawable در سطح میانای برنامه‌سازی کاربردی ۱۱ یا بالاتر نیز پشتیبانی می‌شوند. دارایی‌های برداری می‌توانند به‌طور قابل‌توجهی کوچک‌تر از دارایی‌های تصویری باشند و با کاهش تعداد دارایی‌های موردنیاز برای پشتیبانی از صفحه‌های نمایش چندگانه دستگاه، به کاهش حجم برنامه کمک کنند.
  • این کتابخانه اکنون وابستگی کتابخانه v7 AppCompat است و به توسعه‌دهندگان و AppCompat اجازه می‌دهد به‌راحتی از دارایی‌های برداری استفاده کنند. برای استفاده از VectorDrawableCompat در ImageButton یا ImageView، از مشخصه app:srcCompat XML یا روش setImageResource() استفاده کنید.
  • برای حفظ ارجاع به شناسه‌های مشخصه در سطح API 20 یا پایین‌تر، پرچم appt زیر را به فایل build,gradle خود اضافه کنید:
    • اگر با «افزایه Android برای Gradle» نسخه ۱.۵.۰ یا پایین‌تر می‌سازید، موارد زیر را به فایل build.gradle اضافه کنید:
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
    • اگر با «افزایه Android برای Gradle» نسخه ۲.۰.۰ یا بالاتر می‌سازید، موارد زیر را به فایل build.gradle اضافه کنید:
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
تغییرات v17 Leanback Library:
  • قابلیت‌های جدیدی به GuidedStepFragment اضافه شد، که مؤلفه‌ای است که کاربران را در تصمیم‌گیری یا مجموعه‌ای از تصمیمات راهنمایی می‌کند:
    • کنش‌های دکمه به GuidedAction اضافه شد:
      • GuidedStepFragment.setButtonActions(): فهرستی از GuidedAction دکمه را تنظیم می‌کند که کاربر می‌تواند از نمای «کنش‌ها» انتخاب کند.
    • فیلدهای شرح اکنون قابل ویرایش هستند:
      • ‫GuidedAction.Builder.descriptionEditable(): هنگام عبور true، شرح کنش را روی قابل‌ویرایش تنظیم می‌کند.
      • ‫GuidedAction.getEditDescription(): شرح ویرایش‌شدنی را به‌عنوان CharSequence برمی‌گرداند.
    • فهرست‌های کرکره‌ای کنش‌های فرعی اضافه شد:
      • GuidedAction.setSubActions(): فهرست GuidedAction را به‌عنوان منوِ کرکره‌ای از کنش‌های فرعی تنظیم می‌کند.
  • ابزاره GuidedDatePickerAction برای عملکرد DatePicker اضافه شد:
    • تاریخ بااستفاده از ستون‌های سال، ماه، و روز انتخاب می‌شود و محدوده سفارشی‌سازی‌پذیر دارد.
    • ‫GuidedDatePickerAction.Builder: کلاس سازنده برای شیء GuidedDatePickerAction.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): با ارسال String سه‌حرفی مناسب، برای مثال “YMD” یا “MDY”، قالب تاریخ موردنظر را تنظیم کنید. یا از مشخصه datePickerFormat در XML استفاده کنید.
تغییرات برای کتابخانه v7 RecyclerView:
  • ‫RecyclerView اکنون ویژگی موافقت اختیاری به‌نام AutoMeasure دارد که به RecyclerView.LayoutManager اجازه می‌دهد به‌راحتی محتوا را بپیچد یا مشخصات اندازه‌گیری مختلف ارائه‌شده توسط ولی RecyclerView را مدیریت کند. این از همه قابلیت‌های پویانمایی موجود در RecyclerView پشتیبانی می‌کند.
    • اگر RecyclerView.LayoutManager سفارشی دارید، برای شروع استفاده از AutoMeasure API جدید، با setAutoMeasureEnabled(true) تماس بگیرید. همه اشیای RecyclerView.LayoutManager داخلی به‌طور پیش‌فرض اندازه‌گیری خودکار را فعال می‌کنند.
    • ‫RecyclerView.LayoutManager دیگر برخی‌از تنظیمات RecyclerView.LayoutParams، مثل MATCH_PARENT در جهت پیمایش، را نادیده نمی‌گیرد.

      توجه: این محدودیت‌های برداشته‌شده ممکن است باعث رفتار غیرمنتظره در چیدمان‌های شما شود. مطمئن شوید که پارامترهای چیدمان صحیح را مشخص کرده‌اید.

  • هنگام به‌روزرسانی RecyclerView.ViewHolder با اطلاعات بار، DefaultItemAnimator اکنون پویانمایی‌های تغییر را غیرفعال می‌کند.
  • اکنون می‌توانید ItemTouchHelper سرعت گریز را تغییر دهید تا حساسیت تند کشیدن را کنترل کنید. برای آسان‌تر یا سخت‌تر کردن تند کشیدن، getSwipeEscapeVelocity(float defaultValue) را ملغی کنید و defaultValue را اصلاح کنید.

بازبینی ۲۳.۱.۱

نوامبر ۲۰۱۵

تغییرات برای کتابخانه recyclerview v7:
  • خرابی‌ای که هنگام انجام کنش کشیدن برای بستن که کلاس ابزار ItemTouchHelper ارائه می‌دهد و سپس افزودن مورد رخ می‌داد برطرف شد. (Issue 190500)
تغییرات برای کتابخانه اولویت v7:
تغییرات در کتابخانه پشتیبانی v17 Leanback:
  • تعدادی از مشکلات داخلی در این کتابخانه برطرف شد.
تغییرات کتابخانه پشتیبانی طراحی:
  • روش getHeaderView به کلاس NavigationView اضافه شد.
  • مشکل پس‌زمینه شفاف برای شیء FloatingActionButton در دستگاه‌های دارای Android 4.0 (سطح API 15) و پایین‌تر برطرف شد. (Issue 183315)

بازبینی ۲۳.۱.۰

اکتبر ۲۰۱۵

تغییرات در کتابخانه پشتیبانی v4:
  • پشتیبانی از میانای OnScrollChangedListener به ابزاره NestedScrollView اضافه شد. این تابع به شما امکان می‌دهد وقتی موقعیت‌های X یا Y پیمایش تغییر می‌کند، تماس برگشتی دریافت کنید.
  • کلاس MediaButtonReceiver اضافه شد تا کنترل‌های بازپخش دریافتی را به سرویسی که کلاس MediaSessionCompat را مدیریت می‌کند بازارسال کند. کلاس MediaSessionCompat سازنده‌ای دارد که می‌تواند گیرنده دکمه رسانه را به‌طور خودکار در مانیفست پیدا کند. دریافت‌کننده دکمه رسانه بخش مهمی برای مدیریت کنترل‌های بازپخش از سخت‌افزار یا کنترل‌های بلوتوث است.
تغییرات برای کتابخانه سازگاری برنامه v7:
  • ابزاره‌های Seekbar و ImageButton طراحی مواد اضافه شد.
  • ابزاره ImageView به‌روزرسانی شد تا از ویژگی سایه‌رنگ پشتیبانی کند.
  • ظاهر و احساس ابزاره SwitchCompat به‌روز شد.
تغییرات مربوط به کتابخانه v7 mediarouter:
  • ویژگی‌های زیر به کلاس MediaRouteChooserDialog اضافه شد:
    • هنگام شناسایی رساننده‌های مسیر رسانه، صفحه بارگیری را نمایش می‌دهد.
    • شامل نماد نوع دستگاه برای شناسایی آسان‌تر دستگاه است.
    • مسیرها را براساس دفعات استفاده در برنامه کنونی مرتب می‌کند.
    • از حالت افقی پشتیبانی می‌کند.
  • ویژگی‌های زیر به کلاس MediaRouteControllerDialog اضافه شد:
    • پخش محتوای صفحه را تشخیص می‌دهد و شرح مناسبی ارائه می‌دهد.
    • از اندازه‌ها و نسبت‌های ابعادی مختلف جلد آلبوم پشتیبانی می‌کند و جلد را به‌صورت ناهمزمان بار می‌کند.
    • رنگ محتوا را براساس رنگ اصلی برنامه به‌طور خودکار انتخاب می‌کند.
    • چیدمان کادر گفتگو را براساس فضای صفحه دردسترس در دستگاه تنظیم می‌کند.
    • از حالت افقی پشتیبانی می‌کند.
تغییرات برای کتابخانه پالت v7:
  • روش setRegion() برای پشتیبانی از استخراج رنگ از ناحیه خاصی از شیء Bitmap اضافه شد.
تغییرات برای کتابخانه recyclerview v7:
  • میانای برنامه‌سازی کاربردی پویانمایی بهبودیافته‌ای به کلاس ItemAnimator برای سفارشی‌سازی‌های بهتر اضافه شد:
    • پویانمایی‌های تغییر دیگر دو نسخه از شیء ViewHolder را اجباری نمی‌کند، که پویانمایی‌های محتوای مورد را فعال می‌کند. همچنین، شیء ItemAnimator تصمیم می‌گیرد که آیا می‌خواهد از همان شیء ViewHolder مجدداً استفاده کند یا شیء جدیدی ایجاد کند.
    • ‫API جدید ثبت اطلاعات به کلاس ItemAnimator انعطاف‌پذیری می‌دهد تا داده‌ها را در نقطه صحیح چرخه حیات چیدمان جمع‌آوری کند. این اطلاعات بعداً به پس‌برگ‌های پویانمایی منتقل می‌شود.
  • طرح انتقالی آسانی برای این تغییر API ناسازگار با نسخه‌های قدیمی ارائه شده است:
    • اگر قبلاً کلاس ItemAnimator را گسترش داده‌اید، می‌توانید کلاس پایه را به SimpleItemAnimator تغییر دهید و کدتان باید مثل قبل کار کند. کلاس SimpleItemAnimator با بسته‌بندی میانای برنامه‌سازی کاربردی جدید، میانای برنامه‌سازی کاربردی قدیمی را ارائه می‌دهد.
    • برخی‌از روش‌ها از کلاس ItemAnimator برداشته شد. کد زیر دیگر کامپایل نخواهد شد:
    • کاتلین

      recyclerView.itemAnimator.supportsChangeAnimations = false

      جاوا

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)

      می‌توانید آن را با موارد زیر جایگزین کنید:

      کاتلین

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false

      جاوا

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
تغییرات در v7، v14، و v17 کتابخانه پشتیبانی اولویت:
  • میاناهای برنامه‌سازی کاربردی برای کنترل کردن EditText کادر گفتگو برداشته شد.
تغییرات در کتابخانه پشتیبانی v17 Leanback:
  • نسخه‌ای از کلاس GuidedStepFragment برای کتابخانه «پشتیبانی» اضافه شد (android.support.v4.app.Fragment را گسترش می‌دهد)، و پویانمایی‌ها و گذارها بهبود یافت.
  • کلاس GuidedStepFragment را به‌روزرسانی کردیم تا بتواند در بالای محتوای موجود قرار بگیرد.
  • امکان حاشیه‌نویسی انواع مختلف تکمیل‌های جستجو به کلاس SearchFragment اضافه شد.
  • پشتیبانی از انتقال اسلاید پلکانی به کلاس VerticalGridFragment اضافه شد.
تغییرات کتابخانه پشتیبانی طراحی:
  • پشتیبانی شمارش نویسه به ابزاره TextInputLayout اضافه شد.
  • با افزودن ثابت SCROLL_FLAG_SNAP، پشتیبانی چسبیدن لبه به کلاس AppBarLayout اضافه شد. وقتی پیمایش تمام می‌شود، اگر نما فقط تا حدی نمایان باشد، نما به نزدیک‌ترین لبه خود می‌چسبد و پیمایش می‌شود.
  • بااستفاده از مشخصه app:actionLayout یا روش MenuItemCompat.setActionView()، پشتیبانی از نماهای سفارشی به کلاس NavigationView اضافه شد.
تغییرات برای کتابخانه پشتیبانی «زبانه سفارشی»:
  • روش enableUrlBarHiding() به کلاس CustomTabsIntent اضافه شد. به مشتری اجازه می‌دهد سفارشی‌سازی کند که آیا نوار نشانی باید به‌طور خودکار در پیمایش به‌پایین پنهان شود یا نه.
  • روش setActionButton() به کلاس CustomTabsSession اضافه شد. به مشتری اجازه می‌دهد نماد دکمه کنش سفارشی را در برگه سفارشی که قبلاً راه‌اندازی شده است تغییر دهد.
  • ثابت‌های TAB_SHOWN و TAB_HIDDEN را به‌عنوان رویدادهای جدید برای روش onNavigationEvent کلاس CustomTabsCallback اضافه کرد.

بازبینی ۲۳.۰.۱

سپتامبر ۲۰۱۵

تغییرات برای v7 و v14 کتابخانه پشتیبانی اولویت:
  • فایل‌های سبک و چیدمان طراحی مادی اضافه شد. (Issue 183376)
تغییرات برای کتابخانه سازگاری برنامه v7:
  • مشکلات ازکارافتادگی کلاس Fragment با محدود کردن استفاده از لایه‌های سخت‌افزاری به Android 4.1 (سطح API 16) و بالاتر برطرف شد. (مسئله ۱۸۳۸۹۶)
  • رفع مشکلی که باعث می‌شد وقتی فعالیتی کلاس Toolbar را برای عملکرد به‌عنوان ActionBar بااستفاده از روش setSupportActionBar() تنظیم کرده بود، دکمه‌های سخت‌افزاری کار نکند. (مسئله ۱۸۳۳۳۴)
  • کلاس AppCompatDialogFragment را به‌روزرسانی کردیم تا دیگر خطای Windows feature must be requested before adding content را ایجاد نکند. (Issue 183186)
تغییرات کتابخانه پشتیبانی طراحی:
  • کلاس AppBarLayout را اصلاح کردیم تا اکنون پس‌از چرخش به‌درستی رسم شود. (Issue 183109)
  • کلاس TabLayout را اصلاح کردیم تا اکنون وقتی کاربر پس‌از تند کشیدن کلیک می‌کند، درست عمل کند. (Issue 183123)
تغییرات برای کتابخانه پشتیبانی «زبانه سفارشی»:
  • مقدار minSdkVersion از ۱۶ به ۱۵ برای پشتیبانی از نسخه کاهش یافت.
  • روشی برای تولید CustomTabsSessionToken از یک هدف اضافه شد.

بازبینی ۲۳

اوت ۲۰۱۵

کتابخانه‌های پشتیبانی جدید اضافه شد:

برای مشاهده فهرست کامل تغییرات «کتابخانه پشتیبانی»، گزارش تفاوت‌های میانای برنامه‌سازی کاربردی «کتابخانه پشتیبانی» را ببینید.

بازبینی ۲۲.۲.۱

ژوئیه ۲۰۱۵

تغییرات کتابخانه پشتیبانی طراحی:
  • روش‌های hide() و show() به کلاس FloatingActionButton برای راه‌اندازی برنامه‌ریزی‌شده پویانمایی‌ها اضافه شد.
  • ثابت LENGTH_INDEFINITE به کلاس Snackbar برای نمایش نوار تنقلات تا زمانی که بسته شود یا نوار تنقلات دیگری نمایش داده شود اضافه شد. همچنین، روش‌های setActionTextColor(int) و setActionTextColor(ColorStateList) را اضافه کرد.
  • روش getSelectedTabPosition() را به کلاس TabLayout برای بازیابی برگه انتخاب‌شده کنونی اضافه کرد.
  • میانای برنامه‌سازی کاربردی کاملاً روان برای کلاس android.support.v7.app.NotificationCompat.MediaStyle برای زنجیره کردن روش‌ها ارائه شد.
  • روش‌های راحتی به RecyclerView برای درج دسته‌ای موارد اضافه شد.

برای مشاهده فهرست کامل تغییرات «کتابخانه پشتیبانی»، گزارش تفاوت‌های میانای برنامه‌سازی کاربردی «کتابخانه پشتیبانی» را ببینید.

بازبینی ۲۲.۲.۰

مه ۲۰۱۵

کتابخانه «پشتیبانی طراحی» اضافه شد:
  • ‫TextInputLayout برای نمایش نوشتار راهنمایی و خطای EditText به‌عنوان برچسب‌های شناور اضافه شد.
  • ‫FloatingActionButton برای پیاده‌سازی کنش اصلی در میانای شما به‌عنوان دکمه کنش شناور اضافه شد، که از اندازه‌های پیش‌فرض یا کوچک پشتیبانی می‌کند.
  • ‫Snackbar برای ارائه بازخورد سبک با کنش اختیاری در نوار اسنک پویانمایی‌شده اضافه شد.
  • ‫TabLayout برای پیاده‌سازی زبانه‌های ثابت و پیمایش‌پذیر و همچنین یکپارچه‌سازی آسان با ViewPager اضافه شد.
  • ‫NavigationView برای پیاده‌سازی محتوای کشوی پیمایش اضافه شد، ازجمله امکان ازهم بازکردن گزینه‌های منو ازطریق منبع منو.
  • ‫CoordinatorLayout، چیدمانی با هدف کلی، اضافه شد که برای ایجاد وابستگی بین نمای‌های هم‌سطح و امکان واکنش‌های پیمایشی آسان بین عناصر ازطریق CoordinatorLayout.Behavior استفاده می‌شود. بسیاری از عناصر «کتابخانه طراحی» به فرزند CoordinatorLayout بودن متکی هستند.
  • ‫AppBarLayout، ظرفی برای Toolbar و نماهای دیگر (مثل TabLayout) برای واکنش به رویدادهای پیمایش با پیمایش کردن در صفحه، نمایان شدن در واکنش به پیمایش به‌پایین، یا جمع کردن/ازهم باز کردن قبل‌از پیمایش کردن در صفحه/پیمایش کردن در صفحه اضافه شد.
  • ‫CollapsingToolbarLayout برای کنترل نحوه جمع شدن Toolbar اضافه شد. نوارابزار ممکن است با: سنجاق کردن عناصر به بالای صفحه درحالی‌که جمع می‌شود، معرفی پیمایش اختلاف منظر عناصر مثل ImageView، یا افزودن رنگ پوشش محتوا وقتی نما به‌صورت جزئی جمع می‌شود، جمع شود.
تغییرات برای کتابخانه پشتیبانی v4:
تغییرات کتابخانه سازگاری برنامه v7:

برای مشاهده فهرست کامل تغییرات «کتابخانه پشتیبانی»، گزارش تفاوت‌های میانای برنامه‌سازی کاربردی «کتابخانه پشتیبانی» را ببینید.

نسخه ۲۲.۱.۰

آوریل ۲۰۱۵

تغییرات برای کتابخانه گزارمان:
  • کتابخانه «گزارمان» اضافه شد تا از بازرسی‌های کد بهبودیافته پشتیبانی کند. گزارمان‌ها به‌عنوان برچسب‌های فراداده‌ای اضافه می‌شوند که به متغیرها، پارامترها، و مقادیر برگشتی پیوست می‌کنید تا مقادیر برگشتی روش، پارامترهای ارسال‌شده، و متغیرها و فیلدهای محلی را بازرسی کنید.
تغییرات برای کتابخانه پشتیبانی v4:
  • کلاس ColorUtils اضافه شد تا مجموعه‌ای از روش‌های کمکی مرتبط با رنگ را ارائه دهد.
  • روش‌های unwrap() و wrap() را به کلاس DrawableCompat اضافه کردیم تا بتوانید از setTint()، setTintList()، و setTintMode() در همه دستگاه‌های دارای سطح میانای برنامه‌سازی کاربردی ۴ یا بالاتر استفاده کنید.
  • کلاس TraceCompat را اضافه کردیم تا رویدادهای ردگیری را در بافر ردگیری سیستم بنویسد، که سپس می‌توان آن را بااستفاده از ابزار Systrace جمع‌آوری و تصویرسازی کرد.
  • کلاس CircularIntArray برای ایجاد ساختارهای داده آرایه عدد صحیح دایره‌ای اضافه شد.
  • روش‌های clear()، removeFromStart()، و removeFromEnd() را به کلاس CircularArray اضافه کرد. همچنین، روش‌های موجود در این کلاس را به غیرنهایی تغییر داد.
  • ‫InputDeviceCompat به‌عنوان کلاس کمکی برای دسترسی به داده‌ها در کلاس InputDeviceCompat اضافه شد.
  • کلاس LayoutInflaterCompat به‌عنوان کلاس کمکی برای دسترسی به داده‌ها در کلاس LayoutInflaterCompat اضافه شد و میانای LayoutInflaterFactory اضافه شد.
  • کلاس‌ها، روش‌ها، و میاناهایی برای پشتیبانی از پیمایش تودرتو اضافه شد.
    • کلاس‌های کمکی NestedScrollingChildHelper و NestedScrollingParentHelper برای پیاده‌سازی نماهای والد و فرزند پیمایش تودرتو اضافه شد.
    • میانای NestedScrollingChild اضافه شد تا توسط View زیرکلاس پیاده‌سازی شود.
    • میاناهای NestedScrollingParent و ScrollingView برای پشتیبانی از عملیات پیمایش و ارائه میاناهای برنامه‌سازی کاربردی مربوط به پیمایش اضافه شد.
    • روش getNestedScrollAxes() به کلاس ViewGroupCompat اضافه شد.
    • روش‌هایی به کلاس ViewParentCompat اضافه شد تا از پیمایش تودرتو پشتیبانی کند.
    • کلاس NestedScrollView برای پشتیبانی از پیمایش تودرتو در والدین و فرزند در هر دو نسخه جدید و قدیمی Android اضافه شد.
  • روش‌ها و ثابت‌هایی به کلاس MotionEventCompat برای دریافت مقادیر محور و منبع رویداد اضافه شد.
  • کلاس AccessibilityNodeInfoCompat به‌روزرسانی شد تا روش‌هایی برای خطاها، نامعتبرسازی محتوا، و برچسب‌ها اضافه شود.
  • کلاس‌های درونیابی زیر برای پویانمایی اضافه شد: FastOutLinearInInterpolator، FastOutSlowInInterpolator، LinearOutSlowInInterpolator، LinearOutSlowInInterpolator، و PathInterpolatorCompat.
  • کلاس Space اضافه شد تا بین عناصر در چیدمان‌های چندمنظوره فاصله ایجاد کند. این کلاس در کتابخانه gridlayout منسوخ شده است.
  • کلاس TextViewCompat برای دسترسی به ویژگی‌ها در TextView اضافه شد.
  • پارامتر جابه‌جایی به متد onPull() در کلاس EdgeEffectCompat اضافه شد.
تغییرات کتابخانه سازگاری برنامه v7:
  • پشتیبانی از رنگ‌آمیزی را به ابزاره‌های سازگار با برنامه اضافه کردیم، ازجمله AppCompatAutoCompleteTextView، AppCompatButton، AppCompatCheckBox، AppCompatCheckedTextView، AppCompatEditText، AppCompatMultiAutoCompleteTextView، AppCompatRadioButton، AppCompatRatingBar، AppCompatSpinner، و AppCompatTextView.
  • AppCompatActivity به‌عنوان کلاس پایه برای فعالیت‌هایی که از ویژگی‌های نوار کنش کتابخانه پشتیبانی استفاده می‌کنند به‌روز شد. این کلاس جایگزین ActionBarActivity منسوخ‌شده می‌شود.
  • رابط AppCompatCallback اضافه شد تا برای AppCompat پیاده‌سازی شود تا بتواند بازخوان‌ها را اجرا کند.
  • کلاس انتزاعی AppCompatDelegate را به‌عنوان نماینده‌ای اضافه کردیم که می‌توانید از آن برای گسترش پشتیبانی AppCompat به هر فعالیتی استفاده کنید.
  • کلاس AppCompatDialog به‌عنوان کلاس پایه برای کادرهای گفتگوی زمینه‌ای AppCompat اضافه شد.
  • سبک گردونه AlertDialog و AlertDialog.Builder کلاس را اضافه کرد تا AlertDialog با موضوع AppCompat ارائه دهد.
  • کلاس Palette.Builder برای تولید Palette نمونه اضافه شد.
    • روش from(Bitmap) به کلاس Palette اضافه شد تا تولید «پالت» با نمونه Palette.Builder برگشتی شروع شود.
    • روش‌های Palette.generate() و Palette.generateAsync() منسوخ شد.
  • روش getAbsoluteAlignment() به کلاس GridLayout.Spec اضافه شد.
  • استفاده منسوخ‌شده از app:theme برای سبک‌دهی Toolbar. اکنون می‌توانید از android:theme برای نوارابزار در همه دستگاه‌های دارای میانای برنامه‌سازی کاربردی سطح ۷ و بالاتر و android:theme برای پشتیبانی از همه ابزارک‌ها در دستگاه‌های دارای میانای برنامه‌سازی کاربردی سطح ۱۱ و بالاتر استفاده کنید.
تغییرات کتابخانه v17 leanback:
تغییرات برای کتابخانه v7 recyclerview:
  • ‫SortedList کلاس برای نمایش موارد در ترتیب فهرست اضافه شد و اعلان تغییرات فهرست ارائه شد.
  • کلاس SortedListAdapterCallback اضافه شد که می‌تواند فهرست مرتب‌شده‌ای را به کلاس RecyclerView.Adapter پیوند دهد.
تغییرات برای کتابخانه v8 renderscript:
  • برای استفاده به‌عنوان فیلتر هیستوگرام، کلاس ScriptIntrinsicHistogram اضافه شد.
  • کلاس ScriptIntrinsicResize برای انجام تغییر اندازه تخصیص دوبعدی اضافه شد.

بازبینی ۲۲

مارس ۲۰۱۵

تغییرات برای کتابخانه پشتیبانی v4:
  • متد getDrawable() به‌روزرسانی شد تا شیء قابل‌رسمی را برای شناسه منبع مشخص‌شده، تراکم صفحه، و زمینه برگرداند.
  • روش setImportantForAccessibility() اضافه شد تا بتوانید مشخص کنید آیا نمایشی باید رویدادهای دسترس‌پذیری را راه‌اندازی کند یا نه.
  • روش getStatusBarBackgroundDrawable() اضافه شد تا بتوانید پس‌زمینه نوار وضعیت قابل‌رسم را دریافت کنید.
  • روش‌هایی به NotificationCompat.CarExtender.UnreadConversation کلاس اضافه شد تا برنامه‌های پیام‌رسان Android Auto بتوانند داده‌های اعلان اضافی را بازیابی کنند.
  • روش getProgressCircleDiameter() برای برگرداندن قطر چیدمان دایره‌ای اضافه شد.
  • رنگ پیش‌فرض DrawerLayout نوار وضعیت به colorPrimaryDark تغییر کرد.
تغییرات کتابخانه سازگاری برنامه v7:
تغییرات کتابخانه v17 leanback:
  • روش‌های getRecycledPoolSize() و setRecycledPoolSize() اضافه شد تا امکان سفارشی‌سازی اندازه‌های استخر بازیافتی فراهم شود.
  • مشخصه WRAP_CONTENT به تنظیم عرض چیدمان اضافه شد تا از محتوای پیچیده برای نمادهای عنوان پشتیبانی کند.
  • ‫R.transition در XML تعریف شد تا به‌روزرسانی‌های انتقال بهبود یابد.
  • پشتیبانی از چیدمان‌های راست‌به‌چپ فعال شد.
  • پشتیبانی از رویدادهای کلید رسانه پخش و مکث به کلاس PlaybackOverlayFragment اضافه شد.
  • انتقال‌های ورود و بازگشت به کلاس BrowseFragment و کلاس DetailsFragment اضافه شد.
  • روش replace() برای جایگزین کردن موارد در آرایه آداپتور شیء اضافه شد.
تغییرات برای کتابخانه v7 mediarouter:
  • نمادهای Google Cast به‌روزرسانی شد تا از سبک طراحی مادی استفاده کند.
  • همه نمادهای استفاده‌شده در MediaRouter چارگوش را به‌روزرسانی کرد تا از سبک طراحی مواد استفاده کند.
تغییرات برای کتابخانه v7 recyclerview:

بازبینی ۲۱.۰.۳

دسامبر ۲۰۱۴

تغییرات برای کتابخانه پشتیبانی v4:

نسخه اصلاحی ۲۱.۰.۲

نوامبر ۲۰۱۴

تغییرات برای کتابخانه پشتیبانی v4:
  • ‫NotificationCompat.CarExtender کلاس برای پشتیبانی از افزونه‌های Android Auto به اعلان‌ها اضافه شد.
تغییرات کتابخانه سازگاری برنامه v7:
  • سازنده PopupMenu برای پشتیبانی از منوهای بالاپر جدید اضافه شد.
  • پشتیبانی از شرح نماد «جمع کردن» در کلاس Toolbar اضافه شد.
  • ابزاره SearchView به‌روزرسانی شد تا از نمایش commitIcon پشتیبانی کند.
  • مشخصه buttonGravity را از کلاس Toolbar برداشت.
تغییرات برای کتابخانه نمای کارت v7:
تغییرات برای کتابخانه v7 recyclerview:
تغییرات کتابخانه v17 leanback:
  • پشتیبانی برای تولید تکه‌کدهای نسخه ۴ اضافه شد.
  • رنگ نوشتار فرعی در CardView تغییر کرد.

بازبینی ۲۱.۰.۱

نوامبر ۲۰۱۴

کتابخانه پشتیبانی multidex برای پشتیبانی از چند فایل اجرایی Dalvik (DEX) برای پشتیبانی از فایل چند dex قبل‌از Android 5.0 اضافه شد.

بازبینی ۲۱

اکتبر ۲۰۱۴

تغییرات برای کتابخانه پشتیبانی v4:
  • پشتیبانی از Fragment گذار برای دستگاه‌های دارای Android 5.0 (سطح میانای برنامه‌سازی کاربردی ۲۱) اضافه شد. توجه داشته باشید که انتقال‌ها روی دستگاه‌های دارای Android 4.4 و نسخه‌های پایین‌تر تأثیری ندارند.
  • ‫DocumentFile برای تسهیل انتقال از File هنگام کار با درخت‌های سند اضافه شد. بااین‌حال، این کلاس در مقایسه با میانای برنامه‌سازی کاربردی DocumentsContract پلاتفرم که در Android 4.4 (سطح میانای برنامه‌سازی کاربردی ۱۹) اضافه شده است، سربار پردازشی بیشتری نیاز دارد. بنابراین هنگام اجرا در Android 4.4 و بالاتر باید از DocumentsContract استفاده کنید.
تغییرات برای v7 appcompat library:
  • پشتیبانی از میاناهای کاربر طراحی ماتریال اضافه شد.
  • ‫Toolbar اضافه شد که عملکرد ActionBar را برای استفاده در چیدمان‌های برنامه تعمیم می‌دهد.
  • ‫ActionBarDrawerToggle به‌روز شد، که حاوی پویانمایی منو به پیکان است
  • ابزاره‌های واسط کاربر مشترک به‌روزرسانی شد تا هنگام اجرا در دستگاه‌های دارای Android نسخه قبل‌از ۵.۰، امکان رنگ‌آمیزی ازطریق مشخصه‌های زمینه فراهم شود
  • ‫SwitchCompat، یک انتقال به نسخه قبلی از ابزاره Switch که در Android 4.0 (میانای برنامه‌سازی کاربردی سطح ۱۴) اضافه شده بود، اضافه شد.
کتابخانه نمای کارت v7 جدید:
  • ابزارک CardView اضافه شد که پیاده‌سازی سازگار با طراحی مواد برای نمایش مورد داده ارائه می‌دهد.
کتابخانه جدید v7 recyclerview:
  • ابزارک RecyclerView اضافه شد که نمای فهرست انعطاف‌پذیری برای ارائه پنجره‌ای محدود به مجموعه داده‌های بزرگ ارائه می‌دهد.
کتابخانه پالت v7 جدید:
  • ‫Palette کلاس اضافه شد، که به شما امکان می‌دهد رنگ‌های برجسته را از تصویر استخراج کنید.
کتابخانه leanback v17 جدید:

بازبینی ۲۰

ژوئیه ۲۰۱۴

تغییرات کتابخانه پشتیبانی v4:
  • در NotificationCompat.WearableExtender، پشتیبانی از اعلان گسترده برای Android Wear اضافه شد که به شما امکان می‌دهد ویژگی‌های خاص دستگاه پوشیدنی را در اعلان‌هایتان مشخص کنید.
  • ‫NotificationCompat.Action.WearableExtender اضافه شد، که اجازه می‌دهد کنش‌ها به اعلان‌های پوشیدنی اضافه شوند.
  • ‫NotificationManagerCompat اضافه شد که به شما امکان می‌دهد اعلان‌هایی صادر کنید که به‌درستی از ویژگی‌های پوشیدنی پشتیبانی می‌کنند.
  • ‫RemoteInput اضافه شد که به دستگاه دستی اجازه می‌دهد ورودی صوتی را از اعلانی که در دستگاه پوشیدنی ظاهر می‌شود دریافت کند.
  • مدیریت بازخورد لمس در SwipeRefreshLayout بهبود یافت.

بازبینی 19.1.0

مارس ۲۰۱۴

تغییرات کتابخانه پشتیبانی v4:
  • کلاس SwipeRefreshLayout اضافه شد، که به کاربران امکان می‌دهد محتوای نما را با اشاره تند عمودی بازآوری کنند.
  • مشکلات دسترس‌پذیری مربوط به کشوهای پیمایش برطرف شد.
تغییرات کتابخانه سازگاری برنامه v7:
  • مشکلات پس‌زمینه نوار کنش برطرف شد.

بازبینی ۰.۱.۱۹

دسامبر ۲۰۱۳

تغییرات کتابخانه پشتیبانی v4:
  • با افزودن مدیریت ناهمزمان چاپ، PrintHelper بهبود یافت.
  • تقریب کلاس DrawerLayout روش addChildrenForAccessibility() را اصلاح کرد.
  • آینه‌سازی تصویر کشیدنی اسلاید در ActionBarDrawerToggle اصلاح شد.
  • مشکل یک واحدی هنگام برداشتن مورد از تکرارکننده مجموعه رفع شد.
تغییرات برای کتابخانه mediarouter نسخه ۷:
تغییرات برای کتابخانه v8 renderscript
  • انتشار خطا برای لایه تبدیل RenderScript اضافه شد.

بازبینی ۱۹

اکتبر ۲۰۱۳

تغییرات کتابخانه پشتیبانی v4:
  • پشتیبانی از «میاناهای برنامه‌سازی کاربردی فضای ذخیره‌سازی» خارجی با getObbDirs()، getExternalFilesDirs()، getExternalCacheDirs()، و getStorageState() اضافه شد. این روش‌های کمکی همیشه یک هدف فایل واحد را در دستگاه‌های دارای Android 4.3 (میانای برنامه کاربردی سطح ۱۸) و نسخه‌های قدیمی‌تر برمی‌گردانند. وقتی در Android 4.4 (میانای برنامه کاربردی سطح ۱۹) و بالاتر اجرا می‌شود، این روش‌ها ممکن است بیش‌از یک شیء فایل برگردانند.
  • کلاس PrintHelper اضافه شد که با «میاناهای برنامه‌سازی کاربردی چاپ» کار می‌کند تا تصاویر را با حداقل کد چاپ کند.
  • پشتیبانی از میانای کاربر کشیدن برای باز کردن برای منوهای بالاپر اضافه شد. برای اطلاعات بیشتر، PopupMenuCompat و ListPopupWindowCompat را ببینید.
  • پشتیبانی بهبودیافته از دسترس‌پذیری با افزودن روش findFocus() در AccessibilityNodeProviderCompat و روش getLiveRegion() در AccessibilityNodeInfoCompat.
  • کلاس کمکی ScaleGestureDetectorCompat برای دسترسی به روش‌های جدید اشاره مقیاس‌بندی اضافه شد.
  • مشکل ActionBarDrawerToggle در نمایش زبان‌های راست‌به‌چپ برطرف شد.
  • گزینه AutoScrollHelper برای مصرف کردن رویدادهای لمسی اصلاح شد یا به آن‌ها اجازه داده شد به نماهای دیگر منتقل شوند.
تغییرات برای کتابخانه mediarouter نسخه ۷:
  • پشتیبانی از صف‌بندی بازپخش رسانه، تنظیم مقادیر سرایند HTTP، و مدت بازپخش رسانه اضافه شد.
  • کنش‌های شروع، دریافت، و پایان جلسه صریح برای مدیریت صریح جلسات بازپخش رسانه با مسیریاب رسانه اضافه شد.

بازبینی ۱۸

ژوئیه ۲۰۱۳

تغییرات کتابخانه پشتیبانی v4:
  • میانای کاربر
    • ‫BidiFormatter برای مدیریت رشته‌های نوشتاری که نوشتار قالب‌بندی‌شده راست‌به‌چپ و چپ‌به‌راست را ترکیب می‌کنند اضافه شد.
    • ‫ViewPager اصلاح شد تا مواردی را که در پردازش چیدمان اولیه، عرض صفحه‌بندی صفر اندازه‌گیری شده است بهتر مدیریت کند.
    • ‫DrawerLayout و SlidingPaneLayout اصلاح شد تا هنگام ویرایش کد پروژه، استثنایی برای اندازه‌گیری ایجاد نشود.
  • دسترس‌پذیری
    • ‫ExploreByTouchHelper اضافه شد تا پیاده‌سازی دسترسی‌پذیری برای نماهای سفارشی ساده‌تر شود.
    • مشکلی که باعث می‌شد ViewPager رویدادهای دسترس‌پذیری TYPE_VIEW_SCROLLED را به‌اشتباه پر کند برطرف شد.
    • استثنای اشاره‌گر تهی در ViewPager هنگام پر کردن رویداد دسترس‌پذیری رفع شد.
    • ‫AccessibilityNodeInfoCompat با تغییر CharSequence ورودی به String شیء ساده شد.
    • سازنده AccessibilityRecordCompat که از Object به‌عنوان ورودی استفاده می‌کرد منسوخ شد.
  • رسانه
    • ‫TransportMediator کلاس کمکی برای مدیریت کنترل انتقال رسانه، مثل پخش، توقف موقت، رد کردن، و کنش‌های رسانه‌ای دیگر اضافه شد.
    • ‫DisplayManagerCompat برای مدیریت برونداد نمایشگر به یک یا چند نمایشگر دستگاه اضافه شد.
  • تغییرات دیگر
    • برای پیاده‌سازی الگوی رایج تشخیص رویداد بیدار شدن دستگاه و واگذاری کار به Service، کلاس کمکی WakefulBroadcastReceiver اضافه شد و درعین‌حال تضمین شد که دستگاه قبل‌از تکمیل واگذاری به حالت خواب برنگردد.
    • دو API جدید، commitContentChanged() و rollbackContentChanged()، به AsyncTaskLoader اضافه شد تا به مدیریت به‌روزرسانی‌های پس‌زمینه‌ای برای تغییرات داده‌ای که متعاقباً لغو می‌شوند کمک کند.
کتابخانه جدید v7 appcompat:
  • ActionBar اضافه شد تا پیاده‌سازی واسط کاربر نوار کنش طرح الگو به Android 2.1 (میانای برنامه کاربردی سطح ۷) و بالاتر مجاز شود. استفاده از این کلاس مستلزم آن است که فعالیتتان را با گسترش کلاس جدید ActionBarActivity پیاده‌سازی کنید.
کتابخانه جدید v7 mediarouter:

کتابخانه جدیدی برای مسیریاب رسانه اضافه شد که از پیش‌نمای توسعه‌دهندگان Google Cast پشتیبانی می‌کند. میاناهای برنامه‌سازی کاربردی کتابخانه v7 mediarouter روشی برای کنترل مسیریابی کانال‌ها و جاری‌سازی‌های رسانه‌ای از دستگاه فعلی به صفحه‌های نمایش خارجی، بلندگوها، و دیگر دستگاه‌های مقصد ارائه می‌دهد و با Android 2.1 (سطح API 7) سازگار است. برای اطلاعات بیشتر، کتابخانه mediapouter V7 را ببینید.

میاناهای برنامه‌سازی کاربردی کتابخانه v7 mediarouter که در Support Library r18 معرفی شده‌اند در نسخه‌های بعدی Support Library ممکن است تغییر کنند. درحال‌حاضر، توصیه می‌کنیم از کتابخانه فقط درارتباط با پیش‌نمایش توسعه‌دهنده Google Castاستفاده کنید.

بازبینی ۱۳

مه ۲۰۱۳

تغییرات کتابخانه پشتیبانی v4:
  • DrawerLayout برای ایجاد کشوی پیمایش که می‌تواند از لبه پنجره بیرون کشیده شود اضافه شد.
  • ابزاره SlidingPaneLayout برای ایجاد نمای خلاصه و جزئیات پیوندی که به‌طور مناسب با اندازه‌های مختلف صفحه‌نمایش تطبیق پیدا می‌کند اضافه شد.
  • ‫ActionBarDrawerToggle به‌عنوان روشی برای پیوند دادن عملکردهای DrawerLayout و ActionBar اضافه شد.
  • ‫ViewDragHelper به‌عنوان عنصر مشترک جدیدی برای کشیدن نماها در نمای والد اضافه شد.
  • ‫ScrollerCompat برای ارائه پشتیبانی سازگاری Scroller و OverScroller اضافه شد.
  • ‫FileProvider اضافه شد تا هم‌رسانی فایل‌های خصوصی بین برنامه‌ها مجاز شود.
  • ‫ViewPager به‌روزرسانی شد تا اگر کلاس PagerAdapter مرتبط بدون فراخوانی notifyDataSetChanged() تغییر کند، استثنایی ایجاد کند.
  • مشکلی در ترتیب مرتب‌سازی نقاشی‌های کودکان ViewPager برطرف شد.
  • ‫GestureDetectorCompat رفع شد تا تماس‌های onSingleTapConfirmed(MotionEvent) که بین رویدادهای فشار طولانی و مهلت زمانی تک‌ضرب وجود داشتند ارسال شوند.
کتابخانه جدید v7 gridlayout:
  • ‫GridLayout برای ارائه پشتیبانی از شیء چیدمان GridLayout اضافه شد.
  • ‫android.support.v7.widget.Space اضافه شد که می‌توان از آن برای ایجاد کردن نواحی خالی در شیء طرح‌بندی GridLayout استفاده کرد.

بازبینی ۱۲

فوریه ۲۰۱۳

تغییرات کتابخانه پشتیبانی v4:
  • عملکرد تعاملی بهبودیافته برای ViewPager.
  • اشکالی که باعث می‌شد ViewPager صفحه اشتباهی را انتخاب کند برطرف شد.
  • استفاده ثابت از روش removeView() درطول چیدمان برای ViewPager.
  • مشکل SearchViewCompat برطرف شد. در این مشکل، استفاده از دکمه بازگشت برای بستن، نوشتار جستجو را پاک نمی‌کرد. این اصلاح فقط برای سطوح میزبان API 14 و بالاتر اعمال می‌شود.

بازبینی ۱۱

نوامبر ۲۰۱۲

تغییرات کتابخانه پشتیبانی v4:
  • میانای کاربر
    • پشتیبانی از کلاس‌های Fragment تودرتو اضافه شد.
    • بهبودهایی به اشکال‌زدایی FragmentManager اضافه شد.
    • مشکل FragmentTabHost برطرف شد. در این مشکل، تعامل برگه و قطعه می‌توانست منجر به ازدست رفتن وضعیت ListView شود.
    • مشکل مربوط به اشاره نمایان برای کاربر در FragmentStatePagerAdapter رفع شد.
    • میانای PageTransformer به ViewPager اضافه شد تا به برنامه‌ها اجازه دهد رفتار انتقال سفارشی برای پیمایش ارائه دهند.
    • ویژگی‌های جدید و رفع اشکال‌هایی به TaskStackBuilder از نسخه پخش فعلی اضافه شد.
    • ‫PagerTitleStrip اصلاح شد تا PagerAdapter درحال استفاده به‌درستی پیگیری شود.
    • مشکلات پرش نمایشگر، موقعیت‌یابی، و برش نوشتار در PagerTitleStrip رفع شد.
    • رفع مشکل PagerTabStrip برای رعایت صحیح حاشیه هنگام رسم خط زیر.
  • دسترس‌پذیری
    • پشتیبانی از انواع جدید رویداد لمسی و اشاره دسترس‌پذیری در AccessibilityEventCompat اضافه شد.
    • پشتیبانی از میاناهای برنامه‌سازی کاربردی دسترس‌پذیری جدید در ViewCompat اضافه شد.
    • پشتیبانی از روش performAccessibilityAction() به ViewCompat اضافه شد.
  • پشتیبانی از اشاره‌ها با GestureDetectorCompat اضافه شد.
  • پشتیبانی از انجام عملیات اتمی روی فایل‌ها بااستفاده از کلاس جدید AtomicFile اضافه شد.
  • پشتیبانی از مجموعه کامل روش‌های make در IntentCompat اضافه شد.
  • روش trimToSize() در کلاس ابزار LruCache اضافه شد.
  • ‫ConnectivityManagerCompat به‌روزرسانی شد تا NetworkInfo را از همه‌فرستی CONNECTIVITY_ACTION دریافت کند.

بازبینی ۱۰

اوت ۲۰۱۲

تغییرات کتابخانه پشتیبانی v4:
  • پشتیبانی از ویژگی‌های اعلان معرفی‌شده در Android 4.1 (سطح API 16) با افزودن به NotificationCompat اضافه شد.

بازبینی ۹

ژوئن ۲۰۱۲

تغییرات کتابخانه پشتیبانی v4:
  • پشتیبانی میانای کاربر
    • پشتیبانی از PagerTabStrip اضافه شد و عملکردی بهتر از PagerTitleStrip ارائه می‌دهد.
    • اشکالات مختلفی برای PagerTitleStrip و PagerTabStrip رفع شد، ازجمله گزینه setAllCaps، تراز عنوان، بهبودهای ظاهر، محدودیت‌های حداقل عرض، و مشکلات پیمایش لمسی.
    • پشتیبانی از ViewPager حاشیه صفحه اضافه شد که به کلاس ViewPager کمک می‌کند تا از صفحه‌بندی محتوایی با محدوده پیمایش افقی بزرگ، مثل نقشه، پشتیبانی کند.
    • اشکالات متعددی برای ViewPager برطرف شد، ازجمله مشکلات مربوط به تغییر اندازه و مجموعه داده، موقعیت صفحه، تعامل کاربر، ردیابی پیمایش، و مشکلات پیمایش با صفحه‌کلید.
    • اشکالات زیادی برای Fragment برطرف شد، ازجمله مدیریت صحیح onActivityResult() وقتی بخش هدف دیگر وجود ندارد، ارسال رویدادهای انتخاب به بخش‌های نامرئی، بهبود عملکرد FragmentTransaction.replace()، و افزودن مدیریت بهتر وضعیت برای بخش‌هایی که از دید خارج می‌شوند.
    • پشتیبانی از روش postOnAnimation() در ViewCompat اضافه شد.
    • ‫NavUtils به‌روزرسانی شد تا درصورت دردسترس بودن از عملکرد پیمایش Android 4.1 (سطح میانای برنامه‌سازی کاربردی ۱۶) بالا استفاده کند.
  • دسترس‌پذیری
    • کلاس‌های پشتیبانی از دسترس‌پذیری، ازجمله AccessibilityNodeInfoCompat، به‌روزرسانی شد تا اصلاحات انجام‌شده در Android 4.1 (سطح API 16) را دنبال کند.
    • پشتیبانی از کنش‌های پیمایش دسترس‌پذیری در ViewPager اضافه شد.
  • بهبودهای کلی

بازبینی ۸

آوریل ۲۰۱۲

تغییرات کتابخانه پشتیبانی v4:
  • پرچم‌های هدف ثابت برای PendingIntent شیء تولیدشده توسط TaskStackBuilder.
  • ویژگی‌های استفاده‌نشده از پروژه‌های کتابخانه gridlayout برداشته شد تا کتابخانه بتواند با سطح API ۷ و بالاتر ساخته شود.
  • ‫.classpath و .project فایل برای پروژه کتابخانه gridlayout اضافه شد.

بازبینی ۷

مارس ۲۰۱۲

تغییرات کتابخانه پشتیبانی v4:
  • ‫ShareCompat اضافه شد که کلاس‌های کمکی برای ارسال و دریافت محتوا برای برنامه‌های هم‌رسانی اجتماعی ارائه می‌دهد، ازجمله فراداده جدید برای نسبت دادن داده‌های هم‌رسانی‌شده به برنامه منبع. این کلاس همچنین ادغام سازگار با ShareActionProvider جدید در Android 4.0 را ارائه می‌دهد.
  • ‫NavUtils و TaskStackBuilder اضافه شدند تا از اجرای دستورالعمل‌های طراحی Android برای پیمایش پشتیبانی کنند. این افزوده‌ها شامل روشی برای پیاده‌سازی دکمه بالا نوار کنش در نسخه‌های مختلف است. برای نمونه پیاده‌سازی این الگو، نمونه «پیمایش برنامه» را در (<em><sdk></em>/samples/<em><platform></em>/AppNavigation) ببینید.
  • ‫NotificationCompat.Builder اضافه شد تا پیاده‌سازی سازگاری کلاس کمکی Notification.Builder در Android 3.0 را برای ایجاد اعلان‌های سیستم استاندارد ارائه دهد.

بازبینی ۶

دسامبر ۲۰۱۱

توجه: مرجع میاناهای برنامه‌سازی کاربردی کتابخانه پشتیبانی اکنون با مرجع‌های چارچوب دردسترس است، برای مثال: android.support.v4.app.

تغییرات کتابخانه پشتیبانی v4:
  • تغییرات ViewPager:
    • پشتیبانی نمای تزئینی اضافی برای ViewPager اضافه شد. نماهای تزئینی ممکن است به‌عنوان نماهای فرزند یک صفحه‌گرد در چیدمان XML ارائه شوند.
    • ‫PagerAdapter.getPageTitle() برای ارائه رشته‌های عنوان برای صفحات اضافه شد که به‌طور پیش‌فرض برای هر صفحه بدون عنوان است.
    • PagerTitleStrip، نوار عنوان غیرتعاملی، اضافه شد که می‌تواند به‌عنوان فرزند ViewPager اضافه شود. توسعه‌دهندگان می‌توانند ظاهر و رنگ نوشتار و همچنین اطلاعات مربوط به اندازه چیدمان و جاذبه را ارائه دهند.
    • ‫PagerAdapter روش به‌روزرسانی‌شده برای دریافت اشیاء ViewGroup به‌جای View برای جلوگیری از تبدیل نوع کلاس در پیاده‌سازی‌های آداپتور.
    • ‫ViewPager برای استفاده از عملکرد پرتاب به سبک «راه‌انداز» به‌روز شد.
    • رفع اشکالات مربوط به تعامل واسط کاربر و خودکارسازی آزمایش.
  • پشتیبانی از «تکه‌فیلم‌ها»:
    • روش setStartDeferred() به setUserVisibleHint(boolean) تغییر کرد.
    • شروع به‌تعویق‌افتاده برای صفحه‌های خارج از صفحه اضافه شد تا عملکرد بهبود یابد.
  • پشتیبانی از «میاناهای برنامه‌سازی کاربردی دسترس‌پذیری»:
    • ‫AccessibilityDelegateCompat روش به‌روزرسانی شد تا به‌جای مقدار تهی، فهرست‌های خالی برگرداند.
    • میاناهای برنامه‌سازی کاربردی جدیدی که نمونه‌های v4 به آن‌ها نیاز دارند اضافه شد.

بازبینی ۵

دسامبر ۲۰۱۱

تغییرات کتابخانه پشتیبانی v4:

بازبینی ۴

اکتبر ۲۰۱۱

تغییرات کتابخانه پشتیبانی v4:
  • ‫EdgeEffectCompat به پشتیبانی EdgeEffect اضافه شد.
  • ‫LocalBroadcastManager اضافه شد تا برنامه‌ها بتوانند به‌راحتی درون یک برنامه واحد برای هدف‌ها ثبت‌نام کنند و آن‌ها را دریافت کنند، بدون اینکه آن‌ها را به‌صورت جهانی همه‌فرستی کنند.
  • در ViewCompat، پشتیبانی برای بررسی و تنظیم حالت‌های پیمایش اضافی برای View در Android 2.3 و نسخه‌های جدیدتر اضافه شد.
  • تغییرات در Fragment APIs:
    • میاناهای برنامه‌سازی کاربردی جدیدی برای کنترل نمایان بودن منوهای جدید اضافه شد.
    • «میاناهای برنامه‌سازی کاربردی» پویانمایی سفارشی اضافه شد.
    • ‫APIs در FragmentActivity اضافه شد تا داده‌های نمونه سفارشی و غیرپیکربندی‌شده حفظ شود.
    • رفع اشکال‌های مختلف.
  • اشکال Loader که باعث بروز مشکلاتی در لغو AsyncTask هنگام اجرا در Froyo و نسخه‌های قدیمی‌تر پلاتفرم می‌شد برطرف شد. کد پشتیبانی اکنون از نسخه AsyncTask خود استفاده می‌کند تا رفتار یکسانی در همه نسخه‌های پلاتفرم داشته باشد.

بازبینی ۳

ژوئیه ۲۰۱۱

تغییرات کتابخانه پشتیبانی v4:
  • پشتیبانی از Fragment.SavedState را اضافه می‌کند
  • ‫MotionEventCompat را برای پشتیبانی از میاناهای برنامه‌سازی کاربردی جدیدتر MotionEvent اضافه می‌کند
  • ‫VelocityTrackerCompat را برای پشتیبانی از میاناهای برنامه‌سازی کاربردی VelocityTracker جدیدتر اضافه می‌کند
  • ‫ViewConfigurationCompat را برای پشتیبانی از میاناهای برنامه‌سازی کاربردی ViewConfiguration جدیدتر اضافه می‌کند
  • همه «میاناهای برنامه‌سازی کاربردی» جدید (فقط در کتابخانه پشتیبانی دردسترس است) که به شما امکان می‌دهد واسط‌های کاربری با صفحه‌بندی افقی ایجاد کنید و به کاربران اجازه می‌دهد بین نماهای محتوا به چپ و راست بکشند. کلاس‌های پشتیبانی از این شامل:
    • ‫ViewPager: ViewGroup که چیدمان نماهای فرزند را مدیریت می‌کند و کاربر می‌تواند بین آن‌ها تند بکشد.
    • ‫PagerAdapter: آداپتوری که ViewPager را با نماهایی که نشان‌دهنده هر صفحه است پر می‌کند.
    • FragmentPagerAdapter: افزونه‌ای از PagerAdapter برای جابه‌جایی بین تکه‌ها.
    • ‫FragmentStatePagerAdapter: افزونه‌ای از PagerAdapter برای جابه‌جایی بین تکه‌هایی که از پشتیبانی کتابخانه برای Fragment.SavedState استفاده می‌کند.
کتابخانه پشتیبانی جدید v13:
  • شامل FragmentPagerAdapter و FragmentStatePagerAdapter برای پشتیبانی از صفحه‌بندی افقی.

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

بازبینی ۲

مه ۲۰۱۱

تغییرات برای کتابخانه v4:

بازبینی ۱

مارس ۲۰۱۱

اولین نسخه پخش با کتابخانه v4.