您的位置:首页 > 移动开发 > Android开发

[wordpress搬家]Android 基础 — 经常打交道的Support Library

2015-01-06 18:15 501 查看
有意无意见经常用到,如果工程引用别的库的话这个兼容库还经常冲突,到底何方神圣?为什么这个容易冲突呢?有点意思。

其实官方的文档很简单,对于兼容库的使用是一种Best practice,在兼容库中的Feature我们都可以使用,有助于我们提升UI的的质量、程序的性能等。在使用的同时对版本也会向前兼容到兼容库的level(比如我用了android-support-v4.jar的feature,则我们app最低可以在android api level v4(1.6)上运行)。

兼容库目前分为

V4 support library,对应Api Lv4

(Fragment, NotificationCompat, LocalBroadcastManager, ViewPager, PageTitleStrip…)
V7 support library,对应Api Lv7

(ActionBar, ShareActionProvider, GridLayout, MediaRouter…)
V8 support library,对应Api Lv8

(RenderScript)
V13 support library,对应Api Lv13

(FragmentCompat)
(api roadmap)

可以看到不同level的兼容包包含了不同的feature(详情)

在官方文档中发现对于同一个兼容库其实存在很多revision:

Android Support Library, revision 18 (July 2013)
Android Support Library, revision 12 (February 2013)
Android Support Library, revision 11 (November 2012)
Android Support Library, revision 10 (August 2012)

个版本的兼容库也在不断更新,不过jar包并没有表现出更新的版本号,只有监控库的版本,所以这里有可能会出现冲突,在基于模块/库进行开发时如果发现编译出现问题,可以对比一下兼容库jar包的大小。

在使用兼容库时要注意两点

1,同一个类类名相同,但是兼容库的包名以android.support开头。如用Fragment时就需要注意,使用当前SDK的Fragment还是v4的Fragment,需要在包名上进行选择!

2,同一个类功能相同,但是兼容库的类名多了Compat后缀如NotificationCompat

另外还需要注意,再AndroidManifest.xml中,App对应的最高与最低版本:

<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="17" />

最高版本的兼容包决定了最低的SDK Level,我们用到了V7 support Library,则minSdkVersion应该至少为7。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android