CN109358920A - 截屏方法、计算机装置及计算机可读存储介质 - Google Patents

截屏方法、计算机装置及计算机可读存储介质 Download PDF

Info

Publication number
CN109358920A
CN109358920A CN201810963031.5A CN201810963031A CN109358920A CN 109358920 A CN109358920 A CN 109358920A CN 201810963031 A CN201810963031 A CN 201810963031A CN 109358920 A CN109358920 A CN 109358920A
Authority
CN
China
Prior art keywords
screen
electronic equipment
picture
data
real time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810963031.5A
Other languages
English (en)
Inventor
彭海波
黄小婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN201810963031.5A priority Critical patent/CN109358920A/zh
Publication of CN109358920A publication Critical patent/CN109358920A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种截屏方法,应用于计算机装置,所述方法包括:通过安卓调试桥ADB接口,与电子设备建立套接字Socket连接;通过建立的Socket连接,接收电子设备传输过来的该电子设备的屏幕的实时数据;缓存所述屏幕的实时数据;及解析所述屏幕的实时数据,获得电子设备的截屏图片。本发明还提供一种计算机装置及可读存储介质。本发明将电子设备的屏幕的实时画面缓存到计算机装置上,可以获取到电子设备的每个时刻的画面,因此,即使电子设备的用户界面出现问题,出现问题时刻的画面也能被截取到。

Description

