API Level最初Android版本Linux内核版本首次发布日期后续Android版本
2910Unknown2019-06-05(Beta 4)-
2894.4.107, 4.9.84, and 4.14.422018-08-06
278.14.102017-12-05
268.04.102017-08-21
257.14.4.12016-10-047.1.1、7.1.2
247.04.4.12016-08-22
236.03.18.102015-10-056.0.1
225.13.16.12015-03-095.1.1
215.03.16.12014-11-125.0.1、5.0.2
204.4w3.102014-06-254.4w.1、4.4w.2
194.43.102013-10-314.4.1、4.4.2、4.4.3、4.4.4
184.33.4.02013-07-244.3.1
174.23.4.02012-11-134.2.1、4.2.2
164.13.0.312012-07-094.1.1、4.1.2
154.0.33.0.12011-12-164.0.4
144.03.0.12011-10-184.0.1、4.0.2
133.22.6.362011-07-153.2.1、3.2.2、3.2.3、3.2.4、3.2.5、3.2.6
123.12.6.362011-05-10
113.02.6.362011-02-22
102.3.32.6.352011-02-092.3.4、2.3.5、2.3.6、2.3.7
92.32.6.352010-12-062.3.1、2.3.2
82.22.6.322010-05-202.2.1、2.2.2、2.2.3
72.12.6.292010-01-12
62.0.12.6.292009-12-03
52.02.6.292009-10-26
41.62.6.292009-09-15
31.52.6.272009-04-27
21.12.6.X2009-02-09
11.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版本
106
156
166
176
186
196
217
227
23-
26-

更多相关文章

  1. Phone双模修改涉及文件列表
  2. Android 读取文件File的大小
  3. Android屏幕截图并保存截取屏幕的图片到指定文件
  4. Android 编译App报错 找不到android.support.annotation.Keep的
  5. Android 编译提示R文件找不到
  6. 总结系列-Android的文件系统
  7. Android 源码启动虚拟机经验
  8. Android JNI学习笔记——so文件动态加载
  9. Android APK 文件自动安装

随机推荐

  1. [Linux] 批量查看Android应用程序的文件
  2. android Handler and progress
  3. Android(安卓)反射简化findViewById
  4. [Android实例] android多点触摸demo
  5. Android之AlertDialog.Builder详解
  6. android蓝牙模块
  7. CentOS 安装 Android
  8. android 弹出日期选择框
  9. 使用组件构建Android应用程序
  10. 使用Android新式LruCache缓存图片,基于线