Android各版本对应的SDK版本
API Level | 最初Android版本 | Linux内核版本 | 首次发布日期 | 后续Android版本 |
---|---|---|---|---|
29 | 10 | Unknown | 2019-06-05(Beta 4) | - |
28 | 9 | 4.4.107, 4.9.84, and 4.14.42 | 2018-08-06 | 无 |
27 | 8.1 | 4.10 | 2017-12-05 | 无 |
26 | 8.0 | 4.10 | 2017-08-21 | 无 |
25 | 7.1 | 4.4.1 | 2016-10-04 | 7.1.1、7.1.2 |
24 | 7.0 | 4.4.1 | 2016-08-22 | 无 |
23 | 6.0 | 3.18.10 | 2015-10-05 | 6.0.1 |
22 | 5.1 | 3.16.1 | 2015-03-09 | 5.1.1 |
21 | 5.0 | 3.16.1 | 2014-11-12 | 5.0.1、5.0.2 |
20 | 4.4w | 3.10 | 2014-06-25 | 4.4w.1、4.4w.2 |
19 | 4.4 | 3.10 | 2013-10-31 | 4.4.1、4.4.2、4.4.3、4.4.4 |
18 | 4.3 | 3.4.0 | 2013-07-24 | 4.3.1 |
17 | 4.2 | 3.4.0 | 2012-11-13 | 4.2.1、4.2.2 |
16 | 4.1 | 3.0.31 | 2012-07-09 | 4.1.1、4.1.2 |
15 | 4.0.3 | 3.0.1 | 2011-12-16 | 4.0.4 |
14 | 4.0 | 3.0.1 | 2011-10-18 | 4.0.1、4.0.2 |
13 | 3.2 | 2.6.36 | 2011-07-15 | 3.2.1、3.2.2、3.2.3、3.2.4、3.2.5、3.2.6 |
12 | 3.1 | 2.6.36 | 2011-05-10 | 无 |
11 | 3.0 | 2.6.36 | 2011-02-22 | 无 |
10 | 2.3.3 | 2.6.35 | 2011-02-09 | 2.3.4、2.3.5、2.3.6、2.3.7 |
9 | 2.3 | 2.6.35 | 2010-12-06 | 2.3.1、2.3.2 |
8 | 2.2 | 2.6.32 | 2010-05-20 | 2.2.1、2.2.2、2.2.3 |
7 | 2.1 | 2.6.29 | 2010-01-12 | 无 |
6 | 2.0.1 | 2.6.29 | 2009-12-03 | 无 |
5 | 2.0 | 2.6.29 | 2009-10-26 | 无 |
4 | 1.6 | 2.6.29 | 2009-09-15 | 无 |
3 | 1.5 | 2.6.27 | 2009-04-27 | 无 |
2 | 1.1 | 2.6.X | 2009-02-09 | 无 |
1 | 1.0 | - | 2008-09-23 | 无 |
Android基于Linux内核开发,在Android基础上进行开发需要相应的SDK,SDK提供相应的API。
Android SDK
Android SDK全称为安卓软件开发工具包,主要作用包括:
1.提供基础类库和官方推荐的附加类库
调用电话/调用相机/相册选择等都是由基础类库android.jar提供的
v4包v7包都是官方推荐的附加类库
2.编译工具
java编码文件通过编译工具编译成Darvit虚拟机能够读取的dex文件,Android4.4后使用Art虚拟机,运行效率得到极大的提高。
3.调试开发工具
提供了模拟器等调试开发工具
需求案例
2018年平安银行产品经理和开发人员打架事件受到广泛的关注,主要是由于不懂技术的产品经理提出奇葩需求:app的主题颜色能够根据手机壳的颜色变化而变化。我们一个需求的实现高度依赖于SDK,SDK提供了相关API我们就能做,如果没有提供我们就做不了,因此该开发人员在拒绝该需求的时候解释说没有提供接口,这里就是说SDK没有提供相关的API来做这个需求。
JDK
JDK全称为Java开发工具包,主要作用包括:
1.提供基础类库
由rt.jar提供了基础类的API,如果基础类没有只能由jar包的扩展类来提供
2.JVM[JAVA虚拟机]
class文件通过JVM"翻译"成机器能够识别的二进制的编码,充当着机器和虚拟机之间的桥梁
3.编译器
将java编码"翻译"成JVM能够识别的成class文件
4.调试开发工具
提供debug调试工具等
跨平台
Java之所以能实现其跨平台的属性其JVM功不可没,不管你是win、mac还是Linux系统,只要安装了JDK,就能跨平台运行class文件。JVM做了中间的桥梁,所以JVM是很牛逼的东西,可惜的是我国真正去研究JVM的人很少。
Android SDK和JDK区别和联系
1.Android SDK的基础类库[android.jar]参考了大部分的JDK基础类库[rt.jar],在此基础上进行的一些修减,增加了Android特有的也删除了JDK的一些基础类,也有改造了一些类。
2.Android SDK不包括虚拟机但JDK包括虚拟机,Android的Darvit&ART虚拟机安装在Android设备上,Android是不存在main方法的入口这种说法的。
3.Android SDK编译工具[Gradle]是将java文件编译成Darvit&ART虚拟机能够读取的apk文件,JDK编译工具将java文件编译成JVM虚拟机能够读取的class文件。apk文件本质上就是zip包其中类主要编译在dex文件中,dex文件由class文件转化而来,因此apk的编译程序比war包[将class文件打包,用于部署在服务器]编译程序要多且要慢。
Android各版本对应JDK版本
SDK版本 | JDK版本 |
---|---|
10 | 6 |
15 | 6 |
16 | 6 |
17 | 6 |
18 | 6 |
19 | 6 |
21 | 7 |
22 | 7 |
23 | - |
26 | - |
更多相关文章
- Android(安卓)控件抖动效果
- android binder c++层 - 回调客户端服务 - 客户端(c++层) 调用
- Android中使用Animation实现控件的动画效果以及Interpolator和An
- Android(安卓)Developers:日历提供者
- Android应用程序支持大小不同的屏幕
- Android连接SpringMVC配置信息
- Android之自定义ProgressBar
- Android(安卓)读取文件File的大小
- Phone双模修改涉及文件列表