Android网页投屏控制从入门到放弃 - JadePeng

Android网页投屏控制从入门到放弃 - JadePeng

💡 原文中文,约5600字,阅读约需14分钟。
📝

内容提要

本文讨论了在应用程序中执行任务的过程,最初考虑使用adb获取页面信息和截图,但由于速度慢,最终转向使用uiautomator2库,以更高效地获取xml和截图。文章还提到使用LLM辅助生成代码,简化开发过程,并探讨了不同方案的优缺点,最终决定放弃scrpy方案,记录了整个实践过程。

🎯

关键要点

  • 业务需要采集在app上执行任务的整个过程,原始方案复杂,需要协调多方人员。

  • 最初考虑使用adb获取页面的xml和截图,但速度较慢。

  • 最终决定使用uiautomator2库,以更高效地获取xml和截图。

  • 使用LLM辅助生成代码,简化开发过程,将golang代码转换为python。

  • uiautomator2可以在几十毫秒内获取xml,使用minicap提供更高的fps进行截图。

  • 虽然scrpy是一个成熟的投屏控制软件,但最终决定放弃该方案,因为已有的解决方案已满足需求。

🔎

延伸解读

选择合适的工具

在开发过程中,选择合适的工具至关重要。虽然最初考虑使用adb,但由于其速度较慢,最终转向uiautomator2,这表明在技术选型时,性能和效率应优先考虑。开发者应根据项目需求灵活调整工具选择,以提高工作效率。

LLM的辅助作用

使用LLM辅助生成代码可以显著简化开发过程。文章中提到将golang代码转换为python,展示了LLM在跨语言开发中的潜力。这一过程不仅节省了时间,也减少了手动编码的错误,开发者可以更专注于逻辑设计。

放弃成熟方案的考量

尽管scrpy是一个成熟的投屏控制软件,但最终选择放弃,说明在项目中,需求的满足程度比工具的成熟度更为重要。开发者应评估现有方案是否能满足需求,而不是盲目追求技术的先进性。

延伸问答

为什么最初选择使用adb获取页面信息和截图?

最初选择adb是因为它可以通过发送操作命令获取当前页面的xml和截图。

为什么最终放弃了scrpy方案?

最终放弃scrpy方案是因为已有的uiautomator2方案已能满足需求,不需要投入更多精力。

uiautomator2库的优势是什么?

uiautomator2库可以在几十毫秒内获取xml,并使用minicap提供更高的fps进行截图,效率更高。

如何使用LLM辅助生成代码?

可以将golang代码扔给LLM,让其生成python代码,并将adb相关的调用改为uiautomator2。

在整个实践过程中遇到了哪些问题?

遇到的问题包括adb截图和获取xml速度慢,以及如何实现图像差分传输。

如何实现图像差分传输?

通过检查截图的变化,只有在有变化时才发送diff图像,以减少数据传输量。

🏷️

标签

➡️

继续阅读