【问题标题】:Access screen buffer on Android phones via USB using Python使用 Python 通过 USB 访问 Android 手机上的屏幕缓冲区
【发布时间】:2018-03-16 04:36:06
【问题描述】:

我正在使用 Python 通过 USB 访问 Android 手机。 我正在使用的库是 PyUSB。 我能找到任何可以引导我访问屏幕缓冲区的内部结构吗? 还是 Python 太高级以至于我需要切换到 C/C++? 如果是这样,有没有办法访问 Android 上的屏幕缓冲区? 请提供详细说明。

【问题讨论】:

标签: android python c++ usb


【解决方案1】:

VNC 服务器访问帧缓冲区,在 droidVNCserver 中是开源的,这是在原生 C(JNI - Java Native Interface)中完成的,我认为它只能在低级 C 中实现。源代码在https://github.com/oNaiPs/droidVncServer/tree/master/,jni代码见https://github.com/oNaiPs/droidVncServer/tree/master/jni/vnchttps://github.com/oNaiPs/droidVncServer/tree/master/jni/vnc/screenMethods

How Droid VNC works?

因此,您可以访问 android 设备上的帧缓冲区,但是您必须使用 python 通过 USB 获取图像,这并不简单。您可以将 android 安装为大容量存储或 PTP(图片传输协议)或 MTP(媒体传输协议)设备或使用 adb,但这并不容易

如果您想要一个简单的解决方案,请在您的 android 上安装 droidVNCserver 并使用 https://pypi.python.org/pypi/vncdotool 之类的库编写一个 python 程序来访问它...

【讨论】:

  • Android需要运行后台服务吗?
  • 正在寻找一种不需要后台服务的方法。如果 C 是唯一的方法,那就这样吧。
  • 和编程明智。我该怎么做?这是我更关心的
  • 您必须在 android 上运行代码,因此您需要由 android 操作系统注册的应用程序或程序或(后台)服务。手机有自己的处理器,这个处理器是由安卓操作系统拥有和保护的,所以对这个处理器的任何操作,比如访问帧缓冲区的内存,都是在安卓的权限下进行的。也许有可能绕过android的安全性然后读取帧缓冲区但这等于破解手机(如果可能的话......)
  • 有个程序叫七方格。实际上并没有深入研究该程序,但它不需要 Android 上的应用或服务
猜你喜欢
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
相关资源
最近更新 更多