热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

M2真机模拟事件

需求:是想设计开发一款淘宝手机(android)的客户端的刷红包插件。部分参考blog.csdn.netchaihuasongarticledetails9159323wenku.baidu.comlink?urlxHtaog9mpgVQE7oU02k1Lz3FoqKYqvpbRmSycNv63okGL6cI4UaFBw7HaN02ZWouaIc2pIBrdYxNEH

需求:是想设计开发一款淘宝手机(android)的客户端的刷红包插件。 部分参考http://blog.csdn.net/chaihuasong/article/details/9159323 http://wenku.baidu.com/link?url=xHtaog9mpgVQE7oU02k1Lz3FoqKYqvpbRmSycNv63okGL6cI4UaFBw7HaN02ZWouaIc2pIBrdYxNEH

需求:是想设计开发一款淘宝手机(android)的客户端的刷红包插件。

部分参考http://blog.csdn.net/chaihuasong/article/details/9159323

http://wenku.baidu.com/link?url=xHtaog9mpgVQE7oU02k1Lz3FoqKYqvpbRmSycNv63okGL6cI4UaFBw7HaN02ZWouaIc2pIBrdYxNEHyNuVj0J1kY8efgcw2mSGlMfG4IKiO

http://my.oschina.net/zhangqingcai/blog/36272

解压D:\16教程之家\视频教程\01Android教程\android-documents下的sdk,设置好adb的path路径,并安装好手机驱动。

在控制台键入如图所示:


表示驱动安装成功。而非模拟器。

然后可以利用下图所示,查看本机的事件列表:



很明显的是event1为powerkey,也就是电源键。

adb的作用:

http://www.iteye.com/topic/260042

Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。

可以通过下列几种方法加入adb:

在设备上运行shell命令

通过端口转发来管理模拟器或设备

从模拟器或设备上拷贝来或拷贝走文件

利用adb像手机发送消息,完成点击,移动,滑动等操作效果。

下面是控制手机电源键代码

@echo off
adb shell sendevent /dev/input/event1 1 $((0x74)) 1
adb shell sendevent /dev/input/event1 0 0 0
adb shell sendevent /dev/input/event1 1 $((0x74)) 0
adb shell sendevent /dev/input/event1 0 0 0
pause & exit

其中 event1代表手机电源事件,1表示触发操作,0x74表示code,1表示value(1代表按下,0表示弹出)

下面是点击事件:

@echo off
adb shell sendevent /dev/input/event0 3 $((0x39)) $((0x1a15))
adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x2))

adb shell sendevent /dev/input/event0 3 $((0x35)) $((0x1d7))
adb shell sendevent /dev/input/event0 3 $((0x36)) $((0x2c0))

adb shell sendevent /dev/input/event0 3 $((0x3a)) $((0x1b))

adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 3 $((0x39)) $((ffffffff))
adb shell sendevent /dev/input/event0 0 0 0
pause & exit

其中,利用了event0 3 $((0x3a))$((0x1b))表示点击,event0 3 $((0x35))$((0x1d7)),event0 3 $((0x36))$((0x2c0))表示x轴,y轴坐标。

下面表示移动事件:

@echo off
adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x4))

adb shell sendevent /dev/input/event0 3 $((0x35)) 250
adb shell sendevent /dev/input/event0 3 $((0x36)) 670

adb shell sendevent /dev/input/event0 3 $((0x3a)) $((0x1f))
adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x21))
adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x21))
adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x24))
adb shell sendevent /dev/input/event0 0 0 0


adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x26))
adb shell sendevent /dev/input/event0 0 0 0


adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x28))
adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 $((0x35)) $((0x41))
adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 $((0x3a)) $((0x00))
adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 $((0x39)) $((ffffffff))
adb shell sendevent /dev/input/event0 0 0 0
pause & exit
或
@echo off
adb shell sendevent /dev/input/event0 3 $((0x39)) $((0x1a7e))
adb shell sendevent /dev/input/event0 3 $((0x30)) $((0x2))
adb shell sendevent /dev/input/event0 3 $((0x35)) $((0xc1))
adb shell sendevent /dev/input/event0 3 $((0x36)) $((0x2c1))

adb shell sendevent /dev/input/event0 1 330 1---按下
adb shell sendevent /dev/input/event0 0 0 0

adb shell sendevent /dev/input/event0 3 $((0x35)) $((0xc1))
adb shell sendevent /dev/input/event0 3 $((0x36)) $((0x201))

adb shell sendevent /dev/input/event0 3 $((0x35)) $((0x2d1))
adb shell sendevent /dev/input/event0 3 $((0x36)) $((0x201))

adb shell sendevent /dev/input/event0 1 330 0----弹出
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 3 $((0x39)) $((ffffffff))
adb shell sendevent /dev/input/event0 0 0 0
pause & exit

利用getevent,可以获取当前手机中的操作代码。


利用sendevent则可以通过adb发送事件。


监听到的真机上的事件代码:



问题汇总:

对于再刮一张的点击,能够很好的完成(注意如果利用touch,即330不够完美)。



对于滑动,可以看到,利用代码,可以绘制出一个直线,这是滑动屏幕的结果。


但在下面的红包的应用中,发现,滑动时,却不能很好的完成操作。其实在上面的滑动过程中,已经发现,对于滑动过程,利用代码,滑动非常缓慢,这也是下面图形不能刮开的一个原因。


由于刮的非常慢,所以会作出一个选择的操作,而不是一下滑动。而在有道笔记的应用中,view中没有提供选择,所以可以划出线条。

猜测关键:

1. 利用批处理,本身运行每个命令很慢(或有个默认时间)。

2. Adb发送消息,有一个默认的时间间隔。

3.

推荐阅读
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 本文介绍了一种在 Android 开发中动态修改 strings.xml 文件中字符串值的有效方法。通过使用占位符,开发者可以在运行时根据需要填充具体的值,从而提高应用的灵活性和可维护性。 ... [详细]
  • 神策数据分析基础
    本文介绍了基于用户行为的数据分析方法,包括业务问题的提出与定义、具体行为的识别及统计分析流程。同时,详细阐述了如何利用事件模型(Event Model)来描述用户行为,以及在实际应用中的案例分析。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文列举了构建和运行 Struts2 应用程序所需的核心 JAR 文件,包括文件上传、日志记录、模板引擎等关键组件。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • 本文详细探讨了 Android Service 组件中 onStartCommand 方法的四种不同返回值及其应用场景。Service 可以在后台执行长时间的操作,无需提供用户界面,支持通过启动和绑定两种方式创建。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Android 开发技巧:使用 AsyncTask 实现后台任务与 UI 交互
    本文详细介绍了如何在 Android 应用中利用 AsyncTask 来执行后台任务,并及时将任务进展反馈给用户界面,提高用户体验。 ... [详细]
  • 本文探讨了如何利用 Android 的 Movie 类来展示 GIF 动画,并详细介绍了调整 GIF 尺寸以适应不同布局的方法。同时,提供了相关的代码示例和注意事项。 ... [详细]
  • 本文介绍了一个来自AIZU ONLINE JUDGE平台的问题,即清洁机器人2.0。该问题来源于某次编程竞赛,涉及复杂的算法逻辑与实现技巧。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
author-avatar
_雁火漫天_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有