Android的Jack编译器试用

        最近在8核(Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz)、64GB内存服务器下编译的Android 6.0时,发现在仅开了四个编译任务(make -j 4)的情况下,服务器的所有CPU占用率和虚拟内存的使用都达到满负荷,导致命令行操作极慢,这在原来编译4.4的时候就算开了八个编译任务都是没有出现过的情况。经分析是因为6.0的java编译工具默认已经由openjdk修改成了谷歌自行开发的jack,这个工具无论是内存占用以及编译任务数都开得很大,而且有时候中断编译过程时其编译任务仍然在后台存在。初步可以判断jack工具还不是很完善。

        从搜索到的信息得知,可以在设备的BoardConfig.mk中加入“ANDROID_COMPILE_WITH_JACK := false”切换到openjdk编译。

        另一种方法是官方所介绍的,可以修改$(HOME)/.jack配置SERVER为false切换到openjdk编译,或者修改$(HOME)/.jack配置SERVER_NB_COMPILE减少并行编译任务数,但是根据我的实际测试结果没有生效,由于不知道在今后谷歌是否会取消openjdk支持,有时间的话再研究一下如何配置jack的内存占用和并发任务数。
==========
2016.6.27补充
设置“ANDROID_COMPILE_WITH_JACK := false”时,Camera2和Gallery2这两个应用编译时会有问题,解决办法是把这两个应用Android.mk文件中的“LOCAL_PROGUARD_FLAG_FILES := proguard.flags”修改为“LOCAL_PROGUARD_ENABLED := disabled”即可。
==========

下面是一些关于jack介绍的链接:
1、Jack (Java Android Compiler Kit)
http://arui.me/index.php/archives/57/
2、Disabling JACK in android compilation
http://stackoverflow.com/questions/36680397/disabling-jack-in-android-compilation
3、Increasing heap size while building the android source code on Ubuntu 15.10
http://stackoverflow.com/questions/34940793/increasing-heap-size-while-building-the-android-source-code-on-ubuntu-15-10
4、Jack-server failing on AOSP master
http://android.2317887.n4.nabble.com/Jack-server-failing-on-AOSP-master-td347701.html

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值