投屏出问题不再靠猜,运行记录和无线设备也变得更顺手
LinkAndroid 是一款开源的 Android 手机连接桌面工具,支持投屏、文件管理、脚本自动化等一站式操作。v2.2.0 的三个主要改进方向很明确:让投屏失败能被诊断、让运行记录更好管、让无线设备连接更灵活。一个好工具不是不出错,而是出错时让你一眼知道为什么。

:mag: 投屏诊断:出事之后,先查哪里
投屏失败的原因很多——adb 版本不对、scrcpy 文件损坏、5037 端口被占用、设备不在线。以前排查全靠经验,现在直接在「更多」菜单里点一下「投屏诊断」。
它会依次检查 6 项内容:平台兼容性、adb 文件完整性、adb 版本(甚至能识别 Windows 杀毒软件拦截 adb 的特定退出码 0xC0000409)、scrcpy 文件完整性、5037 端口占用(macOS/Linux/Windows 各一套检测命令)、设备列表。每个项目都有状态灯和具体的排查建议。
同时,投屏失败检测也做了针对性修复。此前 scrcpy 启动时会在 stdout 打印版本 banner,被错误地当作"投屏成功"信号,真正的 stderr 错误反而被忽略。现在改为实时监控 stderr 流,匹配 error、failed、could not 等关键词,一旦命中立即判定失败并弹出详细日志。
把「重启试试」换成「点一下诊断」,是最直接的用户体验升级。

:link: 无线设备 IP/端口可修改,二维码配对不再硬编码 5555
无线设备接入后,如果需要更换网络环境或调整端口,以前只能删除设备重新添加,设备和分组配置都会丢失。现在在设备设置中可以直接修改 IP 和端口,保存后自动断开旧连接、连接到新地址,并原地迁移设备分组配置,不会产生重复设备。
另一个修复与二维码配对有关:配对成功后,之前会回退到固定 5555 端口去连接,但 Android 无线调试实际分配的可能是动态端口(如 42271),导致连接失败。现在二维码配对使用 adb scannerConnect 自动探测真实连接端口,不再写死 5555。
:clipboard: 运行记录管理:单条删除、批量清空都支持
运行记录弹窗新增了删除单条记录和清空当前任务所有记录的功能,任务列表页头部也加了一个「清空所有记录」按钮。记录存储在 SQLite 的 task_run 表中,支持按状态和日期范围筛选,方便管理隐私数据。
:arrows_counterclockwise: 多设备跟随:串行启动解决并发冲突
多台设备同时开启跟随模式时,DeviceManage 会并发抢占同一个 adb reverse 端口,导致其中一台启动失败。v2.2.0 改成了串行启动——所有设备操作编成一个 Promise 链,每台间隔 400ms 顺序执行。如果某台启动失败,启用指数退避重试(3s → 6s → 12s → 最多 60s),设备重连时自动恢复跟随状态。

:robot_face: findOrNull:让元素查找失败有明确说法
la.find() 找不到元素时,之前会静默返回 Python 的 None,用户看到的是 AttributeError: 'NoneType' object has no attribute 'click',对大多数人来说等于天书。v2.2.0 改为:
la.find()— 找不到时抛出ElementNotFoundError,附带中文提示、选择器和排查建议la.findOrNull()/la.findOrNone()— 新 API,找不到返回None,但必须自己判空
同时 AI 生成代码的约束也同步强化:优先使用 tapText / tapId / tapDesc / tapExists,禁止链式 .click()。
一个有名字的错误好过 None——这是 Python 哲学里最实际的一条。
历史功能巡礼
如果你刚接触 LinkAndroid,这几个历史版本功能值得了解:
v2.0.0 —— 任务自动化系统:内置代码编辑器 + AI 辅助编程 + Cron 定时调度 + HTTP API 远程触发。LinkAndroid 从「投屏工具」升级为「效率平台」,就是从这版开始的。
v1.1.0 —— 无线扫码配对:手机一扫二维码就完成无线连接,配合 mDNS 自动发现局域网设备,无线调试不再是开发者的专利。
v0.5.0 —— Arm64 adb + 投屏自定义参数:在 Apple Silicon Mac 上原生运行 adb,同时支持自定义 scrcpy 参数(码率、分辨率、帧率)。

其他更新
- 数据目录支持
LINKANDROID_DATA_ROOT环境变量,正式与开发环境数据隔离 - 启动日志打印版本号和构建时间(buildId),线上排查不再靠猜
- 任务编辑界面禁用 Esc 关闭,输入法误触不再丢代码
- CLI/HTTP 远程执行任务自动选择 USB 优先的在线设备
- 任务「运行设置」支持保存目标设备配置,定时/手动/CLI/API 均按配置执行
- client.json 数据目录字段统一改为
dataRoot
版本历史
历史版本
- v2.1.0 — scrcpy 升级至 4.1,投屏新增息屏/亮屏控制
- v2.0.0 — 全新自动化任务系统与 AI 大模型集成
- v1.1.0 — 增强无线配对与投屏操作栏
升级到 v2.2.0,你看到的不是翻天覆地的界面变化。但每次投屏诊断秒出结果时、无线设备改 IP 保留分组时、多设备跟随稳定同步时,你能感受到这些改动存在的意义。
最好的工具不是功能最多的,而是最不让用户猜的。
升级后有什么感受?来评论区聊聊吧。