Support Library
我们先看看Android Support大家族
为支持高版本新特性能够运行在低版本手机中,为此google官方提供了Android Support Library package 系列的包来保证高版本sdk开发的向下兼容性,
所以你可能经常看到v4,v7,v13这些数字,首先我们就来理清楚这些数字的含义,以及它们之间的区别。- support-v4
例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabStrip,Loader,FileProvider 等
Gradle引用方法:
compile 'com.android.support:support-v4:24.2.0'
从24.2.0之后,support-v4包拆分成了5个子module,开发者可以根据需要自由选择依赖包,从而减少apk体积。参考我的另一篇博客
- support-v7
Gradle引用方法:
compile 'com.android.support:appcompat-v7:24.2.0'
- support-v13
这个包的设计是为了API level 13(即Android 3.2)及更高版本的,一般我们都不常用,平板开发中能用到,这里就不过多介绍了。
Theme
我们来介绍下各种Theme的概念。- Hoho Theme
所以你看到有类似 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
对应的程序实现上就有 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。
- 注意事项
compile ‘com.android.support:appcompat-v7:24.2.0’ 中的24代表API level 24推出的兼容包。
1)如果你引用的是21之前的版本,则默认这些Theme.AppCompat.Light是Holo风格的
2)从21开始的版本默认是Material风格
使用appcompat之后,你的所有的Activity应该继承自ActionBarActivity,而ActionBarActivity继承自FragmentActivity,所以放心的使用Fragment;
最后,相信已经讲的很清楚了,大家也可直接移步官方最权威的解释 https://developer.android.com/tools/support-library/features.html