原文中文,约5600字,阅读约需14分钟。
📝
内容提要
本文讨论了在应用程序中执行任务的过程,最初考虑使用adb获取页面信息和截图,但由于速度慢,最终转向使用uiautomator2库,以更高效地获取xml和截图。文章还提到使用LLM辅助生成代码,简化开发过程,并探讨了不同方案的优缺点,最终决定放弃scrpy方案,记录了整个实践过程。
🔎
延伸解读
选择合适的工具
在开发过程中,选择合适的工具至关重要。虽然最初考虑使用adb,但由于其速度较慢,最终转向uiautomator2,这表明在技术选型时,性能和效率应优先考虑。开发者应根据项目需求灵活调整工具选择,以提高工作效率。
LLM的辅助作用
使用LLM辅助生成代码可以显著简化开发过程。文章中提到将golang代码转换为python,展示了LLM在跨语言开发中的潜力。这一过程不仅节省了时间,也减少了手动编码的错误,开发者可以更专注于逻辑设计。
放弃成熟方案的考量
尽管scrpy是一个成熟的投屏控制软件,但最终选择放弃,说明在项目中,需求的满足程度比工具的成熟度更为重要。开发者应评估现有方案是否能满足需求,而不是盲目追求技术的先进性。
❓
Q&A
为什么最初选择使用adb获取页面信息和截图?
最初选择adb是因为它可以通过发送操作命令获取当前页面的xml和截图。
为什么最终放弃了scrpy方案?
最终放弃scrpy方案是因为已有的uiautomator2方案已能满足需求,不需要投入更多精力。
uiautomator2库的优势是什么?
uiautomator2库可以在几十毫秒内获取xml,并使用minicap提供更高的fps进行截图,效率更高。
如何使用LLM辅助生成代码?
可以将golang代码扔给LLM,让其生成python代码,并将adb相关的调用改为uiautomator2。
在整个实践过程中遇到了哪些问题?
遇到的问题包括adb截图和获取xml速度慢,以及如何实现图像差分传输。
如何实现图像差分传输?
通过检查截图的变化,只有在有变化时才发送diff图像,以减少数据传输量。
🏷️