原文中文,约5600字,阅读约需14分钟。
📝
内容提要
本文讨论了在应用程序中执行任务的过程,最初考虑使用adb获取页面信息和截图,但由于速度慢,最终转向使用uiautomator2库,以更高效地获取xml和截图。文章还提到使用LLM辅助生成代码,简化开发过程,并探讨了不同方案的优缺点,最终决定放弃scrpy方案,记录了整个实践过程。
🎯
关键要点
-
业务需要采集在app上执行任务的整个过程,原始方案复杂,需要协调多方人员。
-
最初考虑使用adb获取页面的xml和截图,但速度较慢。
-
最终决定使用uiautomator2库,以更高效地获取xml和截图。
-
使用LLM辅助生成代码,简化开发过程,将golang代码转换为python。
-
uiautomator2可以在几十毫秒内获取xml,使用minicap提供更高的fps进行截图。
-
虽然scrpy是一个成熟的投屏控制软件,但最终决定放弃该方案,因为已有的解决方案已满足需求。
❓
延伸问答
为什么最初选择使用adb获取页面信息和截图?
最初选择adb是因为它可以通过发送操作命令获取当前页面的xml和截图。
为什么最终放弃了scrpy方案?
最终放弃scrpy方案是因为已有的uiautomator2方案已能满足需求,不需要投入更多精力。
uiautomator2库的优势是什么?
uiautomator2库可以在几十毫秒内获取xml,并使用minicap提供更高的fps进行截图,效率更高。
如何使用LLM辅助生成代码?
可以将golang代码扔给LLM,让其生成python代码,并将adb相关的调用改为uiautomator2。
在整个实践过程中遇到了哪些问题?
遇到的问题包括adb截图和获取xml速度慢,以及如何实现图像差分传输。
如何实现图像差分传输?
通过检查截图的变化,只有在有变化时才发送diff图像,以减少数据传输量。
🏷️