开发者工具ADB命令行使用汇总 您所在的位置:网站首页 电脑adb命令下载安装 开发者工具ADB命令行使用汇总

开发者工具ADB命令行使用汇总

2024-07-13 14:26| 来源: 网络整理| 查看: 265

本文借鉴自转载博客、转载博客、百度经验、简书、GitHub,由笔者汇总整理

一、ADB安装及使用教程(命令行) 什么是ADB

adb工具即Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互。

ADB的安装(三种方法)

1.通过 Homebrew 安装

brew cask install android-platform-tools

测试是否正常安装

adb devices

2.手动安装 如果你以前安装过,请先删除老的文件

rm -rf ~/.android-sdk-macosx/

下载 android-sdk-macosx 下载地址:developer.android.com 将下载的文件解压并移动到 ~/.android-sdk-macosx

cd ~/Downloads(你的下载目录)/ unzip android-sdk*.zip mv android-sdk-macosx/ ~/.android-sdk-macosx

运行 SDK Manager

sh ~/.android-sdk-macosx/tools/android

根据你的需要选择,(我只需要Android SDK Platform-tools)[可选步骤] 选好后 Install 环境变量设置

echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile

更新配置文件

source ~/.bash_profile

测试是否正常安装

adb devices

3.安装Android Studio 下载链接:官网 安装完成之后,你可以在文件夹/Users/XXX/Library/Android/sdk/platform-tools 内找到 adb

将ADB配置系统变量

1.进入terminal(终端)并输入echo $HOME 2.命令行输入touch .bash_profile (注意,touch后面有一个空格),为了在访达下的个人文件夹下面创建一个 .bash_profile文件,类似于windows系统下存放系统环境变量的文件 3.命令行输入open -e .bash_profile,打开刚才创建的文件,也可以按照第二步在访达中打开 4.在该文件中输入,就是类似于windwos里面配置jdk的全局变量,前面的是你在本地sdk的路径

#Setting PATH for Android ADB Tools export PATH=${PATH}:/Users/xxx/Library/Android/sdk/platform-tools export PATH=${PATH}:/Users/xxx/Library/Android/sdk/tools

5.执行如下命令:source .bash_profile或者直接Command+s保存后退出 6.重启terminal并输入adb ,恭喜你。 还有一种特别的情况,就是你用一段时间的adb之后,可能adb命令不能用了,但是你并没有修改.bash_profile里面的东西,观察控制台,会出现一个zsh作为每一条命令的前缀,此时需要再配置一个文件,在/Users/pc/.zshrc中添加如下两行代码,可以解决这个问题:

# Enable my profile source ~/.bash_profile 常用命令行

1.安装APK:adb install //比如:adb install baidu.apk 2.保留数据和缓存文件,重新安装apk: adb install -r //比如:adb install -r baidu.apk 3.卸载APK:adb uninstall //比如:adb uninstall com.baidu.search 4.卸载app但保留数据和缓存文件:adb uninstall -k //比如:adb uninstall -k com.baidu.search 5.启动应用:adb shell am start -n /. 6.查看ADB帮助:adb help 7.跑monkey:adb shell monkey -v -p your.package.name 500 8.查看设备 :adb devices 9.终止adb服务进程:adb kill-server 10.重启adb服务进程:adb start-server 11.以管理员权限查看ddms里面的数据:adb root 12.导出项目中的文件 在项目中的terminalzhi adb pull /storage/sdcard0/zile/course/c6ffb9f02c3dd8eac240e656810a3790.0

二、ADB 详解 ADB架构

为了方便理解,我们从三个指令入手,我们经常会用到adb start-server,adb devices,adb kill-server。 然后我们经常会看到这样的输出界面:

C:\Users\dell>adb devices List of devices attached * daemon not running. starting it now at tcp:5037 * * daemon started successfully *

于是这里有三点疑问,为什么是server,server对应的是服务器或者服务端吧?如果手机是客户端,服务端是不是指电脑上开启的服务。还有这个呆萌(daemon )又是啥?

ADB是一个C/S架构的应用程序,由三部分组成:

运行在pc端的adb client: 命令行程序”adb”用于从shell或脚本中运行adb命令。首先,“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。接下来,当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求;运行在pc端的adb server: ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上;运行在设备端的常驻进程adb demon (adbd): 程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务;

Alt

命令语法

adb 命令的基本语法如下:

adb [-d|-e|-s ]

如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb 。 为命令指定目标设备 如果有多个设备/模拟器连接,则需要为命令指定目标设备。 参数 含义 -d 指定当前唯一通过 USB 连接的 Android 设备为命令目标 -e 指定当前唯一运行的模拟器为命令目标 -s 指定相应 serialNumber 号的设备/模拟器为命令目标

参数含义-d指定当前唯一通过 USB 连接的 Android 设备为命令目标-e指定当前唯一运行的模拟器为命令目标-s < serialNumber>指定相应 serialNumber 号的设备/模拟器为命令目标

在多个设备/模拟器连接的情况下较常用的是 -s < serialNumber> 参数,serialNumber 可以通过 adb devices 命令获取。如:

$ adb devices List of devices attached cf264b8f device emulator-5554 device 10.129.164.6:5555 device

输出里的 cf264b8f、emulator-5554 和 10.129.164.6:5555 即为 serialNumber。 比如这时想指定 cf264b8f 这个设备来运行 adb 命令获取屏幕分辨率:

adb -s cf264b8f shell wm size

又如想给 10.129.164.6:5555 这个设备安装应用(这种形式的 serialNumber 格式为 :,一般为无线连接的设备或 Genymotion 等第三方 Android 模拟器:

adb -s 10.129.164.6:5555 install test.apk

遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备,下文中为简化描述,不再重复。

启动/停止

启动 adb server 命令:

adb start-server

(一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。)

停止 adb server 命令:

adb kill-server

查看 adb 版本 命令:

adb version

示例输出:

Android Debug Bridge version 1.0.36 Revision 8f855a3d9b35-android 以 root 权限运行 adbd

adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。

所以如果 adbd 以普通权限执行,有些需要 root 权限才能执行的命令无法直接用 adb xxx 执行。这时可以 adb shell 然后 su 后执行命令,也可以让 adbd 以 root 权限执行,这个就能随意执行高权限命令了。

命令:

adb root

正常输出:

restarting adbd as root

现在再运行 adb shell,看看命令行提示符是不是变成 # 了?

有些手机 root 后也无法通过 adb root 命令让 adbd 以 root 权限执行,比如三星的部分机型,会提示 adbd cannot run as root in production builds,此时可以先安装 adbd Insecure,然后 adb root 试试。

相应地,如果要恢复 adbd 为非 root 权限的话,可以使用 adb unroot 命令。 指定 adb server 的网络端口 命令:

adb -P start-server

默认端口为 5037。 更为详尽的讲解:大神博客



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有