截屏方法、计算机装置及计算机可读存储介质
技术领域
本发明涉及数据处理领域,尤其涉及一种截屏方法、计算机装置及计算机可读存储介质。
背景技术
通常,在Android手机的用户界面(User interface,UI)自动化测试中,测试工程师需要对出现问题时刻的手机画面进行分析。因此,需要对出现问题时刻的手机画面进行截屏。当前,手机截屏的方法一般是:发现用户界面存在问题则执行截屏操作。例如,同时按压电源键和音量键来执行截图。然而,该种截屏方式存在一定的延迟,往往截取到的是出现问题几秒之后的屏幕画面,即无法截取到用户界面出现问题时刻的画面,进而影响分析结果。此外,当前获取手机截屏的方法一般是利用Android系统原生自带的工具来截屏,将截屏保存在Android手机上。然后再由Android手机通过安卓调试桥ADB(Android DebugBridge)将截屏传输到电脑端供测试工程师分析。该方法处理速度也比较慢。
发明内容
鉴于以上内容,有必要提供一种截屏方法、计算机装置及计算机可读存储介质,用以解决现有技术中无法获取到电子设备的每个时刻的画面的技术问题。
所述截屏方法包括:通过安卓调试桥ADB接口,将计算机装置与电子设备建立套接字Socket连接;通过建立的Socket连接,接收所述电子设备传输过来的该电子设备的屏幕的实时数据;缓存所接收到的屏幕的实时数据;及解析所述屏幕的实时数据,获取屏幕的图片数据,并将所述获取的图片数据保存为截屏图片。
优选地,所述解析所述屏幕的实时数据,获取屏幕的图片数据,并将所述获取的图片数据保存为截屏图片包括:解析所述屏幕的实时数据获得电子设备的屏幕的虚拟宽高;解析所述屏幕的实时数据获得图片的二进制信息的长度n;根据所获得的图片的二进制信息的长度n,从所述屏幕的实时数据中提取图片的数据;及将所提取的图片的数据存储为图片,其中,每张图片的大小与所解析获得的电子设备的屏幕的虚拟宽高相同。
优选地,所述屏幕的实时数据为二进制数据流,所述二进制数据包括第一部分和第二部分,其中,第一部分携带所述屏幕信息,第二部分携带所述屏幕的图片信息。
优选地,所述第一部分包括24个16进制字符,其中,第15-18个字符为电子设备的屏幕的虚拟高度信息,第19-22个字符为电子设备的屏幕的虚拟高度信息,所述解析所述屏幕的实时数据获得电子设备的屏幕的虚拟宽高包括:将所述第一部分中的第15~18个字符进行累加得到电子设备的屏幕的虚拟宽度;及将所述第一部分中的第19~22个字符进行累加从而得到电子设备的屏幕的虚拟高度。
优选地,所述根据所获得的图片的二进制信息的长度n,从所述屏幕的实时数据中提取图片的数据包括:根据所述图片的二进制信息的长度n,在所述第二部分中自第4个字符之后,循环取n个字符的数据,将每次取出的n个字符的数据设定为一个数组,其中,每个数组是一张图片的数据;及所述将所提取的图片的数据存储为图片包括将每个数组所包括的图片数据分别存储为一张图片。
优选地,所述将所提取的图片的数据存储为图片包括:调用Java的ImageIO组件来将每个数组所包括的图片数据分别存储为一张图片。
优选地,所述通过安卓调试桥ADB接口,将计算机装置与电子设备建立套接字Socket连接包括:通过ADB接口,调用adb forward指令建立所述Socket连接。
优选地,所述通过安卓调试桥ADB接口,将计算机装置与电子设备建立套接字Socket连接包括:将所述计算机装置与电子设备通过USB数据线建立通讯连接。
所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现对电子设备的屏幕进行截屏的方法。
所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现对电子设备的屏幕进行截屏的方法。
由以上技术方案可知,本发明通过安卓调试桥ADB接口,与电子设备建立套接字Socket连接;通过建立的Socket连接,接收电子设备传输过来的该电子设备的屏幕的实时数据;缓存所述屏幕的实时数据;及解析所述屏幕的实时数据,获取电子设备的截屏图片。本发明将电子设备的屏幕的实时画面缓存到计算机装置上,可以获取到电子设备的每个时刻的画面,因此,即使电子设备的用户界面出现问题,出现问题时刻的画面也能被截取到。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明截屏方法的较佳实施例的流程图。
图2是图1所示的截屏方法中的步骤S4的细化流程图。
图3是本发明截屏装置的较佳实施例的程序模块图。
图4是本发明至少一个实例中计算机装置的较佳实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,是本发明截屏方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S1、计算机装置通过安卓调试桥ADB(Android Debug Bridge)接口,与电子设备建立套接字Socket连接。
需要说明的是,套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,计算机操作系统为应用程序与TCP/IP协议交互提供了Socket接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
本实施例中,所述计算机装置可以为个人电脑PC、笔记本电脑或服务器等。所述电子设备可以为基于Android系统的终端,如手机、平板电脑等电子设备。本实施例中,所述计算机装置可以同时作为对电子设备进行测试(例如用户界面(User interface,UI)自动化测试)的测试端,即同时所述电子设备可作为被测端。
本实施例中,计算机装置与电子设备首先可以通过USB(Universal Serial Bus)数据线建立通讯连接,然后计算机装置将Minicap工具推送到电子设备上,利用ADB命令在电子设备启动Minicap工具,由此电子设备即相当于一个Socket服务器。
本实施例中,计算机装置通过ADB接口,调用adb forward指令,建立Socket连接。其中,计算机装置通过adb forward指令中的Socket端口(Port)发送或接收指令及数据。
本实施例中,所述adb forward指令可以为adb forward tcp:12800tcp12500。
具体地,端口12800作为计算机装置的Socket端口,计算机装置通过端口12800向电子设备发送指令或数据,和/或通过端口12800接收来自电子设备发送的指令或数据。端口12500作为电子设备的Socket端口,电子设备通过端口12500监听来自计算机装置发送的指令或数据,和/或通过端口12500向计算机装置发送指令或数据。
需要说明的是,安卓调试桥ADB是Android操作系统中用于调试、跟踪电子设备(例如手机)的软件运行信息或者Log等记录文件的接口,极大方便了开发者开发电子设备软件或者跟踪解决电子设备软件Bug等。目前,大部分的智能手机平台都是基于Android操作系统开发的,尽管各手机的芯片有可能不同,但是,基于Android操作系统的ADB接口进行通信时,PC端(如本实施例的计算机装置)与手机端的协议是一致的,从而使同一个测试软件或通信软件可以在支持不同硬件平台的手机上共用。
步骤S2、计算机装置通过建立的Socket连接,接收电子设备传输过来的该电子设备的屏幕的实时数据。
本实施例中,计算机装置通过所建立的Socket连接,采用ADB接口支持的通信协议,与电子设备之间进行指令交互及数据传输。
在一个实施例中,计算机装置与电子设备之间进行通信的协议可以为现有的通信协议,如TCP/IP(Transfer Control Protocol,传输控制协议/Internet Protocol,因特网协议),也可以为计算机装置与电子设备之间约定的某个格式的协议,只要是采用ADB接口能够支持的通信协议即可。
本实施例中,电子设备利用Minicap工具实时捕捉电子设备的屏幕的信息,然后将所捕捉的信息以二进制数据流的形式透过ADB接口发送到计算机装置。
本实施例中,该二进制数据流由两部分组成。
第一部分:Banner模块。电子设备与计算机装置建立Socket连接后,电子设备向计算机装置只发送一次该Banner模块所包括的信息。该Banner模块所包括的是汇总信息,总共包括24个16进制字符,每一个字符都表示不同的信息。
本实施例中,所述24个16进制字符中,第1个字符代表版本号,第2个字符标识Banner信息的长度,第3~6个字符累加得到进程ID号,第7~10个字符累加得到电子设备的屏幕的真实宽度,第11~14个字符累加得到电子设备的屏幕的真实高度,第15~18个字符累加得到电子设备的屏幕的虚拟宽度,第19~22个字符累加得到电子设备的屏幕的虚拟高度,第23个字符得到电子设备的屏幕的方向,第24个字符得到电子设备的屏幕的信息获取策略。
第二部分:Frame模块。该Frame模块所包括的是图片相关的信息。其中,该图片相关的信息中,前4个字符累加得到是图片的二进制信息的长度,除去该前4个字符,其余信息则是图片的内容信息。
步骤S3、计算机装置缓存所述屏幕的实时数据。
步骤S4、计算机装置解析所述屏幕的实时数据,获取电子设备的截屏图片,从而实现对电子设备的屏幕的截屏。
在一个实施例中,计算机装置响应于用户的输入解析所述屏幕的实时数据,从而获取电子设备的截屏图片。在其他实施例中,计算机装置也可以于接收到所述屏幕的实时数据即开始解析所述屏幕的实时数据。
图2是图1中的步骤S4较佳实施例的细化流程图,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S41、计算机装置解析所述屏幕的实时数据获得电子设备的屏幕的虚拟宽高。
如前面所记载,电子设备将屏幕的实时数据以二进制数据流的形式发送到计算机装置。本实施例中,计算机装置解析所述二进制数据流的第一部分(即Banner模块),将Banner模块中的第15~18个字符进行累加从而得到电子设备的屏幕的虚拟宽度,以及将Banner模块中的第19~22个字符进行累加从而得到电子设备的屏幕的虚拟高度。即由此解析获得电子设备的屏幕的虚拟宽高。
步骤S42、计算机装置解析所述屏幕的实时数据获得图片的二进制信息的长度。
本实施例中,计算机装置解析二进制数据流的第二部分(即Frame模块)的前4个字符,由此获得图片的二进制信息的长度。例如,计算机装置解析获得图片的二进制信息的长度为n。
步骤S43、计算机装置根据所获得的图片的二进制信息的长度(即n),从所述屏幕的实时数据中提取图片的数据。
本实施例中,计算机装置从所述Frame模块中自第4个字符之后,循环取n个字符的数据,将每次取出的n个字符的数据设定为一个数组,那么每个数组则就是一张图片的数据。
例如,计算机装置取出的数组包括:4~(n+4)、(n+4)~(2n+4)......。
步骤S44、计算机装置将所提取的图片的数据存储为图片,其中,每张图片的大小与所解析获得的电子设备的屏幕的虚拟宽高相同。
本实施例中,计算机装置将前述步骤S43中的每个数组所包括的图片数据分别存储为一张图片。每张图片即是电子设备的截屏图片。
在一个实施例中,计算机装置调用Java的ImageIO组件来将所述图片数据存储为图片。
在一个实施例中,每张图片为Jpg、JPEG,或者其他格式例如TIFF格式。
在一个实施例中,计算机装置保存每张图片时,还获取计算机装置当前的系统时间,将每张图片按照当前的系统时间进行命名。从而方便用户在需要对电子设备的屏幕的实时信息进行分析时找到对应时间的图片。
如图3所示,本发明截屏装置的较佳实施例的程序模块图。所述截屏装置3包括,但不限于以下一个或者多个模块:连接模块31、接收模块32、缓存模块33,及解析模块34。本发明所称的模块是指一种能够被截屏装置3的处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。关于各模块的功能将在后续的实施例中详述。
所述连接模块31通过安卓调试桥ADB(Android Debug Bridge)接口,将计算机装置与电子设备建立套接字Socket连接。
需要说明的是,套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
本实施例中,所述计算机装置可以为个人电脑PC、笔记本电脑或服务器等。所述电子设备可以为基于Android系统的终端,如手机、平板电脑等电子设备。本实施例中,所述计算机装置可以同时作为对电子设备进行测试(例如用户界面(User interface,UI)自动化测试)的测试端,即同时所述电子设备可作为被测端。
本实施例中,计算机装置与电子设备首先可以通过USB(Universal Serial Bus)数据线建立通讯连接,然后所述连接模块31将Minicap工具推送到电子设备上,利用ADB命令在电子设备启动Minicap工具,由此电子设备即相当于一个Socket服务器。
本实施例中,所述连接模块31通过ADB接口,调用adb forward指令,建立Socket连接。其中,所述连接模块31通过adb forward指令中的Socket端口(Port)发送或接收信令及数据。
本实施例中,所述adb forward指令可以为adb forward tcp:12800tcp12500。
具体地,端口12800作为计算机装置的Socket端口,计算机装置通过端口12800向电子设备发送指令或数据,和/或通过端口12800接收来自电子设备发送的指令或数据。端口12500作为电子设备的Socket端口,电子设备通过端口12500监听来自计算机装置发送的指令或数据,和/或通过端口12500向计算机装置发送指令或数据。
需要说明的是,安卓调试桥ADB是Android操作系统中用于调试、跟踪电子设备(例如手机)的软件运行信息或者Log等记录文件的接口,极大方便了开发者开发电子设备软件或者跟踪解决电子设备软件Bug等。目前,大部分的智能手机平台都是基于Android操作系统开发的,尽管各手机的芯片有可能不同,但是,基于Android操作系统的ADB接口进行通信时,PC端(如本实施例的计算机装置)与手机端(如本实施例的电子设备)的协议是一致的,从而使同一个测试软件或通信软件可以在支持不同硬件平台的手机上共用。
所述接收模块32通过建立的Socket连接,接收电子设备传输过来的该电子设备的屏幕的实时数据。
本实施例中,所述接收模块32通过所建立的Socket连接,采用ADB接口支持的通信协议,与电子设备之间进行指令交互及数据传输。
在一个实施例中,计算机装置与电子设备之间进行通信的协议可以为现有的通信协议,如TCP/IP(Transfer Control Protocol,传输控制协议/Internet Protocol,因特网协议),也可以为计算机装置与电子设备之间约定的某个格式的协议,只要是采用ADB接口能够支持的通信协议即可。
本实施例中,电子设备利用Minicap工具实时捕捉电子设备的屏幕的信息,然后将所捕捉的信息以二进制数据流的形式透过ADB接口发送到计算机装置,从而使得所述接收模块32可以接收到所述电子设备传输过来的屏幕的实时数据。
本实施例中,该二进制数据流由两部分组成。
第一部分:Banner模块。电子设备与计算机装置建立Socket连接后,电子设备向计算机装置只发送一次该Banner模块所包括的信息。该Banner模块所包括的是汇总信息,总共包括24个16进制字符,每一个字符都表示不同的信息。
本实施例中,所述24个16进制字符中,第1个字符代表版本号,第2个字符标识Banner信息的长度,第3~6个字符累加得到进程ID号,第7~10个字符累加得到电子设备的屏幕的真实宽度,第11~14个字符累加得到电子设备的屏幕的真实高度,第15~18个字符累加得到电子设备的屏幕的虚拟宽度,第19~22个字符累加得到电子设备的屏幕的虚拟高度,第23个字符得到电子设备的屏幕的方向,第24个字符得到电子设备的屏幕的信息获取策略。
第二部分:Frame模块。该Frame模块所包括的是图片相关的信息。其中,该图片相关的信息中,前4个字符累加得到是图片的二进制信息的长度,除去该前4个字符,其余信息则是图片的内容信息。
所述缓存模块33缓存所述屏幕的实时数据。
所述解析模块34解析所述屏幕的实时数据,获得电子设备的截屏图片,从而实现对电子设备的截屏。
具体地,所述解析模块34解析所述屏幕的实时数据的步骤包括如下(1)-(4)个步骤:
(1)所述解析模块34解析所述屏幕的实时数据获得电子设备的屏幕的虚拟宽高。
如前面所记载,电子设备将屏幕的实时数据以二进制数据流的形式发送到计算机装置。本实施例中,所述解析模块34解析所述二进制数据流的第一部分(即Banner模块),将Banner模块中的第15~18个字符进行累加从而得到电子设备的屏幕的虚拟宽度,以及将Banner模块中的第19~22个字符进行累加从而得到电子设备的屏幕的虚拟高度。即由此解析获得电子设备的屏幕的虚拟宽高。
(2)所述解析模块34解析所述屏幕的实时数据获得图片的二进制信息的长度。
本实施例中,所述解析模块34解析二进制数据流的第二部分(即Frame模块)的前4个字符,由此获得图片的二进制信息的长度。例如,所述解析模块34解析获得图片的二进制信息的长度为n。
(3)所述解析模块34根据所获得的图片的二进制信息的长度(即n),从所述屏幕的实时数据中提取图片的数据。
本实施例中,所述解析模块34从所述Frame模块中自第4个字符之后,循环取n个字符的数据,将每次取出的n个字符的数据设定为一个数组,那么每个数组则就是一张图片的数据。
例如,所述解析模块34取出的数组包括:4~(n+4)、(n+4)~(2n+4)......。
(4)所述解析模块34将所提取的图片的数据存储为图片,其中,每张图片的大小与所解析获得的电子设备的屏幕的虚拟宽高相同。
本实施例中,所述解析模块34将前述步骤S43中的每个数组所包括的图片数据分别存储为一张图片。
在一个实施例中,所述解析模块34调用Java的ImageIO组件来将所述图片数据存储为图片。
在一个实施例中,每张图片为Jpg、JPEG,或者其他格式例如TIFF格式。
在一个实施例中,所述解析模块34保存每张图片时,还获取计算机装置当前的系统时间,将每张图片按照当前的系统时间进行命名。从而方便用户在需要对电子设备的屏幕的实时信息进行分析时找到对应时间的图片。
如图4所示,所述计算机装置4包括至少一个存储器41、至少一个处理器42,以及至少一个通信总线。其中,所述通信总线用于实现这些元件之间的连接通信。
所述计算机装置4是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述计算机装置4还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
所述计算机装置4可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的个人电脑、服务器等终端。
所述电子设备5可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、个人数字助理(PersonalDigital Assistant,PDA)、智能式穿戴式设备、摄像设备、监控设备等终端。
所述计算机装置4所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
所述存储器41用于存储程序代码。所述存储器41可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(First InFirst Out,)等。或者,所述存储器41也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(secure digitalcard)、快闪存储器卡(flash card)等储存设备等等。
所述处理器42可以包括一个或者多个微处理器、数字处理器。所述处理器42可调用存储器41中存储的程序代码以执行相关的功能。例如,图3中所述的各个模块是存储在所述存储器41中的程序代码,并由所述处理器42所执行,以实现一种对电子设备5的屏幕51进行截屏方法。所述处理器42又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令当被包括一个或多个处理器的计算机装置执行时,使计算机装置执行如上文方法实施例所述的对电子设备的屏幕进行截屏的方法。
结合图4所示,所述计算机装置4中的所述存储器41存储多个指令以实现一种对电子设备5的屏幕51进行截屏的方法,所述处理器42可执行所述多个指令从而实现:
通过安卓调试桥ADB接口,与电子设备建立套接字Socket连接;通过所建立的Socket连接,接收电子设备传输过来的该电子设备的屏幕的实时数据;缓存所述屏幕的实时数据;及解析所述屏幕的实时数据,获取电子设备的截屏图片,从而实现对电子设备的屏幕的截屏。
根据本发明优选实施例,所述解析屏幕的实时数据的步骤包括:解析所述屏幕的实时数据获得电子设备的屏幕的虚拟宽高;解析所述屏幕的实时数据获得图片的二进制信息的长度n;根据所获得的图片的二进制信息的长度n,从所述屏幕的实时数据中提取图片的数据;及将所提取的图片的数据存储为图片,其中,每张图片的大小与所解析获得的电子设备的屏幕的虚拟宽高相同。
根据本发明优选实施例,所述屏幕的实时数据为二进制数据流,该二进制数据流由两部分组成:其中,第一部分为Banner模块,该Banner模块总共包括24个16进制字符,所述24个16进制字符中,第1个字符代表版本号,第2个字符标识Banner信息的长度,第3~6个字符累加得到进程ID号,第7~10个字符累加得到电子设备的屏幕的真实宽度,第11~14个字符累加得到电子设备的屏幕的真实高度,第15~18个字符累加得到电子设备的屏幕的虚拟宽度,第19~22个字符累加得到电子设备的屏幕的虚拟高度,第23个字符得到电子设备的屏幕的方向,第24个字符得到电子设备的屏幕的信息获取策略;及第二部分为Frame模块,该Frame模块所包括的是图片相关的信息,该图片相关的信息中,前4个字符累加得到是图片的二进制信息的长度,除去该前4个字符,其余信息则是图片的内容信息。
根据本发明优选实施例,所述计算机装置将所述二进制数据流的所述第一部分中的第15~18个字符进行累加从而得到电子设备的屏幕的虚拟宽度,以及将该第一部分中的第19~22个字符进行累加从而得到电子设备的屏幕的虚拟高度,由此解析获得电子设备的屏幕的虚拟宽高。
根据本发明优选实施例,所述计算机装置根据所述图片的二进制信息的长度n,在所述第二部分中自第4个字符之后,循环取n个字符的数据,将每次取出的n个字符的数据设定为一个数组,其中,每个数组是一张图片的数据,所述计算机装置将每个数组所包括的图片数据分别存储为一张图片。
根据本发明优选实施例,所述计算机装置调用Java的ImageIO组件来将每个数组所包括的图片数据分别存储为一张图片。
根据本发明优选实施例,所述计算机装置通过ADB接口,调用adb forward指令建立所述Socket连接。
在任意实施例中所述对电子设备的屏幕进行截屏的方法对应的多个指令存储在所述存储器42,并通过所述处理器41来执行,在此不再详述。
以上说明的本发明的特征性的手段可以通过集成电路来实现,并控制实现上述任意实施例中所述对电子设备的屏幕进行截屏的功能。即,本发明的集成电路安装于所述计算机装置中,使所述计算机装置发挥如下功能:通过安卓调试桥ADB接口,与电子设备建立套接字Socket连接;通过所建立的Socket连接,接收电子设备传输过来的该电子设备的屏幕的实时数据;缓存所述屏幕的实时数据;及解析所述屏幕的实时数据,获取电子设备的截屏图片。
在任意实施例中所述对电子设备的屏幕进行截屏的方法所能实现的功能都能通过本发明的集成电路安装于所述计算机装置中,使所述计算机装置发挥任意实施例中所述对电子设备的屏幕进行截屏的方法所能实现的功能,在此不再详述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或元件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明的各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种截屏方法,其特征在于,所述方法包括:
通过安卓调试桥ADB接口,将计算机装置与电子设备建立套接字Socket连接;
通过建立的Socket连接,接收所述电子设备传输过来的该电子设备的屏幕的实时数据;
缓存所接收到的屏幕的实时数据;及
解析所述屏幕的实时数据,获取屏幕的图片数据,并将所述获取的图片数据保存为截屏图片。
2.如权利要求1所述的截屏方法,其特征在于,所述解析所述屏幕的实时数据,获取屏幕的图片数据,并将所述获取的图片数据保存为截屏图片包括:
解析所述屏幕的实时数据获得电子设备的屏幕的虚拟宽高;
解析所述屏幕的实时数据获得图片的二进制信息的长度n;
根据所获得的图片的二进制信息的长度n,从所述屏幕的实时数据中提取图片的数据;及
将所提取的图片的数据存储为图片,其中,每张图片的大小与所解析获得的电子设备的屏幕的虚拟宽高相同。
3.如权利要求2所述的截屏方法,其特征在于,所述屏幕的实时数据为二进制数据流,所述二进制数据包括第一部分和第二部分,其中,第一部分携带所述屏幕信息,第二部分携带所述屏幕的图片信息。
4.如权利要求3所述的截屏方法,其特征在于,所述第一部分包括24个16进制字符,其中,第15-18个字符为电子设备的屏幕的虚拟高度信息,第19-22个字符为电子设备的屏幕的虚拟高度信息,所述解析所述屏幕的实时数据获得电子设备的屏幕的虚拟宽高包括:
将所述第一部分中的第15~18个字符进行累加得到电子设备的屏幕的虚拟宽度;及
将所述第一部分中的第19~22个字符进行累加从而得到电子设备的屏幕的虚拟高度。
5.如权利要求3所述的截屏方法,其特征在于,所述根据所获得的图片的二进制信息的长度n,从所述屏幕的实时数据中提取图片的数据包括:
根据所述图片的二进制信息的长度n,在所述第二部分中自第4个字符之后,循环取n个字符的数据,将每次取出的n个字符的数据设定为一个数组,其中,每个数组是一张图片的数据;及
所述将所提取的图片的数据存储为图片包括将每个数组所包括的图片数据分别存储为一张图片。
6.如权利要求5所述的截屏方法,其特征在于,所述将所提取的图片的数据存储为图片包括:
调用Java的ImageIO组件来将每个数组所包括的图片数据分别存储为一张图片。
7.如权利要求1所述的截屏方法,其特征在于,所述通过安卓调试桥ADB接口,将计算机装置与电子设备建立套接字Socket连接包括:
通过ADB接口,调用adb forward指令建立所述Socket连接。
8.如权利要求1所述的截屏方法,其特征在于,所述通过安卓调试桥ADB接口,将计算机装置与电子设备建立套接字Socket连接包括:
将所述计算机装置与电子设备通过USB数据线建立通讯连接。
9.一种计算机装置,其特征在于,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现如权利要求1至8中任一项所述的截屏方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至8中任一项所述的截屏方法。
CN201810963031.5A 2018-08-22 2018-08-22 截屏方法、计算机装置及计算机可读存储介质 Pending CN109358920A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810963031.5A CN109358920A (zh) 2018-08-22 2018-08-22 截屏方法、计算机装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810963031.5A CN109358920A (zh) 2018-08-22 2018-08-22 截屏方法、计算机装置及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN109358920A true CN109358920A (zh) 2019-02-19

