Makoshan
V2EX  ›  Android

看来 Google 已经决心使用 OpenJDK 开发 Android

  •  
  •   Makoshan · Jun 12, 2016 · 21109 views
    This topic created in 3646 days ago, the information mentioned may be changed or developed.

    最新 Android Studio 2.2 Preview 3 的更新介绍:

    With Android Studio 2.2, you may have noticed the larger download sizes than previous versions of Android Studio; this is because we now bundle a build of OpenJDK with the IDE to address various font rendering and stability issues.

    Supplement 1  ·  Jun 13, 2016
    看来 Java 已经变成敏感词汇
    53 replies    2016-06-13 18:00:49 +08:00
    DoraJDJ
        1
    DoraJDJ  
       Jun 12, 2016
    this is because we now bundle a build of OpenJDK with the IDE to address various font rendering and stability issues.

    它们内带 OpenJDK 的原因只是解决字体渲染和稳定性问题吧,跟 JB 家的其他东西一样
    Neveroldmilk
        2
    Neveroldmilk  
       Jun 12, 2016
    那最好,之前用 OpenJDK 开发 Android ,搞得要死要活的。
    notgod
        3
    notgod  
       Jun 12, 2016
    谷歌应该使用 go 重构
    然后 go 语言 瞬间变的比 java 还流行 然后.....
    daya
        4
    daya  
       Jun 12, 2016 via Android
    @notgod 我也想看到谷歌这样做,😄
    kappa
        5
    kappa  
       Jun 12, 2016   ❤️ 1
    @notgod Go 做 UI ?那按现在的情况真得要死要活了。。
    notgod
        6
    notgod  
       Jun 12, 2016
    @kappa 理解能力感人
    按你的理解 openjdk 做 ui java 做 ui
    ?
    9hills
        7
    9hills  
       Jun 12, 2016
    this is because we now bundle a build of OpenJDK with the IDE to address various font rendering and stability issues

    是解决 Android Stdio 这个 IDE 本身的问题。。。。
    21grams
        8
    21grams  
       Jun 12, 2016
    android studio 是用 java 做的?
    Neveroldmilk
        9
    Neveroldmilk  
       Jun 12, 2016
    嗯,不内置 JDK , linux 上面关联问题一堆一堆的。
    Neveroldmilk
        10
    Neveroldmilk  
       Jun 12, 2016
    @21grams 你不知道么?
    Khlieb
        11
    Khlieb  
       Jun 12, 2016 via Android
    上次谷歌好像就是因为 JDK 的问题被甲骨文告了
    plqws
        12
    plqws  
       Jun 12, 2016
    如果只是纯粹地为了解决一个字体渲染什么的问题, Jetbrains 全家桶应该也会同时有这些更新吧。
    bk201
        13
    bk201  
       Jun 12, 2016
    楼上比 java 还流行简直脑洞大,java 又不是靠安卓流行的.
    naver1
        14
    naver1  
       Jun 12, 2016
    赶紧出个新语言把 java 淘汰吧!
    kaneg
        15
    kaneg  
       Jun 12, 2016
    @21grams Android Studio 就是 Google 在 Intellij IDEA Community 版本的基础上增加了开发 Android 的插件。做 Android 的人应该对 Intellij 的东西不陌生吧
    Neveroldmilk
        16
    Neveroldmilk  
       Jun 12, 2016
    @plqws Jetbrains 又没跟 Oracle 闹翻,没必要捆绑 Oracle java 全家桶。
    Neveroldmilk
        17
    Neveroldmilk  
       Jun 12, 2016
    @bk201 你这话可知说对了一半,这两年 java 大热的一个重要原因就是 Android 。如果 android 全线迁移到比如 C++上, java 开发人员要少一大批。
    jamiesun
        18
    jamiesun  
       Jun 12, 2016
    @Neveroldmilk google 选 java 的原因就是因为开发者多,在没有 android 之前, java 已经在服务端市场俯瞰众生了。 android 得了 java 的红利, android 也促进 java 的繁荣进一步拉大与其他语言的距离。 android 离开 java ,只会减少 android 开发者,不会撼动 java 的地位。
    Neveroldmilk
        19
    Neveroldmilk  
       Jun 12, 2016
    @jamiesun 没觉得 Android 离开 Java 活不下去, Android 只是用了最基本的 java 语法,并且体系架构和 J2SE 、 J2EE 什么的架构完全是两套体系,很多包都不兼容。再说了, Android 的 app 性能受拖累的一个重要原因就是虚拟机。我觉得 Android 早点拥抱 C++只会对 google 有好处,毕竟现在手机性能还没到浪费代码执行效率的地步。
    SourceMan
        20
    SourceMan  
       Jun 12, 2016 via iPhone
    又吵起来了吗
    tobyxdd
        21
    tobyxdd  
       Jun 12, 2016 via Android
    @plqws 那也未必 毕竟 Android studio 是 google 自己 fork 出来的 jb 没必要同步
    tczzjin
        22
    tczzjin  
       Jun 12, 2016
    都不考虑 c++开发成本和学习成本吗...
    2225377fjs
        23
    2225377fjs  
       Jun 12, 2016
    @Neveroldmilk 话说就真的觉得 C++就比 Java 快啊。。? Java 语言执行速度本质上和 C++是同一个量级的,加上 Java 有很多顶级大神写的库(尤其是 Concurrent 库), C++以及其他语言可是没有的额。。这些加起来然后用来完成相同的逻辑功能, C++还不一定有 Java 快呢。。 Java 这方面只不过是 GC 比较让人诟病而已,说到 GC ,任何 GC 类型的语言,都只不过是在工业级层面上来走 Java 的老路而已,跟着 Java 学,就开始说超越 Java 了,也是醉了(比如 Go 啥的)。
    2225377fjs
        24
    2225377fjs  
       Jun 12, 2016
    @Neveroldmilk IOS 之所以在体验上秒了大多数市面上安卓机器,更大程度上是因为 Apple 家的硬件强大,而不是语言对 Java 的优势。。。做游戏的同志对这方面应该能有比较强的感受。安卓上各种 4,8,10,12 核就 TM 扯淡的,被 Apple 家的处理器吊打。
    xuhaoyangx
        25
    xuhaoyangx  
       Jun 12, 2016
    一些人真的是脑洞打开, Block 掉为好。 C++作为 Android 开发,完全没必要,做 APP 开发个人觉得语言要好用上手简单为好。
    Neveroldmilk
        26
    Neveroldmilk  
       Jun 12, 2016
    @tczzjin
    @2225377fjs
    google 自己也是出于摇摆状态,否则就不会弄出来个半吊子 NDK+JNI 的别扭 C++开发模式了。我是 C++出身,对于要用 JNI 这种多此一举的方式非常反感。
    Neveroldmilk
        27
    Neveroldmilk  
       Jun 12, 2016
    @xuhaoyangx 没用过 NDK 开发别信口胡说好么?如果 google 想提供纯粹的 Java 开发模式,弄出 JNI 这种两头不讨好的 C++调用方式干什么?
    zhicheng
        28
    zhicheng  
       Jun 12, 2016
    Android 不可能使用编译型编程语言,这不是市场问题,也不是流行不流行的问题,就连微软这个操作系统巨头也解决不了不同 ISA 的二进制兼容。 iOS 的硬件和软件发布都控制在苹果手里,所以用什么编程语言不重要。
    Neveroldmilk
        29
    Neveroldmilk  
       Jun 12, 2016
    @zhicheng 那你给解释一下 NDK+JNI 是怎么回事好么?
    afpro
        30
    afpro  
       Jun 12, 2016
    @Neveroldmilk 这有什么好解释的 JNI 是 JAVA 的一部分 很多库(lua 、游戏引擎)等依赖这个功能 所以 google 搞了 NDK 简化交叉编译 只能说你想多了骚年……
    zhicheng
        31
    zhicheng  
       Jun 12, 2016
    @Neveroldmilk 不是所有的程序都是用 NDK 写的。 Android 只是给了一个机制。如果你用 NDK 写,要么增加应用体积,要么降低可移植性。
    nicevar
        32
    nicevar  
       Jun 12, 2016
    不要听各种大神告诉你 java 和 c++速度差不多的,这种话条件限制太多,要是遇到过 java 解决不了的性能问题只能搬出 c++来处理情况你就明白了
    google 短期内不会用其他语言来代替的,多大的代价,要启用新语言至少要并存很长一段时间,就像 iOS 的 swift 跟 oc 一样
    lightening
        33
    lightening  
       Jun 12, 2016
    @2225377fjs Java 做 UI 有个问题就是 GC 的触发是不可预测的,然后 GC 时要 stop the world , UI 就会卡顿一下。
    ObjC 以前搞了 GC ,后来看着不行,又回到 ARC 了。 Swift 设计的时候也考虑了这个问题,坚决使用 ARC 。
    xuhaoyangx
        34
    xuhaoyangx  
       Jun 12, 2016
    @Neveroldmilk
    请问我说了什么让你这么生气 。我不就说了开发 APP 的语言尽量好用容易上手么, C++作为主要开发语言我觉得当然没必要,开发难长麻烦。当然我用过的 NDK 也就做视频开发时用过。
    jason19659
        35
    jason19659  
       Jun 12, 2016   ❤️ 1
    某些程序员,不知道比谷歌高到哪里去了
    wuxqing
        36
    wuxqing  
       Jun 12, 2016
    简单测试的, java 确实不比 C++慢。但是,实际上还是差距很大的。我们有一套 java 写的地图渲染引擎,实在太慢,然后花了 2 周( 2 人)把 java 代码简单改写成 c++,两者语法很像,基本上是简单翻译。速度提升了 10 倍以上。
    2225377fjs
        37
    2225377fjs  
       Jun 12, 2016
    @wuxqing 那是慢在 Java 的系统调用以及与外部系统的集成上,尤其是与非 Java 环境的外部系统集成,纯粹实现算法,业务逻辑, C++执行速度并没有优势。
    @lightening 3,4 百 M 级别的程序,基本不用考虑 GC 问题的,如果安卓环境的硬件水平能达到 Apple 家的水准,安卓体验也是可以上去不少的,不过这个难度比较大,最近几个项目对比发现,安卓生态环境的硬件水平跟 Apple 的比起来真是弱的掉渣了,差距不是一点点。
    lightening
        38
    lightening  
       Jun 12, 2016
    @2225377fjs 可是 Android app UI 的主线程就是有这个 GC 触发导致 UI 短暂卡顿的问题。除了做 UI , GC 在其他情况往往是不造成问题的。 Chris Lattner (Swift 的主要设计者) 就专门说过这个问题, Java 式 GC 的主要问题就是在 UI 响应上的 unpredictable 。
    wuxqing
        39
    wuxqing  
       Jun 12, 2016
    @2225377fjs 地图渲染引擎有多少系统调用?基本上都是算法和业务逻辑
    edgar
        40
    edgar  
       Jun 12, 2016
    JetBrains 在 Linux 和 Mac OS X 下前段时间开始就自带 JRE 了。 https://intellij-support.jetbrains.com/hc/en-us/articles/206544879
    shui14
        41
    shui14  
       Jun 12, 2016
    go for andr 手动斜眼
    kappa
        42
    kappa  
       Jun 12, 2016
    @notgod 能把 OpenJDK 和 Go/Java 放在一个层面上考量也真是不容易。。
    tyfulcrum
        43
    tyfulcrum  
       Jun 12, 2016 via iPhone
    @zhicheng Tizen 就是用 llvm 的 bitcode 分发的,技术可行性没问题。
    Wakeupzombie
        44
    Wakeupzombie  
       Jun 12, 2016
    @notgod 想得美
    Gcourage
        45
    Gcourage  
       Jun 12, 2016 via iPhone
    openjdk 与 Oracle 的, Java 差距大吗?性能还是什么考量,导致前期是用 Oracle
    zhicheng
        46
    zhicheng  
       Jun 12, 2016
    @tyfulcrum “技术上” 我也可以用 QEMU 执行不支持的 ISA 代码,实现一个 JIT 引擎把代码转成目标机器码。你猜,为什么正规军没这么做呢?
    tyfulcrum
        47
    tyfulcrum  
       Jun 13, 2016 via iPhone
    @zhicheng Tizen 又不是玩具系统,商业原因导致占有率低罢了。原因也许是 Android 刚开始开发的时候 llvm 和 clang 还不成熟,或者也有 Dan Bornstin 自己技术习惯的因素?毕竟他给自己的标签是虚拟机专家(Virtual Machinist)。
    youxiachai
        48
    youxiachai  
       Jun 13, 2016
    @Gcourage lz 是搞错了..你也别带错节奏啊.........

    google 搞 open jdk 已经是前几个版本搞 jack 已经开始了..不然怎么支持 java 8 的一些特性..

    lz 是完全不懂这个..看个简介..就想歪了..
    Makoshan
        49
    Makoshan  
    OP
       Jun 13, 2016
    OpenJDK 采用 GPL V2 协议,允许在商业上使用,而且 Google 也是 OpenJDK 的重要贡献者,这次直接内置到 IDE 意图更加明显,是要试图避免 Oracle 的诉讼。 Go 和 React Natice 不是都已经支持 Android 开发,自己试试就知道坑有多多,生态和工具链健全才是吸引开发者的点 ,Swift 再好,大部分 iOS 开发者还不是继续用 OC
    kideny
        50
    kideny  
       Jun 13, 2016
    安卓和 java 结婚 7 年,吵着要离婚。安卓的岳父 oracle 说:“离婚可以,你先陪我女儿的青春损失费”。安卓想在离婚前,先找好打炮的对象。结果 java 还是每天晚上让安卓爽,安卓犹豫不决。这婚,是离还是不离?
    liyvhg
        51
    liyvhg  
       Jun 13, 2016
    @kideny 哈哈哈哈哈哈, 好具体形象
    hooluupog
        52
    hooluupog  
       Jun 13, 2016
    这回帖里错误的观点和自己脑补出的东西很多,不知道为啥都热衷于 yy 这种事情。
    chocotan
        53
    chocotan  
       Jun 13, 2016
    oracle 诉讼的好像是自己实现了一套不兼容的 jvm 吧,就跟当年的微软一样
    openjdk 也是 oracle 家的,可以去 openjdk 官网上看 jdk9 的开发进度:)

    前一阵子搜过 openjdk 和 oraclejdk 的不同,个人得出的结论是 oraclejdk 比 openjdk 多一些闭源的工具,其它没区别
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2782 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 120ms · UTC 15:11 · PVG 23:11 · LAX 08:11 · JFK 11:11
    ♥ Do have faith in what you're doing.