android设备常用的adb命令

在测试android设备中,往往一些命令可以帮我们解决一些问题,也有一些是必须输入才能进行下一步操作,下面介绍下,我在测试过程中,常用的一些命令:

 1.adb的全称为Android Debug Bridge,就是起到调试桥的作用。借助adb工具,我们可以管理设备或模拟器的状态。还可以进行很多android设备操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android设备与PC端的桥梁,可以让用户 在电脑上对android设备进行全面的操作。

   运行原理:

    adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。所以如果 adbd 以普通权限执行,有些需要 root 权限才能执行的命令无法直接用 adb xxx 执行。这时可以        adb shell 然后 su 后执行命令,也可以让 adbd 以 root 权限执行,这个就能随意执行高权限命令了。

    2.启动和停止abd server:

    adb start-server(启动adb server)

    adb kill-server(停止adb server并非stop)

    3.以 root 权限运行 adbd

    命令:adb root(多个设备的话,adb -s 设备名称 root)

    正常输出:restarting adbd as root

    4.无线连接

    除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接——虽然连接过程中也有需要使用 USB 的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱 USB 连接线的限制!

    操作步骤:

    将 Android 设备与将运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。

    将设备与电脑通过 USB 线连接。

    应确保连接成功(可运行 adb devices 看是否能列出该设备)。

    让设备在 5555 端口监听 TCP/IP 连接:
    adb tcpip 5555(多个设备adb -s 设备ip tcpip 5555)
 备注:某些设备必须进入其设备shell终端进行设置:

  

   命令:
    断开 USB 连接。

    找到设备的 IP 地址。

    一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到。

    通过 IP 地址连接设备。

    adb connect <device-ip-address>

    这里的 <device-ip-address> 就是上一步中找到的设备 IP 地址。

    确认连接状态。

    adb devices

    如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行 adb connect <device-ip-address> 那一步;

    如果还是不行的话,通过 adb kill-server 重新启动 adb 然后从头再来一次试试。

    断开无线连接

    命令:

    adb disconnect <device-ip-address>

    5.查询已连接设备/模拟器

    命令:

    adb devices

    输出示例:

    List of devices attached

    cf264b8f device

    emulator-5554 device

    输出格式为 [serialNumber] [state],serialNumber 即我们常说的 SN,state 有如下几种:

        offline —— 表示设备未连接成功或无响应。

        device —— 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。

        no device —— 没有设备/模拟器连接。

        6.查看应用列表

        查看应用列表的基本命令格式是

        adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

        即在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:
        参数    显示列表
        无    所有应用
        -f    显示应用关联的 apk 文件
        -d    只显示 disabled 的应用
        -e    只显示 enabled 的应用
        -s    只显示系统应用
        -3    只显示第三方应用
        -i    显示应用的 installer
        -u    包含已卸载应用
        <FILTER>    包名包含 <FILTER> 字符串
        所有应用

        命令:

        adb shell pm list packages

        系统应用

        命令:

        adb shell pm list packages -s

        第三方应用

        命令:

        adb shell pm list packages -3

        包名包含某字符串的应用

        比如要查看包名包含字符串 test 的应用列表,命令:

        adb shell pm list packages test(多个设备查看某个设备adb -s 设备ip shell pm list packages test)

        当然也可以使用 grep 来过滤:

        adb shell pm list packages | grep test(多个设备中某个设备adb -s 设备ip shell pm list packages | grep test)

        7.安装 APK

        命令:

        adb install <apk file>(多个设备中某个设备进行安装,adb -s 设备ip install <apk file>)

        参数:

        adb install 后面可以跟一些参数来控制安装 APK 的行为,常用参数及含义如下:
        参数    含义
        -r    允许覆盖安装。
        -s    将应用安装到 sdcard。
        -d    允许降级覆盖安装。

        完整参数列表及含义可以直接运行 adb 命令然后查看 adb install [-lrtsdg] <file> 一节。

        如果见到类似如下输出(状态为 Success)代表安装成功:

        12040 KB/s (22205609 bytes in 1.801s)
                pkg: /data/local/tmp/SogouInput_android_v8.3_sweb.apk
        Success

        而如果状态为 Failure 则表示安装失败。

        8.卸载应用

        命令:

        adb uninstall [-k] <packagename>

        <packagename> 表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录。

        命令示例:

        adb uninstall com.qihoo360.mobilesafe

        表示卸载 360 手机卫士。
        9.清除应用数据与缓存

        命令:

        adb shell pm clear <packagename>

        <packagename> 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

        命令示例:

        adb shell pm clear com.qihoo360.mobilesafe

        表示清除 360 手机卫士的数据和缓存。

        10.查看设备信息
        型号

        命令:

        adb shell getprop ro.product.model

        11.电池状况

        命令:

        adb shell dumpsys battery
        12.屏幕分辨率

        命令:

        adb shell wm size

        13.屏幕密度

        命令:

        adb shell wm density

        14.显示屏参数

        命令:

        adb shell dumpsys window displays

        15.android_id

        命令:adb shell settings get secure android_id

        16.获取IMEI

        在 Android 4.4 及以下版本可通过如下命令获取 IMEI:

        adb shell dumpsys iphonesubinfo

        17.Android 系统版本

        命令:

        adb shell getprop ro.build.version.release


        18.CPU 信息
        命令:
        adb shell cat /proc/cpuinfo


        19.更多硬件与系统属性

        设备的更多硬件与系统属性可以通过如下命令查看:

        adb shell cat /system/build.prop

        这会输出很多信息,包括前面几个小节提到的「型号」和「Android 系统版本」等。

        输出里还包括一些其它有用的信息,它们也可通过 adb shell getprop <属性名> 命令单独查看,列举一部分属性如下:
        属性名    含义
        ro.build.version.sdk    SDK 版本
        ro.build.version.release    Android 系统版本
        ro.build.version.security_patch    Android 安全补丁程序级别
        ro.product.model    型号
        ro.product.brand    品牌
        ro.product.name    设备名
        ro.product.board    处理器型号
        ro.product.cpu.abilist    CPU 支持的 abi 列表
        persist.sys.isUsbOtgEnabled    是否支持 OTG
        dalvik.vm.heapsize    每个应用程序的内存上限
        ro.sf.lcd_density    屏幕密度

        20.屏幕截图

        命令:

        adb shell screencap -p /sdcard/sc.png

        然后将 png 文件导出到电脑:

        adb pull /sdcard/sc.png

        可以使用 adb shell screencap -h 查看 screencap 命令的帮助信息,下面是两个有意义的参数及含义:
        参数    含义
        -p    指定保存文件为 png 格式
        -d display-id    指定截图的显示屏编号(有多显示屏的情况下)

        实测如果指定文件名以 .png 结尾时可以省略 -p 参数;否则需要使用 -p 参数。如果不指定文件名,截图文件的内容将直接输出到 stdout。
        21.录制屏幕

        录制屏幕以 mp4 格式保存到 /sdcard:

        adb shell screenrecord /sdcard/filename.mp4

        需要停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒。

        22.使用 Monkey 进行压力测试

        Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。

        简单用法:

        adb shell monkey -p <packagename> -v 800

  android盒子常用monkey命令:

  adb -s  设备ip shell monkey -p <packagename> --pct-syskeys 0 -vvv 10000 >D:log.txt(存入电脑本地txt)

        表示向 <packagename> 指定的应用程序发送 800 个伪随机事件。
        23.查看进程
        命令:

        adb shell ps

        24.查看实时资源占用情况

        命令:

        adb shell top

        25.查看手机ip信息

        adb shell  ifconfig


        26.查看当前显示的activity

        adb shell dumpsys activity top


        27.查看手机CPU信息
        cmd——adb shell——cd /proc------cat cpuinfo

  28.日志存取
  adb-s 设备ip logcat -v time >D:log.txt

  29.keycode,有时候android设备有相应的menu键、back键,home键,声音加减键和power键等

  例如,让android设备返回上一界面(adb -s 设备ip shell input keyevent <number>)

  这里有一个问题,number如何获取呢:

  这个一般可以寻找开发进行获取,一般常见的number对应表:

  0 -->  "KEYCODE_UNKNOWN"
  1 -->  "KEYCODE_MENU"
  2 -->  "KEYCODE_SOFT_RIGHT"
  3 -->  "KEYCODE_HOME"
  4 -->  "KEYCODE_BACK"
  5 -->  "KEYCODE_CALL"
  6 -->  "KEYCODE_ENDCALL"
  7 -->  "KEYCODE_0"
  8 -->  "KEYCODE_1"
  9 -->  "KEYCODE_2"
  10 -->  "KEYCODE_3"
  11 -->  "KEYCODE_4"
  12 -->  "KEYCODE_5"
  13 -->  "KEYCODE_6"
  14 -->  "KEYCODE_7"
  15 -->  "KEYCODE_8"
  16 -->  "KEYCODE_9"
  17 -->  "KEYCODE_STAR"
  18 -->  "KEYCODE_POUND"
  19 -->  "KEYCODE_DPAD_UP"
  20 -->  "KEYCODE_DPAD_DOWN"
  21 -->  "KEYCODE_DPAD_LEFT"
  22 -->  "KEYCODE_DPAD_RIGHT"
  23 -->  "KEYCODE_DPAD_CENTER"
  24 -->  "KEYCODE_VOLUME_UP"
  25 -->  "KEYCODE_VOLUME_DOWN"
  26 -->  "KEYCODE_POWER"
  27 -->  "KEYCODE_CAMERA"
  28 -->  "KEYCODE_CLEAR"
  29 -->  "KEYCODE_A"
  30 -->  "KEYCODE_B"
  31 -->  "KEYCODE_C"
  32 -->  "KEYCODE_D"
  33 -->  "KEYCODE_E"
  34 -->  "KEYCODE_F"
  35 -->  "KEYCODE_G"
  36 -->  "KEYCODE_H"
  37 -->  "KEYCODE_I"
  38 -->  "KEYCODE_J"
  39 -->  "KEYCODE_K"
  40 -->  "KEYCODE_L"
  41 -->  "KEYCODE_M"
  42 -->  "KEYCODE_N"
  43 -->  "KEYCODE_O"
  44 -->  "KEYCODE_P"
  45 -->  "KEYCODE_Q"
  46 -->  "KEYCODE_R"
  47 -->  "KEYCODE_S"
  48 -->  "KEYCODE_T"
  49 -->  "KEYCODE_U"
  50 -->  "KEYCODE_V"
  51 -->  "KEYCODE_W"
  52 -->  "KEYCODE_X"
  53 -->  "KEYCODE_Y"
  54 -->  "KEYCODE_Z"
  55 -->  "KEYCODE_COMMA"
  56 -->  "KEYCODE_PERIOD"
  57 -->  "KEYCODE_ALT_LEFT"
  58 -->  "KEYCODE_ALT_RIGHT"
  59 -->  "KEYCODE_SHIFT_LEFT"
  60 -->  "KEYCODE_SHIFT_RIGHT"
  61 -->  "KEYCODE_TAB"
  62 -->  "KEYCODE_SPACE"
  63 -->  "KEYCODE_SYM"
  64 -->  "KEYCODE_EXPLORER"
  65 -->  "KEYCODE_ENVELOPE"
  66 -->  "KEYCODE_ENTER"
  67 -->  "KEYCODE_DEL"
  68 -->  "KEYCODE_GRAVE"
  69 -->  "KEYCODE_MINUS"
  70 -->  "KEYCODE_EQUALS"
  71 -->  "KEYCODE_LEFT_BRACKET"
  72 -->  "KEYCODE_RIGHT_BRACKET"
  73 -->  "KEYCODE_BACKSLASH"
  74 -->  "KEYCODE_SEMICOLON"
  75 -->  "KEYCODE_APOSTROPHE"
  76 -->  "KEYCODE_SLASH"
  77 -->  "KEYCODE_AT"
  78 -->  "KEYCODE_NUM"
  79 -->  "KEYCODE_HEADSETHOOK"
  80 -->  "KEYCODE_FOCUS"
  81 -->  "KEYCODE_PLUS"
  82 -->  "KEYCODE_MENU"
  83 -->  "KEYCODE_NOTIFICATION"
  84 -->  "KEYCODE_SEARCH"
  85 -->  "TAG_LAST_KEYCODE"

  30.点击某一坐标点,adb -s 设备ip shell input tap x y 

  坐标点如何获取呢?

  在android sdk文件加下,tools 目录下打开uiautomatorviewer.bat工具

  举例:,若我想获取这个区域可以点击的坐标点,在uiautomatorviewer中,右下方有一个左边bounds的显示

  第一个坐标显示的是左上方的坐标,第二个坐标显示的右下方的坐标,所以X取[1,122]之间一个值即可,y取[40,90]之间的一个值即可

  31.模拟输入文本信息:adb -s 设备ip shell input text HelloWorld

  模拟滑动操作:adb -s 设备ip shell input swipe x1 y1 x2 y2 [duration(ms)](最后参数是完成此滑动在多少MS内)

  32.adb push(从电脑上传送文件到android设备) 和adb pull(从andrid设备传送文件到电脑上)命令

  后续adb shell命令和DOS命令组合脚本的编写,陆续更新~

  以上部分参考:http://blog.csdn.net/u012233285/article/details/52447212

原文地址:https://www.cnblogs.com/liang6206/p/8022480.html