Android Support 库 24.2.0 正式发布
来源:互联网 发布:js如何控制embed播放 编辑:程序博客网 时间:2024/06/06 08:47
近日,Google正式发布更新了Android Support Library Revision 24.2.0 版本。这次更新绝对满足了每一位 Android Developer 的胃口,亦枫也是第一时间整理,翻译学习,记录于此,快来看看都有哪些变化吧。
值得注意的是,24.2.0版本的Support包不再支持Android 2.2(API Level 8)以及更低版本,而之前仅存在于这些系统的classes和methods已经被标记为deprecated(废弃)并且不应该再被使用了,他们可能会被移除并且以一个新的特性出现在新版本中。
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的大小,真是贴心之至啊。
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 来响应滑动事件。
Behavior 的改变
01. 当你使用兼容包中的 day/night 功能时,任何时候的夜间模式的改变都会导致系统自动重新创建Activity。导致夜间模式切换的原因可能是一天中时间的变化,也可能是程序执行了 AppCompatDelegate.setLocalNightMode() 方法;
02. 状态栏如果是半透明的话,Snackbar 将绘制显示在导航栏后面。
一些废弃 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();
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
- Android Support 库 24.2.0 正式发布
- Android Support 库 24.2.0 正式发布
- Android Support Library 24.2.0 正式发布
- Android Support 22.1 发布!
- XCodeFactory1.0 正式发布!!!
- python3.0 正式发布!
- SKINSE2.0正式发布
- AngularJs2.0正式发布
- Android Support Package r7 发布
- Android Support Library 22.1 发布
- 【EASY ANDROID】正式发布
- Android Studio 1.3 正式发布
- Android Studio 1.3 正式发布
- eoeWiki客户端(android版)1.0.0版正式发布~
- Spring2.0正式发布了!
- JRuby1.0版正式发布
- 恭喜Grials1.0正式发布
- LiveBlogTransfer v1.0正式发布
- 大文件查找优化方案之倒排索引
- EAS BOS打补丁后,UI控件重复
- Invalid path /××× was requested 问题分析及解决方法
- HOW TO: Install Chromedriver for Mac OS X / Selenium / Python
- C#与C#接口对接,C#与Java的接口对接(序列化与反序列化)——(二)
- Android Support 库 24.2.0 正式发布
- android学习
- 完成端口封装(修复Windows 网络与通信程序设计 可伸缩IOCP模型的bug)
- POJ 1950暴搜
- Java定时任务的三种实现方法
- 基于UTF8字符串检查错误替换功能
- iOS弹出框封装好的方法
- Leetcode-Symmetric Tree
- 一个简单的基于注解的 Controller (spring 2.5 annotation 方式实现mvc )