从 pc 发起
通过 adb 来实现自动化测试。
adb 的功能非常强大,比如 调起 app,发广播,操作 Android 的文件系统,修改属性文件,模拟按键等等
再掌握一些批处理(Windows 环境)或者 shell 脚本(Mac 或 Linux 环境)的编写,写一个 Android 自动化工具就是手到擒来的事。
另外,adb 优于 app 的一点在于权限更大。随着 Android SDK Level 的增加,app 所能获得的权限越来越受限,对实现自动化测试也增加了一些麻烦。
从 Android java 应用发起
Android 系统内置的 app_process 可以启动 java 应用。
有了它,我们可以直接调用一些系统服务,如 IActivityManager,IPackageManager 等,同样,我们也能绕过一些 app 才会受到的权限限制问题。
通过 dx 工具将写好的 jar 直接转换为 dex 包,就可以完美运行在 Android 中了。
从 Android apk 应用发起
这是最常规的手段并且被广泛采用。
我们能利用 Android Test App,比如,Android 原生的 uiautomator 已经非常强大。能够模拟几乎所有的手势操作(当然,一些多指操作,旋转操作等需要自行实现)。
还能利用 Android 普通的 App,实现一些需要展示界面的测试框架。