Android通过指令模拟touch滑动解锁



手机上有很多输入设备,电源键、音量加减键、触屏等等。这些设备的编号会因每个手机不同而不同,因此我们需要首先了解这个手机上都有哪些输入设备,然后通过脚本操作这些输入设备,实现一些想要的操作,进而通过循环实现自动化测试。

$ adb shell cat /proc/bus/input/devices

这条命令就是显示系统的输入设备列表,自己需要去了解这些设备的含义,进而去操作这些设备!我们这里需要操作的是touch,从下图中可以看到touch的事件是event1.

下面我们以屏幕触摸输入为例。将用到两个对应的命令:getevent和sendevent,顾名思义,一个是获取事件,另一个则是发送模拟事件。

首先我们用getevent了解设备运作,随便执行一条getevent来监听Handler event1(event1为屏幕事件):

$ adb shell getevent /dev/input/event1

上面的指令只会监听event1,不会监听其他的,比如电源键,音量加减键。当然我们也可以监听所有的事件:

$ adb shell getevent

滑动解锁便会输出这些event消息

系统会隔一定的时间对touch事件进行采样,滑动速度越慢采样的信息越多,我们没必要花费太多的时间在数值转换上,我们可以快速滑动,只要能实现解锁就行。接下来我们要把其中的十六进制数转换为十进制数写到shell script中执行,就可以实现自动解锁了。

如果当前是暗屏的情况下,还需要执行一下:

$ adb shell input keyevent 26

模拟发送电源键事件,屏幕点亮之后才能执行此shell script。

时间: 2024-08-05 19:16:21

Android通过指令模拟touch滑动解锁的相关文章

Selenium模拟JQuery滑动解锁

滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路. 首先先看个例子. https://www.helloweba.com/demo/2017/unlock/ 当我手动点击滑块时,改变的只是样式: 1.slide-to-unlock-handle 表示滑块,滑块的左边距在变大(因为它在向右移动嘛!) 2.Slide-tounlock-progress 表示滑过之后的背景黄色,黄色的宽度在增加,因为滑动经过的地方都变黄了. 除些之外,没其它

android 代码实现模拟用户点击、滑动等操作

/** * 模拟用户点击 * * @param view 要触发操作的view * @param x 相对于要操作view的左上角x轴偏移量 * @param y 相对于要操作view的左上角y轴偏移量 */private static void analogUserClick(View view, float x, float y) { if (view == null) { return; } LogUtil.e(TAG_POINT, "正在模拟点击操作:p->" + x +

2017模拟赛:滑动解锁

滑动解锁是智能手机一项常用的功能.你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点.这些划过的点所组成的有向折线,如果与预设的折线在图案.方向上都一致,那么手机将解锁. 所谓两个点"相邻":当且仅当以这两个点为端点的线段上不存在尚未经过的点. 此外,许多手机都约定:这条折线还需要至少经过4个点. 为了描述方便,我们给这9个点从上到下.从左到右依次编号1-9.即如下排列: 1 2 34 5 67 8 9 那么1->2->3是非

Android查询:模拟键盘鼠标事件之adb shell 实现

1. 发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key code如下表所列: KeyEvent Value      KEYCODE     Comment 0       KEYCODE_UNKNOWN 1       KEYCODE_MENU     在SDK2.1的模拟器中命令失效,sendevent命令可行 2       KEYCODE_SOFT_RIGHT 3       KEYCODE_HOME

Android高仿QQ消息滑动删除(附源码)

大家都应该使用过QQ吧,他的消息中可以滑动删除功能,我觉得比较有意思,所以模仿写了一个,并且修改了其滑动算法.我先贴几个简单示范图吧 其实主要用的是算法以及对ListView的把控. 一下是适配器的类 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

android 使用viewflipper实现左右滑动的效果

public class MainActivity extends Activity implements OnGestureListener { private static final String TAG = "MainActivity"; private ViewFlipper viewFlipper; private GestureDetector detector; //手势检测 Animation leftInAnimation; Animation leftOutAni

Android数据分批加载-滑动到底部自动加载列表

Android数据分批加载-滑动到底部自动加载列表 2014年5月9日 本博文介绍如何进行数据分批加载,在应用开发当中会经常使用到ListView,点击更多加载数据是我们经常简单,为了提供用户体验,当用户将列表滚动到底部自动加载数据,这样的形式用得比较多. 下面给大家提供的例子是,每次模拟20条数据,滑动到底部时再请求20条数据直到请求到限定页数为止 具体代码实现: /08_Datapageload/src/com/wwj/datapageload/MainActivity.java packa

Android 解决ScrollView与父视图滑动冲突问题

最近在解决一个比较棘手的问题,就是ScrollView与父视图之间滑动冲突的问题. 这里所说的滑动冲突,是指包裹ScrollView的父视图本身就是一个可以滑动的组件,比如说ScrollView嵌套ScrollView的情况(当然,这在实际应用中是没有意义的,因为ScrollView只能包含一个子组件,这里只是举一个栗子). 问题定义 说要解决这样一个问题,肯定会有点摸不到头脑,但我们可以用分解法,来"大事化小". 遇到这种滑动事件冲突的嵌套首先要明白一个孰先孰后的问题,就是先让父组件

Android环境配置Sencha Touch

转自http://www.phonegap100.com/portal.php?mod=view&aid=19 作为你开发的一部分,为安卓设备开发的 Sencha Touch框架应该在安卓虚拟机中被测试.这篇博客讨论如何安装和使用安卓虚拟机,使用命令行或者Sencha Architect构建器来进行 Sencha Touch开发.被出售和使用的Android智能手机的数量最近超过了iOS智能手机. (2013年4月的时代杂志的一篇文章披露出来的数据).很多Sencha Touch开发者针对的是A