美文网首页
Android 调试桥

Android 调试桥

作者: JustDo23 | 来源:发表于2017-06-27 11:46 被阅读59次

    引言:使用过的命令行简单记录。

    时间:2017年06月19日

    作者:JustDo23

    Github:https://github.com/JustDo23

    官网:https://developer.android.com/studio/command-line/adb.html

    01. 简介

    Android Debug Bridg 简称 adb 译文 Android 调试桥,是一个通用的命令行工具。使 PC 端与手机端可以建立桥梁。它是一个 C/S 的客户端-服务器程序,包含三个组件:

    • 客户端,该组件发送命令。在开发计算机上通过 adb 命令调用。
    • 后台程序,该组件在 Android 设备上运行命令。在模拟器或设备实例作为后台进程运行。
    • 服务器,该组件管理客户端和后台程序的通信。在开发计算机上作为后台进程运行。

    工具的位置:android_sdk/platform-tools/adb

    02. 工作方式

    启动一个 adb 客户端时,此客户端首先检查是否有已经运行的 adb 服务进程。如果没有就启动服务,服务启动时会与本地 TCP 端口 5037 进行绑定,并侦听从 adb 客户端发送的命令。然后,服务器将与所有设备进行连接,它通过扫描55555585之间的奇数号端口来查找定位设备。服务器一旦发现 adb 后台程序,将与对应的端口进行连接。

    • 所有的 adb 客户端均使用 端口 5037adb 服务器进行通信。

    • 每个模拟器/设备实例都将获取一对按顺序排列的端口。

      • 偶数号端口用于控制台连接
      • 奇数好端口用于 adb 客户端连接
      模拟器 1,控制台:5554
      模拟器 1,adb:5555
      模拟器 2,控制台:5556
      模拟器 2,adb:5557
      以此类推...
      

    一旦服务与所有的设备建立了连接,就可以使用 adb 命令去访问这些设备。由于服务器管理与设备的连接,同时处理来自多个 adb 客户端的命令,因此,可以从任意的客户端或脚本去控制任意已连接的设备。

    03. 命令

    Android Debug Bridg
    adb root
    获取权限
    adb devices
    显示当前运行的设备
    adb version
    查看当前版本
    adb kill-server
    杀死服务
    adb start-server
    启动服务
    adb uninstall packageName
    通过主包名卸载安装的应用
    adb install apkPath
    通过路径去安装应用程序
    adb shell
    进入到手机的内核
    adb shell getprop ro.build.version.release
    获取手机系统版本号 例如5.1
    adb shell getprop ro.build.version.sdk
    获取手机系统版本号 例如22
    adb push local remote
    将文件推入手机
    adb pull remote local
    从手机中拉取文件

    04. 多设备

    当有多个设备同时连接时,发出 adb 命令必须要指定一个目标实例,否则 adb 将生成一个错误

    adb -s serial_number command
    

    使用-s来指定序列号为命令的目标实例。

    如果多个设备中只有一个模拟器,那么使用-e选项来指定模拟器为目标设备。同样,如果多个设备只有一个是硬件设备,则使用-d指定硬件设备为目标设备。

    adb [-d|-e|-s serial_number] command
    

    05. 屏幕截图

    $ adb shell screencap /sdcard/screen.png
    

    06. 录制视频

    使用screenrecord命令进行录制生成MPEG-4类型文件。

    $ adb shell screenrecord /sdcard/demo.mp4
    

    默认情况下是录制3分钟当然中途可以按下 Control + C 强行停止。

    注意:音频不与视频一起录制。

    screenrecord可以对任何支持的分辨率和比特率进行录制,同时保留设备显示的横纵比。默认情况下,以原生的分辨率和屏幕方向进行录制,最大时长为三分钟

    已知的限制:

    • 某些设备可能无法使用原生分辨率进行录制,可以尝试使用较低分辨率进行录制。
    • 录制过程中不支持屏幕旋转,如发生旋转部分录制将被切断。

    关于命令的一些选项符,可以进入 shell 执行 screenrecord --help 查看

    • --size WIDTHxHEIGHT
      • ​设置视频尺寸。默认使用设备原生分辨率,如果不支持则使用1280x720。为实现最佳效果可以使用设备AVC 编码器支持的大小。
    • --bit-rate RATE
      • ​设置视频比特率,比特/每秒,默认值4000000也就是4Mbps。可以增加比特率提升视频质量,相应的视频文件会变大。
    • --bugreport
      • ​错误报告,帮助发现录制过程中的错误信息。
    • --time-limit TIME
      • ​设置录制时间,单位是默认值最大值都是180
    • --rotate
      • ​将输出旋转90度,此功能为实验性的。
    • --verbose
      • ​录制过程中显示相关的信息。
    • --help
      • 查看语法和选项等帮助

    其他

    • Call activity manager
    • Call package manager

    相关文章

      网友评论

          本文标题:Android 调试桥

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