[Android] 如何在代码中执行adb shell命令

直接上干货:
通过Runtime.getRuntime().exec()实现
具体请参考以下:
input text 模拟输入内容
input keyevent 模拟 手机的按键  比如音量键  home 键 返回键     input keyevent 3  模拟按下返回键,很强大的 还有 手柄的一系列按键,可以自己查查
input tap  模拟点击 屏幕  生成 down-up事件 ,例如   input tap  300 400; 这个是 PX 值
input swipe  模拟滑动屏幕    例如   input swipe 250 250 300 300
示例代码请参考:

public void onViewCreated(@NonNull View view, Bundle savedInstanceState){
    super.onViewCreated(view,savedInstanceState);

    view.findViewById(R.id.button_third).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            NavHostFragment.findNavController(ThirdFragment.this).navigate(R.id.action_thirdFragment_to_FirstFragment);
        }
    });
    view.findViewById(R.id.button4).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getContext(),"On click..", Toast.LENGTH_SHORT).show();
            exeOrderOnTouchEvent(1200, 2000);
            exeOrderOnSwipeEvent(1200,1200,100,100);
        }
    });
}

public void exeOrderOnTouchEvent(float X, float Y) {
    try {
        Process ps = Runtime.getRuntime().exec(orderStr(X, Y));

    } catch (Exception e) {
        e.printStackTrace();
    }
}

@SuppressLint("DefaultLocale")
public String orderStr(float X, float Y) {
    return String.format("input tap %.2f %.2f", X, Y);
}

public void exeOrderOnSwipeEvent(float X1, float Y1,float X2, float Y2) {
    try {
        Process ps = Runtime.getRuntime().exec(swipeStr(X1, Y1,X2,Y2));

    } catch (Exception e) {
        e.printStackTrace();
    }
}

@SuppressLint("DefaultLocale")
public String swipeStr(float X1, float Y1,float X2, float Y2) {
    return String.format("input swipe %.2f %.2f %.2f %.2f", X1, Y1,X2, Y2);
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值