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

2016-06-12 10:05:24 +08:00
 Makoshan

最新 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.

13335 次点击
所在节点    Android
53 条回复
tobyxdd
2016-06-12 17:11:18 +08:00
@plqws 那也未必 毕竟 Android studio 是 google 自己 fork 出来的 jb 没必要同步
tczzjin
2016-06-12 17:12:24 +08:00
都不考虑 c++开发成本和学习成本吗...
2225377fjs
2016-06-12 17:25:41 +08:00
@Neveroldmilk 话说就真的觉得 C++就比 Java 快啊。。? Java 语言执行速度本质上和 C++是同一个量级的,加上 Java 有很多顶级大神写的库(尤其是 Concurrent 库), C++以及其他语言可是没有的额。。这些加起来然后用来完成相同的逻辑功能, C++还不一定有 Java 快呢。。 Java 这方面只不过是 GC 比较让人诟病而已,说到 GC ,任何 GC 类型的语言,都只不过是在工业级层面上来走 Java 的老路而已,跟着 Java 学,就开始说超越 Java 了,也是醉了(比如 Go 啥的)。
2225377fjs
2016-06-12 17:30:34 +08:00
@Neveroldmilk IOS 之所以在体验上秒了大多数市面上安卓机器,更大程度上是因为 Apple 家的硬件强大,而不是语言对 Java 的优势。。。做游戏的同志对这方面应该能有比较强的感受。安卓上各种 4,8,10,12 核就 TM 扯淡的,被 Apple 家的处理器吊打。
xuhaoyangx
2016-06-12 18:04:31 +08:00
一些人真的是脑洞打开, Block 掉为好。 C++作为 Android 开发,完全没必要,做 APP 开发个人觉得语言要好用上手简单为好。
Neveroldmilk
2016-06-12 18:13:07 +08:00
@tczzjin
@2225377fjs
google 自己也是出于摇摆状态,否则就不会弄出来个半吊子 NDK+JNI 的别扭 C++开发模式了。我是 C++出身,对于要用 JNI 这种多此一举的方式非常反感。
Neveroldmilk
2016-06-12 18:14:04 +08:00
@xuhaoyangx 没用过 NDK 开发别信口胡说好么?如果 google 想提供纯粹的 Java 开发模式,弄出 JNI 这种两头不讨好的 C++调用方式干什么?
zhicheng
2016-06-12 18:15:37 +08:00
Android 不可能使用编译型编程语言,这不是市场问题,也不是流行不流行的问题,就连微软这个操作系统巨头也解决不了不同 ISA 的二进制兼容。 iOS 的硬件和软件发布都控制在苹果手里,所以用什么编程语言不重要。
Neveroldmilk
2016-06-12 18:18:26 +08:00
@zhicheng 那你给解释一下 NDK+JNI 是怎么回事好么?
afpro
2016-06-12 18:23:04 +08:00
@Neveroldmilk 这有什么好解释的 JNI 是 JAVA 的一部分 很多库(lua 、游戏引擎)等依赖这个功能 所以 google 搞了 NDK 简化交叉编译 只能说你想多了骚年……
zhicheng
2016-06-12 18:23:16 +08:00
@Neveroldmilk 不是所有的程序都是用 NDK 写的。 Android 只是给了一个机制。如果你用 NDK 写,要么增加应用体积,要么降低可移植性。
nicevar
2016-06-12 18:26:01 +08:00
不要听各种大神告诉你 java 和 c++速度差不多的,这种话条件限制太多,要是遇到过 java 解决不了的性能问题只能搬出 c++来处理情况你就明白了
google 短期内不会用其他语言来代替的,多大的代价,要启用新语言至少要并存很长一段时间,就像 iOS 的 swift 跟 oc 一样
lightening
2016-06-12 18:26:41 +08:00
@2225377fjs Java 做 UI 有个问题就是 GC 的触发是不可预测的,然后 GC 时要 stop the world , UI 就会卡顿一下。
ObjC 以前搞了 GC ,后来看着不行,又回到 ARC 了。 Swift 设计的时候也考虑了这个问题,坚决使用 ARC 。
xuhaoyangx
2016-06-12 18:33:30 +08:00
@Neveroldmilk
请问我说了什么让你这么生气 。我不就说了开发 APP 的语言尽量好用容易上手么, C++作为主要开发语言我觉得当然没必要,开发难长麻烦。当然我用过的 NDK 也就做视频开发时用过。
jason19659
2016-06-12 18:35:51 +08:00
某些程序员,不知道比谷歌高到哪里去了
wuxqing
2016-06-12 18:45:31 +08:00
简单测试的, java 确实不比 C++慢。但是,实际上还是差距很大的。我们有一套 java 写的地图渲染引擎,实在太慢,然后花了 2 周( 2 人)把 java 代码简单改写成 c++,两者语法很像,基本上是简单翻译。速度提升了 10 倍以上。
2225377fjs
2016-06-12 19:39:56 +08:00
@wuxqing 那是慢在 Java 的系统调用以及与外部系统的集成上,尤其是与非 Java 环境的外部系统集成,纯粹实现算法,业务逻辑, C++执行速度并没有优势。
@lightening 3,4 百 M 级别的程序,基本不用考虑 GC 问题的,如果安卓环境的硬件水平能达到 Apple 家的水准,安卓体验也是可以上去不少的,不过这个难度比较大,最近几个项目对比发现,安卓生态环境的硬件水平跟 Apple 的比起来真是弱的掉渣了,差距不是一点点。
lightening
2016-06-12 19:54:41 +08:00
@2225377fjs 可是 Android app UI 的主线程就是有这个 GC 触发导致 UI 短暂卡顿的问题。除了做 UI , GC 在其他情况往往是不造成问题的。 Chris Lattner (Swift 的主要设计者) 就专门说过这个问题, Java 式 GC 的主要问题就是在 UI 响应上的 unpredictable 。
wuxqing
2016-06-12 20:00:06 +08:00
@2225377fjs 地图渲染引擎有多少系统调用?基本上都是算法和业务逻辑
edgar
2016-06-12 20:46:46 +08:00
JetBrains 在 Linux 和 Mac OS X 下前段时间开始就自带 JRE 了。 https://intellij-support.jetbrains.com/hc/en-us/articles/206544879

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/285032

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX