Android系统每年都会有版本更新,新版本必然带来新的特性。但是,要想使用这些新特性,手机的系统就要更新到最新的版本。

大家都知道,iPhone,是苹果生产的,iOS版本的升级只需要考虑自己发布的产品就好了。 Android不一样,它是一个开放的生态系统,代码开源,只要是手机厂商都能生产搭载Android系统的手机,但用的硬件却是五花八门的。 一个手机操作系统要想正常的运行,必须能够跟手机的硬件兼容,所以大部分手机厂商使用的系统都是在官方版本基础上修改得来的,想升级不能直接拿官方版本直接安装,存在兼容性问题, 装了也用不了,说不准手机就变砖了。 当然,为了让新系统有更多人使用,google在发布Android新版本之前,会优先跟一些大厂做好测试,让他们的手机能够使用上最新的系统。 小厂的你就自己搞定吧。这些得不到官方支持的手机想要用到最新的系统,必须等手机厂商出升级包解决。

除了喜欢折腾系统的,绝大部分人是不会升级系统的。即使厂商推出了升级包也不会主动去升级。这样Android系统的版本在市场上就越来越分化, 就是从1.6到6.0,什么版本的都有,也没有哪个版本比例特别高。 当然随着时间的推移,最老的版本随着手机退役也会逐渐消失,比如最早的1.6、2.1版本的,现在已经很少了。

那只有新手机能用上最新的特性,Google岂不是很烦,好不容易开发的,没几个人用。开发应用的开发者也不乐意,新有什么用,老手机又用不了,我的用户怎么办呀。 怎么办呢?

有办法,google想出了一个好办法。我在开发的SDK里加一个扩展包(官方叫法是Android Support Library),把新特性单独拎出来,这个包可以支持在老版本的系统上跑,开发app的时候直接用就行。 那这是怎么做到的呢?很简单,这个包里的代码是调用老系统的api来实现新版本的特性。相当于在老系统上重新实现了一遍。想想工作量还是蛮大的。

这下好了,你开发的app既使用最新的特性,又可以在老的系统上跑,用户一点都没少。

关于Android系统的扩展包说明,请参见官方文档Android Support Library Features。 关于Android版本和API Level的对应关系,参见API Level