编译winscope

Android WinScope 工具可以通过源码编译获得,具体也可以查阅 development/tools/winscope 目录下的 README.md 文档,这里提供一个 Ubuntu 平台的编译步骤:

cd development/tools/winscope
sudo apt install nodejs npm
sudo npm install -g yarn
yarn install
yarn build

编译过程中遇到一个问题,看上去是在执行 kotlin 优化的时候,报了个内存不足的问题:

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
    at com.google.gwt.dev.js.ScopeContext.referenceFor(ScopeContext.kt:68)
    at com.google.gwt.dev.js.JsAstMapper.mapAsPropertyNameRef(JsAstMapper.java:247)
    at com.google.gwt.dev.js.JsAstMapper.mapGetProp(JsAstMapper.java:608)
    at com.google.gwt.dev.js.JsAstMapper.mapWithoutLocation(JsAstMapper.java:138)
    at com.google.gwt.dev.js.JsAstMapper.map(JsAstMapper.java:47)
    at com.google.gwt.dev.js.JsAstMapper.mapExpression(JsAstMapper.java:466)
    at com.google.gwt.dev.js.JsAstMapper.mapBinaryOperation(JsAstMapper.java:304)
    at com.google.gwt.dev.js.JsAstMapper.mapAssignmentVariant(JsAstMapper.java:258)
    at com.google.gwt.dev.js.JsAstMapper.mapWithoutLocation(JsAstMapper.java:102)
    at com.google.gwt.dev.js.JsAstMapper.map(JsAstMapper.java:47)

可以在执行 yarn build 前通过 export JAVA_OPTS="-XX:-UseGCOverheadLimit" 禁用掉 GC overhead limit exceeded 检测

编译完之后,在当前目录下会一个 dist 目录,再把 adb_proxy/winscope_proxy.py (一个帮我们开启 trace 抓取命令的脚本,这样我们就可以告别繁琐的命令啦),文件也拷贝进 dist 目录方便我们后面使用。

评论