要求:

在Android上按像素位置进行模拟屏幕点击,无论前台程序是什么(类似于按键精灵)。

解决方案:

使用安卓中的linux命令行来进行模拟(可以完成目标但是不优雅)。

前提知识:

  • ADB中可以使用”adb shell tap x y”来模拟点击
  • Android代码中可以使用ProcessBuilder来执行命令行语句。
  • 参考链接: Android通过代码模拟物理、屏幕点击事件 , Android adb shell 获得点击屏幕的位置坐标

示例代码:

package com.example.wkm.motioneventgenerator;import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.os.Process;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.Toast;import java.io.IOException;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final int width = getWindowManager().getDefaultDisplay().getWidth();final int height = getWindowManager().getDefaultDisplay().getHeight();//每10s产生一次点击事件,点击的点坐标为(0.2W - 0.8W,0.2H - 0.8 H),W/H为手机分辨率的宽高.new Thread(new Runnable() {@Overridepublic void run() {while (true) {//生成点击坐标int x = (int) (Math.random() * width * 0.6 + width * 0.2);int y = (int) (Math.random() * height * 0.6 + height * 0.2);//利用ProcessBuilder执行shell命令String[] order = {"input","tap","" + x,"" + y};try {new ProcessBuilder(order).start();} catch (IOException e) {e.printStackTrace();}//线程睡眠10stry {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}}}}).start();}/*** 打印点击的点的坐标* @param event* @return*/@Overridepublic boolean onTouchEvent(MotionEvent event) {int x = (int) event.getX();int y = (int) event.getY();Toast.makeText(this, "X at " + x + ";Y at " + y, Toast.LENGTH_SHORT).show();return true;}}



后话(没时间就不用看后面的了,没有什么有用的)

看了一些游戏外挂相关的东西才对这些有了兴趣,本来想在代码里面通过API实现(我觉得那样比较优雅,直接shell命令太野蛮),但是现在的知识还不够。
我要实现的就是类似于按键精灵这种可以程序操纵手机的(手点的话太费事了),看了安卓手机微信抢红包后,稍微了解了一下,但是开始对游戏内容进行分析的时候发现这个策略行不通,因为游戏大都是动画制作的(比如unity3d等,我也不了解这些),这种跟微信那种纯Android组件构成的应用还不一样(因为游戏界面就不是由Android组件构成的),所以没办法我只能退而求其次简略地进行点击模拟来完成我的目的(目的就是不停地点屏幕,不过现在看来没有那么简单,还需要对当前的图形进行处理,感觉不该这么麻烦的)。不知道有没有别的可以用于修改,比如说检测内存这种,这都需要对安卓系统更加了解才行,需要多多学习。

有谁对这种(非Android组件构成的)游戏有什么了解的话,希望可以不吝赐教。

Android在任何地方模拟点击屏幕相关推荐

  1. java+ADB—循环模拟点击屏幕,解放双手

    /*** @author 周伟强* @Description TODO* @date 2023/2/21 12:03* @Copyright All rights reserved.* desc:ja ...

  2. android如何实现微信功能吗,android 借助AccessibilityService实现模拟点击功能-微信助手(一)...

    下集预告: android 借助AccessibilityService实现模拟点击功能-几个工具类(二)发此文还是想分享一些自己在android模拟点击这块的收获和想法 为什么开发模拟点击? 这是一 ...

  3. 【android】几种模拟按键、屏幕点击的方法

    模拟按键: 1. new Instrumentation().sendKeyDownUpSync(int keycode); 发送keycode,down,up都会发送一遍 2. new Instru ...

  4. android 脚本模拟点击屏幕

    对低概率问题,需要多次测试以复现问题,使用脚本更容易实现,避免频繁人工操作 首先要了解手机的众多输入设备: 命令:adb shell cat /proc/bus/input/devices/ I: B ...

  5. Android:辅助功能(模拟点击,模拟手势)入门基本学习

    在 Android 中,有个非常强大的功能,那就是辅助功能.辅助功能是用于服务残障人士的.比如对于视障人士来说,辅助功能可以帮助他们读出屏幕上的文字或图片(阅读图片时会播放其 ContentDescr ...

  6. python模拟点击屏幕ios_python模拟点击在ios中实现的实例讲解

    我们都知道因为操作系统的不同,很多游戏区分为安卓和苹果两个版本.那么之前学会python模拟点击的小伙伴开始担心,如果手机是ios版本那还能使用吗?这个问题小编进行了测试,小伙伴们完全不用忧虑ios版 ...

  7. android 借助AccessibilityService实现模拟点击功能-微信助手(一)

    demo地址 发此文还是想分享一些自己在android模拟点击这块的收获和想法 为什么开发模拟点击? 这是一个很好的问题.从我们开始开发微信相关的xposed模块的时候,就知道xposed这东西用着不 ...

  8. 使用Instrumentation模拟点击屏幕

    1.使用前需要申明权限 <uses-permission android:name="android.permission.INJECT_EVENTS" /> 2.使用 ...

  9. android root 模拟点击,免ROOT实现模拟点击任意位置

    微信7.0版本之前抢红包插件点击基本上都借助AccessibilityService无障碍的performClick方法点击控件,不过7.0版本的微信的红包控件(view)没有id这一项了,所以per ...

最新文章

  1. python 矩阵中的冒号 逗号
  2. Js实现点击超链接弹出层,效果仿Discuz登录!
  3. 设置tomcat管理员的用户名和密码
  4. (20):数据的准备工作
  5. osadmin php,OSAdmin - PHP开源管理后台
  6. Android游戏开发中绘制游戏触摸轨迹的曲线图
  7. 解决设备升级至Android 4.2.2之后,可以连接但无法调试的问题
  8. android从一个活动到另一个活动,Android应用程序在将一个活动打开到另一个活动时崩溃...
  9. 拼多多上架专供湖北平价口罩 每天300万只
  10. 自动化测试之Appium模拟机测试
  11. 计算机基础知识背诵口诀,内部资料--教育基础知识背诵口诀(一遍记住)
  12. bzoj1207 [HNOI2004]打鼹鼠
  13. 《空间谱估计理论与算法》学习笔记005-信号源数估计
  14. centos7安装Memcached
  15. java面试题(精选版)
  16. 找到100亿个URL中重复的URL
  17. Redis篇 <一>Docker安装redis 及基础
  18. jquery移除数组中的某个元素
  19. MODBUS通讯协议和RS232以及RS485通讯协议有什么区别
  20. 燃气射流 matlab,基于MATLAB全射流喷头组合喷灌计算模拟

热门文章

  1. 云上“两地三中心”,中小企业都用得起的多保险灾备方案
  2. python 操作jira
  3. 火狐FireFox兼容mouseover,mouseout的解决方案
  4. Spring Cloud Feign的原理及基本使用
  5. 美国50个州最值钱的Startup都是些什么公司?
  6. C# word全文替换
  7. 没有什么比破除束缚更自由的事情了
  8. 中国整体卫浴行业竞争格局分析及未来远景目标建议报告2022-2027年版
  9. Python实例---经典问题生兔子的递归与迭代方法的实现
  10. 6010dn 华为 组网 胖ap_华为无线ap3010dn-agn刷成胖ap