Android SDK和JDK区别和联系
1.Android SDK基本包含rt.jar基础类库但是并不全部包括,剔除了rt.jar的部分基础类
2.Android SDK不包括虚拟机但JDK包括虚拟机,Android的Darvit虚拟机安装在Android设备上
3.Android SDK和JDK编译工具都是将java文件编译成各自虚拟机能够识别的编码
构建代码时首先将代码编译成 .class 文件这时候使用的基本上是标准的 Java 字节码这一步需要 Java SDK 中 javac 编译程序然后 android SDK 将其与依赖库一起转换打包成安卓平台的 .dex 文件最后连同其它资源一起打包签名生成 .apk 文件
Android SDK
Android SDK全称为安卓软件开发工具包,主要作用包括:
1.提供基础类库和官方推荐的附加类库
调用电话/调用相机/相册选择等都是由基础类库android.jar提供的
v4包v7包都是官方推荐的附加类库
2.编译工具
java编码文件通过编译工具编译成Darvit虚拟机能够读取的dex文件,Android4.4后使用Art虚拟机,运行效率得到极大的提高,关于这两种虚拟机的区别点击链接 DVM和ART原理初探
3.调试开发工具
提供了模拟器等调试开发工具
需求案例
2018年平安银行产品经理和开发人员打架事件受到广泛的关注,主要是由于不懂技术的产品经理提出奇葩需求:app的主题颜色能够根据手机壳的颜色变化而变化。我们一个需求的实现高度依赖于SDK,SDK提供了相关API我们就能做,如果没有提供我们就做不了,这样的需求就相当于一个没有摄像头的老人机让开发软件来实现其拍照功能,硬件不支持软件是没有办法实现的!
JDK
JDK全称为Java开发工具包,主要作用包括:
1.提供基础类库
由rt.jar提供了基础类的API
2.JVM[JAVA虚拟机]
class文件通过JVM”翻译”成机器能够识别的二进制的编码
3.编译器
将java编码”翻译”成JVM能够识别的成class文件
4.调试开发工具
提供debug调试工具等
android 虚拟机和java 虚拟机的关系如图