一种适用于安卓9.0系统的远程真机截图方法技术方案

技术编号:20926568 阅读:20 留言:0更新日期:2019-04-20 11:55
本发明专利技术公开了一种适用于安卓9.0系统的远程真机截图方法,包括如下步骤:S1、通过反射机制调用隐藏的api获取图像数据;S2、通过预先定义的图像数据格式封装图像数据;S3、利用LocalSocket方式发送图像数据。利用本发明专利技术进行Android9.0远程真机截图,不需要依赖任何第三方的接口,不受设备型号的影响,它只依赖于Android系统本身的设备图像接口api,通过反射机制调用隐藏的api获取图像数据,通过预先定义的数据格式,组装数据,再利用LocalSocket方式,把数据发送出去。通过这种方式,就能够完成Android 9.0设备图像的获取。

A Remote True Machine Screening Method for Android 9.0 System

The invention discloses a remote real-time machine screenshot method suitable for Android 9.0 system, which includes the following steps: S1, acquiring image data by invoking hidden API through reflection mechanism; S2, encapsulating image data by pre-defined image data format; S3, transmitting image data by local Socket mode. Using the present invention for Android 9.0 remote real-time machine screenshot does not need to rely on any third-party interface and is not affected by the device model. It only relies on the device image interface API of Android system itself. It calls the hidden API through reflection mechanism to obtain image data, assembles data through pre-defined data format, and then sends the data out by using Local Socket mode. In this way, Android 9.0 device image acquisition can be completed.

【技术实现步骤摘要】
一种适用于安卓9.0系统的远程真机截图方法
本专利技术涉及远程真机调试系统的屏幕截图
,具体涉及一种适用于Android9.0版本的远程真机图像的获取和传输功能的方法。
技术介绍
Android系统是由Google公司和开放手机联盟联合领导并开发的、基于Linux的开源的手机系统。由于其开放性和Google公司的强大技术支持,Android手机系统已经被各家手机厂商和手机应用开发者所青睐。由此,Android应用开发成为热门。但是,在应用的开发过程中,不可避免的会出现不同的问题,例如,不同机型的适配,测试成本问题等等。在远程真机调试过程中,手机图像的获取传输是重点,但是目前Android9.0存在无法获取图像的问题,使用系统自带的screencap命令,不便于解析图像数据。
技术实现思路
针对现有技术的不足,本专利技术旨在提供一种适用于安卓9.0系统的远程真机截图方法,解决了在Android9.0系统上获取手机图像和传输的问题,并且无需依赖第三方接口。为了实现上述目的,本专利技术采用如下技术方案:一种适用于安卓9.0系统的远程真机截图方法,包括如下步骤:S1、通过反射机制调用隐藏的api获取图像数据;S2、通过预先定义的图像数据格式封装图像数据;S3、利用LocalSocket方式发送图像数据。进一步地,步骤S1具体使用反射机制调用Android9.0系统中的screenshot方法:根据screenshot方法中的参数列表,结合反射机制,通过Class.forName(“android.view.SurfaceControl”).getDeclaredMethod(“screenshot”,Class<?>...parameterTypes).invoke(Objectobj,Object...args)方法得到图像数据;并将得到的图像数据强转为预先定义的数据格式。进一步地,步骤S2的具体过程为:S2.1、将步骤S1中最终得到的图像数据进行旋转和裁剪;S2.2、对经过步骤S2.1处理的图像数据进行压缩;S2.3、将经过步骤S2.2压缩后的图像数据进行封装打包。本专利技术的有益效果在于:利用本专利技术进行Android9.0远程真机截图,不需要依赖任何第三方的接口,不受设备型号的影响,它只依赖于Android系统本身的设备图像接口api,通过反射机制调用隐藏的api获取图像数据,通过预先定义的数据格式,组装数据,再利用LocalSocket方式,把数据发送出去。通过这种方式,就能够完成Android9.0设备图像的获取。附图说明图1为本专利技术实施例的方法流程示意图。具体实施方式以下将结合附图对本专利技术作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围并不限于本实施例。本实施例提供一种适用于安卓9.0系统的远程真机截图方法,如图1所示,包括如下步骤:1、根据android源码,在android4.3系统以后,screenshot方法在/frameworks/base/core/java/android/view/SurfaceControl.java中;因为这个类是一个隐藏类,因此,需要使用反射机制调用其中的screenshot方法:根据screenshot方法中的参数列表,结合反射机制,通过Class.forName(“android.view.SurfaceControl”).getDeclaredMethod(“screenshot”,Class<?>...parameterTypes).invoke(Objectobj,Object...args)方法得到图像数据;并将得到的图像数据强转为Bitmap格式;2、调用Matrix,将步骤1中最终得到的图像数据进行旋转和裁剪;3、调用Bitmap,对经过步骤2处理的图像数据进行压缩;4、将经过步骤3压缩后的图像数据进行封装打包,使用LocalSocket发送数据包。利用上述方法进行Android9.0远程真机截图,不需要依赖任何第三方的接口,不受设备型号的影响,它只依赖于Android系统本身的设备图像接口api,通过反射机制调用隐藏的api获取图像数据,通过预先定义的数据格式,组装数据,再利用LocalSocket方式,把数据发送出去。通过这种方式,就能够完成Android9.0设备图像的获取。对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本专利技术权利要求的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种适用于安卓9.0系统的远程真机截图方法,其特征在于,包括如下步骤:S1、通过反射机制调用隐藏的api获取图像数据;S2、通过预先定义的图像数据格式封装图像数据;S3、利用LocalSocket方式发送图像数据。

【技术特征摘要】
1.一种适用于安卓9.0系统的远程真机截图方法,其特征在于,包括如下步骤:S1、通过反射机制调用隐藏的api获取图像数据;S2、通过预先定义的图像数据格式封装图像数据;S3、利用LocalSocket方式发送图像数据。2.根据权利要求1所述的适用于安卓9.0系统的远程真机截图方法,其特征在于,步骤S1具体使用反射机制调用Android9.0系统中的screenshot方法:根据screenshot方法中的参数列表,结合反射机制,通过Class.forName(“android.view.SurfaceControl...

【专利技术属性】
技术研发人员:蒋晓海韩雪明
申请(专利权)人:北京云测信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1