如题,unity3D 框架开发的 Android 体感游戏使用 UI Automator 界面测试框架时候,发现部分按键模拟点击是可以的(基于控件定位好像不行,因为 unity3D 应用页面里面就没有 Android 资源 id),但是视角转换和运动控制需要旋转手机来物理实现,没法自动化测试了,大家对于这种测试有什么好的想法吗?
不知道大家有什么好的想法,欢迎提供一些思路和指导,提前感谢(❁´ω`❁)!
这里所谓的体感游戏,就是利用 Android 传感器如重力计,加速度计等控制方向和速度的游戏,比如以前流行的重力球游戏。
目前我试了通过 hook 传感器事件来企图人工修改传感器实时值,以达到想要的效果,结果失败了,可能 unity3D 采集传感器事件在更前面(非 unity3D 架构的应用是可以修改成功)。
我当时这个失败了的做法是,了解到 SensorManager 获取数据的大概方式就是,HAL 负责数据的上报,SensorManager 负责接收给应用使用,中间可以对传感器数据进行处理,滤波,校准等等定位,因此想到定位到"android.hardware.SystemSensorManager$SensorEventQueue"类里面的 dispatchSensorEvent 方法,然后再获取到方法的参数 mSensorsEvents,对传感器事件进行 hook 修改。
1
tianzry OP 我的天,手机 V2EX 应用发帖,换行都没了……
|
2
dreamerlv3ex 2019-12-06 10:58:13 +08:00
一直想了解前端开发
|