Instrumentation 类是测试框架的基类,它提供了非常具体的功能,它还提供 API 以通过 ADB 使用 ActivityManager 接口在设备/模拟器上调用测试。此外,它可以将结果返回给开发机器。
通过覆盖这个类,您可以享受运行测试所需的所有上下文和帮助类。
下面是一个示例实现,我写信是为了向您解释功能。
public class SampleInstrumentation extends Instrumentation {
@Override
public void onCreate(Bundle arguments) {
super.onCreate(arguments);
Bundle bundle = new Bundle();
bundle.putString("whatisthis","thisiswhat");
finish(0,bundle);
}
}
显现:
...
...
</application>
<instrumentation
android:name=".SampleInstrumentation"
android:targetPackage="com.commons"></instrumentation>
</manifest>
现在,如果您从开发机器运行此命令。
adb shell am instrument -w -m com.commons/com.commons.SampleInstrumentation
您的检测类 onCreate 方法被调用,您将在控制台上获得一些二进制编码响应,其中包含您传递给“完成”函数的捆绑包中的数据。
"
whatisthis
thisiswhat
我希望这将使您了解特定于该基类的功能。出于某种动机,我想补充一点,新的 android 测试框架androidx.test
是用我们的应用程序编译的(不是操作系统的一部分,可以修改)直接扩展了 Instrumentation 类(Android 框架/操作系统实现的一部分)。因此,您只需使用此类即可编写自己的全新测试框架实现。