2019-01-20
在科研项目中需要使用到Android的ADB工具,用来输入一些Android事件,下面总结一下我常用的命令:
基本指令:
adb shell
:最基本的自然是怎么进入adb了,用adb shell可以进入Android的文件系统,因为Android系统本质是linux系统,所以在进入文件系统之后,我们可以用linux系统的一些指令来进行操作(包括cd
,ls
等)
注意:我在实验中发现了一些问题,在模拟器中,我们可以很顺利的使用linux的指令进行操作,但是在用真机(ps:我用的小米)进行实验时我发现,手机必须要获得root权限之后才可以正常操作,可能是手机厂商为了保护用户的安全增加了一些保护机制。
adb push <upload file> <upload path>
:这一命令可以让我们把电脑上的文件上传到Android的文件系统中,其中<upload file>
是我们要上传的文件路径,<upload path>
是上传到Android系统中的位置
例:
adb push log.txt /data/local/tmp/
adb pull <download file> <download path>
:pull命令与push类似,区别就在于是从Android系统下载文件到本地电脑,download file
是在Android文件系统中的文件路径,download path
是下载到的本地电脑路径
adb install <apk>
:安装应用
这里我们会遇到很多问题,可以参考我的另一篇文章
ADB的am指令:
am全称activity manager,可以使用am去模拟各种系统的行为;
启动Activity: adb shell am start -n {packageName}/.{activityName}
启动Service:adb shell am startservice {packageName}/.{serviceName}
停止Service:adb shell am stopservice {packageName}/.{serviceName}
补充:Service的onCreate和onStartCommand区别,onCreate只有在第一次时执行,当service运行时不会触发,会直接运行onStartCommand;当停止Service后,在Start Service,会重新执行onCreate方法
发送Broadcast:adb shell am broadcast -a <action>
(还可以加其他参数)
停止应用: adb shell am force-stop <packageName>
模拟用户事件:
文本输入:adb shell input text <string>
例:手机端输出demo字符串,相应指令:adb shell input "demo".
键盘事件:input keyevent <KEYCODE>,其中KEYCODE见本文结尾的附表
例:点击返回键,相应指令: input keyevent 4.
点击事件:input tap <x> <y>
例: 点击坐标(500,500),相应指令: input tap 500 500.
滑动事件: input swipe <x1> <y1> <x2> <y2> <time>
例: 从坐标(300,500)滑动到(100,500),相应指令: input swipe 300 500 100 500.
例: 200ms时间从坐标(300,500)滑动到(100,500),相应指令: input swipe 300 500 100 500 200.