内容提要
本文讨论了在应用程序中执行任务的过程,最初考虑使用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图像,以减少数据传输量。