adb命令

Android 调试桥

adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用。

Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能;

Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,然后根据其具体的路径配置好环境变量。然后启动cmd 输入‘adb’即可查看是否配置成功。

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

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

adb 的工作原理

启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程。如果没有,它将启动服务器进程。当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令—所有 adb 客户端均使用端口 5037 与 adb 服务器通信。

启用 adb 调试

要在通过 USB 连接的设备上使用 adb,您必须在设备系统设置中启用 USB debugging(位于 Developer options 下)。在运行 Android 4.2 及更高版本的设备上,Developer options 屏幕默认情况下处于隐藏状态。如需将其显示出来,请转到 Settings > About phone 并点按 Build number 七次。返回上一屏幕,在底部可以找到 Developer options。

注:当您连接运行 Android 4.2.2 或更高版本的设备时,系统将显示一个对话框,询问您是否接受允许在这台计算机上调试的 RSA 密钥。这种安全机制可以保护用户设备,因为它可以确保只有在您能够解锁设备并确认对话框的情况下才能执行 USB 调试和其他 ADB 命令。

adb常用命令

>adb version  查看adb版本   

>adb devices   查看是否链接设备

 

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

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

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

adb install | -r <apkName>  -r 覆盖原安装文件 -s 可以指定设备

>adb install "D:测试文档新包.apk"     默认安装

>adb install -r  "D:测试文档新包.apk"    -r 覆盖原安装文件

>adb  -s 127.0.0.1:62001 install  "D:测试文档新包.apk"     -s 可以指定设备

adb install | -r <apkName>  -r 覆盖原安装文件 -s 可以指定设备

>adb uninstall  com.wandoujia.phoenix2    卸载软件

>adb shell pm list packages      查看设备上面安装的应用包名

>adb shell pm list packages -s         查看系统应用

>adb shell pm list packages -3       查看第三方应用

>>adb shell pm list packages jingdong    包名包含某字符串的应用

>adb uninstall  com.taobao.taobao      卸载安装包    注意:安装后的包名系统会在末尾加上-1之类的数字,要去掉才可以成功卸载。 

>adb kill-server                 关闭adb服务

>adb start-server               开启adb服务

>>adb shell pm path com.baidu.map.location         打印 apk 的路径。adb shell pm path <package>

>adb shell ls        列出目录内容

>adb shell netstat     主要用于网络统计。

>adb logcat -h     查看帮助

>chcp 65001       解决乱码

>adb logcat -c && adb logcat | find "flutter"    抓flutter日志

>adb shell getprop ro.product.model      查看设备型号

>>adb shell dumpsys battery          电池状况 ,scale 代表最大电量,level 代表当前电量。上面的输出表示还剩下 44% 的电量

>adb shell wm size     屏幕分辨率

>adb shell getprop ro.build.version.release    Android系统版本

>adb shell cat /proc/cpuinfo          查看cpu信息

>adb shell cat /proc/meminfo        查看内存信息

>adb reboot     重启手机

>ps -ef |grep com.blingabc.student 根据包名查看pid

Android程序开发,就需要了解其四个主要的部件:Activity、Service、ContentProvider、 BroadcastReceiver。而其中Activity是唯一直接控制程序界面呈现,直面用户操作的部件(当然BrowadCastReceiver也能通过桌面控件(App Widgets)来呈现有限的操作界面)。Android对于Activity有严格的生命周期控制,以限制开发者在适当的回调函数里的放上合适的代码。对于多个Activity的转换,Android也有非常好的管理和流畅的切换,对此Android还引入了任务栈(Task Stack)的概念,这个概念对于Android设备上得返回按键有极其重要的联系;

查看Activity 堆栈情况的命令:adb shell dumpsys activity

adb shell dumpsys activity---------------查看ActvityManagerService 所有信息

adb shell dumpsys activity activities----------查看Activity组件信息

adb shell dumpsys activity services-----------查看Service组件信息

adb shell dumpsys activity providers----------产看ContentProvider组件信息

adb shell dumpsys activity broadcasts--------查看BraodcastReceiver信息

adb shell dumpsys activity intents--------------查看Intent信息

adb shell dumpsys activity processes---------查看进程信息

文件传输

>adb push D:测试文档2.txt /sdcard           从电脑拷贝文件到手机

>adb pull /sdcard/_4ServiceRecAckFromSdk1.txt D:测试文档          从手机文件拷贝到电脑

原文地址:https://www.cnblogs.com/huaerye/p/11176936.html