在模拟器上使用硬件特性

作者: rain 分类: 移动 发布时间: 2012-03-29 14:24 6 条评论

最新的Android 模拟器(跟随ADTr17版本发布的)添加了一个实验性功能,硬件特性仿真,包含:

  • 各种感应器
  • 多点触摸

这样开发者就可以用模拟器模拟不同的Android设备,然后通过一个手机来输入硬件操作给模拟器,达到测试多个硬件的目的。

感应器

为了仿真实际使用环境的情况,Android 设备通过一个程序(SdkControllerSensor )把设备的感应器状态发送给模拟器。这个程序监视设备上各个感应器的状态改变,然后把改变后的值发送给模拟器。模拟器把收到的值映射到系统中。该特性需要Android 4.0 并且系统的Image版本为R2(system image revision 2)。

SdkControllerSensor这个程序的源代码位于SDK中的如下目录:

 $SDK/tools/apps/SdkController/

通过ADB 转发功能来在设备和模拟器之间传输数据。

如下是启用感应器模拟的操作步骤:

  1. 通过USB线连接设备和电脑,并开启设备的 “USB 调试” 模式
  2. 在设备上启动SdkControllerSensor程序
  3. 在该程序的界面中勾选需要模拟的感应器
  4. 在命令行中运行“adb forward tcp:1968 tcp:1968”
  5. 启动模拟器

注意:ADB转发功能在操作系统和设备之间的传输比较容易断开。如果您发现模拟器中的感应器状态不改变了,再次运行“ adb forward tcp:1968 tcp:1968”命令,应该就恢复正常了。

多点触摸

模拟器支持多点触摸输入,作为r17版本的一个实验性功能,通过在Android设备运行SdkControllerMultitouch 程序可以把设备的多点触摸输入传输到模拟器。为了方便测试,这个程序会把模拟器的界面显示在设备上。当然该功能需要Android 4.0 +版本的系统Image。

为了方便看到多点触摸的的效果,建议开启设备的”显示触摸操作”功能,开启方式:进入“设置”程序的“开发人员选项”界面,选择该界面中的“显示触摸操作”选项即可,这样当点击屏幕的时候,在触摸位置会显示的圆点。
SdkControllerSensor 的代码位于如下目录:
 $SDK/tools/apps/SdkControllerMultitouch/

依然需要使用ADB转发功能,这次的转发端口为:1969。
注意: 当使用多点触摸模拟的时候,需要打开AVD的多点触摸硬件特性。在创建AVD的时候,在Hardware中添加“Multi-touch screen support”属性 并设置其值为“yes”.

限制: 如果模拟器运行在系统的GPU中,则在设备中看不到模拟器的界面。

本文出自 云在千峰,转载时请注明出处及相应链接。

本文永久链接: http://blog.chengyunfeng.com/?p=378

Ɣ回顶部