一、说明
adb的db是debug bridge而不是和gdb一样指debug,这意思是说adb不能像gdb那样能一步步调试代码,但可以启到一些类似调试的功能。
下面就针对这些功能进行介绍,本文根据官方文档“http://adbshell.com/commands”整理而成。
这种烂大街的文章本不该再写了,但无耐每次自己用都得搜索筛选一藩,索性写下来权当就给自己看。
二、安装
如果安装了android sdk那么在sdk的platform-tools文件夹下就已经有adb了(使用时有点问题,我选择直接去下了一个)。
如果没有安装android sdk,那么也可以直接下载adb,解压即可使用。为了方便建议将解压到的目录加入环境变量。
三、使用
3.1 启动调试设备
模拟器----直接启动模拟手机
真机----通过usb线把手机接到电脑
3.2 查看当前有哪些设备
adb devices
第一列是设备序列号;其中“ip:port”组合的是模拟设备,“e6466a68”这种开头的是usb连接上来的真实手机。
如果只有一台设备,那么所有下面介绍的命令会自动在该设备上执行,如果有多个设备那么需要通过-s指定设备序列号不然会报“error: more than one device/emulator”(adb -s device_serial_number command形式)。
为了方便,在介绍后续命令前我将关掉上图中序列号为192.168.225.101:5555的模拟设备。
3.3 安装软件包
adb install /path/to/apk.apk
安装时有些手机可能要在手机上点击确认进行安装,不然会拒绝安装导致安装失败(报错:INSTALL_FAILED_USER_RESTRICTED: Install canceled by user)。
如果报错“error: unknown host service”,那有可能是360手机助手等占用了连接,通过任务管理器将其关闭即可。
3.4 查看已安装的软件包
adb shell pm list packages
此时会列出手机中所有已安装的转件包,为了快速找到自己想要的软件的包名,可以使用grep/findstr等命令进行过滤。
3.5 卸载已安装软件包
卸载不能通过安装apk时的apk文件名进行卸卸,需要指定软件完整包名进行卸载,包名可通过3.4介绍的办法进行查找
adb uninstall package_name
3.6 查看apk数据存放位置
adb shell pm path package_name
3.7 清空apk数据
adb shell pm clear package_name
3.8 查看当前所在目录
adb shell pwd
3.9 查看根目录下有哪些文件(夹)
adb shell ls /
3.10 查看磁盘挂载情况
adb shell df -h
3.11 上传文件到手机
adb push /local/path/to/file/filename /phone/file/path/to/save
路径linux用斜框windows用反斜杠
3.12 从手机下载文件到本地
adb pull /phone/path/to/file/filename /local/file/path/to/save
3.13 执行其他linux命令
要执行诸如cd、rm、mkdir、touch、cp、mv等等命令,都使用以下格式即可;如要带参数和在shell中使用一样直接带后面即可
adb shell command parameters
当然也可以直接使用adb shell进入交互shell,不用每次都带abd shell头;退出使用exit。如下图所示:
不过有些命令使用adb shell形式和进入交互shell形式,输出是不一样的,没有深究。
3.14 查看系统参数
adb shell dumpsys system_parameter
参考:
https://blog.youkuaiyun.com/gaojinshan/article/details/9455193
在 log 文件夹中,右键选择“在此处打开命令行”
命令行中,执行命令,清空日志信息
adb logcat -c
1
操作手机,直到需要打印 log 时为止
为了便于区分,以下输入的log文件,均以 .log 作为文件的后缀,建议使用 NodePad++ 打开
在打开的命令行中,继续执行命令,将日志信息输出到指定文件中(该文件不存在,则会新建)
adb logcat > logcat.log
1
下面的命令是将日志信息输出到已经存在的指定文件中
adb logcat > C:\Users\twl\Desktop\log\logcat.log
1
————————————————
版权声明:本文为优快云博主「villen_t」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_34801506/article/details/81014994
通过任务管理器找到他们的pid
NoxVMHandle.exe 就是
然后通过cmd命令查看占用看了哪个端口:
netstat -ano | findstr "1080" 如下62027就是,因为夜神模拟器的默认端口从62001开始,后面都是从62025开始
netstat -ano | findstr "15324"
————————————————
版权声明:本文为优快云博主「微小东」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/u014796999/article/details/83993607
eclipse LogCat 无法DEBUG出log.v log.d 信息为eclipse的ADT 版本太低,所以我换成ADT-24.2.0-20160729 (ADT-23.0.6无法使用)高版本之后解决这个问题
unity3d AndroidManifest 里targetVersion要和 SDK中 SDK Build-tools 一致