美文网首页
JDK版本问题

JDK版本问题

作者: CalvinNing | 来源:发表于2016-12-01 11:16 被阅读88次

虽然DVM也是用Java编程语言,Dalvik虚拟机和一般JAVA虚拟机(Java VM)并不兼容,他们两个的区别是JVM标准执行的是.class的字节码(bytecode ),而是DVM执行的是其专有的(.dex)执行文件。在编译过程中,Java把类编译成一个或多个.class byte code 文件,然后打包到jar中,JVM会从中jar文件中获得相应的.class文件和JRE字节码。 Android VM虽然也是用Java语言进行编程,Java程序通过编译后,还需要通过SDK中的dex工具转化成.dex格式,DVM再从其中读取指令和数据。

以下是我个人的理解,如有错误,欢迎留言指正

就目前我的理解而言,如果是Java程序员,那么他们的程序最后是要在JVM虚拟机上跑的,因此你用JDK1.6编译的.class文件,测试在1.5的运行环境下可能就跑不起来,容易出bug,原因就是不兼容,1.6上有的1.5上可能没有或者有变化。所以Java程序员们开发和测试用的JDK版本是严格一致的。
但是,我们Android是在Dalvik上跑.dex文件,最后java编译成的.class是1.5还是1.6还是1.7……我们是不太需要关心的,只要我们SDK中提供的dx工具可以将其编译成.dex文件(如果使用Jack工具链,那么连.class文件都没了——Jack (.java → .jack → .dex)),那么我们的向下兼容就看我们的minSdkVersion了,很多事Google给我们提供新版本SDK的时候就已经做了。

综上所述

对于Android程序员而言,用什么JDK版本,主要取决于以下几点:

  • 看公司有没有统一要求,拿人钱财,人家说了算。
  • Google支不支持新的JDK版本
  • 自己对新版本中的新特性有没有迫切需求,比如JDK1.7中switch的参数可以用String了,这个我挺喜欢,再比如你想用Lambda 表达式,那就换Java 8吧,不过需要Jack工具链。但是:

已知问题
Instant Run 目前不能用于 Jack,在使用新的工具链时将被停用。
由于 Jack 在编译应用时不生成中间类文件,依赖这些文件的工具目前不能用于 Jack。下面是一些工具示例:
对类文件进行操作的 Lint 检测工具
需要应用类文件的工具和库(例如使用 JaCoCo 进行仪器测试中)

相关文章

  • JDK版本问题

    虽然DVM也是用Java编程语言,Dalvik虚拟机和一般JAVA虚拟机(Java VM)并不兼容,他们两个的区别...

  • 2020-01-06 Maven依赖 易错!

    这个问题出过好多次了!一定要切换JDK的版本!一定要切换JDK的版本!一定要切换JDK的版本! 今天的问题整了一晚...

  • jdk版本更换问题

    今天第一天入职,各种搭环境。因为稳稳地,结果各种翻车。本来根据习惯直接装了jdk1.8,然后配置环境变量。五分钟搞...

  • JDK版本切换问题

    一、高版本(1.8)切换至 低版本(1.6、1.7) 1.配置环境变量 2.移动exe文件 将 C:\Progra...

  • Idea中Maven的打包问题

    jdk版本不对 jdk版本不对,这个问题经常出现在电脑上安装了多个版本的jdk,比如我就是我的电脑上有jdk8和1...

  • JDBC报错Unsupported major.minor ve

    版本问题,jdk version "1.7.0_17",之前用的依赖是6.0.6,相对于jdk版本过高: 改依赖版...

  • refund-error:No appropriate prot

    导致这个问题的,竟是jdk版本过高导致,jdk1.8高版本对ssl[https://so.csdn.net/so/...

  • 使用hutool的ExcelUtil自动调整列宽时出错,ubun

    环境 系统:ubuntu14.04jdk版本:11.0.4依赖版本: 问题 autoSizeColumnAll可以...

  • 调整maven项目的jdk版本

    如何修改maven的默认jdk版本 问题: 创建maven项目的时候,jdk版本是1.5版本,而自己安装的是1.7...

  • mac上启动monitor白板问题

    这个问题的原因是mac上的jdk版本过高导致的,需要降低jdk的版本为jdk1.8.0_144 首先查看java版...

网友评论

      本文标题:JDK版本问题

      本文链接:https://www.haomeiwen.com/subject/uvsxmttx.html