问题描述
我想为Android 10开发一个小型二进制工具,我将使用PC的adb shell对其进行调用。该工具应捕获屏幕上请求的部分并将其返回(在stdout或其他任何位置)。我真的不需要Java中的任何标准应用程序,只需一个小的bin工具即可。
对我来说,主要问题是我在为Android开发任何东西方面都是全新的。
到目前为止,我已经在Android Studio中创建了ndk项目,并生成了“ mysc” bin应用,并将其推送到设备中:
#include <stdio.h>
int main(int argc,char** argv)
{
printf("My capture command!\n");
return 0;
}
C:\adb>adb shell data/local/tmp/mysc
My Capture Command!
C:\adb>
我不需要任何本机的 java通信,只需获取屏幕的当前视图并仅返回其中的一部分即可。它与screencap bin几乎具有相同的功能,但是我不需要整个屏幕,只是一部分。我曾尝试打开帧缓冲区,如旧的screepcap source code所示,但没有成功。
我正在NDK示例中查找“ ANativeWindow”,它看起来像我需要的东西,但是在不连接Java应用程序的情况下我不怎么使用它。可能会让我浮出水面的功能是
ANativeWindow * ANativeWindow_fromSurface(
JNIEnv *env,jobject surface
)
但是看起来我需要从java调用这样的函数来捕获env和surface。该解决方案可能非常简单,但是缺乏对ndk的了解,即使是这样的简单操作,也非常耗时...
在此先感谢您!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)