轻轻松松运行起minicap

时间:2021-01-29 10:56:55

minicap介绍

minicap是开源项目STF(Smartphone Test Farm)中的一个工具,负责屏幕显示。

因为原生的Android截图工具截图十分缓慢,STF自己写了一个工具叫minicap用来替代原生的screencap,这个工具是STF框架的依赖工具之一。

minicap工具是用NDK开发的,属于Android的底层开发,所以该工具分为两个部分,一个是动态连接库.so文件,一个是minicap可执行文件。但不是通用的,因为CPU架构的不同分为不同的版本文件,STF提供的minicap文件根据CPU 的ABI分为如下4种:

arm64-v8aarmeabi-v7a,x86,x86_64 架构。而minicap.so文件在这个基础上还要分为不同的sdk版本。

这里提供一下Android 9到Android-27版本的支持文件的下载:minicap资源

大家也可以到github上自行下载:https://github.com/openstf/minicap

minicap的使用

用了上面的资源文件,我们还需要将相应的文件push到手机并修改权限

传统方法请参见博客https://blog.csdn.net/itfootball/article/details/47658171,其实我的init.js也和这个博客是一样的,只是编成了脚本,简化了操作~

我在上面的资源包里编写了一个nodejs的脚本,可以自动获取手机的CPU,屏幕尺寸和apiLevel信息,程序运行结果如下:

轻轻松松运行起minicap

emmm,,,不放心脚本?那我们再检查一下

轻轻松松运行起minicap

minicap运行

好了,之前的准备工作完成了,该运行起来看看啦,输入下面指令检测一下,记得把分辨率改成自己手机的分辨率哦

adb shell LD_LIBRARY_PATH=/data/local/tmp/data/local/tmp/minicap -P 1080x1920@1080x1920/0 -t

如果一切顺利,最后就会得到个‘OK’,具体如下图:

轻轻松松运行起minicap

如果很不幸你没有OK,那就检查一下之前的文件有push进手机没,或者权限有没有更改。

好了,既然已经OK了,那我们就运行起来看看吧,输入指令,注意指令和检测的指令只差了个‘-t’哦~

adb shell LD_LIBRARY_PATH=/data/local/tmp/data/local/tmp/minicap -P 1080x1920@1080x1920/0

轻轻松松运行起minicap

上面其实是启动了一个socket服务器,我们需要跟该socket服务通信,首先我们要将本地的端口映射到minicap工具上,端口自己随意:

adb forward tcp:1717 localabstract:minicap

然后运行example目录下的app.js,如下图

轻轻松松运行起minicap

好啦,大功告成,打开浏览器,输入地址localhost:9002,奇迹发生啦~恭喜你成功运行起minicap啦

轻轻松松运行起minicap