android自动点击的实现流程记录

2023-11-06

一个android下自动点击触屏的程序,类似于windows下的按键精灵,自动帮我玩捕鱼达人

目标:用户可以通过配置脚本文件,自定义一系列的操作,例如:点击/长按/拖动/延时/颜色判断/循环,然后用音量+/-键启动/关闭脚本

思路:

1.linux下做一个c程序gameplug.c,此程序负责读取配置文件,完成用户定义的一系列操作。

2.init.rc中添加服务,该服务启动gameplug.c

3.framework用音量+/-开启/关闭服务。

4.settings中增加gameplug的选项,打开后音量+/-键用作启动/关闭脚本服务,关闭后做正常音量+/-用



流程:

1.写好自己的linux服务程序

android\system\core\toolbox\gameplug.c

修改android\system\core\toolbox\Android.mk,增加gameplug.c的编译选项



2.制作libgameplug.so供上层调用
新建android\system\core\libgameplug\文件夹,增加gameplug.c和Android.mk,gameplug.c负责启动
android\system\core\include\gameplug\gameplug.h,和JNI的接口
自己添加的自定义so文件库在编译的时候出现以下错误
-----------------------------------------------------------------------------
build/core/base_rules.mk:78: *** Module name: libgameplug
build/core/base_rules.mk:79: *** Makefile location: system/ibcom/gameplug
build/core/base_rules.mk:80: *
build/core/base_rules.mk:81: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:82: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:83: *
build/core/base_rules.mk:84: * optional, debug, eng, tests, samples
build/core/base_rules.mk:85: *
build/core/base_rules.mk:86: * If the module is expected to be in all builds
build/core/base_rules.mk:87: * of a product, then it should use the
build/core/base_rules.mk:88: * "optional" tag:
build/core/base_rules.mk:89: *
build/core/base_rules.mk:90: * Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:91: * Android.mk for the affected module, and add
build/core/base_rules.mk:92: * the LOCAL_MODULE value for that component
build/core/base_rules.mk:93: * into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:94: * makefile(s) where it's necessary, if
build/core/base_rules.mk:95: * appropriate.
build/core/base_rules.mk:96: *
build/core/base_rules.mk:97: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:98: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:99: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:100: * build/target/product/core.mk
build/core/base_rules.mk:101: *
build/core/base_rules.mk:102: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.
-----------------------------------------------------------------------------
需要在android\build\core\user_tags.mk中添加你在Android.mk中LOCAL_MODULE定义的名字
这里是LOCAL_MODULE := libgameplug

3.init.rc增加service gameplug
android\system\core\rootdir\init.rc
service gameplug /system/bin/gameplug
disabled
oneshot



4.注册framework层JNI接口函数

添加 android\frameworks\base\services\jni\com_android_server_GameplugService.cpp

修改 android\frameworks\base\services\jni\onload.cpp

修改 android\frameworks\base\services\jni\Android.mk

修改 android\frameworks\base\services\java\com\android\server\SystemServer.java

修改 android\frameworks\base\services\java\com\android\server\GameplugService.java

增加 android\frameworks\base\core\java\android\os\IGameplugService.aidl

修改 android\frameworks\base\Android.mk

5.控制,volume+ start , volume- stop
修改 android\frameworks\base\media\java\android\media\AudioManager.java

6.package/app/settings增加选项enable/disbale gameplug,打开此选项后音量+/-当启动/关闭gameplug用,关闭此项还做音量键使用

修改 android\packages\apps\Settings\res\values\strings.xml

修改 android\packages\apps\Settings\res\xml\display_settings.xml

修改 android\packages\apps\Settings\src\com\android\settings\DisplaySettings.java

修改 android\frameworks\base\core\java\android\provider\Settings.java



7.编译

