用adb来adb 长按屏幕手机屏幕,没有反应

使用Shell调用ADB指令方式来点击屏幕
老大最近有个需求要捕获一些东西(具体不能细说),然后在需求的最关键的一个点就归结到要点击一下别的APP的一个指定位置.
在网上搜索安卓按键模拟。用了很多方式都不太好,最后锁定了使用ADB调试的方案,向手机发送按键事件。刚好之前做过在Root权限下,用Java调用安卓底层的Linux
Shell,然后执行pm指令使用Shell调用ADB指令.
使用Java执行Runtime.getRuntime().exec("su").getOutputStream(),获取了一个具有Root权限的Process的输出流对象,向其中写入字符串即可以Root权限被Shell执行,ADB模拟按键的指令为
“input keyevent
keyCode”,keyCode为按键的键值,例如KeyEvent.KEYCODE_VOLUME_UP表示音量加。 至于触屏或鼠标事件,只要调用相应的ADB指令即可。但是有一点问题,就是反应速度非常慢,尤其是连续模拟多个按键的时候,甚至会死机。而按键精灵运行的就相当流畅,我又开始好奇按键精灵是怎么实现的。
后来终于还是找到了原因,模拟按键时,不应每次都调用Runtime.getRuntime().exec(“su”),因为每次调用这个代码的时候,都会获取Runtime实例,并且执行”su”请求Root权限,反应就会很慢(我的理解是相当于每次都新开一个命令行窗口);而应该只是在一开始执行一次,并获取一个OutputStream实例,后来每次执行一条Shell指令,只需向其中写入相应字符串,这样就快了很多。
下面贴出可用的代码。要求设备已经Root,不需要其他任何特殊权限或签名。由于用的是ADB指令,兼容性也不会有太大问题。首次运行程序时(其实也就是执行Runtime.exec(“su”)的时候),会请求Root权限。
* 用root权限执行Linux下的Shell指令
public class RootShell {
private OutputS
* 执行shell指令
public final void exec(String cmd) {
if (os == null) {
os = Runtime.getRuntime().exec("su").getOutputStream();
os.write(cmd.getBytes());
os.flush();
} catch (Exception e) {
e.printStackTrace();
* 后台模拟全局按键
public final void simulateKey(int keyCode) {
exec("input keyevent " + keyCode + "\n");
其他参考博客
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
使用Shell调用ADB指令方式来点击屏幕
摘要:1.背景老大最近有个需求要捕获一些东西(具体不能细说),然后在需求的最关键的一个点就归结到要点击一下别的APP的一个指定位置.在网上搜索安卓按键模拟。用了很多方式都不太好,最后锁定了使用ADB调试的方案,向手机发送按键事件。刚好之前做过在Root权限下,用Java调用安卓底层的LinuxShell,然后执行pm指令使用Shell调用ADB指令.使用Java执行Runtime.getRuntime().exec(&su&).getOutputStream()
老大最近有个需求要捕获一些东西(具体不能细说),然后在需求的最关键的一个点就归结到要点击一下别的APP的一个指定位置. 在网上搜索安卓按键模拟。用了很多方式都不太好,最后锁定了使用ADB调试的方案,向手机发送按键事件。刚好之前做过在Root权限下,用Java调用安卓底层的LinuxShell,然后执行pm指令使用Shell调用ADB指令. 使用Java执行Runtime.getRuntime().exec(&su&).getOutputStream(),获取了一个具有Root权限的Process的输出流对象,向其中写入字符串即可以Root权限被Shell执行,ADB模拟按键的指令为“input keyeventkeyCode”,keyCode为按键的键值,例如KeyEvent.KEYCODE_VOLUME_UP表示音量加。 至于触屏或鼠标事件,只要调用相应的ADB指令即可。但是有一点问题,就是反应速度非常慢,尤其是连续模拟多个按键的时候,甚至会死机。而按键精灵运行的就相当流畅,我又开始好奇按键精灵是怎么实现的。后来终于还是找到了原因,模拟按键时,不应每次都调用Runtime.getRuntime().exec(“su”),因为每次调用这个代码的时候,都会获取Runtime实例,并且执行”su”请求Root权限,反应就会很慢(我的理解是相当于每次都新开一个命令行窗口);而应该只是在一开始执行一次,并获取一个OutputStream实例,后来每次执行一条Shell指令,只需向其中写入相应字符串,这样就快了很多。下面贴出可用的代码。要求设备已经Root,不需要其他任何特殊权限或签名。由于用的是ADB指令,兼容性也不会有太大问题。首次运行程序时(其实也就是执行Runtime.exec(“su”)的时候),会请求Root权限。
* 用root权限执行Linux下的Shell指令
public class RootShell {
private OutputS
* 执行shell指令
* @param cmd
public final void exec(String cmd) {
if (os == null) {
os = Runtime.getRuntime().exec(&su&).getOutputStream();
os.write(cmd.getBytes());
os.flush();
} catch (Exception e) {
e.printStackTrace();
* 后台模拟全局按键
* @param keyCode
public final void simulateKey(int keyCode) {
exec(&input keyevent & + keyCode + &/n&);
其他参考博客 地址1 地址2
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
邮箱低至5折
推荐购买再奖现金,最高25%
&200元/3月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
使用Shell调用ADB指令方式来点击屏幕相关信息,包括
的信息,所有使用Shell调用ADB指令方式来点击屏幕相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International朋友的米4手机摔了,按屏幕开关键可以点亮屏幕,但触摸没有反应,锁屏也打不开,不知道到底什么问题,想_百度知道
朋友的米4手机摔了,按屏幕开关键可以点亮屏幕,但触摸没有反应,锁屏也打不开,不知道到底什么问题,想
朋友的米4手机摔了,按屏幕开关键可以点亮屏幕,但触摸没有反应,锁屏也打不开,不知道到底什么问题,想问下要是修的话大概要多少钱!急求帮助,谢谢
我有更好的答案
大概要多少钱啊
采纳率:36%
来自团队:
触屏局部断线换屏
大概要多少钱啊
一体屏200多,分体的话100吧
解锁方法一:刷机重新输入ROM。可以让设置的密码锁消除,这个方法操作起来对于不会刷机的朋友可能稍显复杂。解锁方法二:双wipe 双wipe又称双W。是一种对手机数据擦除的操作。wipe就是恢复了出厂设置的意思,包括联系人、短信、安装的软件等全部删除。俗称硬启,恢复出厂设置。双wipe就是双wipe是指清楚缓存和内存数据。注意:wipe后app2sd和root权限需要重新做。而且app2sd重要的分区步骤也要重新来过。解锁方法三:利用adb删除忘记的锁屏密码操作步骤:1、手机连接电脑,不打开数据连接,在充电模式下进行。2、在电脑上解压adb.zip后,把adb文件放在电脑C盘根目录下。3、进行图中操作,删除*.key文件。4、输入adb reboot或者手动重启手机生效。
现在的手机修理价位是吃不定,
一定是屏幕里白手写触控层坏了
一定是屏幕里白手写触控层坏了
大概要多少钱啊
不便宜啊!两三百吧
差不多100到400!都有!
是不是被吓到了哈哈
m4玻璃不好!新出魅蓝note2都换成大猩猩的钢化玻璃了!
主要是还不知道到底是什么问题,等明天去问问看吧,一百到三百以内还行,多了就不值得修了
嗯呢太贵就换手机!
现在米4都降价了,修的太贵还不如换别的
其他3条回答
为您推荐:
其他类似问题
非营利组织会计的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。通过adb控制手机屏幕_中华文本库
此x、y坐标对应的是真实的屏幕分辨率,所以要根据具体手机具体看,比如你想点击...[serialNumber]——由adb创建的一个字符串,这个字符串通过自己的控制端口&type&...
教程,adb无需root直接修改屏幕分辨率_计算机硬件及网络_IT/计算机_专业资料。ROOT...**/ 5.然后手机自动重启就OK,画面精致不少。 /**再注意:flyme4用户谨慎操作...
】手机连接电脑,充电模式 【2】在电脑上解压 adb....~ 记得要在 系统设置--安全--屏幕锁定--取消图案...
安卓手机屏幕解锁方法_电脑基础知识_IT/计算机_专业...操作步骤如下: 1.关闭手机 2.按“HOME“+开机键...教大家用 ADB 来删除密码: 1.手机连接电脑,在充电...长按手机屏幕没反应_百度知道
长按手机屏幕没反应
长按手机屏幕没反应
我有更好的答案
卡了吧,是安卓系统?
为您推荐:
其他类似问题
您可能关注的内容
手机屏幕的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 adb 长按 的文章

 

随机推荐