CN108875011A - 第三方应用的页面状态信息获取方法、装置、设备及介质 - Google Patents
第三方应用的页面状态信息获取方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN108875011A CN108875011A CN201810626571.4A CN201810626571A CN108875011A CN 108875011 A CN108875011 A CN 108875011A CN 201810626571 A CN201810626571 A CN 201810626571A CN 108875011 A CN108875011 A CN 108875011A
- Authority
- CN
- China
- Prior art keywords
- party application
- view
- application
- resource
- page number
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种第三方应用的页面状态信息获取方法、装置、终端设备及计算机可读存储介质,其方法包括:根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态;其中,所述播放view为用于承载所述第三方应用在播放状态下的内容展示的view;根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息;其中,所述第一资源ID以及所述第二资源ID通过解析所述第三方应用的结构获取;将所述第三方应用的播放状态及页码信息发送给需求应用,实现应用之间的连通。
Description
技术领域
本发明涉及计算机信息分析领域,尤其涉及一种第三方应用的页面状态信息获取方法、装置、终端设备及计算机可读存储介质。
背景技术
在Android平台下,有时Android端的某一应用需要与第三方应用(例如Office办公软件)实现联动,需要获取第三方应用的相关文件当前的相关页面状态信息;或者在应用第三方应用的情况下,其他应用需要感知第三方应用的相关文件的当前页面状态信息,在Android端,如何获取第三方应用的页面状态信息成为难点。
现有的获取第三方应用的页面状态信息方式大致有:第一种:使用XPosed框架。利用Hook技术直接将Android系统中最初的zygote进程给hook住,注入相应的代码,基本的方法就是通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数,当PPT运行在装有XPosed框架的系统上时,就可以获取PPT中任意方法或者任意参数的信息,那么通过反编译就可以获取PPT页面状态信息;第二种:使用反编译技术。解析PPT的安装包信息,获取PPT字节码文件等,通过分析其字节码文件了解PPT大体的编码结构,通过修改smali文件获取PPT页面状态信息。
在实现本发明实施例的过程中,发明人发现:第一种实现方式虽然安装XPosed框架相对简单,获取PPT页面状态信息也相对简单,但缺点也同样明显,该方法需要依赖于XPosed框架的安装器,只适合在本地调试代码,无法将该方法应用到实际中;第二种实现方式虽然不与安装器强相关联,分析代码等都在本地完成,但需要很扎实的Smali语法基础来分析字节码文件信息,对业务能力要求高,而且在解析PPT代码结构之后添加自定义功能,打包的apk属于破解apk无法发布,涉及到签名问题甚至会导致法律纠纷。
发明内容
针对上述问题,本发明的目的在于提供一种第三方应用的页面状态信息获取方法、装置、终端设备及计算机可读存储介质,不依赖于安装器也不涉及签名问题,实现以最低成本,且简单高效地获取第三方应用的页面状态信息。
第一方面,本发明实施例提供了一种第三方应用的页面状态信息获取方法,包括以下步骤:
根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态;其中,所述播放view为用于承载所述第三方应用在播放状态下的内容展示的view;
根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息;其中,所述第一资源ID以及所述第二资源ID通过解析所述第三方应用的结构获取;
将所述第三方应用的播放状态及页码信息发送给需求应用。
在第一方面的第一种实现方式中,所述标题view在所述第三方应用进入播放状态,或者所述第三方应用处于播放状态期间,在切换播放页面时可被监控到;所述标题view包括当前播放页面的索引信息;其中,所述索引信息包括页码信息。
在第一方面的第二种实现方式中,还包括:
根据UI自动化程序转储视图层次结构(Dump View Hierarchy for UIAutomator)获取所述第三方应用的快照信息,以分析所述快照信息中所述第三方应用的界面中view的层级结构;
通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构;
根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在第一方面的第三种实现方式中,还包括:
根据Hierarchy View窗口监视器获取并分析所述第三方应用的界面中view的层级结构;
通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构;
根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在第一方面的第四种实现方式中,所述将所述第三方应用的播放状态及页码信息发送给需求应用,具体为:
将所述第三方应用的播放状态及页码信息通过广播进行发送,以使注册了广播的需求应用监听到所述广播。
根据第一方面的第一种实现方式,在第一方面的第五种实现方式中,所述将所述第三方应用的播放状态及页码信息发送给需求应用,具体为:
将所述第三方应用的播放状态及页码信息,通过AccessibilityService功能发送给注册了AccessibilityService服务的需求应用;其中,对所述第三方应用的页码信息对应的AccessibilityService事件的发送条件进行修改,以使得安卓的辅助功能AccessibilityService服务能在所述标题view处于隐藏状态下,从所述标题view中获取所述第三方应用处于播放状态下的当前页码信息。
根据第一方面的以上任一种实现方式,在第一方面的第六种实现方式中,所述第三方应用为Office应用;所述需求应用为批注控件。
第二方面,本发明实施例提供了一种第三方应用的页面状态信息获取装置,包括:
播放状态获取模块,用于根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态;其中,与所述第一资源ID相应的view为用于承载所述第三方应用播放状态下的内容展示的view;
页码信息提取模块,用于根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息;其中,所述第一资源ID以及所述第二资源ID通过解析所述第三方应用的结构获取;
第三方信息发送模块,用于将所述第三方应用的播放状态及页码信息发送给需求应用。
在第二方面的第一种实现方式中,所述标题view在所述第三方应用进入播放状态,或者所述第三方应用处于播放状态期间,在切换播放页面时可被监控到;所述标题view包括当前播放页面的索引信息;其中,所述索引信息包括页码信息。
在第二方面的第二种实现方式中,还包括:
第一层级结构分析模块,用于根据UI自动化程序转储视图层次结构(Dump ViewHierarchy for UI Automator)获取所述第三方应用的快照信息,以分析所述快照信息中所述第三方应用的界面中view的层级结构;
第一代码结构分析模块,用于通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构;
资源ID第一获取模块,用于根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在第二方面的第三种实现方式中,还包括:
第二层级结构分析模块,用于根据Hierarchy View窗口监视器获取并分析所述第三方应用的界面中view的层级结构;
第二代码结构分析模块,用于通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构;
资源ID第二获取模块,用于根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在第二方面的第四种实现方式中,所述第三方信息发送模块具体包括:
将所述第三方应用的播放状态及页码信息通过广播进行发送,以使注册了广播的需求应用监听到所述广播。
根据第二方面的第一种实现方式,在第二方面的第五种实现方式中,所述第三方信息发送模块具体包括:
将所述第三方应用的播放状态及页码信息,通过AccessibilityService功能发送给注册了AccessibilityService服务的需求应用;其中,对所述第三方应用的页码信息对应的AccessibilityService事件的发送条件进行修改,以使得安卓的辅助功能AccessibilityService服务能在所述标题view处于隐藏状态下,从所述标题view中获取所述第三方应用处于播放状态下的当前页码信息。
根据第二方面的以上任一种实现方式,在第二方面的第六种实现方式中,所述第三方应用为Office应用;所述需求应用为批注控件。
第三方面,本发明实施例提供了一种第三方应用的页面状态信息获取终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述中任意一项所述的第三方应用的页面状态信息获取方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的第三方应用的页面状态信息获取方法。
以上实施例具有如下有益效果:
首先根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态,再根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息,最后将所述第三方应用的播放状态及页码信息发送给需求应用,通过修改系统源代码以使得安卓系统能够在不依赖于安装器也不涉及签名问题的情况下,以最低成本,且简单高效地获取第三方应用的页面状态信息,以使得所述需求应用与第三方应用实现联动,本申请获取第三方应用的页面状态信息的方法,实现成本低,无需其他应用进行交互,通用性广,可行性高,适用于Android平台下的各类产品。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的第三方应用的页面状态信息获取方法的流程示意图。
图2是本发明第二实施例提供的UI自动化程序转储视图层次结构(Dump ViewHierarchy for UI Automator)分析界面层级结构的示意图。
图3是本发明第三实施例提供的Hierarchy View窗口监视器分析界面层级结构的示意图。
图4是本发明第六实施例提供的第三方应用的页面状态信息获取装置的结构示意图。
图5是本发明第七实施例提供的第三方应用的页面状态信息获取终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提供了一种第三方应用的页面状态信息获取方法,其可由第三方应用的页面状态信息获取终端设备来执行,该第三方应用的页面状态信息获取终端设备可以通过软件和/或硬件的方式实现,该第三方应用的页面状态信息获取终端设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。该第三方应用的页面状态信息获取终端设备可以是电脑,手机,平板或智能交互平板等。在本发明实施例中,以智能交互平板为第三方应用的页面状态信息获取终端设备为例进行描述,其中,智能交互平板可以是通过触控技术对显示在显示平板上的内容进行操控和实现人机交互操作的一体化设备,其集成了投影机、电子白板、幕布、音响、电视机以及视频会议终端等一种或多种功能。
在本发明实施例中,智能交互平板可与至少一个外部装置建立数据连接,也可以不与外部装置连接单独进行使用。若与外部设置连接,外部装置包括但不限于:触控笔、鼠标、其他通信终端。外部装置与智能交互平板的数据连接的通信方式实施例中不作限定,可以通过USB连接、互联网、局域网、蓝牙、Wi-Fi或紫峰协议(ZigBee)等通信方式。
在本发明实施例中,所述智能交互平板具有安卓操作系统,其安卓操作系统上安装有本地应用及第三方应用,需要说明的是,所述第三方应用为Office应用,以下以PowerPoint软件(PPT)对本发明的实施例进行说明。
在本发明实施例中,需要说明的是,在Android端,一般应用程序之间是互不感知的,Android为每一个应用程序分配了一个独立的虚拟机,不同的虚拟机在内存分配上有着不同的地址空间,这样两个互不相关的应用程序是无法感知到对方的进程状态,而且也不需要了解其他应用程序的进程状态。如果两个应用需要相互通信,那么必须要搭建两个应用的通信机制,当然,前提条件是两个应用程序都是可以控制的(这里的可控是指可以手动修改源代码)。然而对于第三方应用(如PPT),由于权限问题,是完全无法对其做任何操作。本地开发的应用如果要感知PPT的运行状态或者需要与PPT进行通信,以应用层面来说基本上不可能,Android系统为每一个应用分配唯一的UID,只有相同UID的应用才能实现通信,两个应用通过UID跑在同一个进程中是有要求的,需要两个应用有相同的UID跟签名,所以基于应用层面无法解决获取第三方应用的状态信息或者与第三方应用实现通信的问题,针对于上述问题,本发明从系统层面出发,提出了一种第三方应用的页面状态信息获取方法,通过修改所述智能平板中的安卓操作系统的源码使其能够实现本发明的内容,编译debug版本的安卓系统进行调试,系统调试步骤包括修改系统源代码→编译修改后的jar文件→导入系统进行分析验证。
请参阅图1,所述第三方应用的页面状态信息获取方法包括以下步骤:
S11,根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态;其中,所述播放view为用于承载所述第三方应用在播放状态下的内容展示的view。
在本发明实施例中,在通过解析PPT应用的结构以获取所述PPT应用中的播放view的第一资源ID之后,所述智能交互平板根据获取的待监控的PPT应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,所述播放view为所述PPT处于播放状态下的核心载体,所述播放view为用于承载所述第三方应用在播放状态下的内容展示的view,所述播放view的可见性就是判断PPT应用是否处于播放状态的标志,只要PPT应用处于播放状态,那么所述播放view处于可监控状态,当通过所述第一资源ID获取到所述播放view时,即可知道所述PPT应用的播放状态。
S12,根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述题view中提取所述第三方应用当前的页码信息;其中,所述第一资源ID以及所述第二资源ID通过解析所述第三方应用的结构获取。
在本发明实施例中,需要说明的是,当PPT应用处于播放状态后,页面的变化以及页码的变化感知力减弱。页面变化只是所述播放view的内容变化,而页码就是所述播放view中对应的资源索引,因此,监控播放后的内容变化根本获取不到页码。但发明人发现,当PPT进入播放状态的时候,会初始化一个标题view(即一个Banner),其里面显示的内容包括“启动幻灯片放映”、“第X张幻灯片,共X页”,所述标题view在刚进入PPT放映的时候显示,然后消失。每次切换PPT放映内容的时候,点击屏幕,所述标题view会再次显示,然后点击屏幕所述标题view会再次消失,但是当PPT内容变化的时候,所述标题view会主动消失,如果为了获取PPT页码而唤起所述标题view,一方面影响界面的美观性,另一方面PPT换页导致了过多的冗余操作,效果不佳。针对上述问题,所述智能交互平板通过解析所述PPT应用的结构以获取所述标题view对应的第二资源ID,然后根据获取的所述PPT应用的第二资源ID,对所述PPT应用中与所述第二资源ID对应的标题view进行监控,当PPT处于播放状态的时候调试系统获取所述标题view,以从所述标题view中提取所述第三方应用当前的页码信息,具体地,当监控到所述标题view的内容出现变化时,获取变化的内容,解析所述变化的内容即可提取需要的页码信息,所述变化的内容可以理解为所述标题view的属性,需要说明的是,所述标题view在所述第三方应用进入播放状态,或者所述第三方应用处于播放状态期间,在切换播放页面时可被监控到;所述标题view包括当前播放页面的索引信息;其中,所述索引信息包括页码信息。
S13,将所述第三方应用的播放状态及页码信息发送给需求应用。
在本发明实施例中,在获取所述PPT应用的播放状态及页码信息之后,所述智能交互平板通过安装的安卓系统将所述PPT应用的播放状态及页码信息发送给需求应用,需要说明的是,所述需求应用可为批注控件,以使得批注控件上的与所述PPT应用关联的批注文件能在PPT应用处于播放状态及切换页面时,根据所述PPT应用的播放状态及页码信息实现批注内容的关联切换,从而提高用户的使用体验。
综上所述,本发明第一实施例提供了一种第三方应用的页面状态信息获取方法,首先根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态,再根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息,最后将所述第三方应用的播放状态及页码信息发送给需求应用,通过修改系统源代码以使得安卓系统能够在不依赖于安装器也不涉及签名问题的情况下,以最低成本,且简单高效地获取第三方应用的页面状态信息,以使得所述需求应用与第三方应用实现联动,本申请获取第三方应用的页面状态信息的方法,实现成本低,无需其他应用进行交互,通用性广,可行性高,适用于Android平台下的各类产品。
本发明第二实施例:
在本发明第一实施例的基础上,还包括:
根据UI自动化程序转储视图层次结构(Dump View Hierarchy for UIAutomator)获取所述第三方应用的快照信息,以分析所述快照信息中所述第三方应用的界面中view的层级结构。
通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构。
根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在本发明实施例中,请参阅图2,利用Dump View Hierarchy for UI Automator可以来分析安装安卓操作系统的终端的应用当前界面的view的层级结构,所述智能交互平板首先通过UI自动化程序转储视图层次结构获取所述PPT应用的当前页面的快照信息,从所述快照信息中分析所述PPT应用的界面中view的层级结构,然后再通过反编译技术解析所述第三方应用的字节码文件,从中提取有用信息,以分析所述第三方应用的代码结构,最后所述智能交互平板根据所述PPT应用的所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
本发明第三实施例:
在本发明第一实施例的基础上,还包括:
根据Hierarchy View窗口监视器获取并分析所述第三方应用的界面中view的层级结构。
通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构。
根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在本发明实施例中,请参阅图3,利用Hierarchy View窗口监视器可以来分析安装安卓操作系统的终端中的应用界面的view的层级结构,所述智能交互平板首先通过Hierarchy View窗口监视器获取所述PPT应用的界面中view的层级结构进行逐步分析,然后再通过反编译技术解析所述第三方应用的字节码文件,从中提取有用信息,以分析所述第三方应用的代码结构,最后所述智能交互平板根据所述PPT应用的所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
本发明第四实施例:
在本发明第一实施例的基础上,所述S13具体为:
将所述第三方应用的播放状态及页码信息通过广播进行发送,以使注册了广播的需求应用监听到所述广播。
在本发明实施例中,需要说明的是,通过修改安卓操作系统源代码,开辟独立通道,以使得所述智能平板通过所述独立通道,根据获取的PPT应用的第一资源ID监控所述PPT应用的播放view,以获取所述PPT应用的播放状态,同时也根据获取的PPT应用的第二资源ID监控所述PPT应用的标题view,以从所述标题view的属性中提取所述PPT应用当前的页码信息;在需求应用端,如果需要监测PPT应用的播放状态,需要注册广播以监听指定的事件(Action),所述智能交互平板在通过独立通道获取到所述PPT应用的播放状态及页码信息之后,将所述PPT应用的播放状态及页码信息通过广播进行发送,注册了广播的需求应用只需要监听到该广播就可以获取所述PPT应用的播放状态及页码信息,从而根据获取的所述PPT应用的播放状态及页码信息进行相应操作,实现应用之间的连通性,使之能够更好地服务用户。
本发明第五实施例:
在本发明第一实施例的基础上,所述S13具体为:
将所述第三方应用的播放状态及页码信息,通过AccessibilityService功能发送给注册了AccessibilityService服务的需求应用;其中,对所述第三方应用的页码信息对应的AccessibilityService事件的发送条件进行修改,以使得安卓的辅助功能AccessibilityService服务能在所述标题view处于隐藏状态下,从所述标题view中获取所述第三方应用处于播放状态下的当前页码信息。
在本发明实施例中,利用AccessibilityService来监控获取PPT应用的页码信息及播放状态,并将页码信息和播放状态信息发送给应用程序。AccessibilityService是Android系统本身提供的服务,该服务继承Service类,其提供了增强的用户界面,旨在帮助残障人士或者无法与设备交互的人们设计的一种方案,通过AccessibilityService可以完全不需要在系统中重新创建一个通道来将PPT信息传递给其他应用,从本质上来说,AccessibilityService就是拦截到系统发出的一些事件(比如窗体状态的改变,通知栏状态的改变,View被点击了等等),当拦截到这些事件后,利用其与应用的交互方式将PPT的页面信息传递给应用程序,但发明人发现,当利用AccessibilityService传递PPT页码信息,是无法获取所述播放view的相关信息的,因为所述标题view在PPT正常播放状态时是不被监控到的,也就是说AccessibilityService只能感知到窗体状态的变化,所述标题view的变化对用户来说是不可见的,同样AccessibilityService在所述标题view不可见的状态下是拿不到所述标题view的节点信息。因此,本发明通过调试修改系统源码,使得AccessibilityService在发送节点信息的时候会根据View的可见性来创建对应的AccessibilityNodeInfo,然后修改所述标题view的AccessibilityService事件发送条件,修改为标题view在隐藏状态下也发送AccessibilityNodeInfo,从而可以获取到PPT页码信息与播放状态信息,所述智能交互平板通过安卓系统的AccessibilityService功能,根据获取的PPT应用的第一资源ID监控所述PPT应用的播放view,以获取所述PPT应用的播放状态,同时也根据获取的PPT应用的第二资源ID监控所述PPT应用的标题view,以从所述标题view的属性中提取所述PPT应用当前的页码信息。
在本发明实施例中,在需求应用端,如果需要监测所述PPT应用的播放状态,需要注册AccessibilityService服务,监测条件的设置根据需求而定,本发明对此不做任何限制,所述监测条件如点击事件、选择事件、状态栏改变事件、触摸事件等等,所述智能交互平板在通过AccessibilityService获取到所述PPT应用的播放状态及页码信息之后,将所述PPT应用的播放状态及页码信息通过AccessibilityService进行发送,注册了AccessibilityService服务的需求应用只需通过AccessibilityService服务的回调就可以获取所述PPT应用的播放状态及页码信息,从而根据获取的所述PPT应用的播放状态及页码信息进行相应操作,实现以更少的资源负载实现应用之间的连通性,避免多余的冗余操作,提高系统性能,使之能够更好地服务用户。
请参阅图4,本发明第六实施例提供了一种第三方应用的页面状态信息获取装置,包括:
播放状态获取模块11,用于根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态;其中,与所述第一资源ID相应的view为用于承载所述第三方应用播放状态下的内容展示的view。
页码信息提取模块12,用于根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息;其中,所述第一资源ID以及所述第二资源ID通过解析所述第三方应用的结构获取。
第三方信息发送模块13,用于将所述第三方应用的播放状态及页码信息发送给需求应用。
在第六实施例的第一种实现方式中,所述标题view在所述第三方应用进入播放状态,或者所述第三方应用处于播放状态期间,在切换播放页面时可被监控到;所述标题view包括当前播放页面的索引信息;其中,所述索引信息包括页码信息。
在第六实施例的第二种实现方式中,还包括:
第一层级结构分析模块,用于根据UI自动化程序转储视图层次结构(Dump ViewHierarchy for UI Automator)获取所述第三方应用的快照信息,以分析所述快照信息中所述第三方应用的界面中view的层级结构。
第一代码结构分析模块,用于通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构。
资源ID第一获取模块,用于根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在第六实施例的第三种实现方式中,还包括:
第二层级结构分析模块,用于根据Hierarchy View窗口监视器获取并分析所述第三方应用的界面中view的层级结构。
第二代码结构分析模块,用于通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构。
资源ID第二获取模块,用于根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
在第六实施例的第四种实现方式中,所述第三方信息发送模块13具体包括:
将所述第三方应用的播放状态及页码信息通过广播进行发送,以使注册了广播的需求应用监听到所述广播。
根据第六实施例的第一种实现方式,在第六实施例的第五种实现方式中,所述第三方信息发送模块13具体包括:
将所述第三方应用的播放状态及页码信息,通过AccessibilityService功能发送给注册了AccessibilityService服务的需求应用;其中,对所述第三方应用的页码信息对应的AccessibilityService事件的发送条件进行修改,以使得安卓的辅助功能AccessibilityService服务能在所述标题view处于隐藏状态下,从所述标题view中获取所述第三方应用处于播放状态下的当前页码信息。
根据第六实施例的以上任一种实现方式,在第六实施例的第六种实现方式中,所述第三方应用为Office应用;所述需求应用为批注控件。
请参阅图5,为本发明第七实施例提供的第三方应用的页面状态信息获取终端设备的示意图。该实施例的第三方应用的页面状态信息获取终端设备包括:处理器51、存储器52以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如第三方应用的页面状态信息获取程序。所述处理器执行所述计算机程序时实现上述各个第三方应用的页面状态信息获取方法实施例中的步骤,例如图1所示的步骤S11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如播放状态获取模块,所述第三方应用的页面状态信息获取终端设备中处理器51的数量可以是一个或者多个,图5中以一个处理器51为例,所述第三方应用的页面状态信息获取终端设备中存储器52的数量可以是一个或者多个,图5中以一个存储器52为例,所述书写笔记显示终端设备的处理器51、存储器52可以通过总线或者其他方式连接,图5中以通过总线连接为例。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述第三方应用的页面状态信息获取终端设备中的执行过程。
所述第三方应用的页面状态信息获取终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述第三方应用的页面状态信息获取终端设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,所述示意图仅仅是第三方应用的页面状态信息获取终端设备的示例,并不构成对第三方应用的页面状态信息获取终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述第三方应用的页面状态信息获取终端设备还可以包括输入输出设备、网络接入设备等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器51是所述第三方应用的页面状态信息获取终端设备的控制中心,利用各种接口和线路连接整个第三方应用的页面状态信息获取终端设备的各个部分。
所述存储器52可用于存储所述计算机程序和/或模块,所述处理器51通过运行或执行存储在所述存储器52内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述第三方应用的页面状态信息获取终端设备的各种功能。所述存储器52可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如广播功能、AccessibilityService功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如第三方应用的页码数据、播放状态数据等)等。此外,存储器52可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明第八实施例还提供了一种计算机可读存储介质,所述第三方应用的页面状态信息获取终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种第三方应用的页面状态信息获取方法,其特征在于,包括以下步骤:
根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态;其中,所述播放view为用于承载所述第三方应用在播放状态下的内容展示的view;
根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息;其中,所述第一资源ID以及所述第二资源ID通过解析所述第三方应用的结构获取;
将所述第三方应用的播放状态及页码信息发送给需求应用。
2.根据权利要求1所述的第三方应用的页面状态信息获取方法,其特征在于,
所述标题view在所述第三方应用进入播放状态,或者所述第三方应用处于播放状态期间,在切换播放页面时可被监控到;所述标题view包括当前播放页面的索引信息;其中,所述索引信息包括页码信息。
3.根据权利要求1所述的第三方应用的页面状态信息获取方法,其特征在于,还包括:
根据UI自动化程序转储视图层次结构(Dump View Hierarchy for UI Automator)获取所述第三方应用的快照信息,以分析所述快照信息中所述第三方应用的界面中view的层级结构;
通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构;
根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
4.根据权利要求1所述的第三方应用的页面状态信息获取方法,其特征在于,还包括:
根据Hierarchy View窗口监视器获取并分析所述第三方应用的界面中view的层级结构;
通过反编译技术解析所述第三方应用的字节码文件,以分析所述第三方应用的代码结构;
根据所述界面中view的层级结构及所述代码结构,获取所述第三方应用的与播放view对应的第一资源ID及与标题view对应的第二资源ID。
5.根据权利要求1所述的第三方应用的页面状态信息获取方法,其特征在于,所述将所述第三方应用的播放状态及页码信息发送给需求应用,具体为:
将所述第三方应用的播放状态及页码信息通过广播进行发送,以使注册了广播的需求应用监听到所述广播。
6.根据权利要求2所述的第三方应用的页面状态信息获取方法,其特征在于,所述将所述第三方应用的播放状态及页码信息发送给需求应用,具体为:
将所述第三方应用的播放状态及页码信息,通过AccessibilityService功能发送给注册了AccessibilityService服务的需求应用;其中,对所述第三方应用的页码信息对应的AccessibilityService事件的发送条件进行修改,以使得安卓的辅助功能AccessibilityService服务能在所述标题view处于隐藏状态下,从所述标题view中获取所述第三方应用处于播放状态下的当前页码信息。
7.根据权利要求1至6任意一项所述的第三方应用的页面状态信息获取方法,其特征在于,所述第三方应用为Office应用;所述需求应用为批注控件。
8.一种第三方应用的页面状态信息获取装置,其特征在于,包括:
播放状态获取模块,用于根据获取的待监控的第三方应用的第一资源ID,对所述第三方应用中与所述第一资源ID相应的播放view进行监控,以获取所述第三方应用的播放状态;其中,与所述第一资源ID相应的view为用于承载所述第三方应用播放状态下的内容展示的view;
页码信息提取模块,用于根据获取的所述第三方应用的第二资源ID,对所述第三方应用中与所述第二资源ID对应的标题view进行监控,以从所述标题view中提取所述第三方应用当前的页码信息;其中,所述第一资源ID以及所述第二资源ID通过解析所述第三方应用的结构获取;
第三方信息发送模块,用于将所述第三方应用的播放状态及页码信息发送给需求应用。
9.一种第三方应用的页面状态信息获取终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的第三方应用的页面状态信息获取方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的第三方应用的页面状态信息获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810626571.4A CN108875011B (zh) | 2018-06-15 | 2018-06-15 | 第三方应用的页面状态信息获取方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810626571.4A CN108875011B (zh) | 2018-06-15 | 2018-06-15 | 第三方应用的页面状态信息获取方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108875011A true CN108875011A (zh) | 2018-11-23 |
CN108875011B CN108875011B (zh) | 2021-03-09 |
Family
ID=64339536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810626571.4A Active CN108875011B (zh) | 2018-06-15 | 2018-06-15 | 第三方应用的页面状态信息获取方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108875011B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN110286958A (zh) * | 2019-06-20 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 节点信息获取方法、装置及存储介质 |
CN110554957A (zh) * | 2019-07-31 | 2019-12-10 | 北京三快在线科技有限公司 | 测试用户界面的方法、装置、电子设备及可读存储介质 |
CN116402026A (zh) * | 2023-04-13 | 2023-07-07 | 广州文石信息科技有限公司 | 应用内容批注方法、装置、设备以及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130268563A1 (en) * | 2012-04-10 | 2013-10-10 | Derek Shiell | Fast and Robust Classification Algorithm for Vein Recognition Using Infrared Images |
CN103581212A (zh) * | 2012-07-18 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 基于云端分析的表单自动填充方法、系统及装置 |
CN104064201A (zh) * | 2014-06-13 | 2014-09-24 | 广州视睿电子科技有限公司 | 数据同步方法和系统 |
CN105653284A (zh) * | 2015-12-29 | 2016-06-08 | Tcl集团股份有限公司 | 一种生成安卓平台的场景文件的方法和装置 |
US20160266735A1 (en) * | 2015-03-13 | 2016-09-15 | Antti TÖRRÖNEN | Defining position of embedded content on web page |
CN105991614A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种开放授权、资源访问的方法及装置、服务器 |
CN107301347A (zh) * | 2017-07-26 | 2017-10-27 | 南京邮电大学 | 一种基于静态分析获取Hbuilder App调用图的方法 |
CN107333095A (zh) * | 2017-08-08 | 2017-11-07 | 苏睿 | 媒体资源的处理系统 |
-
2018
- 2018-06-15 CN CN201810626571.4A patent/CN108875011B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130268563A1 (en) * | 2012-04-10 | 2013-10-10 | Derek Shiell | Fast and Robust Classification Algorithm for Vein Recognition Using Infrared Images |
CN103581212A (zh) * | 2012-07-18 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 基于云端分析的表单自动填充方法、系统及装置 |
CN104064201A (zh) * | 2014-06-13 | 2014-09-24 | 广州视睿电子科技有限公司 | 数据同步方法和系统 |
CN105991614A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种开放授权、资源访问的方法及装置、服务器 |
US20160266735A1 (en) * | 2015-03-13 | 2016-09-15 | Antti TÖRRÖNEN | Defining position of embedded content on web page |
CN105653284A (zh) * | 2015-12-29 | 2016-06-08 | Tcl集团股份有限公司 | 一种生成安卓平台的场景文件的方法和装置 |
CN107301347A (zh) * | 2017-07-26 | 2017-10-27 | 南京邮电大学 | 一种基于静态分析获取Hbuilder App调用图的方法 |
CN107333095A (zh) * | 2017-08-08 | 2017-11-07 | 苏睿 | 媒体资源的处理系统 |
Non-Patent Citations (2)
Title |
---|
可口可乐的围脖: "uiautomatorviewer二次开发之自动生成控件定位符", 《HTTPS://BLOG.CSDN.NET/WANGLHA/ARTICLE/DETAILS/》 * |
汤杨: "基于静态分析的Android动态测试方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814948A (zh) * | 2018-12-29 | 2019-05-28 | 360企业安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN109814948B (zh) * | 2018-12-29 | 2022-04-22 | 奇安信安全技术(珠海)有限公司 | 基于xposed框架对native层函数进行hook的方法、装置及电子装置 |
CN110286958A (zh) * | 2019-06-20 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 节点信息获取方法、装置及存储介质 |
CN110286958B (zh) * | 2019-06-20 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 节点信息获取方法、装置及存储介质 |
CN110554957A (zh) * | 2019-07-31 | 2019-12-10 | 北京三快在线科技有限公司 | 测试用户界面的方法、装置、电子设备及可读存储介质 |
CN110554957B (zh) * | 2019-07-31 | 2021-02-05 | 北京三快在线科技有限公司 | 测试用户界面的方法、装置、电子设备及可读存储介质 |
CN116402026A (zh) * | 2023-04-13 | 2023-07-07 | 广州文石信息科技有限公司 | 应用内容批注方法、装置、设备以及存储介质 |
CN116402026B (zh) * | 2023-04-13 | 2023-12-19 | 广州文石信息科技有限公司 | 应用内容批注方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108875011B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108875011A (zh) | 第三方应用的页面状态信息获取方法、装置、设备及介质 | |
US20190295127A1 (en) | Real-time monitoring of ads inserted in real-time into a web page | |
CN103927253B (zh) | 多浏览器兼容性测试方法及系统 | |
CN109918055B (zh) | 一种应用程序的生成方法及设备 | |
CN106326104B (zh) | 终端控件测试方法及装置 | |
CN104102578B (zh) | 测试方法及系统、操作端 | |
CN108958844A (zh) | 一种应用程序的控制方法及终端 | |
CN109165157B (zh) | 一种测试应用程序的方法及测试平台 | |
CN109800135A (zh) | 一种信息处理方法及终端 | |
CN109308241A (zh) | 监听应用程序启动流程方法、装置、终端设备和存储介质 | |
CN112187585A (zh) | 网络协议测试方法及装置 | |
CN107832350A (zh) | 一种web数据双向绑定的方法、装置、终端及存储介质 | |
CN108170497A (zh) | 一种页面渲染的方法及装置 | |
CN113868126A (zh) | 应用调试方法、装置、设备的存储介质 | |
CN109684571A (zh) | 一种数据采集方法及装置、存储介质 | |
CN113037545A (zh) | 网络仿真方法、装置、设备和存储介质 | |
US20200066304A1 (en) | Device-specific video customization | |
CN112000911A (zh) | 页面管理方法、装置、电子设备以及存储介质 | |
CN110928706B (zh) | 小程序交互方法、装置、电子设备及存储介质 | |
CN106855772A (zh) | 一种信息展示方法及装置 | |
WO2024104055A1 (zh) | 触控事件的处理方法及装置、存储介质、电子设备 | |
CN103677845A (zh) | 一种网站应用部署方法 | |
CN111200639B (zh) | 基于用户操作行为的信息推送方法、装置和电子设备 | |
Corno et al. | XDN: cross-device framework for custom notifications management | |
CN112131085A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |