Android Support Library Revision 24.2.0 正式发布

Android Support Library Revision 24.2.0 正式发布

Android Support Library Revision 24.2.0 正式发布

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

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

1

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;

support-fragment

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

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

2

API 的更新

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

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

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

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

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

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

07. 新工具类 DiffUtil 能够提供计算两个集合(collections)之间的不同,并且生成适用于 类似RecyclerView的适配器(Adapter)的一系列更新操作的list对象;(有木有感受到一下子少些了很多代码的嗖嗖凉意)

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

3

Behavior 的改变

01. 当你使用兼容包中的 day/night 功能时,任何时候的夜间模式的改变都会导致系统自动重新创建Activity。导致夜间模式切换的原因可能是一天中时间的变化,也可能是程序执行了  AppCompatDelegate.setLocalNightMode() 方法;

02. 状态栏如果是半透明的话,Snackbar 将绘制显示在导航栏后面。

4

 一些废弃 APIs

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

01. 以下这些类仅支持 API Level 8 以及更低版本,并且应该使用新的 APIs 替代她们:

>1 KeyEventCompat: Replace with KeyEvent

>2 MotionEventCompat: Use MotionEvent

>3 ViewCompat: Use View

>4 ViewConfigurationCompat: Use ViewConfiguration

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

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

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

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

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

07. 以下抽象类已经被废弃,并且使用了接口类取而代之:

>1 AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat:替代接口类为 AccessibilityManagerCompat.AccessibilityStateChangeListener;

>2 SearchViewCompat.OnCloseListenerCompat:替代接口类为 earchViewCompat.OnCloseListener;

>3 SearchViewCompat.OnQueryTextListenerCompat:替代接口类为 SearchViewCompat.OnQueryTextListener;

>4 SearchViewCompat.OnQueryTextListenerCompat:替代接口类为:SearchViewCompat.OnQueryTextListener;

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

5

Bug 修复

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

01. AOSP issue 77712:确保调用 setRefreshing(true) 时 SwipeRefreshLayout 的指示器能够得到显示;

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

03. 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 官方英文介绍地址(翻墙阅读):

https://developer.android.com/topic/libraries/support-library/revisions.html

公号推荐

专注程序员的编程知识,原创教程,最新动态等。现在是编程的黄金时代,是程序员的ShowTime。我们不是码农,不是屌丝,也不是程序猿,我们是程序员联盟

Android Support Library Revision 24.2.0 正式发布

热门推文

Android Studio 掌握这些调试技巧,Debug能力不能再高啦

Android Studio 使用Gradle引入第三方库文件的总结

TAB|每一个移动开发者都应该有一个自己做主的App

这「非常7+1」条小贴士,助你Coding水平再提一阶!

不要重复造轮子?请问轮子你会造吗

Android Support Library Revision 24.2.0 正式发布

Android Support Library Revision 24.2.0 正式发布

阅读原文 查看【历史技术】

Android Support Library Revision 24.2.0 正式发布