美文网首页
Android adb命令暴力测试你的Activity

Android adb命令暴力测试你的Activity

作者: Mis丶H | 来源:发表于2021-05-23 23:09 被阅读0次

使用adb命令反复打开/退出你的activity,同时使用Profiler查看app各个情况。

前提条件:

1.你的电脑配置好adb环境变量。
2.新建Test.java。
我的电脑环境不允许我直接在android studio或终端编译java文件,所以我选择把Java类放进Intelij中

命令格式:

public class Test {
    public static void main(String[] args) {
        try {
            // 传参,如果是序列化对象需要用Gson转成基础类型
            String extr = "{\"beginTime\":...}";
            // 参数两边双引号加上转义字符
            String command1 = "adb shell am start -n com.xxx.包名/com.xxx.acitivty  -e param \""+extr +"\"";
            // 返回事件
            String command2 = "adb shell input keyevent 4";
            Runtime runtime = Runtime.getRuntime();
            for (int i = 0; i < 100000; i++) {
                System.out.println(""+i);
                runtime.exec(command1);
                Thread.sleep(2000);
                runtime.exec(command2);
                Thread.sleep(2000);
            }
        }catch (Exception e){
        }
    }
}

项目代码参数接收的地方也要做改动:

// 传入的地方 
public static void startActivity(Context context, xxx config) {
        Intent intent = new Intent(context, xxxActivity.class);
        intent.putExtra(KEY_PARAM, config);
        String s = GsonUtil.GsonString(config);
        s = s.replaceAll("\"","");
        intent.putExtra(KEY_PARAM, s);
        context.startActivity(intent);
    }

// 取出解析的地方

String stringExtra = getIntent().getStringExtra(KEY_PARAM);
            config = GsonUtil.GsonToBean(stringExtra, xxx.class);

// 测试页面返回方法保持不动

@Override
    public void onBackPressed() {
      super.onBackPressed();
    }

最后:可以先把命令行1、2单个粘出来放命令行试一遍,运行没有问题再运行上面的Java文件。

相关文章

网友评论

      本文标题:Android adb命令暴力测试你的Activity

      本文链接:https://www.haomeiwen.com/subject/gwltsltx.html