Android各版本发布时间及对应API(2019.3.2截至Android最新版本 P)minSdkVersion maxSdkVersion targetSdkVersion target区别
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.
简单来说,就是一套可供调用的系统接口.
比如地图类API—百度地图API,应用类API—豆瓣API,系统自带的WI-FI API和多媒体API。
以下是Android主流版本、发布时间和对应的API level:
Android Beta,发布于2007年11月5日,同时的软件开发套件(SDK),发布于2007年11月12日。 11月5日被认为是Android的"生日"。 | |||||
Android版本名称Code name | Android版本 | 版本发布时间 | 对应API | ||
(no code name) | 1.0 | 2008年9月23日 | API level 1 | ||
(no code name) | 1.1 | 2009年2月2日 | API level 2 | ||
Cupcake | 1.5 | 2009年4月17日 | API level 3,NDK 1 | ||
Donut | 1.6 | 2009年9月15日 | API level 4,NDK 2 | ||
Eclair | 2.0.1 | 2009年12月3日 | API level 6 | ||
Eclair | 2.1 | 2010年1月12日 | API level 7,NDK3 | ||
Froyo | 2.2.x | 2010年1月12日 | API level 8,NDK 4 | ||
Gingerbread | 2.3 – 2.3.2 | 2011年1月1日 | API level 9,NDK5 | ||
Gingerbread | 2.3.3 – 2.3.7 | 2011年9月2日 | API level 10 | ||
Honeycomb | 3.0 | 2011年2月24日 | API level 11 | ||
Honeycomb | 3.1 | 2011年5月10日 | API level 12,NDK 6 | ||
Honeycomb | 3.2.x | 2011年7月15日 | API level 13 | ||
Ice Cream Sandwich | 4.0.1 – 4.0.2 | 2011年10月19日 | API level 14,NDK 7 | ||
Ice Cream Sandwich | 4.0.3 – 4.0.4 | 2012年2月6日 | API level 15,NDK 8 | ||
Jelly Bean | 4.1 | 2012年6月28日 | API level 16 | ||
Jelly Bean | 4.1.1 | 2012年6月28日 | API level 16 | ||
Jelly Bean | 4.2-4.2.2 | 2012年11月 | API level 17 | ||
Jelly Bean | 4.3 | 2013年7月 | API level 18 | ||
KitKat | 4.4 | 2013年7月24日 | API level 19 | ||
Kitkat Watch | 4.4W | 2014年6月 | API level 20 | ||
Lollipop(Android L) | 5.0/5.1 | 2014年6月25日 | API level 21/API level 22 | ||
Marshmallow(Android M) | 6.0 | 2015年5月28日 | API level 23 | ||
Nougat(Android N) | |||||
Nougat(Android N) | |||||
7.0 | |||||
7.1 | |||||
2016年5月18日 | |||||
2016年12月 | |||||
API level 24 | |||||
API level 25 | |||||
Oreo(Android O) | 8.0 | 2017年8月22日 | API level 26 | ||
Oreo(Android O) | 8.1 | 2017年12月5日 | API level 27 | ||
Pie (Android P) | |||||
不是凤梨酥(PineappleCake) | |||||
9 | 2018年8月7日 | API level 28 | |||
Android的版本,有个API Level,对应着某个Android发布版本的名称。 |
使用Android Studio的开发者可以简单查看对应的API level,参考方法如下:
minSdkVersion maxSdkVersion targetSdkVersion target 的区别
minSdkVersion
描述:app最低支持的sdk版本号
作用:如果手机SdkVersion小于app中定义的minSdkVersion,则android系统不允许安装该app
定义位置:AndroidManifest.xml
默认值:1
检测时机:app安装
maxSdkVersion
描述:app最高支持的sdk版本号
作用:如果手机SdkVersion大于app中定义的maxSdkVersion,则android系统不允许安装该app
定义位置:AndroidManifest.xml
默认值:无
检测时机:app安装(Android 2.0.1之后不再检测)
targetSdkVersion
描述:目标SdkVersion
作用:标识在指定的SdkVersion已做充分测试,Android系统不会针对此版本进行兼容处理
如果targetSdkVersion=16的app跑在SdkVersion=16的手机上,则Android系统不会做任何兼容处理,从而提高了性能
如果targetSdkVersion=16的app跑在SdkVersion=17的手机上,则Android系统需要做兼容处理以保障app仍然以16的特性运行
如果targetSdkVersion=16的app跑在SdkVersion=15的手机上,可能会出现错误,所以至少要保证app在minSdkVersion的手机上测试通过
定义位置:AndroidManifest.xml
默认值:minSdkVersion
检测时机:运行时
target
描述:build target
作用:编译、构建工程时使用的SdkVersion
定义位置:project.properties
默认值:无
检测时机:编译生成 .apk