菲洛嘉青春动能素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工作
您的位置:首页 >前端 >

新的Android编译器-认识Jack和Jill

新的编译器工具链Jack和Jill包含在最新版的Android SDK 21.1中,但直到现在Google才解释它们的含义和作用。

虚构的名字会把大部分游戏遗忘。Jack是Java Android编译器套件,而Jill是Jack中级库链接器。目前两者都处于“实验”状态。

这个想法很简单。Jack将您的Java代码直接编译为.dex Dalvik可执行文件。常规的编译过程采用源代码,并使用标准的javac编译器首先将其转换为Java字节码,然后通过dex编译器进行馈送,以将其转换为Dalvik字节码。

新的Jack编译器无需使用Java字节码即可一次性完成此工作。它还应用了Proguard曾经提供的优化和模糊处理。这是一个简单得多的单步过程,Google希望将来通过增量编译等功能进一步利用它。我猜你可以说Android终于有了自己的编译器。

请注意,生成的.dex代码可以输入到传统的Dalvik引擎或更新的ART Android RunTime引擎。ART引擎使用Ahead-of-Time编译,这是我们曾经使用的“编译”,用于在安装时将.dex转换为本地代码。这可以更快。

吉尔怎么办?

简单的答案是,它使Jack不必查看和处理任何Java字节码。如果您有一个库,Jill会将.jar库文件转换为.jack库格式,Jack可以将其与其他目标代码合并。

下图显示了完整的过程:

jackjill1

目前,如果要使用它,必须启用对Jack和Jill的支持。这等于将useJack = true添加到build.gradle文件中。Android Developer网站上有更多详细信息。

那么,为什么Google要搬到杰克和吉尔呢?

通过简化编译器序列,有可能进行更多优化,例如前面提到的增量编译。

另一个技术性较差的原因可能是Google需要远离Dalvik和Java基础架构,以使Oracle诉讼问题减少。尽管有一项裁定基本上说对Google使用Java API等是很好的做法,但这仍然很有吸引力,这一次对Google来说看起来并不那么好。不使用javac和Dalvik会使Android技术与Java诉讼之间有些距离。

不利的一面是,杰克和吉尔目前不支持Java 8,任何升级都必须由Google实施。当Android刚发布时,与Java语言和基础结构兼容是一件大事,但是现在几乎需要Java的Java。

棒棒糖

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