zoukankan      html  css  js  c++  java
  • minicap编译示例

    一.minicap

    描述

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

    minicap的核心功能都在minicap.so中实现,如果要进行二次开发直接引用即可,这里编译与运行的是自带的示例,用于预览效果。

    GitHub路径

    git clone https://github.com/openstf/minicap.git

    minicap编译

    依赖

    1. ndk-build:https://developer.android.com/ndk/downloads
    2. git
    3. npm

    下载步骤

    1. git clone https://github.com/openstf/minicap.git
    2. cd minicap
    3. git submodule init
    4. git submodule update

    minicap目录结构

    minicap
      |-example  简单的示例客户端,连接minicap服务端,转换为web显示
      |-jni 源代码,minicap为纯c/c++
      |  |-minicap 简单的示例服务端,实现将捕获到的帧通过网络传输的功能
      |  |-minicap-shared 核心功能库,实现捕获画面、并通知listener的功能
      |  |  |-aosp 实际实现
      |  |    |-libs 已经编译好的so库
      |  |      |-android-xx 对应API版本为xx的so库,实现方法有所不同
      |  |    |-src 源代码
      |  |  |-mock 空实现
      |  |-vendor 依赖的第三方库
      |  |
      |-libs 编译后的输出目录
    

    ndk-build编译

    1. 查看设备cpu支持的ABI
    adb shell getprop ro.product.cpu.abi
    
    1. 获取设备的sdk
    adb shell getprop ro.build.version.sdk
    
    1. 执行编译
    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是一个空实现。

    执行example内的服务端示例

    1. 将编译好的两个文件push到设备上
    adb push minicap /data/local/tmp
    adb push minicap.so /data/local/tmp
    
    1. 对文件设置权限
    adb shell chmod 777 /data/local/tmp/minicap
    adb shell chmod 777 /data/local/tmp/minicap.so
    
    1. 使用adb工具进行端口映射,将服务端的端口映射到1717
    adb forward tcp:1717 localabstract:minicap
    
    1. 获取android设备分辨率
    adb shell wm size
    
    1. 启动服务端
    adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 -t
    

    执行客户端

    1. 安装依赖
    npm install -g ws
    npm install -g express
    
    1. 如果npm报: Error: Could not find any Python installation to use;执行以下命令
    npm install --global --production windows-build-tools
    
    1. 如果npm报:Could not install Visual Studio Build Tools.;则执行以下命令,安装早期版本
    npm install --global --production windows-build-tools@4.0.0
    


    作者:Vsky
    出处:https://www.cnblogs.com/VVsky/
    交流群:636090586(备注博客园)
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果喜欢我的文章,请关注我的公众号

  • 相关阅读:
    动态面板——axure线框图部件库介绍
    如何安装(装载)axure组件(部件)
    文本框、文本编辑框、按钮——axure线框图部件库介绍
    图片热区——axure线框图部件库介绍
    水平线、垂直线——axure线框图部件库介绍
    矩形、占位符组件——axure线框图部件库介绍
    文本面板——axure线框图部件库介绍
    windows server 2008 R2服务器安装IIS并添加网站
    使用SplitContainer来实现隐藏窗口的部分内容(转)
    C# VS2010结合SQL Server 2008数据库编程实现方法
  • 原文地址:https://www.cnblogs.com/VVsky/p/14609619.html
Copyright © 2011-2022 走看看