Family

ID=65349884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810963031.5A Pending CN109358920A (zh) 2018-08-22 2018-08-22 截屏方法、计算机装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109358920A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515794A (zh) * 2019-07-26 2019-11-29 Oppo广东移动通信有限公司 日志信息抓取方法、装置、电子设备以及存储介质
CN112367362A (zh) * 2020-10-23 2021-02-12 深圳市信锐网科技术有限公司 一种数据处理方法、装置、设备及计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288890A1 (en) * 2006-05-17 2007-12-13 Ipreo Holdings, Inc. System, method and apparatus to allow for a design, administration, and presentation of computer software applications
CN102446083A (zh) * 2011-09-07 2012-05-09 福州博远无线网络科技有限公司 PC端读取并保存Android手机屏幕显示内容的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288890A1 (en) * 2006-05-17 2007-12-13 Ipreo Holdings, Inc. System, method and apparatus to allow for a design, administration, and presentation of computer software applications
CN102446083A (zh) * 2011-09-07 2012-05-09 福州博远无线网络科技有限公司 PC端读取并保存Android手机屏幕显示内容的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515794A (zh) * 2019-07-26 2019-11-29 Oppo广东移动通信有限公司 日志信息抓取方法、装置、电子设备以及存储介质
CN112367362A (zh) * 2020-10-23 2021-02-12 深圳市信锐网科技术有限公司 一种数据处理方法、装置、设备及计算机存储介质
CN112367362B (zh) * 2020-10-23 2024-01-09 深圳市信锐网科技术有限公司 一种数据处理方法、装置、设备及计算机存储介质

