目录

aa命令常见问题

问题现象

通过hdc shell aa start -U传递一个url参数时,应用实际接收到的url中缺失部分参数,如实际执行如下命令:

hdc shell aa start -U "www.example.com?yy=11&xx=2"

应用侧获取到的url缺失xx=2参数。

背景知识

aa工具即Ability assistant(Ability助手),是用于启动应用和启动测试用例的工具,为开发者提供基本的应用调试和测试能力,例如启动应用组件、强制停止进程、打印应用组件相关信息等。

问题定位

1、aa命令生效只是参数丢失,说明环境没有问题。

2、通过-U传递url参数时需要遵守url编码规范,特殊字符需要转义。

3、查看传递的url中包含'&'特殊字符,但没有进行转义,可以判断特殊字符存在问题,特殊字符转义后再进行测试参数正常,从而可以判断参数丢失就是特殊字符没有转义导致。

分析结论

使用-U命令传递的url中包含特殊字符'&',特殊字符未做特殊处理,导致命令行解析异常,丢失了字符'&'后面的数据。

修改建议

  1. 通过"\"转义特殊字符,如下所示:

hdc shell aa start -U "www.example.com?yy=11\&xx=2"。

  1. aa命令整体添加双引号,同时给-U后面的url参数添加单引号,如下所示:

hdc shell "aa start -U 'www.example.com?yy=11&xx=2'"。