首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vysor是如何在非根设备上创建触摸事件的?

vysor是如何在非根设备上创建触摸事件的?
EN

Stack Overflow用户
提问于 2015-10-05 17:46:08
回答 1查看 4K关注 0票数 3

这是Koushik Dutta - https://chrome.google.com/webstore/detail/vysor-beta/gidgenkbbabolejbgbpnhbimgjbffefm的Vysor的链接。

它允许你从个人电脑上控制你的Android设备。然而,长期以来困扰我的一件事是,它能够在手机上创造触控事件,即使它是没有根的。

在对应用程序和chrome扩展进行了一些修改之后,我意识到他使用以下方式创建了一个单独的进程-

代码语言:javascript
复制
sh -c "CLASSPATH=/data/app/com.koushikdutta.vysor-1/base.apk /system/bin/app_process32 /system/bin com.koushikdutta.vysor.Main"

Main类包含通过反射将触摸事件传递给框架的代码。

上面的代码将Main类作为一个单独的进程执行,其中shell作为执行该进程的用户。

不过,据我所知,在你自己的应用程序之外创建触摸事件的唯一方法是如果你是root用户。

有人知道这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-19 11:31:43

我已经想明白了。

问题是,shell用户还可以在屏幕上创建所有的触摸事件。当你在PC上做adb shell时,你的手机通过USB电缆连接到它,你会被自动分配给用户shell

他所做的就是,然后使用这个Main用户作为一个单独的进程启动他的shell类。现在,该Main类中的shell代码具有与shell用户相同的权限(因为它是linux)。

而且,在这个类中,他使用反射将触摸事件传递给Android框架。然后,框架会自动将触摸事件传播到窗口。

看看我在自己的应用程序中实现的这两个类-- Main.javaEventInput.java

但是请记住,由于这个Main类必须在一个单独的进程中运行,所以它不能访问绑定它的应用程序的内存。为此,我必须使用套接字机制来传输数据。即使是援助也可以用来解决这个问题。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32954720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档