前言
随着 Android 5.0 Lollipop 的发布,Android 又为我们提供了更多的支持包,但是我相信大部分开发者都同我之前一样不知道这些包里究竟有些什么东西,我们应该在什么时候使用它。现在,我们就来逐个看看每一个版本的 Support 包中所拥有的东西,让用到他的时候不再迷茫。
首先,你需要了解每一个 Support 包版本后缀 vX 所代表的含义。当然我相信来看博客的诸位都一定知道 Android 对于每一个版本都有一个版本号,例如2.1是7,4.0是14,5.0是21。而这里,v 之后的数字,就代表着他能够被使用的最低版本等级,之所以无法在更低版本进行使用的原因,是因为随着版本的升级,在新版本中有很多之前不支持的特性或者 API,因此如果你在老版本中使用了这些支持包,就可能会导致应用崩溃。
一、区别
google提供了Android Support Library package 系列的包来保证来高版本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及更高版本的,一般我们都不常用,平板开发中能用到。
二、特性说明
Android Support v4支持库
support-v4包算是Android对低等级的支持包。v4代表它最低支持Android1.6(API Level 4),在support-v4包中,它所拥有的类有很多,主要包含了对应用组件的支持,用户交互体验的一些工具类,一些数据网络方面的工具类。
1、系统应用组件
①、Fragment -增加了对用户界面和功能与片段的封装支持,使应用程序能够提供小型和大屏幕设备之间的调整布局(Fragment是直到Android3.0才正式进入Android框架体系的,但是Android为了低版本的兼容,因此在低版本也适配了Fragment框架)。
②、NotificationCompat -添加丰富的通知功能的支持。
③、LocalBroadcastManager -允许应用程序轻松注册,并在一个单一的应用程序接收的意图,而不在全球播放它们(用于本地广播通知)。
2、用户界面交互
①、ViewPager -添加 的ViewGroup,管理布局为孩子的意见,这对用户之间可以刷卡(界面间的滑动交互)。
②、PagerTitleStrip -增加一个非交互标题条,可以被添加作为一个子 ViewPager。
③、PagerTabStrip -增加一个导航部件分页视图之间进行切换,即也可以与使用 ViewPager。
④、DrawerLayout -用于创建添加支持导航抽屉,可以从一个窗口的边缘被拉到中(侧滑栏的实现)。
⑤、SlidingPaneLayout -用于创建链接的摘要和详细视图,适当地适应各种屏幕尺寸添加小部件(也是侧滑栏的实现,和DrawerLayout不同的是,DrawerLayout侧滑栏出来的时候,默认是覆盖在当前页面上,而SildingPaneLayout则是会将当前页面移走)。
3、可访问性
①、ExploreByTouchHelper -增加了一个辅助类实现了自定义视图可访问性支持(帮助自定义View实现Accessibility的工具类)。
②、AccessibilityEventCompat -为增加支持 AccessibilityEvent。有关实现可访问性的更多信息,请参阅辅助功能。
③、AccessibilityNodeInfoCompat -为增加支持AccessibilityNodeInfo。
④、AccessibilityNodeProviderCompat -为增加支持AccessibilityNodeProvider。
⑤、AccessibilityDelegateCompat -为增加支持 View.AccessibilityDelegate。
内容
4、数据访问帮助类
①、Loader -增加了对数据的异步加载的支持。该库还提供了此类的具体实现,包括 CursorLoader和AsyncTaskLoader。
②、FileProvider -添加应用程序之间共享私人文件的支持。
有包括在这个库中许多其他的API。有关V4支持库API的完整,详细的信息,请参阅android.support.v4包中的API参考。
该库位于 /extras/android/support/v4/目录中下载Android支持库后。该库中不包含用户界面资源。把它列入你的应用程序项目,然后按照说明添加库没有资源。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:support-v4:21.0.0+
这种依赖性符号指定发行版本21.0.0或更高版本。
Multidex支持库
该库提供了多的Dalvik可执行文件(DEX)文件构建应用程序的支持。引用超过65536方法的应用程序都需要使用multidex配置。有关使用multidex的详细信息,请参阅
构建应用程序与在65K方法。
该库位于/extras/android/support/multidex/目录中下载Android支持库后。该库中不包含用户界面资源。把它列入你的应用程序项目,然后按照说明添加库没有资源
。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:multidex:1.0.0+
这种依赖性符号指定发行版本1.0.0或更高版本。
Android Support v7支持库
有设计成与Android 2.1(API 7级)和较高的使用几个库。这些图书馆提供特定的功能集,并可以包含在独立的应用程序彼此。
(1)、v7 appcompat库
这个库增加了对support action bar的用户界面设计模式。该库包括support material design的用户界面实现(这个包的主要作用是为了在低版本实现 Android 的 Holo 风格界面而引入的,与之类似的有一个开源项目叫做 SherlockActionbar)。
注意: 这个库依赖于V4支持库。如果您在使用Ant或者Eclipse,请确保您包括V4支持库,因为这个库的类路径中的一部分。
这里有几个关键的类包含在V7 appcompat库:
①、ActionAar -提供的操作栏的实现 用户界面模式。有关使用操作栏的详细信息,请参阅 操作栏开发人员指南。
②、ActionBarActivity -添加时必须使用作为活动使用的支持库操作栏实现基类的应用程序活动课。
③、ShareActionProvider -一个标准化的分享动作(如电子邮件,或张贴到社交应用),可以包含在动作条上增加了支持。
该库位于 /extras/android/support/v7/appcompat/ 目录中下载Android支持库后。该库包含用户界面资源。把它列入你的应用程序项目,然后按照说明 添加库的资
源。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:appcompat-v7:21.0.0+
这种依赖性符号指定发行版本21.0.0或更高版本。
(2)、v7 cardview库
这个库增加了对支持CardView 控件,它可以让你证明这里面有一个一致的外观上的任何应用程序卡的信息。这些卡是材料设计的实现是有用的,并且被广泛用于布局的
电视应用程序(卡片布局是最近在Android5.0发布的时候才引入的新包,主要效果是让应用进行卡片化显示)。
该库位于 /axtras/android/support/v7/cardview/目录中下载Android支持库后。该库包含用户界面资源。把它列入你的应用程序项目,然后按照说明添加库的资源
。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:cardview-v7:21.0.0+
这种依赖性符号指定发行版本21.0.0或更高版本。
(3)、v7 GridLayout的Library
这个库增加了对支持GridLayout的类,它允许你安排使用矩形单元的网格用户界面元素。有关V7 GridLayout的库API的详细信息,请参阅 android.support.v7.widget
包中的API参考。
该库位于 /extras/android/support/v7/GridLayout/目录中下载Android支持库后。该库包含用户界面资源。把它列入你的应用程序项目,然后按照说明添加库的
资源。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:gridlayout-v7:21.0.0+
这种依赖性符号指定发行版本21.0.0或更高版本。
(4)、v7 mediarouter库
该库提供MediaRouter,MediaRouteProvider,以及相关的媒体类,支持 GoogleCast(主要用于进行设备间的音频,视频交换显示)。
在一般情况下,在第7版mediarouter库中的API提供的控制的媒体信道的路由的一种方法,并从当前设备到外部屏幕,扬声器,和其他的目的设备流。该库包含的API用
于发布应用程序特定的媒体路由提供商,为发现和选择目标设备,用于检查介质的状态,等等。有关V7 mediarouter库API的详细信息,请参阅
android.support.v7.media包中的API参考。
mediarouter库位于该V7 /extras/android/support/v7/mediarouter/目录中下载Android支持库后。它作为一个库项目,在V7 appcompat库的依赖性,所以你需要设
置,当你的项目,包括图书馆在构建路径。有关如何设置你的项目的更多信息,请按照说明添加库的资源。如果您正在开发在Eclipse / ADT,请务必同时包含Android
的support-v7-mediarouter.jar和 Android的support-v7-appcompat.jar文件。
如果您使用的是Android Studio,所有你需要做的是指定的摇篮构建脚本的依赖标识符com.android.support:support-v7-mediarouter:<修订>,其中“<修订>”是最
低版本在该图书馆是可用的。例如:
com.android.support:mediarouter-v7:21.0.0+
在支持库R18推出的V7 mediarouter库API都受到了支持库的更新版本改变。这时,我们建议您使用该库仅在连接GoogleCast。
(5)、v7 Palette库
在v7 Palette支持库包括Panel类,它可以让你从图像中提取突出的颜色。例如,一个音乐应用程序可以使用一个 调色板对象从专辑封面中提取的主要颜色,并用这些颜
色来打造一个色彩协调的歌名卡(这个包也是最新出来的,他的作用是帮助 Android 实现他的 MaterialDesign,让你的 Actionbar 能够根据界面进行对应的颜色改变)。
该库位于 /extras/android/support/v7/Palette/目录中下载Android支持库后。该库中不包含用户界面资源。把它列入你的应用程序项目,然后按照说明 添加库没有资
源。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:Palette-v7:21.0.0+
这种依赖性符号指定发行版本21.0.0或更高版本。
(6)、v7 recyclerview库
该recyclerview库添加RecyclerView 类。该类提供用于支持 RecyclerView插件,用于通过提供的数据项的有限窗口有效地显示大量数据集的图(这个包同样也是刚出来的,他的作用是替换 ListView 和 GridView,但是可惜是没有实现 OnItemClick 这些接口,你需要自己处理它)。
该库位于 /extras/android/support/v7/recyclerview/目录中下载Android支持库后。该库包含用户界面资源。把它列入你的应用程序项目,然后按照说明添加库的
资源。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:recyclerview-v7:21.0.0+
这种依赖性符号指定发行版本21.0.0或更高版本。
Android Support v8支持库
这个库被设计成与Android(API等级8)和较高的使用。它增加了对支持RenderScript计算框架。这些API包括在android.support.v8.renderscript包。你应该知道的步
骤,包括这些API在应用程序中是非常不同的其他的支持库API。有关在应用程序中使用这些API的更多信息,请参阅 RenderScript 开发人员指南。
注:使用RenderScript与支持库支持与Android的Eclipse插件和Ant构建工具。它是目前不采用Android Studio或支持的摇篮-基于构建。
Android Support v13支持库
这个库是设计用来为Android 3.2(API级别13)和更高。它增加了对支持片段的(用户界面模式FragmentCompat)类和附加片段支持类。有关片段的详细信息,请参阅
Fragment开发人员指南。有关V13支持库API的详细信息,请参阅android.support.v13包中的API参考。
该库位于 /extras/android/support/v13/目录中下载Android支持库后。该库中不包含用户界面资源。把它列入你的应用程序项目,然后按照说明 添加库没有资源。
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:support-v13:18.0.0+
这种依赖性符号指定发行版本18.0.0或更高版本。
Android Support v17库
该android.support.v17.leanback包提供的API来支持建筑物的用户界面在电视上的设备。它提供了许多重要的窗口小部件用于电视的应用程序。一些著名的类包括:
①、BrowseFragment -的片段,用于创建一个主布局为浏览类别和行的媒体项目。
②、DetailsFragment -一个包装片段Leanback的细节画面。
③、PlaybackOverlayFragment -的一个子类DetailsFragment用于显示播放控制及相关内容。
④、SearchFragment -一个片段来处理搜索。片段接收到用户的搜索请求,并把它传递给应用程序提供的SearchResultProvider。该SearchResultProvider返回搜索结果给
SearchFragment,这使得它们成为一个RowsFragment。
该库位于 /extras/android/support/v17/Leanback的目录中下载Android的支持库后。有关如何设置你的项目的更多信息,请按照说明添加库的资源
这图书馆的摇篮构建脚本依赖标识符如下:
com.android.support:leanback-v17:21.0.0+
这种依赖性符号指定发行版本21.0.0或更高版本。
参考:
http://www.xiaoyunduo.org/article/235/
https://my.oschina.net/chengliqun/blog/148451
http://blog.csdn.net/tanranran/article/details/41010187