菲洛嘉青春动能素135HA FILLMED® NCTF 135HA LED指示灯的常见故障分析 智微智能 Elkhartlake K075终端,零售产业新选择 天空蓝拓客管理系统详细介绍版 muso公链项目 天使计划 是什么?[秘] 独家揭秘最前沿的家装“黑科技”——掌赋 天博体育欧洲杯特辑,东道主法兰西的失意2016 亚马逊的送货侦察员 学习听起来像挡泥板 Google Comics Factory使ML变得容易 笑着说-男性或女性 Amazon Rekognition中更好的人脸检测 关于Spaun的真相-大脑模拟 两个聊天机器人彼此聊天-有趣又怪异 GANPaint:将AI用于艺术 WCF和WF给予社区 从耳朵到脸 所有神经网络的深层缺陷 蠕虫在尾巴上平衡杆子 Kickstarter上的OpenCV AI套件 TensorFlow-Google的开源AI和计算引擎 众包取代新闻工作者 Google的DeepMind学会玩街机游戏 哑机器人V智能机器人 .NET与.NET 5融为一体 Google的深度学习-语音识别 LInQer将.NET LINQ移植到Javascript 机器人TED演讲-新的图灵测试? GAN的发明者加入苹果 您的智能手机会监视您键入的内容 人工智能帮助改善国际象棋 Zalando Flair NLP库已更新 TensorFlow 1.5包含移动版本 AlphaGo输了一场比赛-比分3-1 虚拟机器学习峰会 Microsoft开源AI调试工具 SharePoint走向移动 F#4.0发出文化变革的信号 克里斯蒂拍卖AI艺术品 人工智能如何区分 Facebook在蒙特利尔的新AI实验室 Mozilla想要您的声音 微软使用极深的神经网络赢得ImageNet 建立AI合作伙伴关系 .NET Core 3-Microsoft几乎回到了起点 神经网络-更好的销售商? Google使用AI查找您的住所 虹膜-适用于Android的Siri证明苹果没有优势 TensorFlow 2提供更快的模型训练 深度学习研究人员将为Google工作
您的位置:首页 >开发 >

Google的Jack& Jill Android Java编译器项目已死

在一个令人惊讶的公告中,Android开发团队已经明确表示,新的Jack编译器和Jill链接器不会在任何地方使用。现在,将通过开发现有的javac编译器来迁移到Java 8。

在创建Android时,Google确实采用了Java生态系统,无论他们可能提出相反的说法。它利用了一个不兼容的虚拟机Dalvik,该虚拟机运行名为dex的非Java字节代码。要在Dalvik上运行Java,您首先需要以通常的方式编译程序,然后使用dx将Java字节码转换为dex。自Android 4.4(Kitkat)起,Dalvik VM已由ART(Android运行时)代替,但仍运行dex代码。

这个两阶段的Java到Java字节代码,然后是字节代码到dex的处理遇到了问题,并在2012年宣布了Jack项目或“实验”(如果您愿意的话)。它由一个新的编译器组成,它将使用Java代码并将其直接转换为dex。一路走来,当时的想法是可以包含Java 8中的最新Java创新,而Jack是使Android Java与其他Java世界保持同步的一种方式。没有Java 8功能并不是一个大问题,但这确实意味着Android程序员不能利用lambda来进行事件处理。

使用Jack的优点是:

完全开源的Speeds编译时间Jack提供了缩短编译时间的特定支持:预除糊,增量编译和Jack编译服务器,处理收缩,混淆,重新打包和多重打包不再需要使用诸如ProGuard之类的单独软件包。

杰克

吉尔(Jill)的目的不是开个好玩笑,而是将现有的jar库转换为新的jack库格式。

但是,这种方法存在一些问题。一个实际的问题是,它没有与Android Studio很好地集成,因此,即使现在,许多程序员也没有使用Jack工具链。它还不支持最新的Android Studio的即时运行功能,该功能通过应用增量更改而不是每次都下载整个APK来运行应用程序成为可能。除了所有这些之外,事实证明有时将Java字节代码用作中介是有用的,因为许多工具,注释处理器,字节码分析器和重写器都可以使用它。如果Android移至Jack,则在将其编译为dex之前使用字节码的所有工具将不再可用。

该博客文章声称这是Jack工具链已被弃用的原因。

那么我们如何将Java 8引入Android?

我们决定直接在当前的javac和dx工具集中添加对Java 8语言功能的支持,并弃用Jack工具链。在这个新方向上,依赖于Java类文件格式的现有工具和插件应继续起作用。展望未来,Android构建系统将原生支持Java 8语言功能。我们打算在未来几周内将其作为Android Studio的一部分推出,我们希望尽早与您分享这个决定。"

哦,很好,Android Studio的另一个重大动荡。拥有lambda会很好,但是真的值得吗?

读这本书的内容是,必须扩展dx编译器以将新的Java功能从Java 8字节代码映射到dex。考虑到Java保持的向后兼容性,最大的问题可能是dx可以转换为dex的受限字节代码集。但是,从Java 7到8,字节码有所变化。

这听起来很合理,当然除了Java 9即将问世以及Jack和Jill实验浪费了很多时间这一事实之外。

当然,关闭Jack工具链的可能性与Google与Oracle有关的法律问题有关,但从表面上看,回到对javac的依赖似乎使情况变得更糟而不是更好。

一个令人担忧的方面是,在项目开始时,现在给出删除Jack和Jill的理由非常清楚。它使您认为,也许整个Android企业并不是由一个全知的天才所经营。

浪费了很多时间,但仍然没有lambda。

Mike James是《 Android编程》的作者:从应用程序(I / O Press)开始,这是使用Android Studio的入门指南。他目前正在针对本月初发布的Android Studio 2.3进行更新。Android编程:从应用程序开始,第二版(I / O出版社)ISBN:978-1871962512

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。