如题,unity3D 框架开发的 Android 体感游戏使用 UI Automator 界面测试框架时候,发现部分按键模拟点击是可以的(基于控件定位好像不行,因为 unity3D 应用页面里面就没有 Android 资源 id),但是视角转换和运动控制需要旋转手机来物理实现,没法自动化测试了,大家对于这种测试有什么好的想法吗?
不知道大家有什么好的想法,欢迎提供一些思路和指导,提前感谢(❁´ω`❁)!
这里所谓的体感游戏,就是利用 Android 传感器如重力计,加速度计等控制方向和速度的游戏,比如以前流行的重力球游戏。
目前我试了通过 hook 传感器事件来企图人工修改传感器实时值,以达到想要的效果,结果失败了,可能 unity3D 采集传感器事件在更前面(非 unity3D 架构的应用是可以修改成功)。
我当时这个失败了的做法是,了解到 SensorManager 获取数据的大概方式就是,HAL 负责数据的上报,SensorManager 负责接收给应用使用,中间可以对传感器数据进行处理,滤波,校准等等定位,因此想到定位到"android.hardware.SystemSensorManager$SensorEventQueue"类里面的 dispatchSensorEvent 方法,然后再获取到方法的参数 mSensorsEvents,对传感器事件进行 hook 修改。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.