Android7.0成长之路---新特性Jack server

准备

今天正式担任Android7.0(N)项目模块的开发和维护工作,借此机会git和make了一套系统代码用来研究。在编译的过程中,与以往系统不同的是Android7.0系统编译工具链使用了全新的Jack server来取代以往的编译器工具,所以在编译的过程中可能出现一些小问题,后面将为大家总结介绍!

Jack server

一、介绍

我们先来看一下关于Jack server官方介绍:

  Jack is a new Android toolchain that compiles Java source into Android dex bytecode. It replaces the previous Android toolchain, which consists of multiple tools, such as javac, ProGuard, jarjar, and dx.

Jack编译器工具是一套新的Android编译工具用来将Java代码转换为Android dex字节代码。

二、Jack server优点

1.适用于AOSP,意思就是说这套编译器是开源的,开发者也可以为其进行完善。
2.Jack server能够减少编译的时间
3.使用第三方包例如ProGuard将不在是必要的。
这里写图片描述

三、.jack库文件介绍

Jack拥有其自己的文件格式,即为:.jack。此文件包含了预编译dex代码的一些库文件,使得在预编译的过程中变的更快。
这里写图片描述

四、Jill工具

从官方的介绍中可以看到,Jill还处于Jack编译器之前,它的用处是用来将已存在的.jar库转换成一种新格式的库文件格式Jayce用来适配编译器Jack。

这里写图片描述

五、Jack编译(重点)

当我们了解了Jack server这一个在Android7.0的新特性后,我们接下来就可以使用Jack来对我们的系统进行整编译了。

这里写图片描述

如图,我们打开$HOME路径下的.jack文件,看到的是如下参数:

SERVER=true 开启jack server.

SERVER_PORT_SERVICE=8072 设置TCP服务器端口号用来进行汇编编译

SERVER_PORT_ADMIN=8073 设置TCP服务器端口号用来管理员的编译管理

SERVER_COUNT=1 当前未使用,一般为默认

SERVER_NB_COMPILE=4 同时编译最大线程

SERVER_TIMEOUT=60 如果server没有在60s内没有反应,那么将会关掉此服务

SERVER_LOG=${SERVER_LOG:=$SERVER_DIR/jack-$SERVER_PORT_SERVICE.log} Log输出的位置

JACK_VM_COMMAND=${JACK_VM_COMMAND:=java} 启动JVM命令

Jack编译遇到的问题—Failed to contact Jack server

如果你在编译的过程中,出现了如下的问题:

w
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值