Android 【真机】与【模拟器】触摸屏事件的模拟差异分析

  次阅读 作者:智能小宝 来源:互联网 2016-01-14 14:53 我要评论(0)

Android 真机和模拟器的差异问题,是永恒的话题,问不完的为什么,解不完的迷。模拟器的存在,有它的作用,但不要什么都相信模拟器。除非你是Android纯上层 应用开发人员或者爱好者,否则我建议你扔掉模拟器。它理想化的引导给我们添了不少麻烦。当然,这也是件好事。最起码,让我有兴趣去寻求答案,让我收获了更 多。

问题的缘由是有个自动化测试的需求,我需要写脚本模拟点击触摸屏的一系列操作,以代替手工测试(话说~遇上连续启动1000次camera并且拍照后退出这种变态测试,你们都是怎么做的?)。以此来证明:头儿,此bug真的解了!

Linux上可以通过sendEvent来模拟键盘或者鼠标点击事件,而Android是基于Linux2.6的,所以也可以模拟点击事件。网络文章很多都给出这样一段数据信息,告诉你怎么去实现模拟点击:

adb shell sendevent /dev/input/event0 3 0 110//x坐标

adb shell sendevent /dev/input/event0 3 1 70//y坐标

adb shell sendevent /dev/input/event0 1 330 1//按下状态,准确的说是有压力值

adb shell sendevent /dev/input/event0 0 0 0//必要的一行数据

adb shell sendevent /dev/input/event0 1 330 0//抬起状态,无压力值

adb shell sendevent /dev/input/event0 0 0 0//必要的一行,相当于终止一段完整数据的标致

用上面的方法可以点击模拟器的(110,70)点,但是,在真机上,却不可以,原因有两点。

1./dev/input/event0

模拟器上只有一个/dev/input/event0,但是真机上不是(如果还真是,那你这设备还是别出厂了-_-||)。

用cat获得的设备对应event信息:

# cat /proc/bus/input/devices

I: Bus=0000 Vendor=0000 Product=0000 Version=0000

N: Name="qtouch-touchscreen"

P: Phys=

S: Sysfs=/devices/virtual/input/input5

U: Uniq=

H: Handlers=event5

B: EV=b

B: KEY=400 0 4 0 0 0 0 0 0 0 0

B: ABS=2750000 11030003

"qtouch-touchscreen"不是规定死的event几,话说1234567都有可能,看你设备了。

2.数据类型

探究原因的时候,通过:

#adb shell getevent /dev/input/event5 > getvalue

可以得到:

0003 0035 000007c8

0003 0036 00000771

0003 0038 00000001

0000 0002 00000000

0003 0037 00000010

0000 0000 00000000

这和我之前所想象的坐标信息不一样,看到c,就知道是16进制数喽,第一反应就是做个10进制的转换。具体怎么转换?

int main (int argc, char *argv[]) 点点点... (这个.c 还不会写?不会写还不会搜吗?)

可以得到:

3 53 1992

3 54 1905

3 56 1

0 2 0

3 55 16

0 0 0

先不管为什么,做个测试验证下结果:

adb shell sendevent /dev/input/event5 3 53 1992

adb shell sendevent /dev/input/event5 3 54 1905

adb shell sendevent /dev/input/event5 3 56 1

adb shell sendevent /dev/input/event5 0 2 0

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...