Android 常用 adb 命令总结

本文adb 命令分为三部分进行介绍:adb 命令adb shell 命令linux 命令

adb 命令

这里介绍一些最常用的命令:

1、adb connect 远程连接 Android 设备

2、获取设备列表及设备状态:adb devices

     adb get-state , 获取设备的状态

  device:设备正常连接
  offline:连接出现异常,设备无响应
  unknown:没有连接设备

3、结束 adb 服务:adb kill-server

4、启动 adb 服务:adb start-server 

5、打印 Android 的系统日志:adb logcat

   adb logcat |grep -i Displayed  打印当前运行的APP可用于启动某一个应用

6、收集日志数据,用于后续分析:adb bugreport  (打印dumpsys、dumpstate、logcat的输出)

adb bugreport > d:\bugreport.log

7、adb install , 安装应用,覆盖安装是使用 -r 选项

多个设备安装时使用 -s 设备名 来指定要安装的设备

8、adb uninstall , 卸载应用,-k 选项,卸载时保存数据和缓存目录

9、adb pull , 将 Android 设备上的文件或者文件夹复制到本地

adb pull sdcard/pull.txt d:\
如果需要重命名为 rename.txt:
adb pull sdcard/pull.txt d:\rename.txt

10、adb push , 推送本地文件至 Android 设备

adb push d:\push.txt sdcard/

11、adb reboot , 重启 Android 设备

12、如果adb连接了多台设备需要用-s指定设备,如下图选择了第二个设备

13、adb forward , 将 宿主机上的某个端口重定向到设备的某个端口

adb forward tcp:1314 tcp :8888   执行该命令后所有发往宿主机 1314 端口的消息、数据都会转发到 Android 设备的 8888 端口上,因此可以通过远程的方式控制 Android 设备。

adb  shell 命令

adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下。

在连接模拟器的情况下,dos输入:adb shell即可进入安卓系统的跟目录下,也可以这样编写:adb  shell ls 即查看跟目录

uiautomator:

adb shell uiautomator dump

1、adb shell uiautomator dump 把当前的应用控件生成一个测试文件保存在手机上,下载下来如下

2、adb shell "uiautomator dump && cat /storage/emulated/legacy/window_dump.xml"    把两个命令合并在一起执行并查看测试文件的内容

adb shell uiautomator runtest...

 

input:

adb shell input tap 527 1128  根据定位操作

  text <string> (Default: touchscreen)
  keyevent [--longpress] <key code number or name> ... (Default: keyboard)
  tap <x> <y> (Default: touchscreen)
  swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
  press (Default: trackball)
  roll <dx> <dy> (Default: trackball)

 

dumpsys:

获取所有的 dumpsys 子命令 dumpsys | grep -i DUMP
获取当前界面元素: adb shell dumpsys activity top
获取任务列表: adb shell dumpsys activity activities   可以获取到 appium 依赖的原始activity
获取特定包基本信息  adb shell dumpsys package com.xueqiu.android
获取系统通知  adb shell dumpsys notification
获得内存信息  adb shell dumpsys meminfo com.android.settings
获取 cpu 信息  adb shell dumpsys cpuinfo
获取 gpu 绘制分析  adb shell dumpsys gfxinfo com.android.settings
获取短信  adb shell dumpsys activity broadcasts | grep senderName=

监控内存的使用情况:adb shell dumpsys meminfo | findstr "com.xxx.xxx" 

如下查看Chrome浏览器的内存使用数据:

 重置电池数据并下载到本地,如下

 

pm:

1、pm list package 列出安装在设备上的应用

-s:列出系统应用

-3:列出第三方应用

-f:列出应用包名及对应的apk名及存放位置

-i:列出应用包名及其安装来源

例如,查找三方应用中知乎的包名、apk存放位置、安装来源:adb shell pm list package -f -3 -i zhihu

2、pm path 列出对应包名的 .apk 位置

adb shell pm path com.tencent.mobileqq

3、pm dump , 后跟包名,列出指定应用的 dump 信息,里面有各种信息

adb shell pm dump com.tencent.mobileqq

4、pm install , 安装应用

目标 apk 存放于 Android 设备上,用 pm install 安装

5、pm uninstall , 卸载应用,同 adb uninstall

6、清除应用数据和权限:adb shell pm clear "com.ichinait.gbdriver.yiqi"

7、pm set-install-location , pm get-install-location , 设置应用安装位置,获取应用安装位置

[0/auto]:默认为自动
[1/internal]:默认为安装在手机内部
[2/external]:默认安装在外部存储

 

am:

1、am start , 启动一个 Activity

   启动应用:

  adb shell am start -n com.ichinait.gbpassenger.yiqi/com.ichinait.gbpassenger.login.LoginAnimationActivity -S

  先停止目标应用,再启动

  adb shell am start -S com.ichinait.gbpassenger.yiqi/com.ichinait.gbpassenger.login.LoginAnimationActivity

  等待应用完成启动

  adb shell am start -W com.ichinait.gbpassenger.yiqi/com.ichinait.gbpassenger.login.LoginAnimationActivity

启动默认浏览器打开一个网页
adb shell am start -a android.intent.action.VIEW -d http://testerhome.com
Starting: Intent { act=android.intent.action.VIEW dat=http://testerhome.com }

启动拨号器拨打 10086
adb shell am start -a android.intent.action.CALL -d tel:10086            
Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxx }

2、input text , 发送文本内容,不能发送中文

adb shell input text test123456

3、input keyevent , 发送按键事件

adb shell input keyevent 3   #模拟按home键

 

screencap

截图:adb shell screencap -p /sdcard/screen.png

 

ps

查看某个应用的进程:adb shell ps -ef|grep com.xx.xxx

 

monkey

monkey操作:adb shell monkey

 

查询某包的CPU使用情况:

adb shell top -n 1 | findstr  com.xxx.xxx

常用到的命令:cat、cd、chmod、cp、date、df、du、grep、kill、ln、ls、lsof、netstat、ping、ps、rm、rmdir、top、touch、重定向符号 ">" ">>"、管道 "|"

posted @ 2017-04-24 19:04  韩凯1202  阅读(1939)  评论(0编辑  收藏  举报