Android Support Library 24.2.0 正式发布
原文出處:http://blog.csdn.net/wxy318/article/details/52463998
近日,Google正式發(fā)布更新了Android Support Library Revision 24.2.0 版本。這次更新絕對滿足了每一位 Android Developer 的胃口,亦楓也是第一時(shí)間整理,翻譯學(xué)習(xí),記錄于此,快來看看都有哪些變化吧。
值得注意的是,24.2.0版本的Support包不再支持Android 2.2(API Level 8)以及更低版本,而之前僅存在于這些系統(tǒng)的classes和methods已經(jīng)被標(biāo)記為deprecated(廢棄)并且不應(yīng)該再被使用了,他們可能會(huì)被移除并且以一個(gè)新的特性出現(xiàn)在新版本中。
v4 包的分割
新版Support包中,之前廣為人知的大而全的v4包將被分割成幾個(gè)更小的包,分別為:
| support-compat | New Framework APIs的兼容包,比如 Context.getDrawable() 的兼容使用 |
| support-core-utils | 工具類的兼容包,比如AsyncTaskLoader 和 PermissionChecker |
| support-core-ui | UI組件的兼容包,常見如ViewPager、NestedScrollView 和 ExploreByTouchHelper |
| support-media-compat | 多媒體框架的兼容包,包括 MediaBrowser 和 MediaSession |
| support-fragment | Fragment框架的兼容包,這個(gè)就不用舉例說明了,相信每一個(gè)人都用過 |
經(jīng)過這樣的分類隔離,以后不會(huì)再因?yàn)閱为?dú)使用某一個(gè)功能而將整個(gè)v4包導(dǎo)入項(xiàng)目中,而是各取所需,大大減小了APK的大小,真是貼心之至啊
API 的更新
客戶端可以使用 Custom Tabs 控制 使用打開 Install Apps 功能
TextInputLayout 支持密碼的顯示隱藏控制
新 android.support.transition 包支持 Transitions 框架到 API Level 14以及更高版本
Custom Tabs support library 添加支持自定義 RemoteViews 到第二層 Toolbar 上
AppCompatResources 通過 getDrawable( ) 方法,添加支持加載 vector (API level 9及更高版本)和 animated-vector(API level 11及更高版本) 資源
CoordinatorLayout 支持定義 inset views,并且指定其他 Views 避開這些 inset views 。這個(gè)翻譯過來有點(diǎn)生澀,如果你知道FloatingActionButton如何在Snackbar展示的時(shí)候躲避移動(dòng)的話,就好理解了,這里就是制定類似的behavior規(guī)則,只不過可以適用于其他協(xié)調(diào)者布局里面的 Children Views 了
新工具類 DiffUtil 能夠提供計(jì)算兩個(gè)集合(collections)之間的不同,并且生成適用于 類似RecyclerView的適配器(Adapter)的一系列更新操作的list對象;(有木有感受到一下子少些了很多代碼的嗖嗖涼意)
自定義的Behavior新增了 RecyclerView.OnFlingListener 來響應(yīng)滑動(dòng)事件
Behavior 的改變
當(dāng)你使用兼容包中的 day/night 功能時(shí),任何時(shí)候的夜間模式的改變都會(huì)導(dǎo)致系統(tǒng)自動(dòng)重新創(chuàng)建Activity。導(dǎo)致夜間模式切換的原因可能是一天中時(shí)間的變化,也可能是程序執(zhí)行了 AppCompatDelegate.setLocalNightMode() 方法
狀態(tài)欄如果是半透明的話,Snackbar 將繪制顯示在導(dǎo)航欄后面
一些廢棄 APIs
新版兼容包提出了在未來的版本中即將廢棄的一些類和方法,并使用新的 APIs替代,開發(fā)者應(yīng)該盡快適應(yīng)熟悉這些 APIs
1、以下這些類僅支持 API Level 8 以及更低版本,并且應(yīng)該使用新的 APIs 替代她們
- KeyEventCompat: Replace with KeyEvent
- MotionEventCompat: Use MotionEvent
- ViewCompat: Use View
- ViewConfigurationCompat: Use ViewConfiguration
2、AccessibilityServiceInfoCompat.getDescription()方法的廢棄
3、你不能再直接實(shí)例化 ActivityCompat 類,非靜態(tài)方法getReferrer(Activity) 將在未來的新版本中改為靜態(tài)方法
4、CoordinatorLayout.Behavior.isDirty()已經(jīng)被廢棄,所有相關(guān)的實(shí)現(xiàn)都應(yīng)該被移除掉
5、MediaSessionCompat.obtain() 已經(jīng)被廢棄,取而代之的方法是 fromMediaSession()
6、MediaSessionCompat.QueueItem.obtain() 已經(jīng)被廢棄,取而代之的方法是 fromQueueItem()
7、以下抽象類已經(jīng)被廢棄,并且使用了接口類取而代之
AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat:替代接口類為 AccessibilityManagerCompat.AccessibilityStateChangeListener
SearchViewCompat.OnCloseListenerCompat:替代接口類為 earchViewCompat.OnCloseListener
SearchViewCompat.OnQueryTextListenerCompat:替代接口類為 SearchViewCompat.OnQueryTextListener
SearchViewCompat.OnQueryTextListenerCompat:替代接口類為:SearchViewCompat.OnQueryTextListener
8、CustomTabsSession.setToolbarItem() 已經(jīng)被廢棄,取而代之的是 setSecondaryToolbarViews()
Bug 修復(fù)
以下幾天已知的問題已經(jīng)在新發(fā)布的24.2.0版本中修復(fù):
AOSP issue 77712:確保調(diào)用 setRefreshing(true) 時(shí) SwipeRefreshLayout 的指示器能夠得到顯示
AOSP issue 180454:修復(fù)了切換頁面時(shí) TabLayout 的閃爍問題
AOSP issue 196430:修復(fù)了在 API Level 11 及更低版本解析 SavedState 時(shí)發(fā)生的 ClassNotFoundException 異常問題
完整的 BUG 修復(fù)列表可以在 AOSP Issue Tracker 上看到
以上便是 24.2.0 版本的Support包的變化,目前來講,v4包的分割還是最令人興奮的,畢竟給APK瘦身是最能夠直接體現(xiàn)在用戶身上的。當(dāng)然,其他的一些變化也是值得注意的,畢竟要跟著 Google 的步伐與時(shí)俱進(jìn)嘛!
Android Support Library Revision 24.2.0 官方英文介紹地址(翻墻閱讀):
https://developer.android.com/topic/libraries/support-library/revisions.html
總結(jié)
以上是生活随笔為你收集整理的Android Support Library 24.2.0 正式发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用RoundedBitmapDrawa
- 下一篇: Xml 格式数据的生成和解析