minicap是一个可以远程获取android屏幕画面的开源库,它在低版本的android系统上采用截屏的方式获取画面,在4.2以上的android系统上采用创建VirtualDisplay的方式来获取画面、性能大大提高。
minicap的核心功能都在minicap.so中实现,如果要进行二次开发直接引用即可,这里编译与运行的是自带的示例,用于预览效果。
git clone https://github.com/openstf/minicap.git
minicap
|-example 简单的示例客户端,连接minicap服务端,转换为web显示
|-jni 源代码,minicap为纯c/c++
| |-minicap 简单的示例服务端,实现将捕获到的帧通过网络传输的功能
| |-minicap-shared 核心功能库,实现捕获画面、并通知listener的功能
| | |-aosp 实际实现
| | |-libs 已经编译好的so库
| | |-android-xx 对应API版本为xx的so库,实现方法有所不同
| | |-src 源代码
| | |-mock 空实现
| |-vendor 依赖的第三方库
| |
|-libs 编译后的输出目录
adb shell getprop ro.product.cpu.abi
adb shell getprop ro.build.version.sdk
ndk-build.cmd APP_PLATFORM=android-25 APP_ABI=arm64-v8a
ndk-build可以通过APP_PLATFORM参数设置目标平台,默认是android-14,这里指定的是android-25(7.0),实际并没有什么影响,因为只有minicap-shared的实现是平台相关的,但我们使用编译好的库;通过APP_ABI可以指定指令平台,如果不指定默认将编译全部的armeabi-v7a、arm64-v8a、x86、x86_64平台。
执行完毕后,在libs/armeabi-v7a下会生成minicap、minicap.so、minicap-nopie三个文件,实际用到的只有minicap,这里生成的minicap.so是一个空实现。
adb push minicap /data/local/tmp
adb push minicap.so /data/local/tmp
adb shell chmod 777 /data/local/tmp/minicap
adb shell chmod 777 /data/local/tmp/minicap.so
adb forward tcp:1717 localabstract:minicap
adb shell wm size
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 -t
npm install -g ws
npm install -g express
npm install --global --production windows-build-tools
npm install --global --production windows-build-tools@4.0.0
原文:https://www.cnblogs.com/VVsky/p/14609619.html