• adb 模拟长按电源键


    获得事件


      我来说说我是怎么做的。

      首先我在手机的shell下输入了getevent命令,这样就可以接收到手机上操作的所有event事件。

      

      这个时候我们按下我们手机电源键,来看看可以接收到哪些事件信息,按下电源键后:

      

      我们得到了以上四条信息。

      我们来以第一条为例分析一下获得是什么? 

      /dev/input/event0:  代表 device

      0001                         代表一个type

      0074                         代表power键的code(为16进制)

      00000001                 代表value 一般 1代表按下,0代表放开。

      根据查阅sendevent 需要的参数为就是device、type、code、value。

     

    sendevent /dev/input/event0 1 116 1   (0074(十六进制)转换十进制后为116)
    sendevent /dev/input/event0 0 0 0
    sleep 3
    sendevent /dev/input/event0 1 116 0
    sendevent /dev/input/event0 0 0 0

    sh脚本


      当知道了如何模拟长按电源键之后,那么我们如何用在自动化中呢?这里我打算介绍一下shell脚本

      众所周知Android是基于linux内核的,而shell脚本可以运行在linux中,所以我们试试用sh脚本是否可以在Android中运行。

      1、完成脚本

        因为Android本身内部没有vi,因此我打算在Windows上写好脚本然后导入进去,脚本内容为:

    复制代码
    #!/bin/sh
    
    sendevent /dev/input/event0 1 116 1
    sendevent /dev/input/event0 0 0 0
    echo "down"
    sleep 3
    sendevent /dev/input/event0 1 116 0
    sendevent /dev/input/event0 0 0 0
    echo "up"
    复制代码

      2、导入手机

        这一步不用多说,将脚本名称保存为 "boy.sh",然后使用adb导入手机sd卡。

         

      3、加权限

        一般linux系统中,导入的文件可能没有权限,因此我们需要加权限后再运行,于是我做了下面的操作:

        

        运行后提示我没有权限,明明刚才加了权限的,我们来查看一下文件:

        

        仔细一看果然没有加权限成功,怀疑自己刚才是不是打错了,于是又试了一次,还是不行。  

        最终经过不断的尝试,发现原来是sd卡是无法加权限的,必须要把文件放到 /data/data/的目录下才可以:

        

        终于权限加成功了。

      4、运行

        权限加成功后,迫不及待的去运行:

        

        还是提示有问题,后来也是不断尝试才知道,原因是手机的启动命令和linux还是有差别,使用下面的启动方法即可:

        

        运行完成之后,观察手机,出现了长按电源键后的效果:

        

  • 相关阅读:
    hdu_5718_Oracle(大数模拟)
    hdu_2222_Keywords Search(AC自动机板子)
    hdu_5616_Jam's balance(暴力枚举子集||母函数)
    hdu_2255_奔小康赚大钱(KM带权二分匹配板子)
    hdu_2544_最短路(spfa版子)
    hdu_2457_DNA repair(AC自动机+DP)
    hdu_5555_Immortality of Frog(状压DP)
    hdu_2159_FATE(完全背包)
    [USACO2002][poj1944]Fiber Communications(枚举)
    [AHOI2013]打地鼠(网络流)
  • 原文地址:https://www.cnblogs.com/Peng-study/p/12806860.html
Copyright © 2020-2023  润新知