转自http://www.softteco.com/blog/android-low-level-shell-click-on-screen/

Guys, nowdays, approach in this article is really senseless.


Use: input tap x y
(also input text, swipe, keyevent are available)
adb shell input tap x y
adb shell input swipe x1 y1 x2 y2
adb shell input text Hello!
adb shell input keyevent ID

By this way you do not need to care about hardware implementation. Using events you will have to imeplemnt them for each device. All these commands could be executed on device or on PC via ADB.

Happy testing! (:

To send touch event you need to do:
1 Set coordinates:

adb shell sendevent /dev/input/event2 3 0 x adb shell sendevent /dev/input/event2 3 1 y

2 Send touch event (must have 0 0 0 pair):

adb shell sendevent /dev/input/event2 1 330 1 adb shell sendevent /dev/input/event2 0 0 0

3 Send release finger event (must have 0 0 0 pair):

adb shell sendevent /dev/input/event2 1 330 0 adb shell sendevent /dev/input/event2 0 0 0

Please note:
1 You can record events:

adb shell getevent

2 if you use getevent all event values are in hex.
CONFIRMED, THIS WAY IS NOT WORKING ANYMORE,at least for Android 2.2.
I have rechecked, Android low level events signature was changed starting from Android 2.2 Froyo.
I just dumped single click:
/dev/input/event2: 0003 0030 00000068
/dev/input/event2: 0003 0032 0000000a
/dev/input/event2: 0003 0035 0000022e
/dev/input/event2: 0003 0036 00000039
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0003 0012 0000002f
/dev/input/event2: 0003 0014 00000001
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0030 00000000
/dev/input/event2: 0003 0032 0000000a
/dev/input/event2: 0003 0035 0000022e
/dev/input/event2: 0003 0036 00000039
/dev/input/event2: 0000 0002 00000000
/dev/input/event2: 0003 0012 00000020
/dev/input/event2: 0003 0014 00000000
/dev/input/event2: 0000 0000 00000000

It has obviously another structure.. I’m investigating right now this situation,
solution will be here tomorrow;)
After a quick investigation I have reproduced the click for Froyo Android:
Perl script (click on screen at 558, 57 point):
system(“adb shell sendevent /dev/input/event2 0003 48 104“);
system(“adb shell sendevent /dev/input/event2 0003 50 10“);
system(“adb shell sendevent /dev/input/event2 0003 53 558“);
system(“adb shell sendevent /dev/input/event2 0003 54 57“);
system(“adb shell sendevent /dev/input/event2 0000 2 00000000“);
system(“adb shell sendevent /dev/input/event2 0003 18 47“);
system(“adb shell sendevent /dev/input/event2 0003 20 00000001“);
system(“adb shell sendevent /dev/input/event2 0000 0000 00000000“);
system(“adb shell sendevent /dev/input/event2 0003 48 00000000“);
system(“adb shell sendevent /dev/input/event2 0003 50 10“);
system(“adb shell sendevent /dev/input/event2 0003 53 558“);
system(“adb shell sendevent /dev/input/event2 0003 54 57“);
system(“adb shell sendevent /dev/input/event2 0000 0002 00000000“);
system(“adb shell sendevent /dev/input/event2 0003 18 32“);
system(“adb shell sendevent /dev/input/event2 0003 20 00000000“);
system(“adb shell sendevent /dev/input/event2 0000 0000 00000000“);
How I did it:
1. Start dump motion event you need to reproduce:

~$ adb shell getevent | grep event2

grep is very useful to filter output.
2. Do motion event you want to reproduce;
3. Than just convert all values from hex in dump to decimal values!:)
To find what eventX is working for you do following:
1. Start terminal and type

~$ adb shell getevent You will see quickly moving traces with for example /dev/input/event4…… 2. Touch screen once You must see between event4few eventXand these eventXright in the moment of the touch will be yours input interface for reproducing motion events! :)

Please check my tutorial for lowlevel interaction with device

Happy motion events reproducing! (:

Best regards,
Yahor

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android官方入门文档[13]暂停和恢复一个A
  2. Android(安卓)内存相关 onTrimMemory,onLo
  3. android ctl属性的实现过程
  4. Android中实现整个视图切换的左右滑动效
  5. android简单实现轮播图效果
  6. Android应用程序未捕获异常并提示用户发
  7. Android(安卓)自定义 Adapter
  8. Android(安卓)子线程修改UI方法对比
  9. Android中关于Audio库的知识
  10. 如何制作Jar包并在android中调用jar包