Android远程监控屏幕状态---mimicap编译及使用

minicap是一个可以远程获取android屏幕画面的开源库,它在低版本的android系统上采用截屏的方式获取画面,在4.2以上的android系统上采用创建VirtualDisplay的方式来获取画面、性能大大提高.

https://github.com/openstf/minicap

1. 通过git 克隆minicap 项目
    C:\>git clone https://github.com/openstf/minicap.git
        Cloning into 'minicap'...
        remote: Counting objects: 2229, done.
        remote: Total 2229 (delta 0), reused 0 (delta 0), pack-reused 2228 eceiving objects: 100% (2229/2229
        Receiving objects: 100% (2229/2229), 2.02 MiB | 6.00 KiB/s, done.
        Resolving deltas: 100% (1042/1042), done.
    C:\>cd minicap
2. 初始化模块
    C:\minicap>git submodule init
        Submodule 'libjpeg-turbo' (https://github.com/openstf/android-libjpeg-turbo.git) registered for path
        'jni/vendor/libjpeg-turbo'
3. 更新模块
    C:\minicap>git submodule update
        Cloning into 'C:/minicap/jni/vendor/libjpeg-turbo'...
        Submodule path 'jni/vendor/libjpeg-turbo': checked out '46be77d8b8287ea3687da6ab245032929363515b'

4. 通过adb 命令查看手机的CUP 架构及SDK版本
    ABI架构--->   adb shell getprop ro.product.cpu.abi
    SDK版本--->   adb shell getprop ro.build.version.sdk   

5. 根据手机SDK 平台及cup架构,使用ndk 进行编译
    C:\minicap>E:\androidStudioSDK\ndk-bundle\ndk-build.cmd APP_PLATFORM=android-25 APP_ABI=armeabi-v7a
    [armeabi-v7a] Compile++ thumb: minicap-shared <= Minicap.cpp
    [armeabi-v7a] SharedLibrary  : minicap.so
    [armeabi-v7a] Compile++ thumb: minicap-common <= JpgEncoder.cpp
    [armeabi-v7a] Compile++ thumb: minicap-common <= SimpleServer.cpp
    [armeabi-v7a] Compile++ thumb: minicap-common <= minicap.cpp
    [armeabi-v7a] StaticLibrary  : libminicap-common.a
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jsimd_arm.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jsimd_arm_neon.S
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcapimin.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcapistd.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jccoefct.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jccolor.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcdctmgr.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jchuff.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcinit.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcmainct.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcmarker.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcmaster.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcomapi.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcparam.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcphuff.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcprepct.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcsample.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jctrans.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdapimin.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdapistd.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdatadst.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdatasrc.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdcoefct.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdcolor.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jddctmgr.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdhuff.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdinput.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdmainct.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdmarker.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdmaster.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdmerge.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdphuff.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdpostct.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdsample.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdtrans.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jerror.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jfdctflt.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jfdctfst.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jfdctint.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jidctflt.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jidctfst.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jidctint.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jidctred.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jquant1.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jquant2.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jutils.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jmemmgr.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jmemnobs.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jaricom.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jcarith.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdarith.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= turbojpeg.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= transupp.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdatadst-tj.c
    [armeabi-v7a] Compile thumb  : jpeg-turbo <= jdatasrc-tj.c
    [armeabi-v7a] StaticLibrary  : libjpeg-turbo.a
    [armeabi-v7a] Executable     : minicap
    [armeabi-v7a] Install        : minicap => libs/armeabi-v7a/minicap
    [armeabi-v7a] Executable     : minicap-nopie
    [armeabi-v7a] Install        : minicap-nopie => libs/armeabi-v7a/minicap-nopie
    [armeabi-v7a] Install        : minicap.so => libs/armeabi-v7a/minicap.so
C:\minicap>

6.拷贝编译生成的文件到手机
    adb push libs/$ABI/minicap /data/local/tmp/
    adb push jni/minicap-shared/aosp/libs/android-$SDK/$ABI/minicap.so /data/local/tmp/
7. 修改权限
    adb shell chmod 777 /data/local/tmp/minicap
    adb shell chmod 777 /data/local/tmp/minicap.so
8. 进行手机端口映射
    adb forward tcp:1717 localabstract:minicap
9.设置显示屏幕尺寸
    通过adb 命令获取屏幕尺寸  adb shell wm size  
    adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0
    // 执行以上命令后不要关掉命令行窗口

10. 运行node.js程序
    1.进入  C:\minicap\example  目录后,开启命令行,安装websocket 组件
            npm install -g ws
            npm install -g express
    2. 安装完成组件后,设置path
       set NODE_PATH=C:\Users\Administrator\AppData\Roaming\npm\node_modules
    3.运行程序
       node app.js

    ip 及端口修改在 app.js   index.html

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值