一. Adb命令html
Adb全称是Android Debug Bridge,翻译过来就是安卓调试桥,一种多用途的命令行工具,能够链接模拟器或者真实的安卓设备进行通讯,他是一个包括三个组成的客户端-服务端程序
1.1 客户端是运行在咱们的开发机器上,经过adb命令能够从shell调用客户端,其余Android工具,如ADT插件和DDMS也能够建立adb命令的客户端。
1.2 服务端是在开发机器后台运行的进程。服务器管理客户端和运行在模拟器或者真实设备上的adb守护(adb daemon)进程之间的通讯
1.3 adb daemon是一个运行在模拟器或者真实安卓设备后台的而守护进程
Adb命令文件所在路径<sdk>/platform-tools/
当你运行一个adb的客户端的时候,首先会检查adb的服务端是否在运行,若是没有运行,那么会自动开启一个服务端进程。当服务端开启后,他会绑定本地的tcp端口5037,而且经过5037端口监听全部客户端发过来的命令
Adb使用
类别android |
命令shell |
说明服务器 |
备注网络 |
可选项app |
-ddom |
命令仅对USB设备有效socket |
若是有多个USB设备就会返回错误tcp |
-eide |
命令仅对运行中的模拟器有效 |
若是有多个运行中的模拟器就会返回错误 |
|
-s <serialNumber> |
命令仅对adb关联的特定序列号的模拟器或手机有效(例如 "emulator-5556"). |
若是不指定设备就会返回错误 |
|
通常项 |
devices |
输出全部关联的模拟器或手机设备列表 |
参见 Querying for Emulator/Device Instances以得到更多信息。 |
help |
输出adb支持的命令 |
|
|
version |
输出adb的版本号 |
|
|
调试项 |
logcat [<option>] [<filter-specs>] |
在屏幕上输出日志信息 |
|
bugreport |
为报告bug,在屏幕上输出dumpsys,dumpstate和 logcat数据 |
|
|
jdwp |
输出有效的JDWP进程信息 |
可使用 forward jdwp:<pid> 转换端口以链接到指定的 JDWP 进程,例如: adb forward tcp:8000 jdwp:472 jdb -attach localhost:8000 |
|
数据项 |
install <path-to-apk> |
安装应用程序(用完整路径指定.apk文件) |
|
pull <remote> <local> |
从模拟器或手机COPY文件到开发机 |
|
|
push <local> <remote> |
从开发机COPY指定的文件到模拟器或手机 |
|
|
端口和网络项 |
forward <local> <remote> |
从本地端口转换链接到模拟器或手机的指定端口 |
端口可使用如下格式表示: tcp:<portnum> local:<UNIX domain socket name> dev:<character device name> jdwp:<pid> |
ppp <tty> [parm]... |
经过USB运行UPP <tty> —PPP流中的tty。例如:/dev/omap_csmi_ttyl。 [parm]... — 0到多个PPP/PPPD 选项,例如 defaultroute, local, notty等等。 注意不用自动启动PPP链接 |
|
|
脚本项 |
get-serialno |
输出adb对象的序列号 |
参见 Querying for Emulator/Device Instances以得到更多信息。 |
get-state |
输出adb设备的状态 |
||
wait-for-device |
阻塞执行直到设备已经链接,即设备状态是 device. |
能够在其余命令前加上此项,那样的话adb就会等到模拟器或手机设备已经链接才会执行命令,例如: 注意该命令并不等待系统彻底启动,所以不能追加须要在系统彻底启动才能执行的命令,例如install 命令须要Android包管理器支持,但它必须在系统彻底启动后才有效。下面的命令
会在模拟器或手机与adb发生链接后就执行install,但系统尚未彻底启动,因此会引发错误。 |
|
服务端项 |
start-server |
检测adb服务进程是否启动,若是没启动则启动它。 |
|
kill-server |
终止服务端进程 |
|
|
Shell |
shell |
在目标模拟器或手机上启动远程SHELL |
参见 Issuing Shell Commands以得到更多信息。 |
shell [<shellCommand>] |
在目标模拟器或手机上执行shellCommand而后退出远程SHELL |
使用实例
1. –d 参数
-e 参数
-s < serialNumber > 参数,尖括号里的内容是必须的
2. devices命令
注意设备的状态包含三种:
Offline(不能调试仅是链接,缘由极可能是adb与安卓系统不匹配) device(正常状态可调试) unauthorized(链接后不能调试,缘由是未在手机上赞成调试)
加上-l 参数会列出设备的详细信息,若是报错是error:protocol fault(no status),那从任务管理器杀掉各类手机助手的进程
help 命令,详细列出adb命令及参数的帮助文档
version 命令,显示adb版本
3. logcat 命令,查看设备日志
若是只有一台设备直接执行adb logcat就能够,
若是有多台,那么须要指定某一个设备执行adb –s 192.168.56.101 logcat
可是这个命令刷新日志会很快,咱们的dos窗口很差查看,因此咱们能够将结果重定向到一个文件,而后打开文件方便查看
查看logcat.txt文件内容以下:
logcat 的-f参数是将日志保存到文件,这个文件是在设备上,使用以下
logcat 自己会显示出不少日志来,那么咱们能够经过筛选来得到咱们想要的应用的日志,直接使用adb logcat时的用法
先使用adb shell进入shell环境再logcat
bugreport命令,会将dumpsys,dumpstate以及logcat的信息所有显示
dumpsys:安卓系统命令,获取android服务进程的各个信息
dumpstate:安卓系统命令,系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息等等
使用和以前的同样,能够重定向到文件
adb bugreport>Desktop\bugreport.log
单独显示dumpsys和dumpstate的信息,使用以下:
adb shell dumpsys>Desktop\dumpsys.log
adb shell dumpstate>Desktop\dumpstate.log
4. install 命令,安装app文件到设备
若是已经安装了,须要再次安装须要加参数-r,不然会失败
有安装就会有卸载uninstall
pull命令,从手机设备COPY指定的文件到开发机
push命令,从开发机copy指定文件到设备
5. start-server命令,检查服务状态,若是没启动那就启动
kill-server 命令,杀死全部adb进程
一般当咱们在执行adb时碰到error或者设备状态不对,能够尝试重启adb服务,也就是使用这两命令,就犹如网管的重启电脑大杀器同样
6. shell命令,进入安卓shell环境,这里的shell环境就是指安卓系统
shell <command> 命令,直接执行shell环境下的命令,例子以下:
这里用的vmstat命令会显示服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换状况,IO读写状况
7. root 命令,以root身份重启adbd守护进程,对于未得到root权限的手机,这个命令执行时会报错的
usb 命令,在usb上重启守护进程的监听
tcpip <port> 命令,在特定端口上以tcpip协议重启守护进程的监听
下面实例演示手机wifi链接电脑
先使用usb链接手机和电脑,查看
再使用adb tcpip 8787 重启守护进程
而后查看手机设备的ip,这里个人是192.168.1.109,注意这里须要保持电脑ip和手机ip可以互相ping通,使用adb connect 192.168.1.109:8787 链接设备
再次查看链接的设备
这里显示两个,一个是usb的链接,一个是wifi链接,拔掉数据线,咱们依然能够针对该设备进行调试操做
断开wifi链接命令
再次转换为usb,使用命令adb usb便可
二. Dos命令
2.1 cd命令,切换目录
注意切换盘符不能使用cd e:这样的形式,必须直接使用e:就能够切换
cd workspace 进入e盘workspace目录
cd ..返回上一级目录,cd ..\..\ 返回上两级目录
2.2 dir 查看当前目录都有哪些文件
2.3 md 建立目录
rd /s /q testdir 删除testdir这个目录及其如下的全部文件
type test.txt 查看文件内容
del test.txt删除文件
2.4 netstat –ano|findstr 4723 查看端口占用状况,下面截图表示该端口已占用,最后一列的数字是该进程的id
taskkill -F -pid 7812 按照进程号强杀某进程
taskkill -F -im name 按照进程名称强杀进程
三.安卓shell命令
3.1 cd命令,切换目录
cd ..返回上一级
cd –返回上次的目录
cd ~返回当前用户的家目录
pwd 命令,显示当前所在目录路径
3.2 ls 命令显示当前目录下的全部文件(不包括隐藏文件)
ll 命令是以上列表的形式显示全部文件(不包括隐藏文件),注意第一列的第一个字符,-表示是文件,d表示是目录,ll其实是ls –l的简写
3.3 rm –rf <文件或者目录>表示强制删除文件或者目录,-r表示递归删除 –f表示强制不用询问
mkdir <目录名称> 建立目录3.4 cat <文件名称> 查看文件内容