编译Android时禁用Jack Server

2017-07-24 15:29:43 +08

字数:818

标签:

Android

本文的代码与方法,基于Android O(8.0)。

简介 ¶

Jack Server,是Jack/Jill工具链中的一个组成部分。

启动一个独立于编译主进程的Server进程,执行Jack工具链的编译过程,与主进程通过端口进行网络通信。

需要启用Jack工具链,而又要禁用Jack Server的情况,是非常少的。

很不幸,孤却遇到了。

单独关闭Jack Server ¶

在prebuilts/sdk/tools/jack_server_setup.mk中,可以看到:

ifdef JACK_SERVER

ifneq ($(JACK_SERVER),true)

jack_server_disabled=true

endif

endif

在prebuilts/sdk/tools/jack中:

JACK_SERVER=${JACK_SERVER:=true}

JACK_MAIN_COMMAND=${JACK_MAIN_COMMAND:="java -Djava.io.tmpdir=$TMPDIR -Dfile.encoding=UTF-8 -XX:+TieredCompilation"}

JACK_REPOSITORY=${JACK_REPOSITORY:=}

#

# If not in server mode, exec jack

#

if [ "$JACK_SERVER" != "true" ]; then

if [ -z "$JACK_REPOSITORY" ]; then

echo "Running Jack without Jack server requires definition of JACK_REPOSITORY" >&2

abort

fi

JACK_JAR=$JACK_REPOSITORY/jack-$JACK_VERSION.jar

if [ ! -r "$JACK_JAR" ]; then

echo "Jack jar \"$JACK_JAR\" is not readable" >&2

abort

fi

exec $JACK_MAIN_COMMAND -jar $JACK_JAR "$@"

echo "Cannot succeed to launch Jack without Jack server" >&2

abort

fi

为了让JACK_JAR=$JACK_REPOSITORY/jack-$JACK_VERSION.jar这句得到一个可执行的jar,

JACK_REPOSITORY需要被设置成prebuilts/sdk/tools/jack/jacks。

所以,单独关闭Jack Server,只需要设置两个环境变量即可。

make 'JACK_SERVER:=false' 'JACK_REPOSITORY:=prebuilts/sdk/tools/jack/jacks'

关闭已运行的Server ¶

关闭已运行的Jack Server,并不能阻止在下次编译时自动启动。

设定编译总开关,还得用上面给出的方法。

而有时,比如编译完成后,需要单独关闭已运行的Server。

因为它占用了大量内存,而又拒不释放!

查看已运行的Server:

jack-admin list-server

关闭已运行的Server:

jack-admin stop-server

jack-admin命令,是编译过程中安装在out/host/linux-x86/bin目录下的。

所以,在启用Jack的make结束后,才可以使用。

未配置环境,或未make完毕时,也可以直接访问prebuilts/sdk/tools/jack-admin来使用。

其它用法,可以查看该命令的帮助。

参考 ¶

孤之前有介绍过《编译Android时禁用Jack》,是指禁用整个Jack/Jill工具链。

android 关闭jack_编译Android时禁用Jack Server相关推荐

  1. android 关闭jack_编译Android时禁用Jack

    编译Android时禁用Jack 2017-07-06 18:18:52 +08 字数:815 标签: Android 本文的代码与方法,基于Android O(8.0). 问题 ¶ 根据Androi ...

  2. Jack Server--Android N AOSP编译--Failed to contact Jack server

    准备 今天正式担任Android7.0(N)项目模块的开发和维护工作,借此机会git和make了一套系统代码用来研究.在编译的过程中,与以往系统不同的是Android7.0系统编译工具链使用了全新的J ...

  3. [Android Pro] ant 编译android工程

    参考文章: http://blog.csdn.net/xyz_lmn/article/details/7268582?reload http://hubingforever.blog.163.com/ ...

  4. android:自己动手编译Android源码(超详细)

    自己动手编译Android源码(超详细) 涅槃1992 2016.06.20 02:12* 字数 4330 阅读 86819评论 89喜欢 339赞赏 7 在Android Studio代码调试一文中 ...

  5. Android 使用Ant编译Android 工程

    如何编译Android 工程? 关于如何编译Android 工程在这篇官方文档这里中解释的比较清楚, 太多的详细的解释我就不说了,RTFM. 我需要说的是我们既可以让IDE替你完成编译的编译工作,也可 ...

  6. android studio ant编译,Android Studio编译cocos2dx项目

    一.所需工具 1.Android studio2.3 2.cocos2dx3.10 3.jdk1.8 4.ndkr9d 5.sdk 6.ant 7.python2.7.14 二.配置环境变量 1.sd ...

  7. android关闭屏幕背光,Android 的背光控制

    echo 23 > /sys/devices/platform/atmel_lcdfb.0/backlight/backlight/brightness http://android.git.k ...

  8. android studio 闪电编译,Android Studio中Instant Run

    Instant Run 翻译成中文叫即时运行或直接运行模板.不过我一般习惯了叫做闪电运行,为什么这么叫?请看图: 小闪电 有个小闪电(2.3.x版本独立有个小闪电,2.0-2.2是和左边运行图标在一块 ...

  9. 如何编译Android的kernel,编译Android的kernel

    一 下载 cd kernel 进入我们刚才创建的kernel文件夹 git branch -avv 查看远程的git 库 我们选择remotes/origin/android-goldfish-2.6 ...

最新文章

  1. 欧洲、加拿大、澳大利亚新增2.1万个点可购买比特币现金
  2. mac版sublime 无法下载插件(Vue 代码无高亮问题)
  3. 【Mybatis】分割字符串
  4. inotify监听文件夹的变动
  5. 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains解决
  6. 开大你的音响,感受HTML5 Audio API带来的视听盛宴
  7. 【Elasticsearch】elasticsearch里面的关于批量读取mget的用法
  8. 007-配置IP和DNS
  9. Mybatis集成日志与ehcache
  10. 神器!输错命令,fuck 一下,就能自动纠正!
  11. 成功走职场要找准自己的快捷键
  12. 虚拟机服务器渗透,对一台虚拟主机服务器的渗透 -电脑资料
  13. 详细全面 :一份完整的数据分析师成长书单
  14. 验证性因子分析(二)
  15. 删除Windows10系统中Wifi名称后边的数字
  16. 网站挂马危害及其防御措施
  17. vercel.app无法访问
  18. 浅析3种电池容量监测方案
  19. linux非空(linux设置空密码)
  20. 移动端百度关键词排名SEO优化如何做

热门文章

  1. Flutter开发之——Card
  2. 安装完PLSQL遇到Initialization error错误解决办法
  3. Wannafly挑战赛14 A 直角三棱锥
  4. 网络综合测试仪 的功能和参数
  5. useLocalStorage
  6. 最大化速率的智能反射面波束成形(上):分式规划
  7. MIPI RFFE扫盲(1)
  8. APP项目软件开发流程
  9. 电子商务毕业论文php,基于PHP的校园电子商务系统的设计与实现.doc
  10. python下tkinter模块和mysql构建图书管理系统实验