adb命令
adb原理
1.adb分为三个部分:PC上的adb client,adb server和手机(也可能是PC上的模拟器)上的adb daemon。这是一个多多连接的设计。即一台PC可以连接多个手机,一台手机也可以连接多个PC。
2.ADB Client:注意这里的Client和Daemon不是一一对应的,Client比如Eclipse DDMS,Windows终端命令行,豌豆荚等。Client本质上就是Shell, 用来发送命令给Server。发送命令时,首先检测PC上有没有启动Server,如果没有Server,则自动启动一个Server,然后将命令发送到Server,并不关心命令发送过去以后会怎样。
3.ADB Server:运行在PC上的后台程序,目的是检测USB接口何时连接或者移除设备。ADB Server维护着一个“已连接的设备的链表”,并且为每一个设备标记了一个状态:offline,bootloader,recovery或者online;Server一直在做一些循环和等待,以协调client和Server还有daemon之间的通信。offline说明Server发现了一个设备,但是不能成功连接到Daemon----这样最好重启一下手机。
4.ADB Daemon:运行在手机上的一个进程,作用是连接到adb server(通过usb或tcp-ip),并且为client提供一些服务,Client和Server之间还是要通过TCP/IP通信的,Server侦听本机的5037端口,Client试图去连接这个端口。
adb常用命令
基本语法:adb [-d|-e|-s ]
指定相应的设备为命令目标:adb -s device xxx.apk
指定当前唯一运行的模拟器为命令目标:adb -e
指定当前唯一通过USB连接的Android设备为命令目标:adb -d
安装软件:adb install 应用程序路径
覆盖安装软件:adb install -r 应用程序路径
卸载软件:adb uninstall 应用程序包名
卸载软件但是不删除配置文件:adb uninstall -k 包名
查看模拟器芯片检测是否兼容安装包:adb shell getprop ro.product.cpu.abi
进入安卓系统执行linux命令:adb shell
退出:exit
查看所有应用列表:adb shell pm list packages
显示系统应用列表:adb shell pm list package -s
显示第三方应用列表:adb shell pm list package -3
win下获取已打开的安装包名和activity名:adb shell dumpsys activity | findstr “mFocusedActivity”
mac下下获取已打开的安装包名和activity名:adb shell dumpsys activity | grep “mFocusedActivity”
快速启动应用程序:adb shell am start -n 包名/activity名
打印设备操作日志:adb logcat > logname.log