make update-api
make android
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android自动点击的实现流程记录 的相关文章

  • BaoStock:一个免费、开源的python证券数据接口包

    如果需要获取历史行情数据 www baostock com是个很好的免费 开源的Python证券数据接口包 特点 使用方便 免费免费免费 返回的绝大部分的数据格式都是pandas DataFrame类型 入门代码如下 import baos
  • 分布式系统常用的模式

    分布式系统常用的模式 Ambassador 名称 大使 模式 介绍 作为应用程序和其他服务的 中间人 负责应用程序和其他服务之间的通信 包括日志 监控或重试处理等任务 举例 K8S使用Envoy作为一个 大使 来简化服务之间的通信 优点 降
  • MySQL多表查询

    目录 一 查询和新增结合 二 聚合查询 1 聚合函数 2 group by子句 三 联合查询 1 笛卡尔积 1 内连接 2 外连接 1 左外连接 2 右外连接 3 自连接 4 子查询 嵌套查询 5 合并查询 一 查询和新增结合 将表2中的数
  • 第十二届蓝桥杯省赛第二场C/C++大学B组编程题题目及解析

    目录 试题F 特殊年份 试题G 小平方 试题H 完全平方数 试题I 负载平衡 试题J 国际象棋 试题F 特殊年份 include
  • 【Linux】设计模式

    目录 1设计模式 1 1概念 1 2设计模式分类 1 3单例模式 1 4单例模式代码演示 1 4 1懒汉模式 1 4 2饿汉模式 2 读写锁 2 1概念 2 2加锁规则 2 3接口 2 3 1初始化接口 2 3 2销毁接口 2 3 3解锁接
  • 第1章第5节:如何使用模板创建风格统一的幻灯片 [PowerPoint精美幻灯片实战教程]

    使用模板可以创建美观 风格统一和专业的幻灯片 要使用模板创建幻灯片 首先点击此处的文件选项卡 进入文件功能页面 然后在左侧的命令列表中 点击新建命令 在页面的下方 是由微软提供的常见的演示文稿模板 也可以通过搜索框 搜索指定主题的模板 点击
  • SharedPreferences 操作

    public class SPActivity extends Activity 使用SharedPreferences 来储存与读取数据 SharedPreferences mShared null 程序中可以同时存在多个SharedPr
  • IndentationError:expected an indented block错误解决

    IndentationError expected an indented block错误解决 描述 有时一个简单的问题会困扰很久 当发现问题后才感觉自己是多蠢 下面记录一个在日常Python编程过程中碰见的典型问题 参考文章 http h
  • C++编写及注册windows服务程序

    1 注册服务 在 开始 gt 运行 gt cmd 中输入 sc create TEST binPath C TEST EXE 则在windows下注册了一项服务 sc create TestService binpath c Service
  • GitHub Action + Release:打造 Electron 持续交付系统文件配置

    main yml上的文件配置 This is a basic workflow to help you get started with Actions name build Electron App For Win Mac Control
  • 上班族适合的兼职副业,副业做什么比较靠谱,副业赚钱的路子有哪些

    要找能不影响上班的副业 那前提条件就必须不能让你投入太多的时间在上面 否则说不影响上班就是扯淡哈 对于找什么副业比较靠谱这样的问题 我们首先要清楚 哪里的用户多 我们就在那个地方寻找就准没错 这也是基本道理 无可厚非 短视频平台就是现在人流
  • C++ const 关键字详解(全网最全)

    1 const修饰符的作用 const类型定义 指明变量或对象的值是不能被更新 引入目的是为了取代预编译指令 可以保护被修饰的东西 防止意外的修改 增强程序的健壮性 编译器通常不为普通const常量分配存储空间 而是将它们保存在符号表中 这
  • 红米手机5A完整卡刷开发版获取Root超级权限的流程

    小米的手机或平板不同手机型号一般小米官网都提供两个不同的系统 可分为稳定版和开发版 稳定版没有提供Root超级权限管理 开发版中就提供了Root超级权限 在很多工作的时候我们需要使用的一些功能强大的应用 都需要在Root超级权限下工作 比如
  • 骑士周游问题,马踏棋盘算法

    该问题实际上是图的深度优先搜索的应用 package com horsechess import java awt import java util ArrayList import java util Comparator public
  • 华为OD机试真题-猜字谜【2023.Q1】

    题目描述 小干设计了一人简单的清字谈游戏 游戏的迷面是一人错误的单词 比如nwes 玩家需要猜出谈底库中正确的单词 猜中的要求如 对于某个谜面和谜底单词 满足下面任一条件都表示猜中 1 变换顺序以后一样的 比如通过变换w和e的顺序 nwes
  • Qt自带了一些常用的对话框,例如消息框、警告框、提问框等等

    Qt自带了一些常用的对话框 例如消息框 警告框 提问框等等 而QMessageBox作为其中的一种 它可以用来显示简单的信息提示 如确认对话框 错误提示等等 但是 我们发现这些提示框的样式都是固定的 无法实现自定义的样式 那么本文将介绍如何
  • 检测到目标web应用表单密码类型输入启用了自动完成操作

    描述 在web应用form表单中 如果input标签没有指定 autocomplete 属性为 off 则 autocomplete 的属性会自动默认为on 当web应用form表单中的密码类型为input标签 autocomplete属性
  • Linux系统权限详解

    目录 一 权限解释 1 所有者权限 2 所属组权限 3 其他人权限 二 用户用户组解释 3 解释权限含义 4 权限命令解释 三 基本权限 U G O 1 权限对象 2 基本权限 3 高级权限 一 权限解释 在Linux系统中 文件和目录的访
  • 【数据结构入门】时间复杂度和空间复杂度

    算法在编写成可执行程序后 运行时需要耗费时间资源和空间 内存 资源 因此衡量一个算法的好坏 一般是从时间和空间两个维度来衡量的 即时间复杂度和空间复杂度 时间复杂度主要衡量一个算法的运行快慢 而空间复杂度主要衡量一个算法运行所需要的额外空间
  • 以太坊智能合约部署与交互

    启动容器来执行geth命令 root ubu blockchain2 docker run i blockchain101 ethereum geth 1 6 5 geth attach http 45 32 252 88 8201 Wel

