周报分类的作用是用于推动我自己对新资讯的了解,同时累积一些东西
这个94期主要是以下几点
一、Android Support Library 24.2.0 更新。新版本不再支持 Android 2.2 (API level 8) 及以下版本
这条来看还是比较明显的,Android Support Library 是用于保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如fragement,ViewPager等
Android Support v4: 这个包是为了照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建工程时,都默认带有了。
Android Support v7:这个包是为了考虑照顾2.1及以上版本而设计的,但不包含更低,故如果不考虑1.6,我们可以采用再加上这个包,另外注意,v7是要依赖v4这个包的,即,两个得同时被包含。
Android Support v13这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到。
上面是大概的包名,在实际引用中是带版本号的,比如:com.android.support:support-v4:24.1.1
后面的24.1.1就是版本了,那么上面那条资讯表示的就是,从com.android.support:support-v4:24.2.0开始,在android2.2及以下
就不再支持使用support包了,就是说,如果你想在android2.2上使用suport中的v4包得话,请使用24.2.0以下的包吧
二、support-v4 大拆分
就是说,在最新版的v4包,即com.android.support:support-v4:24.2.0开始,你可以选择性地只引入一部分,那么分哪些部分呢
(1) support-compat
兼容一些 Framework API。如 Context.getDrawable() 和 View.performAccessibilityAction()。大小为 602k。
(2)support-core-utils
提供一系列核心的工具,如 AsyncTaskLoader 和 PermissionChecker。大小为 90k。
(3)support-core-ui
提供一系列核心的 UI,如 ViewPager、 NestedScrollView。大小为 240k。
(4)support-media-compat
android.media 兼容库,包括 MediaBrowser 和 MediaSession。大小为 248k。
(5)support-fragment
fragment 的兼容库,大小为 136k。
同时,这些模块之间还存在一个依赖关系:
从中可以看出 support-fragment 依赖于所有其他子 Module,而 support-v4 包含所有 Module,所以现在引入
compile 'com.android.support:support-fragment:24.2.0'
与
compile 'com.android.support:support-v4:24.2.0'
的效果是一样的。
这里还有一个问题,就是如果只单独引用一个包的话,看起来好像是体积减少了很多,但是在实际使用中你却得考虑到他所依赖的包,比如
我只用了 AsyncTaskLoader,只需要引用 从上面的依赖关系可以看出它们都依赖 support-compat,而 support-annotations 还有 21k,这样引用 support-core-utils 实际增大大小约为 700k+。
还有我们使用中使用了v7等对v4有依赖的包时,就更需要处理了,所以目前来说优点还不是很明显