Android 应用如何模拟触屏点击动作???

Android 码拜 9年前 (2015-04-27) 2763次浏览 0个评论
 

在 Android 应用开发中,有一后台的 Service 一直在运行中。
想通过此 Serive 来控制当前显示的应用,例如:点击当前显示应用的某个按键。

这样的功能如何实现,最好能有示例代码。多谢!

Android 应用如何模拟触屏点击动作???
20分
这个好像应用层比较难以实现,毕竟是监控 显示应用程序的点击事件,而且应用程序时不确定的。 这个需要NDK 用c/c++来处理。

Android 应用如何模拟触屏点击动作???
引用 1 楼 birdsaction 的回复:

这个好像应用层比较难以实现,毕竟是监控 显示应用程序的点击事件,而且应用程序时不确定的。 这个需要NDK 用c/c++来处理。

如何:用 NDK (c/c++)来处理???

Android 应用如何模拟触屏点击动作???
10分
权限问题,不可以的,root后可以啥语言倒无所谓的
Android 应用如何模拟触屏点击动作???
引用 3 楼 DrSmart 的回复:

权限问题,不可以的,root后可以啥语言倒无所谓的

我看到几款应用,是在没有 ROOT 权限的情况,可以完成上述功能。
特别是现在手机与车载设备互连的应用,可以通过车载设备控制手机界面。

Android 应用如何模拟触屏点击动作???
20分
看看结合instrumentation行不行 instrumentation里sendKeySync方法可以发送事件
Android 应用如何模拟触屏点击动作???
引用 5 楼 syl7752 的回复:

看看结合instrumentation行不行 instrumentation里sendKeySync方法可以发送事件

多谢回复,对 instrumentation 不熟,需要时间研究。
LS 你熟悉吗?如果熟悉就表详细的说说吧,多谢1

Android 应用如何模拟触屏点击动作???
顶起,没有解决啊
Android 应用如何模拟触屏点击动作???
20分
mokey和event都可以用,具体可以看我博客
Android 应用如何模拟触屏点击动作???
引用 8 楼 heaimnmn 的回复:

mokey和event都可以用,具体可以看我博客

是这篇文章吗:http://blog.csdn.net/aimncy/article/details/20618535

功能实现需要 ROOT,有木有不 ROOT 就可以实现的方法。
我只是见过类似的程序,不知道它是如何实现的。

Android 应用如何模拟触屏点击动作???
10分
引用 9 楼 91program 的回复:
Quote: 引用 8 楼 heaimnmn 的回复:

mokey和event都可以用,具体可以看我博客

是这篇文章吗:http://blog.csdn.net/aimncy/article/details/20618535

功能实现需要 ROOT,有木有不 ROOT 就可以实现的方法。
我只是见过类似的程序,不知道它是如何实现的。

目前暂时研究的是需要root的

Android 应用如何模拟触屏点击动作???
引用 4 楼 91program 的回复:
Quote: 引用 3 楼 DrSmart 的回复:

权限问题,不可以的,root后可以啥语言倒无所谓的

我看到几款应用,是在没有 ROOT 权限的情况,可以完成上述功能。
特别是现在手机与车载设备互连的应用,可以通过车载设备控制手机界面。

啥名字,我研究下,能实现太好了,我先上个广告自动电击器,哈哈哈

Android 应用如何模拟触屏点击动作???
这个应用情景感觉很像自动化测试耶。
Android 应用如何模拟触屏点击动作???
使用 Instrumentation  确实可以在当前应用中模拟点击,但当前应用退出(后台有服务)后,再调用 Instrumentation  来控制其它应用,则会出现异常。
网上说,要在应用程序的AndroidManifest.xml中的manifest节点中加入”android:sharedUserId=”android.uid.system”这个属性,且需要用 Android.mk 来编译、生成 apk 文件。——这个过程不会啊!能在 Windows XP 下进行操作吗?
Android 应用如何模拟触屏点击动作???
你说的是按键精灵吗?不root也可以搞。
Android 应用如何模拟触屏点击动作???
13 L 所说的,是参考如下两篇文章:
http://blog.csdn.net/banketree/article/details/10375249

http://www.cnblogs.com/chenbin7/archive/2013/01/10/2854768.html
Android 应用如何模拟触屏点击动作???
引用 14 楼 gqjjqg 的回复:

你说的是按键精灵吗?不root也可以搞。

不是,我所见的是 Android 手机与 WinCE 系统的车载设备通过 BT 连接。可以在车载设备上控制 Android 手机。
但这款 Android 手机上应用,并没有发布到 Market,所以无法下载到进行测试。

Android 应用如何模拟触屏点击动作???
引用 16 楼 91program 的回复:
Quote: 引用 14 楼 gqjjqg 的回复:

