美文网首页
[测试开发] ADB(Android Debug Bridge)

[测试开发] ADB(Android Debug Bridge)

作者: 杨山炮 | 来源:发表于2018-08-18 10:23 被阅读0次

    Android学习笔记

    ADB命令

    • 常规操作

      • adb root  以 root 权限运行 adbd
      • adb remout  重新挂债
      • adb shell 进入手机
      • adb start-server  启动adb进程
      • adb kill-server kill adb 进程
      • adb devices  查看手机设备
      • adb version adb版本
      • adb install <apk file> 安装apk
      • adb shell pm clear <packagename> 清除应用缓存
      • adb -P <port> start-server 指定adb 的网络端口
      • adb  -s  <serial-naumber>制定手机序列号
      • adb shell am force-stop <packagename> 强制删除应用
      • adb uninstall [-k] <packagename> 删除应用  -k表示保留缓存数据
    • 截屏操作 

      • adb shell screencap -p /sdcard/name.png  截取png图片到SD卡下面
      • adb pull /sdcard/name.png ./   将sd卡线面的图片渠道本地当前文件夹
      • adb shell screenrecord /sdcard/filename.mp4 录屏
    • 查看应用列表

      • adb shell pm list packages

      • 参数 显示列表
        所有应用
        -f 显示应用关联的 apk 文件
        -d 只显示 disabled 的应用
        -e 只显示 enabled 的应用
        -s 只显示系统应用
        -3 只显示第三方应用
        -i 显示应用的 installer
        -u 包含已卸载应用
        <FILTER> 包名包含 <FILTER> 字符串
    • 查看应用activity

      • adb shell dumpsys activity activities | grep mFocusedActivity
    • 与应用交互

      • 常用Command
      Command 用途
      start [options] <INTENT> 启动 <INTENT> 指定的 Activity
      startservice [options] <INTENT> 启动 <INTENT> 指定的 Service
      broadcast [options] <INTENT> 发送 <INTENT> 指定的广播
      force-stop <packagename> 停止 <packagename> 相关的进程
      • 参数 含义
        -a <ACTION> 指定 action,比如 android.intent.action.VIEW
        -c <CATEGORY> 指定 category,比如 android.intent.category.APP_CONTACTS
        -n <COMPONENT> 指定完整 component 名,用于明确指定启动哪个 Activity,如com.example.app/.ExampleActivity
    - Options参数的值
    
    | 参数                                                         | 含义                             |
    | ------------------------------------------------------------ | ---------------------- |
    | `--esn <EXTRA_KEY>`                                          | null 值(只有 key 名) |
    | `-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>`                   | string 值              |
    | `--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>`                     | boolean 值             |
    | `--ei <EXTRA_KEY> <EXTRA_INT_VALUE>`                         | integer 值             |
    | `--el <EXTRA_KEY> <EXTRA_LONG_VALUE>`                        | long 值                |
    | `--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE>`                       | float 值               |
    | `--eu <EXTRA_KEY> <EXTRA_URI_VALUE>`                         | URI                    |
    | `--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>`             | component name         |
    | `--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]`  | integer 数组           |
    | `--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]` | long 数组              |
    
    • 调用activity :adb shell am start [options] <INTENT>

      • adb shell am start -n org.mazhuang.boottimemeasure/.MainActivity --es "toast" "hello, world"
    • 调用Service:adb shell am startservice [options] <INTENT>

      • adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService
    • 发送广播:adb shell am broadcast [options] <INTENT>

      • adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemeasure/.BootCompletedReceiver
    • 文件管理

      • 复制文件到电脑:adb pull /sdcard/<device-file> <pc-path>
      • 推送文件到设备adb push <pc-file> /sdcard/<device-file>
    • 按键模拟

      • adb shell input keyevent <keycode>
    • 日志管理

      Options 含义
      V Verbose(最低,输出得最多)
      D Debug
      I Info
      W Warning
      E Error
      F Fatal
      S Silent(最高,啥也不输出)

      adb logcat <options> |grep

    • 设备管理

      • adb shell getprop <product-property>
    • 电池管理

      • adb shell dumpsys battery
    • 屏幕分辨率

      • adb shell wm size
    • 屏幕密度

      • adb shell wm density
    • 显示屏幕参数

      • adb shell dumpsys window displays
    • 查看进程

      • adb shell ps
    • 资源占用情况

      • adb shell top

        列名 含义
        PID 进程 ID
        PR 优先级
        CPU% 当前瞬间占用 CPU 百分比
        S 进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
        #THR 线程数
        VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
        RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存)
        PCY 调度策略优先级,SP_BACKGROUND/SPFOREGROUND
        UID 进程所有者的用户 ID
        NAME 进程名

    ADB操作

    提取手机中安装的apk

    1. 找到程序的包名

    adb shell pm list packages

    nan@breeze:~$ adb shell pm list packages
    package:com.android.fmradio
    package:com.mediatek.gba
    package:com.mediatek.ims
    package:com.qihoo.safe.remotecontrol.stub
    package:com.qiku.blackmagic
    package:com.android.providers.telephony
    package:com.qiku.logsystem
    package:com.goodix.fingerprint
    package:com.android.providers.calendar
    package:com.daimajia.gold
    
    2. 找到apk的位置

    adb shell pm path package_name

    以取出淘宝apk为例
    nan@breeze:~$  adb shell pm path com.taobao.taobao
    package:/data/app/com.taobao.taobao-1/base.apk
    
    3. 将apk pull出来

    adb pull apk_path

    nan@breeze:~$ adb pull /data/app/com.taobao.taobao-1/base.apk
    /data/app/com.taobao.taobao-1/base.apk: 1 file pulled. 9.1 MB/s (80300927 bytes in 8.424s)
    

    相关文章

      网友评论

          本文标题:[测试开发] ADB(Android Debug Bridge)

          本文链接:https://www.haomeiwen.com/subject/ntkdfftx.html