Window CMD & Android ADB

对于在Windows平台开发的Unity项目,掌握使用ADB工具,对于运行在Android环境的APP,非常便于安装和获取一些 Debug信息 。以下记录一些常用的操作,方便查阅。

Where is ADB executable file

ADB 可执行文件所在目录 Path
1,单独下载的Android SDK
C:\Users\XXX\AppData\Local\Android\Sdk\platform-tools
2,Mumu模拟器自带的adb server
示例 C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin
3,通过Unity LogCat插件的Tools菜单OpenTerminal
运行
命令 Path> adb或者adb_server(取实际的可执行文件名)

Devices list

命令 adb devices

真机设备id
由数字和字母组成的一串字符,如上:988b5c47465a344351

如果找不到设备,常有以下原因:

  1. 数据线,只支持充电
  2. 未开启Debug权限
  3. 杀毒软件
  4. 防火墙

模拟器id为ip:port
如:127.0.0.1:7555

连接模拟器

以MuMu模拟器12为例
先启动模拟器
输入 adb devices
C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin>adb_server devices
提示
List of devices attached
adb server is out of date. killing…
* daemon started successfully *
输入 adb connect [ip:port]
C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin>adb_server connect 127.0.0.1:7555
提示
connected to 127.0.0.1:7555
输入 adb devices
C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin>adb_server devices
提示
List of devices attached
127.0.0.1:7555 device

Install APK

命令 adb -s [设备ID] install [apk file path]

Log

命令 adb logcat [设备id]

也可以通过adb logcat -s Unity 专门获得Unity相关的日志(U要大写),大多数应用都是运行单个Unity Runtime。

通过CMD window 查看log不大方便,所以可以输出到本地文件来处理。
命令:
adb_server logcat -c
adb_server logcat -s Unity >xxx.log 或者 adb_server logcat -v time | find “Unity” >xxx2.log(”Unity”可以是包名,或者其他关键字)

ps:如果同时连接多个设备,会提示

– waiting for device –
error: more than one device/emulator

Memory Dump

通常做内存分析,需要获取APP所占系统内存,这里可以查看PSS指标。

PSS – Proportional Set Size:实际使用的物理内存(比例分配共享库占用的内存,按照进程数等比例划分)

命令 adb shell dumpsys meminfo [包名 com.xxx.xxx.xxx]

Packages

查看所有安装应用的包名。
命令 adb shell pm list packages

Extract APK

1,查询安装的所有APP包名
C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin>adb_server shell pm list packages
2,获取安装包地址
输入 adb shell pm path [package name]
C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin>adb_server shell pm path com.test.Unity
输出
package:/data/app/com.test.Unity-IwJU3z7I-I3tuIMPr-LYcQ==/base.apk
3,提取apk文件到目标文件目录下
输入 adb pull [source file] [destination file]
C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin>adb_server pull /data/app/com.test.Unity-IwJU3z7I-I3tuIMPr-LYcQ==/base.apk C:\Users\xxx\Desktop\xxx.apk
输出
1711 KB/s (140845123 bytes in 80.361s)

退出当前CMD指令

快捷键 Ctrl+C 强行中止命令执行

CMD打开文件夹目录

start “” “c:\windows” 或者 start explorer “c:\windows”
调用记事本打开xxx.txt文件
start “” “c:\xxx.txt” 或者 start notepad “c:\test.txt”