美文网首页
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