Android Support包版本变更记录

Android Support包版本变更记录

版本 新增特性 行为修改 过期API bug修复 适配点
24.0.0 Fragment增加commitNow方法支持同步添加到FragmentActivity中 如将原有commit方式改为commitNow方法添加Fragment,需要进行全回归测试其行为
24.0.1 Fragment.setUserVisibleHint()方法,不再使已提交但是并未执行生命周期的fragment进入create状态(执行其生命周期) 依赖于setUserVisibleHint()方法来假设Fragment当前状态的地方都需要改正,如重写了Fragment的该方法,然后在调用了super后,就假设Fragment已处于started状态了,此版本开始是错误的
24.1.1 修复support包间共享资源id的问题,之前可能会造成开发者使用support包内部资源id时mismatch
24.2.0
  • v4包分为多个单独包,按需引入,减少apk大小https://developer.android.com/topic/libraries/support-library/rev-archive.html#24-2-0-v4-refactor
  • RecyclerView支持OnFlingListener
  • CoordinatorLayout支持任意View的内部挤压联动效果
MotionEventCompatKeyEventCompatViewCompat随着minSdkVersion的提高已无用 SwipeRefreshLayout.setRefreshing在首次layout时候的不显示
24.2.1 修复一些View的bug
25.0.0 v7的DividerItemDecoration类用作RecyclerView的基础divider实现 v7的Space过期,可以使用v4的Space;该View用作分割线View
25.0.1 修复一些View的bug
25.1.0
  • 增加了ExifInterface的support包
  • SnackBar暴露了自定义动画、滑动等方法
  • RecyclerView内部嵌套可滑动的View时,可以通过调用LinearLayoutManager.setInitialPrefetchItemCount(N)方法来提高性能:N代表每个内部RecyclerView的初始展示条数,可以预先创建view,提高性能
25.1.1 Fragment里增加FragmentTransaction.setAllowOptimization(true)方法开启优化,可以优化commit,比如addA,addB,removeA同时commit,则会优化为只有addB 如左侧的例子所示,A的生命周期不会执行,与老版本AB的执行顺序会有问题,需要小心使用
25.2.0 FragmentManager.FragmentLifecycleCallbacks变为static类,可以外部创建,用于监听所有Fragment的生命周期
25.3.0
  • 会自动在Manifest文件里添加meta-data,用于跟踪support包版本,不影响业务
  • 增加了DynamicAnimation包,支持各种物理动画(弹簧等)
25.3.1 修复一些View的bug
25.4.0 multidex升级到1.0.2,进行了一些优化 executePendingTransactions(),commitNow(),popBackStackImmediate()都不允许在FragmentManager的state变化时调用 针对Fragment的改动需要做全回归测试
26.0.0
  • Fragment提高isStateSaved()方法用作判断当前状态
  • 提供JobIntentService适配O
  • RecyclerView增加fastscroll功能
  • 增加物理动画(DynamicAnimation)、xml font、emoji、autosizeTextView等功能
support包的findViewById()方法返回类型变为协变类型
  • 废弃percent库,使用ConstraintLayout代替
  • NotificationCompat从v7移到v4
  • 协变类型对kotlin有影响,需要全局适配替换写法
  • NotificationCompat的使用需要迁移
26.0.1 修复一些crash
26.0.2 修复一些crash
26.1.0 Fragment和FragmentActivity增加了ArchitectureComponents的LifeCycle,如果没有使用到相关LifeCycle库,可不用升级
27.0.0
  • ViewCompat增加对AutoFill的包装支持
  • Fragment可以使用support包版本的Transition进行切换包括数据共享
27.0.1 修复一些问题
27.0.2 修复一些问题
27.1.0
  • RecyclerView提供了ListAdapter,通过submit(List)可以很方便高效的完成数据变化的渲染、动画等效果(比如之前只能删除连续的某些item执行一次绘制,现在可以任意变化数据渲染)
  • Activity/View/WindowCompat提供了requireViewById()方法代替findViewById(),返回Non-Null值或抛出异常
  • Fragment提供了requireContext/Host/Activity()方法,获取相应上下文或抛出异常
  • LoaderCallbacks方法增加了相应的@Non-Null和@Nullable注解
  • Loader相应方法,与FragmentActivity/Fragment绑定在一起:
    1. init/restart/destroyLoader()只能在主线程调用
    2. onStartLoading()和onStopLoading()分别在FA/Fra的start和stop时调用
    3. FragmentController相关控制Loader的方法过期
  • DialogFragment的getDialog()方法,在onDestroyView()执行前为Non-Null,所以可以在onStop()方法里,通过getDialog().isShowing()方法判断是否手动关闭了Dialog
修复一些问题 注解的更改需要适配
27.1.1 修复一些问题
28.0.0-Alpha1
  • recyclerview-selection功能,支持RecyclerView的选中状态,包括多选、滑动选中一组items等
  • 新的Theme,Theme.MaterialComponents,并提供了一些新的控件:BottomAppBar、Chip、ChipGroup、MaterialButton、MaterialCardView
  • ContextCompat的getSystemService()和getSystemServiceName()可以在所有API级别上查找系统服务
  • 部分功能采用androidx.前缀的包名
  • 更加细分support包依赖,将许多View单独拆分
修复一些问题
28.0.0-Beta1 实现了一些可用的、稳定的API,不过依然可能有一些问题 修复一些问题
28.0.0-RC1
  • 较稳定版,后续或当做release版本发出
  • 一些media2之类库还没有完成,不要使用
  • Alpha库不要依赖,还不稳定
修复一些问题
28.0.0-RC2 修复一些问题
28.0.0
  • AnimatedStateListDrawableCompat提供了drawable状态切换的过渡动画
  • VectorDrawableCompat支持了其多种颜色状态填充、边框、渐变效果
android.support的最后一个版本,后续要迁移到AndroidX

你可能感兴趣的:(知识积累,android相关)