Android support library

是什么?

Support Library是许多包(package)的集合,包里有许多类。在Android开发时我们要使用这些类来构建app。

为什么要使用Support Library中的类?

Android app的开发本质上是对Android系统提供的API进行运用,具体来讲就是运用SDK。但是不同的Android系统版本提供的>SDK是有差别的,已有的API可能改变或者加入新的API。

在开发一款APP时,我们是希望它能够在尽可能多的不同版本系统上运行的,并且UI/行为表现的一致。

现在假如没有Support Library我们会如何开发一款包含Fragment的APP呢?
我们会导入Framwork(Android Framwork)的Fragment类进行开发。这里有个问题出现了,Fragment是在Android3.0才引入的。>如果你要使用Fragment,那么minSDKVersion就要大于等于11(Android3.0对应API版本为11)。

开发完成后将app安装到Android2.3的手机时发现程序无法运行了,2.3系统还没有Fragment。

那么Android2.3的手机就无法享受使用Fragment类开发出来的APP了吗?Material相关类在Android5.0才引入,系统4.x的手机就>无法简单实现这个效果了吗?当然不是。

现在如果使用Support Library中的类就不会有问题了。比如导入Fragment时从Support Library的v4包中导入。现在用的是>Support Library中的类,所以就和具体的系统版本(2.3`、3.0)无关了。就可以在不同版本的系统上使用Fragment,并得到统一的>行为。

一句话概括,使用Support Library可以让App一定程度上向后兼容。让老版本的系统可以拥有新系统的一些特性。比如4.x系统的>手机上运行的App有Material效果。

如何选择?

Support Library中有不同的包,包名如appcompat-v7这里的v7代表的是这个包向后兼容到API7,如果系统比这还低appcomat-v7也不能让其有v7及其以上系统的一些新增特性。

不过随着Support Library24.2.0的发布,版本大于等于24.2.0的Support Library中的包最低只兼容到v9,也就是Android2.3。换句>话来说这种版本的Support Library中的v4最低也是兼容到API9的,而不是API4了。

有了上面这些概念,如何选择Support Library就比较简单了。根据业务情况,选择最新最稳定的。只要Support Library中有就用里面的类,不要用系统本身的。比如Activity类就用ActivityCompat这样就可以得到新版系统的Activity效果了。

你可能感兴趣的:(Android support library)