Similar Documents

Publication Publication Date Title
CN104461903B (zh) 基于浏览器的测试客户端的方法和装置
CN104820667B (zh) 网页点击量的上报方法、装置和系统
CN109002366A (zh) 一种移动端网页的远程调试方法及装置
CN105975393B (zh) 一种页面显示的检测方法及系统
CN107203470B (zh) 页面调试方法和装置
CN108197125A (zh) 网页抓取方法及装置
US10084637B2 (en) Automatic task tracking
CN104102578B (zh) 测试方法及系统、操作端
CN111913884A (zh) 分布式测试方法、装置、设备、系统和可读存储介质
CN109358920A (zh) 截屏方法、计算机装置及计算机可读存储介质
CN114205274A (zh) 网络设备的测试方法及其装置
CN110598135A (zh) 网络请求处理方法、装置、计算机可读介质及电子设备
CN113159807A (zh) 落地页处理方法、装置、设备和介质
CN112994980A (zh) 时延测试方法、装置、电子设备和存储介质
CN112818201A (zh) 一种网络数据采集方法、装置、计算机设备及存储介质
CN108280228A (zh) 一种网页的处理方法及相关设备
CN114006885A (zh) 一种基于智能设备的数据采集方法、装置及电子设备
CN113761412A (zh) 应用页面的显示方法、装置、电子设备、介质及应用系统
CN110389886B (zh) 一种主体应用程序的附加功能测试方法、装置及存储介质
CN115904388A (zh) 一种应用程序协议解析方法、装置、设备及存储介质
CA2788100C (en) Crawling of generated server-side content
CN106383765A (zh) 一种数据监控方法及装置
CN112131092A (zh) 页面调试方法和装置
CN106686037A (zh) 页面检测方法、装置、设备及系统
CN115225347A (zh) 靶场资源监控的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190219

RJ01 Rejection of invention patent application after publication