android 快速截图工具 minicap 之编译与运行

minicap 是什么?

minicap 是开源项目 STF 的一个可用于实时查看屏幕视图的工具,视图刷新速度可以达到 30-40 FPS

由于 SDK 不同,CPU 架构不同,需要根据自己型号的设备自己编译,但是不要怕,编译和操作很简单,但需要点儿执行力

准备工作(以下在 windows 64 位机上进行的操作)
  1. 下载 Android NDK(我使用的版本是经过验证可行的版本)
    NDK r13 windows 64bit
  2. 下载 nodejs
    nodejs
  3. 将 minicap 源码 git clone 到本地(路径不要带空格和中文)
    minicap 源码路径
  4. 更新 jpeg-turbo 库
    在 minicap 根目录下执行
 git submodule init 
 git submodule update

如果这一步执行失败了,那么手动下载此库
jpeg-turbo
并将下载的目录下 jni/vendor/libjpeg-turbo 拷贝到 minicap/jni/vendor 下

  1. 修改 minicap/jni/Application.mk
// 注释掉这一行
#NDK_TOOLCHAIN_VERSION := 4.9

// 修改这一行
APP_STL := c++_static
开始编译

在 minicap 目录下执行(环境变量要记得先配好 ~~~)
该命令会将 minicap 支持的 CPU 平台版本全部编译出来

// 这条指令编译出来的仍然可以在 SDK=20 的设备上跑
ndk-build.cmd APP_PLATFORM=android-27 PLATFORM_SDK_VERSION=27


编译很快,4个版本编译花了 1 分钟

开始运行

编译结束,在 minicap/libs 下可见 4 个版本目录,不知道自己设备的 ABI 通过以下命令查询

adb shell getprop ro.product.cpu.abi

将文件 push 到设备中

adb push minicap/libs/arm64-v8a/minicap /data/local/tmp

// 注意这里 push 的是预置的 so 文件,根据自己设备 SDK LEVEL 选择对应目录下的
adb push minicap/jni/minicap-shared/aosp/libs/android-27/arm64-v8a/minicap.so /data/local/tmp

修改文件执行权限

adb shell chmod 777 /data/local/tmp/minicap*

运行 minicap

// 获取屏幕分辨率
adb shell wm size

// 运行可执行文件,1920x1080 为屏幕分辨率
adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1920x1080@1920x1080/0

执行成功~
执行成功

本地查看实时视图

1、给 nodejs 设置环境变量,然后切换到目录 minicap/example
下载 nodejs 项目依赖库

npm install ws
npm install express

检查 example 目录下是否存在 node_modules 目录
如果不存在,则在安装 nodejs 的目录下查找,并将 node_modules 拷贝过来
里面应存在 ws 和 express 目录

2、将本地端口和设备端口进行转发

adb forward tcp:1717 localabstract:minicap

3、启动 nodejs 项目

// minicap/example 目录下执行
node app.js

提示 Listening on port 9002 表示成功

4、浏览器打开

http://localhost:9002

在这里插入图片描述
此时操作设备,画面几乎是实时刷新到页面,非常快的有木有!~~~

发布了27 篇原创文章 · 获赞 3 · 访问量 5653

猜你喜欢

转载自blog.csdn.net/candyngwh/article/details/98211348