最近想用命令行给 0xBench 发送 intent extra, 命令行如下:
adb shell am start -n org.zeroxlab.zeroxbenchmark/.Benchmark
-ez autorun true
adb 命令 help 提示的就是用
--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>
0xBench 中 org.zeroxlab.zeroxbenchmark.Benchmark.java 中接收 intent 的代码如下:
Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if (bundle != null) { mAutoRun = bundle.getBoolean("autorun"); mCheckMath = bundle.getBoolean("math");
...
}
我加入了一些 log, 结果让我非常吃惊
bundle.get("autorun") 的结果是: z (注意它把 -ez 认为是 -e z 了, 与adb help说明不符合)
而autorun是:null
把命令行改为
adb shell am start -n org.zeroxlab.zeroxbenchmark/.Benchmark
-e autorun true
这次autorun是 "true", 注意是 String value, 而
mAutoRun = bundle.getBoolean("autorun");
得到的结果还是 false
我想以后只有改0xBench源代码, 用 Boolean.valueOf() 把它矫正过来了
最后发现还是自己粗心的毛病
应该用
--ez, 而不是 -ez