Android:为测试目的注入假相机预览

lac*_*ton 9 android android-camera android-testing

我正在写一些在物理Android设备上运行的黑盒验收测试.被测应用程序(AUT)依赖于相机的预览.具体来说,它使用setOneShotPreviewCallbackandroid.hardware.Camera类的方法.我正在寻找一种方法来注入假预览图片来测试应用程序的行为.

我以为我可以通过让测试代码调用AUT的PreviewCallback对象来欺骗Camera对象,但不幸的是,实例变量mPreviewCallback对于Camera对象是私有的,因此我的测试代码无法获得对该PreviewCallback对象的引用.

我想到的另一种方法是向Message相机发送一个EventHandler,但该字段mEventHandler是私有的,因此测试代码无法获得对Handler的引用.

Ale*_*ohn 1

请参阅Android模拟相机如何在Android模拟器相机中模拟图片?这两种方法都不需要root设备,但需要更改应用程序。我相信即使您无法访问源代码,也可以通过反编译 dex 进行必要的修改。