随机推荐

  • c++ 从vector 查找指定元素

    include
  • 如果安装License失败的解决方案

    有些用户的机器安装License失败 如下图 可以尝试使用以下方案
  • 剑指 Offer II 075. 数组相对排序

    问题描述 给定两个数组 arr1 和 arr2 arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序 使 arr1 中项的相对顺序和 arr2 中的相对顺序相同 未在 arr2 中出现过的
  • Linux下C++开发笔记--g++命令

    目录 1 前言 2 开发环境搭建 3 g 重要编译参数 4 实例 1 前言 最近学习在linux环境下进行C 开发的基础知识 参考的教程是基于VSCode和CMake实现C C 开发 Linux篇 非常适合小白入门学习 2 开发环境搭建 安
  • 医用电气设备和医疗器械区别?(GB9706)基本安全和基本性能?解读

    目录 一 医用电气设备的定义 二 医用电气设备的标准架构 三 国标 行标和国际标准 1 基本安全和基本性能的通用要求 2 并列要求 电磁兼容EMC 四 关于基本性能 Essential Performance 解读 1 何时引入基本性能 2
  • VMware Workstation 开启虚拟机后蓝屏

    VMware Workstation 开启虚拟机后主机蓝屏 注意 不用重装系统 不用重装系统 不用重装系统 版本 VMware Workstation Pro 15 5 0 出问题时的虚拟机 ubuntu 19 10 出问题后 开启其他虚拟
  • C语言快速排序算法

    今天要分享的是快速排序 快速排序的原理 用一个flag记录数组里面的一个值 一般是第一个 定义left为第一个元素的下标 right为最后一个元素的下标 从最后一个元素开始与flag比较 如果比flag大 那就right 否则arr lef
  • ADS1_2,JLINK,GIVEIO的安装

    ADS1 2 JLINK GIVEIO的安装 1 ADS1 2 2 JLINK 3 GIVEIO 4 使用 1 ADS1 2 由于老师发的是1 2版本 在win10上太老旧 网上步骤很零碎 所以找到大佬的帖子 如何在win10 安装ADS1
  • failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED

    电脑cudn版本12 机器学习框架要求cudn版本11 最初因为提示缺少对应的文件 缺少cublas64 11 dll cublasLt64 11 dll等等文件 然后把对应的cublas64 12 dll cublasLt64 12 dl
  • torchtext默认安装版本太低的原因及解决

    本文使用conda管理包 如果你使用pip 需要手动改变一下指令 问题 最近安装torchtext 老是给我安装成0 6版本 这个史前版本很多函数接口都是老的 甚至文档都找不到了 使用的安装指令如下 导致失败的安装指令 conda inst
  • ICCV 2023

    导读 TL DR 本文提出了一种新的置换自注意力 PSA 用于图像超分辨率任务 可以在保持计算成本较低的同时 处理大窗口自注意力 并基于PSA构建了一个新的超分辨率网络 SRFormer 在各项基准测试中取得了最先进的性能 先简单介绍一下图
  • OpenAI时却提示“OpenAI‘s services are not available in your country”

    OpenAI的官网址如下 https openai com blog chatgpt 进入官网后点击下图中红框中的按钮 进入注册页面 上面这句提示的英文很简单 翻译过来 就是OpenAI不允许中国用户使用 那OpenAI允许哪些国家的用户使
  • 用C语言求平均数的四种方法

    1 常规操作 两个数的平均数等于两数之和除以二 int main int a 10 int b 5 int c a b printf d n c system pause return 0 这种方法有一定的缺陷 当a或b的值够大时 以至于超
  • vim编辑器格式化代码

    他丫儿的搞啥子嘛 乱七八糟的 在vim中其实也有像Eclipse中的ctrl shift F 的自动格式化代码的操作 尽管非常强大 但是通常会破坏代码的原有的缩进 所以不建议在python这样缩进代替括号的语言中和源程序已经缩进过的代码中使
  • rabbitMQ 概念及特点

    Solr rabbitMQ rabbitMQ 特点 可靠性 Reliability RabbitMQ 使用一些机制来保证可靠性 如持久化 传输确认 发布确认 灵活的路由 Flexible Routing 在消息进入队列之前 通过 Excha
  • 【ONNX】使用 C++ 调用 ONNX 格式的 PyTorch 深度学习模型进行预测(Windows, C++, PyTorch, ONNX, Visual Studio, OpenCV)

    文章目录 1 安装依赖 2 导出 ONNX 格式的 PyTorch 模型 3 安装 Windows 平台 OpenCV 4 C 下 OpenCV 接口调用 ONNX 模型 1 安装依赖 要使用 ONNX 模型进行预测 就需要使用 onnx
  • C# 当前不会命中断点(调试时不能进入断点)

    相信大家都会遇到这个问题的 而且在我的项目经验中 发生主这个问题的原因特别多 本文把我遇到过的情况都记录下 供大家参考 1 运行调试时模式不对 应该选Debug才能进入断点 如果选择Release是不能的 注意项目属性里的配置也选择成Deb
  • java的背景

    要想学好一门语言 首先得了解这门语言的有什么用 优缺点是什么 才能更好的理解运用 所以 我在此介绍java的基础简介 1 java是以javaee后台开发 java web前台界面构成的体系结构 2 java的优点有 java的平台无关性
  • 用java实现打印功能

    用java实现打印 java awt中提供了一些打印的API 要实现打印 首先要获得打印对象 然后继承Printable实现接口方法print 以便打印机进行打印 最后用用Graphics2D直接输出直接输出 下面代码实现了简单的打印功能
  • android自动点击的实现流程记录

    一个android下自动点击触屏的程序 类似于windows下的按键精灵 自动帮我玩捕鱼达人 目标 用户可以通过配置脚本文件 自定义一系列的操作 例如 点击 长按 拖动 延时 颜色判断 循环 然后用音量 键启动 关闭脚本 思路 1 linu