资讯专栏INFORMATION COLUMN

手把手教你实现Android真机远程截屏

joyvw / 2743人阅读

摘要:先看效果演示接下来手把手教你实现这样的效果。的核心功能都在中实现,如果要进行二次开发直接引用即可。在及以上版本中默认是隐藏的。首次调试,手机会弹出是否允许某台电脑以方式调试该手机的问询对话框,勾选允许使用这台计算机进行调试。

先看效果演示

 接下来手把手教你实现这样的效果。 

minicap简介  

  minicap是一个可以远程获取android屏幕画面的开源库,它在低版本的Android系统上采用截屏的方式获取画面,在Android4.2以上系统上采用创建VirtualDisplay的方式来获取画面、性能大大提高。 minicap的核心功能都在minicap.so中实现,如果要进行二次开发直接引用即可。

1.mincap下载

1.1 clone代码

git clone https://github.com/openstf/minicap.gitcd minicapgit submodule init       // 初始化jni/vendor/libjpeg-turbo子仓库配置git submodule update // 更新jni/vendor/libjpeg-turbo子仓库代码

1.2 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 编译后的输出目录

2.mincap编译

2.1 下载ndk-build

2.2 用ndk-build 编译mincap安装包

2.2.1 下载配置adb

adb(Android Debug Bridge),安卓平台调试桥,是连接Android手机与PC端的桥梁,通过adb可以管理、操作模拟器和设备,如安装软件、查看设备软硬件参数、系统升级、运行shell命令等。

1) 下载安装adb 

2) 在环境变量配置中添加adb路径,按键Windows+R打开运行,输入sysdm.cpl,回车,弹出系统属性对话框  在高级==》环境变量==》系统变量==》path,添加adb可执行文件的文件夹路径。

 

2.2.2 连接设备

需要手机打开调试者模式,打开  设置==>开发人员选项==>USB调试,打开即可。开发人员选项在Android4.2以下,可以直接看到。 在Android 4.2及以上版本中默认是隐藏的。打开开发人员选项的方法是:打开 设置==>关于手机,连续点击版本号7次即可。

首次调试,手机会弹出是否允许某台电脑以USB方式调试该手机的问询对话框,勾选允许使用这台计算机进行调试。

               

然后用adb devices命令,查看已连接的设备。如果设备列表为空,可以尝试一下:1) 在充电和文件传输模式之间切换一下 ;2)重新开启USB调试权限 ; 3)撤销USB调试权限重新赋权;4) 重启手机 

adb devices

 2.2.3 查看手机CPU支持的ABI(CPU指令架构)

 不同的Android手机使用不同的CPU,而不同的 CPU支持不同的指令集,CPU与指令集的每种组合都有专属的应用二进制接口,即 ABI(全称:ApplicationBinary Interface)

adb shell getprop ro.product.cpu.abi

2.2.4  获取手机设备的sdk

adb shell getprop ro.build.version.sdk

2.2.5 执行编译

ndk-build可以通过APP_PLATFORM参数设置目标平台,默认是android-14,这里指定的是android-26(8.0),实际并没有什么影响,因为只有minicap-shared的实现是平台相关的,但我们使用了编译好的库;通过APP_ABI可以指定指令平台,如果不指定默认将编译全部的armeabi-v7a、arm64-v8a、x86、x86_64平台。

执行完毕后,在libs/armeabi-v7a下会生成minicap、minicap.so、minicap-nopie三个文件,实际用到的只有minicap,这里生成的minicap.so是一个空实现。

ndk-build.cmd APP_PLATFORM=android-26 APP_ABI=arm64-v8a

3. 运行minicap项目示例

3.1 运行minicap项目中的example内的服务端

3.1.1 将编译好的两个文件push到手机设备上

so文件一定用minicap-master/jni/minicap-shared/aosp/libs/android-26/arm64-v8a/minicap.so,cpu架构要匹配.否则会导致与系统不兼容,运行会报错

adb push  libs/arm64-v8a/minicap data/local/tmpadb push  jni/minicap-shared/aosp/libs/android-26/arm64-v8a/minicap.so data/local/tmp

3.1.2 设置文件执行权限

adb shell chmod 777 data/local/tmp/minicapadb shell chmod 777 data/local/tmp/minicap.so

3.1.3 获取android设备分辨率

adb shell wm size

3.1.4 启动服务端

# 测试服务器是否可用adb shell LD_LIBRARY_PATH=data/local/tmp data/local/tmp/minicap -P 1080x1920@1080x1920/0 -t# 启动服务器adb shell LD_LIBRARY_PATH=data/local/tmp data/local/tmp/minicap -P 1080x1920@1080x1920/0 

3.1.5 使用adb工具进行端口映射,将服务端的端口映射到1717,客户端node读取服务器传送数据的端口是1717

adb forward tcp:1717 localabstract:minicap

3.2  运行minicap项目中的example内的客户端

3.2.1 安装依赖

yarn

3.2.2  启动客户端

node app.js

 

 参考文档

 

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124533.html

相关文章

  • [1054]Airtest的探索使用

    摘要:的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖的图形脚本语言。基本操作方法除了跨平台的还有平台特定的,比如安卓平台苹果平台平台这里我们来详细说说这些模块。 ...

    AndroidTraveler 评论0 收藏0
  • 爬虫平台Crawlab v0.2发布

    摘要:是一个专注于爬虫的集成了爬虫管理任务调度任务监控数据分析等模块的分布式爬虫管理平台,非常适合对爬虫管理爬虫工程化有要求的开发者及企业。从目前开源的框架来看,大部分爬虫平台是以为核心,因此只能支持框架的爬虫,而不仅支持,还支持其他框架的爬虫。 showImg(https://segmentfault.com/img/remote/1460000019143107?w=2559&h=112...

    yiliang 评论0 收藏0
  • 把手教你如何安装wordpress,怎么样搭建个人博客!

    摘要:轻量应用服务器是阿里云面向入门级云计算及简单应用用户,提供基于单台云服务器的域名管理应用部署安全和运维管理的一站式综合服务。轻量应用服务器,是可快速搭建且易于管理的轻量级云服务器。上传至云服务器,用或者都可以。总结一下使用wordpress搭建个人博客的三大步骤: 1.购买阿里云服务器 2.选择安装wordpress镜像操作系统 3.安装配置wordpress 4.购买域名,配置域名...

    Richard_Gao 评论0 收藏0

发表评论

0条评论

joyvw

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<