Android Support Library Revision 24.2.0

图片描述

Google正式发布更新了Android Support Library Revision 24.2.0 版本。此次更新绝对知足了每一位 Android Developer 的胃口,我也是第一时间整理,翻译学习,记录于此,快来看看都有哪些变化吧。html

值得注意的是,24.2.0版本的Support包再也不支持Android 2.2(API Level 8)以及更低版本,而以前仅存在于这些系统的classes和methods已经被标记为deprecated(废弃)而且不该该再被使用了,他们可能会被移除而且以一个新的特性出如今新版本中。android

v4 包的分割

新版Support包中,以前广为人知的大而全的v4包将被分割成几个更小的包,分别为:框架

support-compat
New Framework APIs的兼容包,好比 Context.getDrawable() 的兼容使用;工具

support-core-utils
工具类的兼容包,好比AsyncTaskLoader 和 PermissionChecker;布局

support-core-ui
UI组件的兼容包,常见如ViewPager、NestedScrollView 和 ExploreByTouchHelper;学习

support-media-compat
多媒体框架的兼容包,包括 MediaBrowser 和 MediaSession;ui

support-fragment
Fragment框架的兼容包,这个就不用举例说明了,相信每个人都用过;spa

通过这样的分类隔离,之后不会再由于单独使用某一个功能而将整个v4包导入项目中,而是各取所需,大大减少了APK的大小,真是贴心之至啊。翻译

API 的更新

  1. 客户端可使用 Custom Tabs 控制 使用打开 Install Apps 功能;htm

  2. TextInputLayout 支持密码的显示隐藏控制;

  3. 新 android.support.transition 包支持 Transitions 框架到 API Level 14以及更高版本;

  4. Custom Tabs support library 添加支持自定义 RemoteViews 到第二层 Toolbar 上;

  5. AppCompatResources 经过 getDrawable( ) 方法,添加支持加载 <vector> (API level 9及更高版本)和 <animated-vector>(API level 11及更高版本) 资源;

  6. CoordinatorLayout 支持定义 inset views,而且指定其余 Views 避开这些 inset views 。这个翻译过来有点生涩,若是你知道FloatingActionButton如何在Snackbar展现的时候躲避移动的话,就好理解了,这里就是制定相似的behavior规则,只不过能够适用于其余协调者布局里面的 Children Views 了;

  7. 新工具类 DiffUtil 可以提供计算两个集合(collections)之间的不一样,而且生成适用于 相似RecyclerView的适配器(Adapter)的一系列更新操做的list对象;(有木有感觉到一会儿少些了不少代码的嗖嗖凉意)

  8. 自定义的Behavior新增了 RecyclerView.OnFlingListener 来响应滑动事件。

Behavior 的改变

  • 当你使用兼容包中的 day/night 功能时,任什么时候候的夜间模式的改变都会致使系统自动从新建立Activity。致使夜间模式切换的缘由多是一天中时间的变化,也多是程序执行了 AppCompatDelegate.setLocalNightMode() 方法;

  • 状态栏若是是半透明的话,Snackbar 将绘制显示在导航栏后面。

一些废弃 APIs

新版兼容包提出了在将来的版本中即将废弃的一些类和方法,并使用新的 APIs替代,开发者应该尽快适应熟悉这些 APIs。

  1. 如下这些类仅支持 API Level 8 以及更低版本,而且应该使用新的 APIs 替代她们:
    1: KeyEventCompat: Replace with KeyEvent
    2: MotionEventCompat: Use MotionEvent
    3: ViewCompat: Use View
    4: ViewConfigurationCompat: Use ViewConfiguration

  2. AccessibilityServiceInfoCompat.getDescription()方法的废弃;

  3. 你不能再直接实例化 ActivityCompat 类,非静态方法 getReferrer(Activity) 将在将来的新版本中改成静态方法;

  4. CoordinatorLayout.Behavior.isDirty()已经被废弃,全部相关的实现都应该被移除掉;

  5. MediaSessionCompat.obtain() 已经被废弃,取而代之的方法是 fromMediaSession() ;

  6. MediaSessionCompat.QueueItem.obtain() 已经被废弃,取而代之的方法是 fromQueueItem();

  7. 如下抽象类已经被废弃,而且使用了接口类取而代之:
    1: AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat:替代接口类为 AccessibilityManagerCompat.AccessibilityStateChangeListener;
    2: SearchViewCompat.OnCloseListenerCompat:替代接口类为 earchViewCompat.OnCloseListener;
    3: SearchViewCompat.OnQueryTextListenerCompat:替代接口类为 SearchViewCompat.OnQueryTextListener;
    4: SearchViewCompat.OnQueryTextListenerCompat:替代接口类为:SearchViewCompat.OnQueryTextListener;

  8. CustomTabsSession.setToolbarItem() 已经被废弃,取而代之的是 setSecondaryToolbarViews();

Bug 修复

如下几天已知的问题已经在新发布的24.2.0版本中修复:

  1. AOSP issue 77712:确保调用 setRefreshing(true) 时 SwipeRefreshLayout 的指示器可以获得显示;

  2. AOSP issue 180454:修复了切换页面时 TabLayout 的闪烁问题;

  3. AOSP issue 196430:修复了在 API Level 11 及更低版本解析 SavedState 时发生的 ClassNotFoundException 异常问题;

完整的 BUG 修复列表能够在 AOSP Issue Tracker 上看到。

以上即是 24.2.0 版本的Support包的变化,目前来说,v4包的分割仍是最使人兴奋的,毕竟给APK瘦身是最可以直接体如今用户身上的。固然,其余的一些变化也是值得注意的,毕竟要跟着 Google 的步伐与时俱进嘛!

Android Support Library Revision 24.2.0 官方英文介绍地址

by anonymous

相关文章
相关标签/搜索