在我今天看到别人的代码前,我都不知道原来Android还能这么干,用ADB去发送命令让程序执行,这对测试 或 自动化集群操作来说再好不过了,简单易上手,轻松让ADB和Activity之间能发送信息来交互和通讯。
首先需要介绍一个Activity自带的方法 dump,我们要实现此功能需要重写这个方法
@Override
public void dump(@NonNull String prefix, @Nullable FileDescriptor fd, @NonNull PrintWriter writer, @Nullable String[] args) {
if(args == null){
writer.println("not find params");
return;
}
StringBuilder Param = new StringBuilder(args[0]);
for(int i = 1;i < args.length;i++){
Param.append(" ");
Param.append(args[i]);
}
dumpConfig(writer, Param.toString());
}
private void dumpConfig(PrintWriter writer,String param){
writer.println("params is ********************"+param);
}
当你向Activity发送ADB命令时,就能收到信息了
下来需要我们打开ADB 发送命令来试试怎么样,命令格式和下面的差不多
//com.gmtc.androidtest是包名,是程序的包名,非代码的包名
//.MainActivity是该包(代码的包名和程序的包名相同)下的Activity
//7896321 是参数,你要发什么命令,就改这个参数就行
adb shell dumpsys activity com.gmtc.androidtest/.MainActivity 7896321
下面是调用后程序执行的结果,以后做什么自动点击测试就方便多了