《Android群英传》阅读笔记——adb命令使用技巧

来源:互联网 发布:先进先出算法流程图 编辑:程序博客网 时间:2024/06/12 07:34

《Android群英传》阅读笔记——adb命令使用技巧


在我们开发一个项目的时候,避免不了使用adb命令,比如查看下数据库是否创建成功,从手机端读取一个文件,或者写入一个文件,都避免不了使用adb命令,在刚开始接触adb就想着要总结一下adb命令的使用技巧,但是总是支离破碎的,很不系统,也就放弃了,现在在看,徐宜生的《Android群英传》,发现总结的adb命令使用技巧总结的特别好,故写该文章来记录一下,毕竟,好记性不如烂键盘嘛,下面开始进入正文…adb命令使用技巧!


adb位于SDK的platform-tools目录下,还记得我们在搭建Android开发环境时配置的两个环境变量么,一个是java的jdk,另一个就是这个adb啦(如果大家用的Android Studio是包含jdk的,其实jdk的环境变量也可以不用配的),若是不会配的话就去 android基础—小白篇(一):欲先攻其事必先利其器—搭建android开发环境这篇文章看看吧,只是要到接近最后了,哈哈!当然了,手机端要打开开发者模式,打开,USB调试功能,然后手机端要对电脑进行调试授权,这些应该都很简单哈!使用adb功能时有的需要手机管理员权限,即手机要root,若是不想对手机root也好办,直接模拟器就好了,当然本篇文章只介绍一些在开发中使用较多的adb命令,总结一下嘛,毕竟,将来自己用着也方便!


显示系统中全部Android平台——android list targets,效果如下图:

  • 安装APK程序之install

C:\Users\lenovo>adb install -r D:\Test.apk

前面为安装命令,-r 后面则跟XXX.apk的路径就好。

  • 安装APK程序之Push

C:\Users\lenovo>adb push D:\Test.apk /system/app/

同理前面为命令,push后则是XXX.apk路径,再后面就是将该apk格式的文件放在手机上的某个位置。只要有相应的权限,哪里都可以放的。

以上两种方法都可以安装上apk,但是它们也是有不同的,adb install是将apk安装到/data/data目录下,作为普通的用户应用程序。而adb push则不是安装命令,它是将一个文件写入手机存储系统,因此只要拥有权限,可以将文件放到任何目录下!
从这里我们可以看出,adb push不仅可以安装apk,它最大的用处还是向手机写入文件。

  • 向手机写入文件格式如下:

C:\Users\lenovo>adb push D:\test.txt /system/temp

该命令就是,将电脑本地的D盘中的test.txt文件写入到手机端/system/temp文件夹中,但是,注意,一定要获取相应的权限,不然也是写不进去的。

  • 从手机获取文件格式如下:

C:\Users\lenovo>adb push /system/temp/ D:\test.txt

该命令和向手机写入时是同理的,就不再多解释了。

  • 查看log

现在Android Studio的log已经非常好用了,这个命令也就不常使用了,但是还是要了解一下的。

在命令行下查找log的步骤如下:

adb shell

logcat [选项] [过滤项]

选项

--"-s"选项 : 设置输出日志的标签, 只显示该标签的日志;  --"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;  --"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;  --"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;  --"-v"选项 : 设置日志的输出格式, 注意只能设置一项;  --"-c"选项 : 清空所有的日志缓存信息;  --"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;  --"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;  --"-g"选项 : 查看日志缓冲区信息;  --"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;  --"-B"选项 : 以二进制形式输出日志; 

过滤项

-- V : Verbose (明细);-- D : Debug (调试);-- I : Info (信息);   默认-- W : Warn (警告);-- E : Error (错误);-- F: Fatal (严重错误);-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);
这个和在调试程序时的四个等级是相同的,想打印那个等级的log信息,直接写上相应的等级就好了。

log命令当中还有一个就是grep的,解释如下:

logcat | grep string     管道过滤字符串,不管是不是标签logcat | grep -i string   忽略大小写logcat | grep "^..ABC"  正则表达式过滤
  • 利用adb删除应用的步骤如下(前提手机要root,不然是不可以的):
adb remount (重新挂在系统分区,使系统分区重新可写)adb shellcd system/apprm *.apk

若是你对Linux命令熟悉的话,这些应该不难看懂,哈哈!

  • 查看系统盘符(虽然我现在还不知道查询盘符有什么用,但是还是记录一下比较好,没准儿哪天用到了呢)
adb shell df
  • 输出所有已经安装的应用

该命令同样可以再Linux下使用Grep来过滤结果。

adb shell pm list packages -f
  • 模拟按键输入
adb shell input keyevent 3

最后面的数字就是要执行的Keyevent的Code,可以在网上查到对应的Code,这里列举一些常用的。

input keyevent 82 menuinput keyevent 3 homeinput keyevent 19 upinput keyevent 20 downinput keyevent 21 leftinput keyevent 22 rightinput keyevent 66 enterinput keyevent 4 back
  • 模拟滑动输入
adb shell input touchscreen <x1> <y1> <x2> <y2>adb shell input swipe 18 665 18 350 //该命令则是从坐标18,665滑动到坐标18,350adb shell input tap 200 200 // 该命令则是点击手机屏幕坐标为200,200的位置
  • 查看运行状态

如,我想列出Activity的运行状态,同时过滤掉”tencent”关键字,则可以敲如下命令:

adb shelldumpsys activity activities | grep "tencent"

当然可以列出的运行状态有很多,详细的命令大家可以查看API文档。

  • 录制屏幕
adb shell screenrecord /sdcard/XXX.mp4 //文件名可以随便起,存放位置也可以随便ctrl+c//当录制完成后,直接按这两个键就可以退出录屏了
  • 重新启动
adb reboot //重启手机哈

这些都是adb一些常用的命令,被我总结到这里了,也算是做个笔记吧,毕竟好记性不如烂键盘,哈哈!

大家若是有什么不懂的,可以在下面评论区中留言哈,我看到后会回的,另外对android有兴趣的同学可以加我们程序员刘某人的群:555974449,群里面有很多大神的,而且很热情,很热心的,大家不懂的可以问的。

0 0
原创粉丝点击