写点什么

Jack 和 Jill:旨在更高性能的新版安卓编译器

2014 年 12 月 07 日

Saikoa 的技术总监 Eric Lafortune,DexGuard 的创造者,在安卓 5.0 修订版 1(API 21.1)的 SDK 中发现了一些新的工具,主要是名为 Jack 和 Jill 的两个编译器。这些工具旨在简化安卓的编译流程。

谷歌在 KitKat 版本中引入了安卓运行时(ART)环境作为实验性的工具,并且在Lollipop 版本中用它替换了Dalvik 作为默认的运行时环境。在设备上安装应用程序时,ART 获取DEX 字节码然后将其转化为本地代码,进行预编译的同时又兼顾设备本身的特性。而现在,谷歌似乎正在进一步增强编译流程。

据Lafortune 介绍,Jack 是一个基于Eclipse Java 编译器和 ProGuard 的工具。ProGuard 是一个调优工具,通过删除无用的代码缩减代码库,通过重命名类、方法和属性混淆代码库。虽然 ProGuard 已经被整合到安卓的构建系统中,并且在生成发布包时推荐使用,开发者仍然可以自主选择是否要使用它。如果 Jack 成为官方工具,开发者就必须要强制使用这个工具,不过通过配置文件,他们对这个工具还是会有一定的控制权。

另外一个新工具 Jill 用于将 Java 库字节码转化成名为 Jayce 的中间字节码。Jack 对 Java 源码和 Jayce 字节码进行编译,生成经过优化的 DEX 字节码。据 Lafortune 描述,这两个编译器“看起来相当实用”,尽管 Jack 目前还不支持“ProGuard 的一些高级功能,例如移除日志代码”。

这两个编译器目前还不支持 Java 8,不过他们力争“向后兼容并且开放将来扩展的可能性”,Lafortune 补充到。开发者可以在使用安卓plugin 1.0.0 RC 的Gradle 构建中试用这些编译器。

作为谷歌提升其移动操作系统性能的又一次尝试,Jack 和Jill 能够生成更加优化的代码,尺寸更小并且可能是经过混淆的。

查看英文原文: Jack & Jill: New Android Compilers for More Performance

2014 年 12 月 07 日 00:032965
用户头像

发布了 75 篇内容, 共 58.9 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

大项目写代码写到晕头转向?敏捷多项目框架解君愁

Philips

敏捷开发 程序设计 软件架构

大厂面试爱问的「调度算法」,20 张图一举拿下

Java架构师迁哥

探路人与解题者:腾讯数字生态大会上AI语音助手+X的无限可能

脑极体

区块链支付通道系统搭建,USDT跑分承兑商系统

13823153121

LiteOS间歇计算技术:IOT终端真正感受“电量自由”

华为云开发者社区

物联网 LiteOS

科普:Java 后端开发常用的 10 种第三方服务

沉默王二

Java 后端开发 第三方服务

GaussDB(DWS)应用实战:对被视图引用的表进行DDL操作

华为云开发者社区

数据库 dll postgre

这13道面试题,哪怕背你也要背过来。别说我没提醒你

小Q

Java 源码 架构 面试 多线程

大厂面试爱问的「调度算法」,20 张图一举拿下

小林coding

算法 操作系统 内存 进程

从零开始搭建完整的电影全栈系统(四)——restfulApi用户的认证授权及用户注册

刘强西

RESTful API yii

Elasticsearch之文档操作

北漂码农有话说

Flink SQL 1.11 新功能与最佳实践

Apache Flink

flink

我四面字节跳动,拿下1-2级offer,太感谢这份“神仙级面试真经pdf”

云流

编程 计算机网络 架构师 java面试

年薪150万的阿里大佬工资全部上交!家务全包!却被老婆嘲讽嫌弃!网友:你老婆外面有人!

程序员生活志

互联网 职场 大厂 薪资

oeasy教您玩转linux010210管理应用aptitude

o

如何基于 Flink 生成在线机器学习的样本?

Apache Flink

flink

Redis-技术专题-Redis知识体系

李浩宇/Alex

话题讨论 | 程序员们来说一说,你们从编程开始到现在共使用过多少种语言?

InfoQ写作平台官方

写作平台 话题讨论 语言

Pulsar Flink Connector 2.5.0 正式发布

Apache Pulsar

flink 开源 flink 消费 kafak Apache Pulsar

Git 中submodule的使用,终于有人说明白了

Java架构师迁哥

编程的修养

紫枫

读书笔记

如何利用Chrome DevTools优化网页性能

熊斌

学习

熟悉又陌生的 k8s 字段:finalizers

郭旭东

Kubernetes

云小课 |选定合适的证书,做“有证”的合规域名

华为云开发者社区

证书 课程练习 ssl

滴滴AR实景导航背后的技术

滴滴技术

人工智能 滴滴技术 实景导航 地图与公交事业群分享月

超酷! Atlas给黑白视频“上色”

华为云开发者社区

视频 Atlas

[翻译]Go Code Review Comments

卓丁

随笔文,关于”中台“ 的一些“小偏论”

松子(李博源)

数据中台 中台 大数据处理 数据平台 大数据平台

为了面个好公司!拼了!3.5W字的Java面试题整理(答案+学习路线)上!

Java架构师迁哥

USDT支付通道搭建,USDT承兑商跑分系统

13823153121

字节跳动半夜给员工发钱,全员沸腾了

程序员生活志

字节跳动 职场 薪资

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

Jack和Jill:旨在更高性能的新版安卓编译器-InfoQ