Android SDK中的Support兼容包详解

转载 2015年07月09日 17:35:40

背景

来自于知乎上邀请回答的一个问题Android中AppCompat和Holo的一个问题?, 看来很多人还是对这些兼容包搞不清楚,那么干脆写篇博客吧.

Support Library

我们都知道Android一些SDK比较分裂,为此google官方提供了Android Support Library package 系列的包来保证高版本sdk开发的向下兼容性, 所以你可能经常看到v4,v7,v13这些数字,首先我们就来理清楚这些数字的含义,以及它们之间的区别。

support-v4

用在API lever 4(即Android 1.6)或者更高版本之上。它包含了相对更多的内容,而且用的更为广泛,例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabStrip,Loader,FileProvider 等

Gradle引用方法:

复制代码代码如下:

compile 'com.android.support:support-v4:21.0.3'

support-v7

这个包是为了考虑API level 7(即Android 2.1)及以上版本而设计的,但是v7是要依赖v4这个包的,v7支持了Action Bar以及一些Theme的兼容。

Gradle引用方法:

复制代码代码如下:

compile 'com.android.support:appcompat-v7:21.0.3'

support-v13
这个包的设计是为了API level 13(即Android 3.2)及更高版本的,一般我们都不常用,平板开发中能用到,这里就不过多介绍了。

Theme
回到知乎上的这个问题,我们来介绍下各种Theme的概念。

Hoho Theme

在4.0之前Android可以说是没有设计可言的,在4.0之后推出了Android Design,从此Android在设计上有了很大的改善,而在程序实现上相应的就是Holo风格,所以你看到有类似 Theme.Holo.Light、 Theme.Holo.Light.DarkActionBar 就是4.0的设计风格,但是为了让4.0之前的版本也能有这种风格怎么办呢?这个时候就不得不引用v7包了,所以对应的就有 Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar,如果你的程序最小支持的版本是4.0,那么可以不用考虑v7的兼容。

Material Design Theme

今年的5.0版本,Android推出了Material Design的概念,这是在设计上Android的又一大突破。对应的程序实现上就有 Theme.Material.Light、 Theme.Material.Light.DarkActionBar等,但是这种风格只能应用在在5.0版本的手机,如果在5.0之前应用Material Design该怎么办呢?同样的引用appcompat-v7包,这个时候的Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar就是相对应兼容的Material Design的Theme。

注意事项

gradle引用appcompat-v7包的时候就不需要引用v4了,因为v7里默认包含了v4包;

compile ‘com.android.support:appcompat-v7:21.0.3' 中的21代表API level 21推出的兼容包,所以如果你引用的是21之前的版本,则默认这些Theme.AppCompat.Light是Holo风格的,从21开始的版本默认是Material风格

使用appcompat之后,你的所有的Activity应该继承自ActionBarActivity,而ActionBarActivity继承自FragmentActivity,所以放心的使用Fragment;

Android笔记——Android Support兼容包汇总与浅析

Android Support兼容包汇总与浅析 一.概述 (一) 本博客在写的过程中,参考了 http://blog.csdn.net/crazybigfish/article/details/185...
  • devtrees
  • devtrees
  • 2015年04月03日 08:41
  • 2885

android-Google Support Library及Android源码 兼容包下载

》Android一些SDK比较分裂,为此google官方提供了Android Support Library package 系列的包来保证高版本sdk开发的向下兼容性, 所以你可能经常看到v4,v7...
  • ShareUs
  • ShareUs
  • 2015年12月28日 15:03
  • 1242

【Android】Support兼容包详解

背景 来自于知乎上邀请回答的一个问题Android中AppCompat和Holo的一个问题?, 看来很多人还是对这些兼容包搞不清楚,那么干脆写篇博客吧. Support Library...
  • u011494050
  • u011494050
  • 2015年04月15日 10:43
  • 1357

Android Support兼容包详解

背景 来自于知乎上邀请回答的一个问题Android中AppCompat和Holo的一个问题?, 看来很多人还是对这些兼容包搞不清楚,那么干脆写篇博客吧. Support Library ...
  • qq263229365
  • qq263229365
  • 2015年04月02日 18:12
  • 754

Android Support兼容包 详解

背景 来自于知乎上邀请回答的一个问题Android中AppCompat和Holo的一个问题?, 看来很多人还是对这些兼容包搞不清楚,那么干脆写篇博客吧. Support Library ...
  • langjian2012
  • langjian2012
  • 2015年07月08日 19:27
  • 623

ANDROID SUPPORT兼容包详解

http://stormzhang.com/android/2015/03/29/android-support-library/ http://stormzhang.com/android/2...
  • u011904605
  • u011904605
  • 2016年12月05日 20:51
  • 106

关于android support v7包的使用

android support v7包是个好东西,在使用的时候遇到了几个比较low的问题,在这里总结一下,如果有遇到同样问题的朋友可以参考: 1.v7包src中是没有代码的,v7的所有代码都在v7包...
  • explorerqp
  • explorerqp
  • 2015年09月14日 18:58
  • 1944

Android Support兼容包详解<v4、v7>

Android Support兼容包详解 google官方提供了Android Support Library package 系列的包来保证高版本sdk开发的向下兼容性。 注意: grad...
  • chenrushui
  • chenrushui
  • 2016年05月03日 18:25
  • 11076

SDK Manager中Extras下没有Android Support Library?

SDK Manager中Extras下没有Android Support Library?       如图,有时候在Sndroid Studio的SDK Manager 中 Extras下没有 ...
  • ljheee
  • ljheee
  • 2016年12月19日 12:14
  • 16207

Android兼容包Support v4.v7.v13区别与应用场景

引言Google为了在较低版本中兼容高版本的控件和布局以及相关的一些主题(Theme),推出了兼容包,方便开发人员在较低版本中使用高版本的效果。因此,我们经常会看到v4,v7,v13,v14,v17等...
  • woshimalingyi
  • woshimalingyi
  • 2016年03月04日 10:59
  • 4930
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android SDK中的Support兼容包详解
举报原因:
原因补充:

(最多只允许输入30个字)