adb操控手机

一、前言
  • AndroidDebug Bridge 我们一般简称为adb,它是一个非常强大的命令行工具,通过adb工具,你能够与你的android设备进行通信。使用adb命令是可以操控手机的,比如点击、滑动、输入等。在操控手机之前要先连接上手机,下面先来看下adb如何连接手机。
二、下载adb工具
  • 官网下载地址:https://developer.android.com/studio/releases/platform-tools
  • 这个地址也可以下载: https://www.appinn.com/download-adb-or-fastboot-without-android-studio/
三、连接手机
  • 连接手机分为两种方式:1、有线连接;2、无线连接(要内网环境)

  • 1、有线连接:

    • (1) 数据线连接
    • (2)把开发者选项和USB调试打开
    • (3)如果有模拟点击之类的选项也一定要打开,否则adb操控无效
    • (4)如果是连接成功 输入adb device 会显示你的设备。
  • 2、无线连接(要求是内网环境,必须先有线连接)

    • (1)使用adb tcpip 5555命令重启手机上的服务(端口可自定义)
    • (2)adb connect 192.168.0.5:5555连接手机,您的内网ip+刚才的端口号
    • (3)再使用 adb device 会多一个设备,就是成功了,这时候拔掉数据线,操控第二个设备都可以。
      adb操控手机_第1张图片
四、命令操控手机
  • 输入 0-9其中一个数字(android手机地址就是adb device显示的设备名称)
 adb -s  shell input  keyevent 7-16
  • 返回桌面
adb  -s   shell input keyevent 3
  • 返回键
  adb  -s   shell input  keyevent 4
  • 点击事件(这里的400 400 是点击X坐标400,Y坐标也是400的位置)
 adb -s  shell input tap 400 400
  • 滑动(可以模拟上下左右滑动)
 adb  -s  shell input swipe    
 如向下滑动: adb -s  shell input swipe 100 500 100 450
五、手机控制手机
  • 上面说的是PC控制手机,现在说手机直接控制手机;可以写个android软件执行命令即可;需要注意的是:

    • 1、操控自身app不需要root权限,一旦进入另一个app需要root权限的

    • 2、命令有所改变,不需要 adb到shell这一串了,因为android系统已经进入了shell了

       如模拟点击
       input tap 400 400
      
  • 如果是进入其他app,需要执行命令的代码(手机需要root)

    public void execShellCmd(String cmd) {  

        try {  
            // 申请获取root权限,这一步很重要,不然会没有作用 
            Process process = Runtime.getRuntime().exec("su");  
            // 获取输出流 
            OutputStream outputStream = process.getOutputStream();  
            DataOutputStream dataOutputStream = new DataOutputStream(  
                    outputStream);  
            dataOutputStream.writeBytes(cmd);  
            dataOutputStream.flush();  
            dataOutputStream.close();  
            outputStream.close();  
        } catch (Throwable t) {  
            t.printStackTrace();  
        }  
    }

你可能感兴趣的:(java,android)