ADB是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse,AS中方面通过DDMS来调试Android程序,说白了就是debug工具。ADB的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下ADB会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
ADB有什么用?:借助ADB工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,ADB就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
- ADB有线连接手机Device,这个很简单插上数据线即可。
- ADB无线局域网,连接手机Devic。
- 手机下载一个ADB调试软件,随便都行,手机需要Root。
- 打开软件,开启端口,一般默认开启5555端口。
- 在电脑上CMD/Shell输入命令显示下图即可连接。
adb connect 192.168.31.244
- adb shell 会进入linux命令行界面。
- adb pull 获取手机中的文件。
- adb push 向手机中发送文件。 adb push test.txt /tmp/test.txt
- adb root 获取Root权限。
- adb devices 查看当前连接的设备。
- adb reboot 重启手机
安装一个apk:
- adb install demo.apk
保留数据和缓存文件,重新安装apk:
adb install -r demo.apk
安装apk到sd卡:
adb install -s demo.apk
卸载:
- adb uninstall <package>
- adb uninstall com.ONDragon.Demo
卸载 app 但保留数据和缓存文件:
adb uninstall -k com.stormzhang.demo
端口转发配合调试:
- adb forward tcp:5555 tcp:8000 端口转发(电脑ADB连接手机的5555端口,转发一下到8000,意思是只要连接本电脑的8000端口就是在连接手机5555端口)。
启动关闭程序:
- adb shell am start -n 包名/包名+类名。
- adb shell am start -n com.android.camera。
- adb shell am force-stop <packagename> 强制关闭程序
- db shell am force-stop cn.ONDragon.demo
启动/停止 Server
- 一般来说,下面两个命令基本不会用到,因为只要设备连接正确,会自动启动 adb server 的,不过大家也需要知道这俩命令:
启动 adb server :
- adb start-server
停止 adb server :
- adb kill-server
ADB shell am /pm:
不带任何选项:列出所有的应用的包名。
adb shell pm list package
-s:列出系统应用
adb shell pm list package -s
-3:列出第三方应用
adb shell pm list package -3
-f:列出应用包名及对应的apk名及存放位置
adb shell pm list package -f
-i:列出应用包名及其安装来源,结果显示例子:
package:com.zhihu.android installer=com.xiaomi.market
adb shell pm list package -i
input:
- input text , 发送文本内容,不能发送中文
adb shell input text test123456
nput keyevent , 发送按键事件,KeyEvent.java。
adb shell input keyevent KEYCODE_HOME
模拟按下 Home 键 ,源码里面有定义:
public static final int KEYCODE_HOME = 3;
因此可以将命令中的KEYCODE_HOME
替换为3
input tap , 对屏幕发送一个触摸事件
adb shell input tap 500 500
点击屏幕上坐标为 500 500 的位置
input swipe , 滑动事件
adb shell input swipe 900 500 100 500
从右往左滑动屏幕
如果版本不低于 4.4 , 可以模拟长按事件
adb shell input swipe 500 500 501 501 2000
其实就是在小的距离内,在较长的持续时间内进行滑动,最后表现出来的结果就是长按动作
screencap:
截图命令
adb shell screencap -p /sdcard/screen.png
截屏,保存至 sdcard 目录
screenrecord
adb shell screenrecord sdcard/record.mp4
执行命令后操作手机,ctrl + c 结束录制,录制结果保存至 sdcard