minicap编译和使用
minicap是一个截屏并实时传输的工具。
minicap技术特点:实时截屏;通过socket通信传送截屏数据。
利用该工具可以在电脑上实时查看安卓机器上面的画面操作。
一.源码下载
minicap源码:https://github.com/openstf/minicap
二.用NDK编译源码
1.需要先配置好NDK的环境变量。在cmd窗口中输入 ndk-build -version,测试ndk环境是否安装好。
输出一下信息表示NDK环境已经装好:
PS F:\Github\minicap-master> ndk-build -version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program built for i686-w64-mingw32
2.编译指令
在minicap根目录下执行:ndk-build.cmd APP_PLATFORM=android-28 PLATFORM_SDK_VERSION=28
3.编译报错:
1.不支持gnustl_static,改成c++_static
修改minicap-master\jni\Application.mk文件 :
#APP_STL := gnustl_static APP_STL := c++_static
2.GCC不在支持NDK_TOOLCHAIN_VERSION := 4.9,去掉这一行
修改minicap-master\jni\Application.mk文件 :
#NDK_TOOLCHAIN_VERSION := 4.9
修改后编译通过。
三.编译生成的文件:
编译生成可执行文件和so文件。要主要so文件需要对应不同的CPU的abi类型
可执行文件生成目录:
\minicap-master\libs\arm64-v8a\minicap
so文件一定用下面的目录中的so:
minicap-master\jni\minicap-shared\aosp\libs\android-28\arm64-v8a\minicap.so
我的机器CPU是arm64-v8a架构的,一定要用这个目录里面的so,否则因为跟系统不匹配导致运行报错。
四.拷贝到安卓目录中:
adb push F:\Github\minicap-master\libs\arm64-v8a\minicap /data/local/tmp/ adb push F:\Github\minicap-master\jni\minicap-shared\aosp\libs\android-28\arm64-v8a\minicap.so /data/local/tmp/
需要修改minicap 和minicap.so为777的权限:
adb shell chmod 777 /data/local/tmp/minicap*
五.adb命令运行minicap
注意屏幕的尺寸:
//start minicap adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1920x1080@1920x1080/0
此时minicap安卓端的程序已经运行起来了,并且开启了一个socket服务器。
六.本地的端口映射到minicap工具上,端口随意
新开一个cmd窗口
//local port adb forward tcp:1717 localabstract:minicap
七.运行nodejs
minicap源码目录中提供了一个example的nodejs程序,可以运行起来查看截图的效果。
node F:\Github\minicap-master\example\example\app.js
运行之前需要安装安卓NodeJs环境:
- 官网下载软件安装:https://nodejs.org/en/
- 安装Module
npm install -g ws npm install -g express
- 运行node app.js时可能还会报错找不到Module ws,执行一下操作尝试解决:
npm cache clean -f npm i npm audit fix npm audit fix --force
在新的cmd窗口中执行:
node F:\Github\minicap-master\example\example\app.js
八.打开浏览器
总结:
使用的命令:
//使用adb命令查看CPU版本架构信息 //CPU Version adb shell cat /proc/cpuinfo adb shell cat /system/build.prop adb shell getprop ro.product.cpu.abi //OS Version adb shell getprop ro.build.version.sdk //Display size adb shell wm size adb push F:\Github\minicap-master\libs\arm64-v8a\minicap /data/local/tmp/ adb push F:\Github\minicap-master\jni\minicap-shared\aosp\libs\android-28\arm64-v8a\minicap.so /data/local/tmp/ //chmod adb shell chmod 777 /data/local/tmp/minicap* //test minicap is usefull or not adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1920x1080@1920x1080/0 -t //start minicap adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1920x1080@1920x1080/0 //local port adb forward tcp:1717 localabstract:minicap // node js npm install -g ws npm install -g express npm cache clean -f npm i npm audit fix npm audit fix --force //run js node F:\Github\minicap-master\example\example\app.jsnode app.js //ndk compile ndk-build.cmd APP_PLATFORM=android-28 ndk-build.cmd APP_PLATFORM=android-28 PLATFORM_SDK_VERSION=28
- 解决方案 VB编写的数据库程序在Win7 SP1编译无法在XP系统上使用的问题
- 怎么在eclipse中使用自己编译的SDK
- 使用Android Studio编译Fresco
- 一个简单的动态编译器,支持C#和VB.NET。当你想测试一些简单的代码的时候可以使用。
- windows10 下使用visual studio2015 编译MySQL5.7.22
- 【转】编译,链接与库的使用(2)
- 既使用maven编译,又使用lib下的Jar包
- 预编译头文件的使用
- android ndk第一步使用ndk和Cmake编译.so文件
- jenkins 使用 curl 触发 jenkins 编译 & 自动从ftp上下载更新程序库
- Google Breakpad--VS2015 编译、使用、定位错误(如何使用gyp)
- 使用命令行编译c++程序
- 使用高德定位的SDK后集成编译报错
- 使用ANT编译build.xml
- Cocos2d-x使用Luajit将Lua脚本编译为bytecode,实现加密 更新
- Xcode 5.1 编译模拟器以及真机都能使用的静态库
- 使用vim直接同时编译vhdl和verilog
- 安卓使用第三方jar包电脑编译通过但是运行出错
- Windows下Fortran编译Lapack库及使用的方法(转自新浪)