feat: 内置并统一使用项目 ADB (#149)
This commit is contained in:
@@ -15,12 +15,12 @@
|
||||
|---|---|---|
|
||||
| Python | 3.10 | 打开 PowerShell 执行 `C:/Python310/python.exe --version`,输出 `Python 3.10.x` |
|
||||
| Git | 任意较新版本 | `git --version` 有输出 |
|
||||
| adb(安卓调试工具) | 任意较新版本 | `adb version` 有输出 |
|
||||
| adb(安卓调试工具) | 项目内置 1.0.32 | `./vendor/android-platform-tools/windows/adb.exe version` 有输出 |
|
||||
|
||||
说明:
|
||||
|
||||
- 项目固定使用 `C:/Python310/python.exe`。**不要用 `python` 这个命令**,因为电脑上可能装了多个 Python,`python` 指向哪一个不确定。本文档所有命令都写全路径。
|
||||
- adb 一般随 Android SDK Platform Tools 安装。装好后要把它所在目录加入系统环境变量 `Path`,否则 `adb` 命令找不到。
|
||||
- Client 固定使用 `client/vendor/android-platform-tools/windows/` 中的 ADB,不读取系统环境变量 `Path`。三个内置文件必须同时存在;缺失时程序会弹窗提示重新安装。
|
||||
|
||||
## 2. 安装依赖
|
||||
|
||||
@@ -50,12 +50,12 @@ C:/Python310/python.exe -m pip freeze | Select-String "xxx"
|
||||
只做采集/采购的界面开发时**可以跳过这一步**,界面不连手机也能打开。
|
||||
|
||||
1. 手机打开「开发者选项」→「USB 调试」。
|
||||
2. 用数据线连电脑,执行 `adb devices`,能看到一行设备号 + `device`。
|
||||
2. 用数据线连电脑,在 `client/` 目录执行 `./vendor/android-platform-tools/windows/adb.exe devices`,能看到一行设备号 + `device`。
|
||||
3. 打开无线调试(这样后面不用一直插着线):
|
||||
|
||||
```powershell
|
||||
adb tcpip 5555
|
||||
adb connect 192.168.0.173:5555
|
||||
./vendor/android-platform-tools/windows/adb.exe tcpip 5555
|
||||
./vendor/android-platform-tools/windows/adb.exe connect 192.168.0.173:5555
|
||||
```
|
||||
|
||||
把 `192.168.0.173` 换成手机的实际 IP(手机「设置 → 关于手机 → 状态信息」里能看到)。
|
||||
@@ -95,7 +95,8 @@ C:/Python310/python.exe buyer_main.py
|
||||
| `ModuleNotFoundError: No module named 'qfluentwidgets'` | 依赖没装,或装到了别的 Python 上 | 回到第 2 步,注意用 `C:/Python310/python.exe -m pip` |
|
||||
| `ImportError: DLL load failed`(导入 PyQt5 时) | 装了多个 Qt 绑定互相冲突 | 卸载干净再装:`pip uninstall PyQt5 PyQt6 PySide2 PySide6 -y`,然后重新执行第 2 步 |
|
||||
| 窗口一闪就没了 | 直接双击 .py 文件运行的 | 必须在 PowerShell 里跑,才能看到错误信息 |
|
||||
| `adb: device offline` / `connect failed` | 手机和电脑不在同一个 WiFi,或手机重启过 | 重新执行 `adb connect <手机IP>:5555` |
|
||||
| `adb: device offline` / `connect failed` | 手机和电脑不在同一个 WiFi,或手机重启过 | 使用项目内 adb 重新执行 `./vendor/android-platform-tools/windows/adb.exe connect <手机IP>:5555` |
|
||||
| `内置 ADB 文件缺失` | 发布包不完整,或三个 ADB 文件没有一起复制 | 重新安装完整软件包;不要改用系统 PATH 中的 adb |
|
||||
| 跑 demo 后目录里多出 `xxx_home.xml`、`xxx_home.png` | `src/demo1/auto_v1.py` 会把控件树和截图写到当前目录 | 正常现象,这些是调试产物,**不要提交到 Git** |
|
||||
|
||||
界面相关的问题排查不了时,先确认是不是 Qt 主线程被卡住了 —— 见 `02-architecture.md` §5。
|
||||
|
||||
@@ -198,7 +198,10 @@ CMAutoBuy/ 整个文件夹拷到任何机器都能用
|
||||
│ │ ├── bin/ Qt5Core.dll / Qt5Gui.dll / Qt5Widgets.dll …
|
||||
│ │ └── plugins/platforms/qwindows.dll
|
||||
│ ├── qfluentwidgets/ qss 样式、字体、图标资源
|
||||
│ ├── adbutils/binaries/adb.exe
|
||||
│ ├── vendor/android-platform-tools/windows/
|
||||
│ │ ├── adb.exe
|
||||
│ │ ├── AdbWinApi.dll
|
||||
│ │ └── AdbWinUsbApi.dll
|
||||
│ └── …
|
||||
└── data/ 本地数据,升级时保留(见 [03 数据模型](03-data-model.md) §2.1)
|
||||
├── client.db
|
||||
@@ -246,7 +249,7 @@ CMAutoBuy/ 整个文件夹拷到任何机器都能用
|
||||
|---|---|
|
||||
| Qt 平台插件没收集到 | 启动即报 `could not find or load the Qt platform plugin "windows"` |
|
||||
| `qfluentwidgets` 资源没收集到 | 能启动,但界面全白、控件没样式 |
|
||||
| `adbutils` 的 adb 二进制没收集到 | 界面正常,但连不上手机 |
|
||||
| 项目内置 ADB 或配套 DLL 没收集到 | 启动时弹窗提示,设备操作保持中断 |
|
||||
| `uiautomator2` 初始化流程 | 打包后没有 `python -m uiautomator2 init` 这条命令,需确认辅助 App 怎么装 |
|
||||
| 杀软误报 | 空白版本信息的 exe 最容易被拦。必须给 exe 加图标和版本信息(产品名、版本号)。根治需要代码签名证书 |
|
||||
| 装到 `C:\Program Files\` | 无写权限,数据被重定向到 VirtualStore,设置改了不生效 |
|
||||
|
||||
@@ -299,6 +299,7 @@ class TaskTableModel(QAbstractTableModel):
|
||||
|
||||
### Android 设备
|
||||
|
||||
- Client 只使用发布包内置的 ADB,不回退系统 `Path`;启动时缺少 `adb.exe` 或配套 DLL,应在主窗口中央弹出带明显关闭按钮的中文提示,并禁用需要 ADB 的设备命令;
|
||||
- ADB 地址;
|
||||
- PDD 包名;
|
||||
- “测试连接”;
|
||||
|
||||
Reference in New Issue
Block a user