你说的是按键精灵吗?不root也可以搞。

不是,我所见的是 Android 手机与 WinCE 系统的车载设备通过 BT 连接。可以在车载设备上控制 Android 手机。
但这款 Android 手机上应用,并没有发布到 Market,所以无法下载到进行测试。

好吧,我用过android控制PC的APP,个人觉得主要 是模拟android系统的motion,剩下的就是通信和收发命令。

Android 应用如何模拟触屏点击动作???
引用 17 楼 gqjjqg 的回复:

好吧,我用过android控制PC的APP,个人觉得主要 是模拟android系统的motion,剩下的就是通信和收发命令。

模拟android系统的motion,能详细的说说吗?

Android 应用如何模拟触屏点击动作???
获取系统权限方法的帖子:
http://blog.csdn.net/xushanmeng/article/details/20541669
 和
http://www.bkjia.com/Androidjc/864527.html
Android 应用如何模拟触屏点击动作???
直接在代码里面调用 input 命令不行吗?
Android 应用如何模拟触屏点击动作???
引用 14 楼 gqjjqg 的回复:

你说的是按键精灵吗?不root也可以搞。

按键精灵也是要root,但是比较强能绕过小米的应用授权管理。

这个目测必须要root,我没做过,楼主慢慢研究吧,找的文章都不错,赞一个。

Android 应用如何模拟触屏点击动作???
20分
引用 13 楼 91program 的回复:

使用 Instrumentation  确实可以在当前应用中模拟点击,但当前应用退出(后台有服务)后,再调用 Instrumentation  来控制其它应用,则会出现异常。
网上说,要在应用程序的AndroidManifest.xml中的manifest节点中加入”android:sharedUserId=”android.uid.system”这个属性,且需要用 Android.mk 来编译、生成 apk 文件。——这个过程不会啊!能在 Windows XP 下进行操作吗?

使用”android:sharedUserId=”android.uid.system”需要系统ROM的签名。 楼主你那想法真心不错。

Android 应用如何模拟触屏点击动作???
这个就算是不root最起码也要获取系统权限吧,否则模拟点击只能在自己的app上,点击其他的app是不行的。
Android 应用如何模拟触屏点击动作???
引用 24 楼 hjywyj 的回复:

这个就算是不root最起码也要获取系统权限吧,否则模拟点击只能在自己的app上,点击其他的app是不行的。

是的,现在的测试结果如你所说。

Android 应用如何模拟触屏点击动作???
看来只有一种途径了: 获取系统权限。按网上的描述,有以下两种方法: 
(1) 在源码中编译(需要在 Linux 环境下执行)
(2) 手动添加系统签名(较为麻烦,但不必进入 Linux 环境,在 Windows 环境下就能操作)
以上方法也是有缺陷的: 这样生成的程序只有在原始的 Android 系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8和platform.x509.pem两个文件。
要是别家公司做的 Android 上连安装都安装不了。
试试原始的 Android 中的 key 来签名,程序在模拟器上运行 OK,不过放到 G3 上安装直接提示:
“Package … has no signatures that match those in shared user android.uid.system”,这样也是保护了系统的安全。
Android 应用如何模拟触屏点击动作???
现在在计划测试一下获取系统权限,安装了 Ubuntu,但获取不到 Android  源代码。

难道是因为 Google 被封的原因?

Android 应用如何模拟触屏点击动作???
通过 VPN 吧,没啥好办法滴
Android 应用如何模拟触屏点击动作???
引用 26 楼 91program 的回复:

看来只有一种途径了: 获取系统权限。按网上的描述,有以下两种方法: 
(1) 在源码中编译(需要在 Linux 环境下执行)
(2) 手动添加系统签名(较为麻烦,但不必进入 Linux 环境,在 Windows 环境下就能操作)
以上方法也是有缺陷的: 这样生成的程序只有在原始的 Android 系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8和platform.x509.pem两个文件。
要是别家公司做的 Android 上连安装都安装不了。
试试原始的 Android 中的 key 来签名,程序在模拟器上运行 OK,不过放到 G3 上安装直接提示:
“Package … has no signatures that match those in shared user android.uid.system”,这样也是保护了系统的安全。

为什么我按第二种方法制作的 APK 在真机上无法安装呢?
有什么需要注意的?

Android 应用如何模拟触屏点击动作???
可以研究研究 monkey runner http://blog.csdn.net/vshuang/article/details/39783579
Android 应用如何模拟触屏点击动作???
这就是传说中的挂机么?
Android 应用如何模拟触屏点击动作???
引用 30 楼 vshuang 的回复:

可以研究研究 monkey runner http://blog.csdn.net/vshuang/article/details/39783579

 多谢!我看看。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android 应用如何模拟触屏点击动作???
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!