Android 自动截屏工具

发布于 2024-09-02 04:14:20 字数 2905 浏览 25 评论 0

随着 mac 版本 AndroidTool 的发布,获取 android 应用截屏变得非常简单。与此同时,感谢开发商!这对于我们开发者来说真是太好了!

对于简单应用来说,AndroidTool 是足够满足截屏的功能需求了,然而,我需要在在我正在开发的一款 app 上完成一个完全自动化的截图过程,并且将截图发布到应用市场。我认为这将不简单,所以,我尽量避免复杂的实现过程,而是想办法如何更好的结合 AndroidTool 来完成这个功能。

然而当我昨天阅读了 Enrique López Mañas yesterdayAutomating Android development 文章,我意识到,他在博客中讨论的话题我已经完成了 4/5。唯一我还没有做的就是测试。我不喜欢测试,然而,那篇文章激励着我去尝试写测试代码。。 所以,我今天早上尝试了一下。经过几个小时编写测试代码,我意外的找到了自动化截图的解决方案。

在这片文章中,我将会谈论关于如何通过 ui 测试来完成自动截图和提交这些截图到应用商店。

UI Automator 查看器

‘uiautomatorviewer’是一个非常强大的工具来查看 views,当发现极好的布局时,我通常会使用‘uiautomatorviewer’来查看,如果你运行这个工具将会获得下图所示。

通过这个工具你可以看到 UI 对象,在这里,我可以检测 TextView 的 id,这个技巧在稍后会变得非常有用。。

UI Automator

Google 在 Android Testing Support Library 里面同时也提供了一个叫做‘UI Automator’ 的库,它允许开发者自动化获取用户交互过程。

使用 UI Automator 时,你需要在你的项目中添加依赖,具体配置信息需要填写在 build.gradle 里面。

正如 文档 中所说。你需要指定 AndroidJUnitRunner 作为你默认的测试工具。

UI Automator 里面频繁使用的类有:UiDevice, UiSelector, UiObject, and UiScrollable.

我们将会在 androidTestScreenshot 文件夹下创建一个简单的测试类,并且这个类继承 InstrumentationTestCase。

这个过程很直接:

首先,监听设备点击“Home”键时,执行 UiDevice 的方法 pressHome()。在每一个测试里面,我们做这样重复性的工作:

从最开始的地方打开 app。我个人发现一个简答的方法去获取截屏。你可以使用 UiDevice 的 pressBack() 方法为其他测试。

获取想要的 UI 交互可以使用 UiSelector, UiScrollable, and UiObject。

使用 SystemClock.sleep 方法,为异步任务的执行腾出一些时间(异步任务的执行可能在截屏之后),以此来避免发生截屏获取的为空异常和 UiObject not found 异常。

最后我们截屏并且将获取的截屏保存在指定的位置。

到目前为止,你可能已经了解了如何使用 uiautomatorviewer 来帮助我们获取许多我们想要的 UI 元素,然而,我使用 UiSelector().resourceId,因为我们可以通过我们在 layout 里面使用的 id 来完成截屏,这样不是更加简单了吗?你也可以有其他选择,比如使用 className, text, etc… 来完成这一过程。

Product Flavor

我不知道为什么 UiAutomator 下的 minSdkVersion 是 18,因为我需要 minSdk 至少是 14,我需要使用这个额外的方法。如果这里有任何其他方法可以避免我自己去实现截屏的,请让我知道。

Android 使用 androidTest 来实现主要的测试工作,也为了实现不同产品的写测试需要,我们需要写我们的测试在 androidTestFlavorName 文件夹。这就是为什么我们在 androidTestScreenshot 路径下创建 SimpleUiTest 类的原因。

万事具备,现在,运行 gradle connectedAndroidTestScreenshotDebug 。在这个测试完成后你将会获得屏幕截图。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

匿名的好友

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文