EmuLabZip logo EmuLabZip

Android

最后更新 · 在 GitHub 上编辑此页

EmuLabZip 支持 Android 模拟器,以及已启用 USB 或无线调试的真机。

连接方式#

EmuLabZip 直接使用 ADB 主机协议与 127.0.0.1:5037 上的 ADB 服务器通信,这与 adb 命令和 Android Studio 使用的是同一个服务器。设备上不会安装任何东西:每次查询都是一条你自己也可以用 adb shell 运行的 shell 命令。

设置作用
ADB_SERVER_SOCKET=tcp:host:port使用另一个 ADB 服务器,例如从远程机器转发过来的服务器。
ANDROID_ADB_SERVER_PORT=5038使用另一个本地端口。
EMULABZIP_ADB=/path/to/adb服务器未运行时,用来启动它的 adb 二进制文件。
ANDROID_HOME, ANDROID_SDK_ROOT查找 SDK 的位置。

收集的内容#

功能来源
设备列表host:devices-l,然后对每个在线设备执行 getprop
名称模拟器使用 AVD 名称(ro.boot.qemu.avd_name),否则使用型号
Overviewgetprop、wm size、wm density、dumpsys battery、/proc/meminfo、uname -r、df(一次批量调用)
应用pm list packages -3 和 -s,进程 id 来自 ps -A
日志logcat -v threadtime -T <history>
截图通过 exec: 执行 screencap -p,使 PNG 不被改动

设备状态#

状态含义
Online已启动并就绪。
Booting已连接,但尚未设置 sys.boot_completed。EmuLabZip 会等待它。
Unauthorized在设备上接受 Allow USB debugging 提示。
OfflineADB 服务器丢失了该设备。重启模拟器,或运行 adb reconnect。

提示#

  • 运行 Google Play 镜像的模拟器是 user 构建:run-as 只对可调试的应用有效,这对第 2 阶段的 Storage 工具很重要。
  • 可以同时运行多个模拟器;用设备选择器在它们之间切换。