CN106776247B - 一种监控应用中控件的方法、服务器及系统 - Google Patents

一种监控应用中控件的方法、服务器及系统 Download PDF

Info

Publication number
CN106776247B
CN106776247B CN201611037466.4A CN201611037466A CN106776247B CN 106776247 B CN106776247 B CN 106776247B CN 201611037466 A CN201611037466 A CN 201611037466A CN 106776247 B CN106776247 B CN 106776247B
Authority
CN
China
Prior art keywords
control
information
client
page
monitoring
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.)
Active
Application number
CN201611037466.4A
Other languages
English (en)
Other versions
CN106776247A (zh
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.)
Tengyun Tianyu Science & Technology Beijing Co ltd
Original Assignee
Tengyun Tianyu Science & Technology Beijing Co 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 Tengyun Tianyu Science & Technology Beijing Co ltd filed Critical Tengyun Tianyu Science & Technology Beijing Co ltd
Priority to CN201611037466.4A priority Critical patent/CN106776247B/zh
Publication of CN106776247A publication Critical patent/CN106776247A/zh
Application granted granted Critical
Publication of CN106776247B publication Critical patent/CN106776247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种监控应用中控件的方法、服务器及系统,该方法包括:接收第一客户端发送的与待监控应用中目标页面相关的页面信息集合,页面信息集合包括页面截图和页面控件信息,页面控件信息包括目标页面的视图树和控件属性信息;将视图树转化为渲染树,并生成可监控控件的标记信息;组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合并发送给第二客户端,指示第二客户端将标记出可监控控件的目标页面渲染出来;根据已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息并发送给第一客户端,指示第一客户端根据埋点配置信息在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。

Description

一种监控应用中控件的方法、服务器及系统
技术领域
本发明涉及互联网技术领域,特别涉及一种监控应用中控件的方法、服务器及系统。
背景技术
随着互联网技术和硬件技术的不断发展,越来越多的人开始使用如智能手机、平板电脑等移动终端设备。同时,移动互联网的广泛普及促使移动应用的发展更加迅猛,用户通过使用移动终端上安装的各类移动应用,进行阅读、聊天、购物等各项活动。为了进一步提升用户体验,提供更好的移动应用,需要了解用户对移动应用的使用情况以便改进应用性能。
现有的用户数据采集方法多为人工埋点,即由开发人员人工地定义控件所对应的统计逻辑,并将该统计逻辑写入该控件对应的代码里。当用户使用该控件时,可以通过埋点代码收集用户的行为数据。然而,人工埋点方式需要编写额外的埋点代码,费时费力且容易出错。当应用功能升级时,需要重新定义埋点逻辑并编写相应的埋点代码,一旦修改了埋点逻辑,还需要对整个应用版本进行升级,加大了开发及测试的工作量。
发明内容
为此,本发明提供一种监控应用中控件的方案,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种监控应用中控件的方法,适于在监控服务器中执行,监控服务器分别与第一客户端和第二客户端通信连接,该方法包括:接收第一客户端发送的与待监控应用中目标页面相关的页面信息集合,目标页面为待监控应用的当前页面,页面信息集合包括页面截图和页面控件信息,页面控件信息包括目标页面的视图树和控件属性信息;基于控件属性信息,将视图树转化为渲染树,并生成可监控控件的标记信息;组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合;将渲染信息集合发送给第二客户端,并指示第二客户端根据渲染信息集合将标记出可监控控件的目标页面渲染出来;根据接收到的第二客户端发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息;接收第一客户端发送的埋点配置信息请求,将埋点配置信息发送给第一客户端,并指示第一客户端根据埋点配置信息在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
可选地,在根据本发明的监控应用中控件的方法中,控件属性信息包括控件名称、控件ID、HashCode、位置、尺寸、可见性、父子关系和可点击性中的至少一种。
可选地,在根据本发明的监控应用中控件的方法中,基于控件属性信息,将视图树转化为渲染树息包括:从控件属性信息中获取控件的HashCode的值;根据控件的HashCode的值,将视图树转化为渲染树。
可选地,在根据本发明的监控应用中控件的方法中,根据接收到的第二客户端发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息包括:向接收到的第二客户端发送的已选定的可监控控件添加一条监控事件;对监控事件分配一个对应的监控事件ID;根据已选定的可监控控件及其控件属性信息,利用视图树生成查找该控件的路径信息;将已选定的可监控控件的监控事件信息、监控事件ID和路径信息组合生成埋点配置信息。
可选地,在根据本发明的监控应用中控件的方法中,接收第一客户端发送的埋点配置信息请求,将埋点配置信息发送给第一客户端包括:接收第一客户端发送的埋点配置信息请求;从接收到的第一客户端发送的埋点配置信息请求中获取第一配置信息版本号;获取监控服务器中埋点配置信息的第二配置信息版本号;若第二配置信息版本号高于第一配置信息版本号,则将埋点配置信息发送给第一客户端。
可选地,在根据本发明的监控应用中控件的方法中,还包括:若第二配置信息版本号不高于第一配置信息版本号,则向第一客户端发送暂不更新埋点配置信息的通知。
根据本发明的一个方面,提供一种监控应用中控件的方法,适于在监控控件系统中执行,监控控件系统包括监控服务器、第一客户端和第二客户端,其中,监控服务器分别与第一客户端和第二客户端通信连接,该方法包括:第一客户端对待监控应用的目标页面进行截图操作以获得页面截图,将页面截图和目标页面的页面控件信息组合生成页面信息集合,并发送给监控服务器,其中,目标页面为待监控应用的当前页面,页面控件信息包括目标页面的视图树和控件属性信息;监控服务器接收第一客户端发送的页面信息集合,基于控件属性信息,将视图树转化为渲染树,并生成可监控控件的标记信息,组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合,将渲染信息集合发送给第二客户端;第二客户端根据接收到的渲染信息集合,将标记出可监控控件的目标页面渲染出来,获取开发人员选定的可监控控件及其对应的监控事件信息并发送给监控服务器;监控服务器根据接收到的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息;第一客户端向监控服务器发送埋点配置信息请求;监控服务器根据接收到的埋点配置信息请求,将埋点配置信息发送给第一客户端;第一客户端根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
可选地,在根据本发明的监控应用中控件的方法中,第一客户端对待监控应用的目标页面进行截图操作以获取页面截图包括:获取待监控应用中目标页面的Activity组件;通过Activity组件来获取目标页面中视图树的根控件;调用根控件对应的截屏函数对目标页面进行屏幕截图以获取屏幕图片,并将屏幕图片保存为Bitmap类型对象;根据从屏幕图片的Bitmap类型对象中获取的图片缩放比例重新调整屏幕图片的宽高,以获取目标页面的页面截图。
可选地,在根据本发明的监控应用中控件的方法中,第二客户端根据接收到的渲染信息集合,将标记出可监控控件的目标页面渲染出来包括:从渲染信息集合中获取页面截图、渲染树、页面控件信息和标记信息;根据页面截图、渲染树、页面控件信息和标记信息,将标记出可监控控件的目标页面渲染出来。
可选地,在根据本发明的监控应用中控件的方法中,第一客户端根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控包括:根据接收到的埋点配置信息,对待监控应用中的控件进行匹配以查找选定的可监控控件;向查找到的选定的可监控控件添加埋点事件以便监控。
根据本发明的一个方面,提供一种监控服务器,分别与第一客户端和第二客户端通信连接,该监控服务器包括第一接收模块、信息处理模块、第一组合模块、第一发送模块、生成模块、第二接收模块和第二发送模块。其中,第一接收模块,适于接收第一客户端发送的与待监控应用中目标页面相关的页面数据,目标页面为待监控应用的当前页面,页面数据包括页面截图和页面控件信息,页面控件信息包括目标页面的视图树和控件属性信息;信息处理模块,适于基于控件属性信息,将视图树转化为渲染树,并生成可监控控件的标记信息;第一组合模块,适于组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合;第一发送模块,适于将渲染信息集合发送给第二客户端,并指示第二客户端根据渲染信息集合将标记出可监控控件的目标页面渲染出来;生成模块,适于根据接收到的第二客户端发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息;第二接收模块,适于接收第一客户端发送的埋点配置信息请求;第二发送模块,适于将埋点配置信息发送给第一客户端,并指示第一客户端根据埋点配置信息在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
根据本发明的又一个方面,提供一种监控控件系统,包括监控服务器、第一客户端和第二客户端,监控服务器分别与第一客户端和第二客户端通信连接,其中,第一客户端包括第一监控处理装置,第一监控处理装置包括截图模块、第二组合模块、第三发送模块、第四发送模块和埋点监控模块。其中,截图模块适于对待监控应用的目标页面进行截图操作以获得页面截图;第二组合模块适于将页面截图和目标页面的页面控件信息组合生成页面信息集合;第三发送模块适于向监控服务器发送页面信息集合;第四发送模块适于向监控服务器发送埋点配置信息请求;埋点监控模块适于根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
根据本发明的监控应用中控件的技术方案,将待监控应用中目标页面渲染到可供开发人员使用的终端设备中,根据开发人员对可监控控件的选定,在监控服务器之中生成埋点配置信息,从而实现了待监控控件与外部配置文件的关联,不需要在应用源文件中为待监控控件编写埋点监控代码,而是通过监控服务器来实现对控件的监听。当用户使用应用时,涉及到与待监控控件相关的操作一旦触发,监控服务器即可实时采集用户行为数据。上述监控应用控件的方法将埋点监控代码与应用源代码分离,减轻了应用开发人员的编码负担,随时埋点,即时生效。同时,埋点配置信息在服务器端进行配置,在更新配置信息时,无需对应用本身进行更新。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的监控控件系统100的示意图;
图2示出了根据本发明一个实施例的监控应用中控件的方法500的流程图;
图3示出了根据本发明一个实施例的待监控应用的目标页面的页面截图;
图4示出了根据本发明一个实施例的显示于第二客户端中根据渲染信息集合渲染的标记出可监控控件的目标页面;
图5示出了根据本发明又一个实施例的监控应用中控件的方法600的流程图;
图6示出了根据本发明一个实施例的监控服务器200的示意图;
图7示出了根据本发明一个实施例的第一监控处理装置700的示意图;以及
图8示出了根据本发明一个实施例的第二监控处理装置800的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的监控控件系统100的示意图。如图1所示,监控控件系统100中包括监控服务器200、第一客户端300和第二客户端400。其中,监控服务器200分别与第一客户端300和第二客户端400通信连接,第一客户端300为移动终端,可以是智能手机、平板电脑等,但不限于此,其数量也不做限制。第二客户端400为计算设备,如PC机等,也并不限于此,其数量也不进行限制。第一客户端300中安装有移动应用A,移动应用A即为待监控应用,第一客户端300对移动应用A中的当前页面进行截图操作以获得页面截图,将页面截图和当前页面的页面控件信息组合生成页面信息集合,并发送给监控服务器200,其中,页面控件信息包括目标页面的视图树和控件属性信息。监控服务器200接收到第一客户端A发送的页面信息集合后,基于控件属性信息将视图树转化为渲染树,并生成可监控控件的标记信息,组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合并发送给第二客户端400。第二客户端400根据接收到的渲染信息集合,将标记出可监控控件的目标页面渲染出来,获取开发人员选定的可监控控件及其对应的监控事件信息并发送给监控服务器200。监控服务器200根据接收到的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息,并根据接收到的第一客户端300发送的埋点配置信息请求,将埋点配置信息发送给第一客户端300。第一客户端300根据接收到的埋点配置信息,在移动应用A中查找到选定的可监控控件进行埋点处理以便监控。通过本监控控件系统100,当用户使用移动应用A时,监控服务器200可实时采集用户行为数据,而且埋点配置信息是在服务器端生成的,在更新时无需对移动应用A进行更新操作,降低了应用开发人员的工作负担。
图2示出了根据本发明一个实施例的监控应用中控件的方法500的流程图。监控应用中控件的方法500适于在监控服务器200中执行。
如图2所示,方法500适于步骤S510。在步骤S510中,接收第一客户端发送的与待监控应用中目标页面相关的页面信息集合,目标页面为待监控应用的当前页面,页面信息集合包括页面截图和页面控件信息,页面控件信息包括目标页面的视图树和控件属性信息。其中,控件属性信息包括控件名称、控件ID、HashCode、位置、尺寸、可见性、父子关系和可点击性中的至少一种。在本实施例中,待监控应用是名为Demo的移动应用,图3示出了根据本发明一个实施例的待监控应用的目标页面的页面截图,该页面截图中显示的移动应用Demo是在第一客户端300中执行,在移动应用Demo执行时对其当前页面进行截图获得了对应的页面截图,并由第一客户端300发送给监控服务器200。如图3所示,在移动应用Demo的当前页面的页面截图中,用户通过点击了“EVENTS”选项,在其下方展示出5个可供选择的选项,即“EVENT_1”、“EVENT_2”、“EVENT_MAP”、“INVOKE ERROR”和“CRASH”,这5个选项均对应为点击控件。
随后,进入步骤S520,基于控件属性信息,将视图树转化为渲染树,并生成可监控控件的标记信息。在将视图树转化为渲染树时,是先从控件属性信息中获取控件的HashCode的值,再根据该控件的HashCode的值,将视图树转化为渲染树。在本实施例中,首先遍历视图树中的所有元素,即从根控件开始,逐一向下查找子控件,在上述查找过程中,在各个父控件的控件属性信息中父子关系这一项,即Subviews字段里,记录当前控件的所有子控件的HashCode的值,再根据所有控件的HashCode的值来组织生成渲染树。同时,根据各个控件的控件属性信息中的可点击性,判断出该控件是否可监控,只有当可点击性为True时,其对应的控件才是可监控的。最后,将上述可监控控件的可点击性和该控件在当前页面中的位置组合生成标记信息。
在步骤S520中将视图树转化为渲染树并生成可监控控件的标记信息后,执行步骤S530,组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息组合。接下来,进入步骤S540,将步骤S530中生成的渲染信息集合发送给第二客户端,并指示第二客户端根据渲染信息集合将标记出可监控控件的目标页面渲染出来。在本实施例中,第二客户端400中安装有一个适于根据渲染信息组合渲染页面的渲染应用,这个渲染应用可以为浏览器,在第二客户端400中的渲染应用根据渲染信息集合渲染页面时,会利用页面控件信息中各控件的位置和标记信息,在渲染出的目标页面上将可监控控件进行标记,从而显示出标记有可监控控件的目标页面。在实际处理过程成,还可以通过不同颜色的矩形框将可监控控件进行进一步标记,以分辨出该可监控控件的当前状态,如黄色矩形框标记的控件代表当前控件可以被监控,但尚未被开发人员选定,蓝色矩形框标记的控件代表当前可监控控件已处于被监控中的状态,绿色矩形框标出的控件代表当前可监控控件已经被选定并且准备添加监控事件。图4示出了根据本发明一个实施例的显示于第二客户端中的根据渲染信息集合渲染的标记出可监控控件的目标页面。如图4所示,在第二客户端400中所显示的页面中,“EVENT_1”这个点击控件被黄色矩形框标记,说明“EVENT_1”可以被监控,而“EVENT_2”这个点击控件被绿色矩形框标记,说明“EVENT_2”已经被选定并且准备添加监控事件。需要说明的是,由于附图中无法显示彩色,标记“EVENT_1”和“EVENT_2”的矩形框均以灰色代替表示。
接下里,在步骤S550中,根据接收到的第二客户端发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息。首先,向接收到的第二客户端发送的已选定的可监控控件添加一条监控事件,再对监控事件分配一个对应的监控事件ID,根据已选定的可监控控件及其控件属性信息,利用视图树生成查找该控件的路径信息,最后将已选定的可监控控件的监控事件信息、监控事件ID和路径信息组合生成埋点配置信息。在本实施例中,监控服务器200根据当前已选定的可监控控件及其对应的监控信息事件,在之前接收到的第一客户端300所发送的视图树中查找该控件的位置,并根据该控件的HashCode的值找到该控件的父控件,再查找这个控件的父控件的父控件,知道找到视图树的根控件为止,基于上述查找的过程生成对应的查找路径,再结合各控件的控件属性信息形成对应的路径信息,将已选定的可监控控件的监控事件信息、监控事件ID和路径信息组合生成埋点配置信息,即生成一个路径表。路径表中包含有可监控控件的控件ID、控件名称、路径信息等,以下给出了一个路径表的示例,具体如下所示:
{
"id":"8cda1dd9f26349a3a9a7da6c83deecdb",
"name":"e2",
"type":"click",
"path":[{
"index":0,
"prefix":"shortest",
"id":16908290
},
{
"index":0,
"id_name":"android:tabhost"
},
{
"index":0,
"class":"android.widget.LinearLayout"
},
{
"index":0,
"id_name":"pager"
},
{
"index":0,
"class":"android.widget.LinearLayout"
},
{
"index":0,
"id_name":"button_test2"
}],
"target":null
}
在如上所示的路径表中,id表示监控服务器200为本次监控事件生成的监控事件ID,name表示已选定的可监控控件对应的监控事件信息,即为开发人员在第二客户端400所渲染出的页面中对已选定的可监控控件配置的监控事件别名,type表示要监控的事件类型,其值为“click”说明要监控的事件类型为点击事件,path表示路径信息,是查找控件所必须的信息,path中从上到下依次为视图层级结构中的最顶层到具体选定的控件。如path中第一个元素"id":16908290,代表当前页面中的根控件的id,"id_name":"button_test2"元素代表选定的可监控控件的控件ID,是开发人员在移动应用开发阶段设置的值。
最后,进入步骤S560,接收第一客户端发送的埋点配置信息请求,将埋点配置信息发送给第一客户端,并指示第一客户端根据埋点配置信息在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。首先,监控服务器接收第一客户端发送的埋点配置信息请求,从接收到的第一客户端发送的埋点配置信息请求中获取第一配置信息版本号,获取监控服务器中埋点配置信息的第二配置信息版本号,若第二配置信息版本号高于第一配置信息版本号,则将埋点配置信息发送给第一客户端,若第二配置信息版本号不高于第一配置信息版本号,则向第一客户端发送暂不更新埋点配置信息的通知。在本实施例中,第一客户端300发送的埋点配置信息请求中的第一配置信息版本号为1.3,监控服务器200中埋点配置信息的第二配置信息版本号为1.5,很明显,第二配置信息版本号高于第一配置信息版本号,因此,将监控服务器200中第二配置信息版本号为1.5的埋点配置信息发送给第一客户端300,进而指示第一客户端300根据埋点配置信息在待监控应用中查找到选定的可监控控件,以上述的路径表为示例,第一客户端300在查找选定的可监控控件的过程中,会检查每个控件与路径表中path的元素的对应关系,比如id、id_name或class的继承关系,如果做到对应的控件,再进一步搜索该控件的子控件,直到找到选定的可监控控件为止。在找到选定的可监控控件后,修改控件的AccessibilityDelegate对象,在回调方法中添加了埋点事件,使控件在页面中所显示的按钮每次触发点击事件的同时也会触发一次埋点事件,将该埋点事件记录下来,其对应的用户数据会在下次上报数据的时候发送到服务器端。
图5示出了根据本发明又一个实施例的监控应用中控件的方法600的流程图。监控应用中控件的方法600适于在监控控件系统100中执行。如图5所示,步骤S620、S640和S660是监控应用中控件的方法600中以监控服务器为执行主体的步骤,在方法500中已经进行了详细描述,此处不予以赘述。
方法600始于步骤S610,在步骤S610中,第一客户端对待监控应用的目标页面进行截图操作以获得页面截图,将页面截图和目标页面的页面控件信息组合生成页面信息集合,并发送给监控服务器,其中,目标页面为待监控应用的当前页面,页面控件信息包括目标页面的视图树和控件属性信息。对待监控应用的目标页面进行截图操作以获得页面截图时,首先获取待监控应用中目标页面的Activity组件,通过Activity组件来获取目标页面中视图树的根控件,调用根控件对应的截屏函数对目标页面进行屏幕截图以获取屏幕图片,并将屏幕图片保存为Bitmap类型对象,根据从屏幕图片的Bitmap类型对象中获取的图片缩放比例重新调整屏幕图片的宽高,以获取目标页面的页面截图。在本实施例中,第一客户端300中的待监控应用为移动应用Demo,当移动应用Demo启动后,会先通过WebSocket向服务端请求连接,等待连接成功后,第一客户端300开始执行截图操作。首先,获取移动应用Demo中当前页面的Activity组件,通过该Activity组件来调用mActivity.getWindow().getDecorView().getRootView()函数来获取当前视图树的根控件,并获取当前屏幕的大小,通过反射调用该根控件对应的截屏函数createSnapshot()方法对当前页面进行屏幕截图,以获取当前整体屏幕内容对应的屏幕图片,将该屏幕图片保存为Bitmap类型对象。如果通过上述方法没有获取到屏幕图片,则调用根控件的getDrawingCache()方法来进行获取。在得到屏幕图片的Bitmap类型对象后,从中获取屏幕密度Density,根据Density计算出当前屏幕图片的图片缩放比例,根据该比例重新调整屏幕图片的宽高,从而获取第一客户端300当前展示的整个界面的图片。图3示出了根据本发明一个实施例的待监控应用的目标页面的页面截图。如图3所示,在移动应用Demo的当前页面的页面截图中,用户通过点击了“EVENTS”选项,在其下方展示出5个可供选择的选项,即“EVENT_1”、“EVENT_2”、“EVENT_MAP”、“INVOKE ERROR”和“CRASH”,这5个选项均对应为点击控件。页面控件信息中的视图树是基于截图操作中获取到的当前页面的根控件,以该根控件为起始点进行子控件的查找而获取到的,在遍历视图树的过程中,会获取到每个控件的控件属性信息,控件属性信息包括控件名称、控件ID、HashCode、位置、尺寸、可见性、父子关系和可点击性中的至少一种,最终将视图树及各控件对应的控件属性信息组织成Json格式以形成页面控件信息,和页面截图一同生成页面信息集合后通过WebSocket发送给监控服务器200。
随后,进入步骤S620,监控服务器接收第一客户端发送的页面信息集合,基于控件属性信息,将视图树转化为渲染树,并生成可监控控件的标记信息,组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合,将渲染信息集合发送给第二客户端。在将视图树转化为渲染树时,是先从控件属性信息中获取控件的HashCode的值,再根据该控件的HashCode的值,将视图树转化为渲染树。在本实施例中,监控服务器200首先遍历视图树中的所有元素,即从根控件开始,逐一向下查找子控件,在上述查找过程中,在各个父控件的控件属性信息中父子关系这一项,即Subviews字段里,记录当前控件的所有子控件的HashCode的值,再根据所有控件的HashCode的值来组织生成渲染树。同时,根据各个控件的控件属性信息中的可点击性,判断出该控件是否可监控,只有当可点击性为True时,其对应的控件才是可监控的。最后,将上述可监控控件的可点击性和该控件在当前页面中的位置组合生成标记信息,并与页面截图、渲染树、页面控件信息进行组合生成渲染信息集合,再将渲染信息集合发送给第二客户端400。接下来,在步骤S630中,第二客户端根据接收到的渲染信息集合,将标记出可监控控件的目标页面渲染出来,获取开发人员选定的可监控控件及其对应的监控事件信息并发送给监控服务器。首先,第二客户端从渲染信息集合中获取页面截图、渲染树、页面控件信息和标记信息,再根据页面截图、渲染树、页面控件信息和标记信息,将标记出可监控控件的目标页面渲染出来。在本实施例中,第二客户端400中安装有一个适于根据渲染信息组合渲染页面的渲染应用,这个渲染应用可以为浏览器,在第二客户端400中的渲染应用根据渲染信息集合渲染页面时,会利用页面控件信息中各控件的位置和标记信息,在渲染出的目标页面上将可监控控件进行标记,从而显示出标记有可监控控件的目标页面。在实际处理过程成,还可以通过不同颜色的矩形框将可监控控件进行进一步标记,以分辨出该可监控控件的当前状态,如黄色矩形框标记的控件代表当前控件可以被监控,但尚未被开发人员选定,蓝色矩形框标记的控件代表当前可监控控件已处于被监控中的状态,绿色矩形框标出的控件代表当前可监控控件已经被选定并且准备添加监控事件。图4示出了根据本发明一个实施例的显示于第二客户端中的根据渲染信息集合渲染的标记出可监控控件的目标页面。如图4所示,在第二客户端400中所显示的页面中,“EVENT_1”这个点击控件被黄色矩形框标记,说明“EVENT_1”可以被监控,而“EVENT_2”这个点击控件被绿色矩形框标记,说明“EVENT_2”已经被选定并且准备添加监控事件。需要说明的是,由于附图中无法显示彩色,标记“EVENT_1”和“EVENT_2”的矩形框均以灰色代替表示。第二客户端400获取开发人员选定的可监控控件,比如开发人员在上述渲染出的页面中选定了“CRASH”,并对“CRASH”配置对应的监控事件别名作为监控事件信息,再将“CRASH”及其对应的监控事件信息发送给监控服务器200。
当已选定的可监控控件及其对应的监控事件信息发送给监控服务器后,执行步骤S640,监控服务器根据接收到的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息。在本实施例中,埋点配置信息即为路径表,包含有可监控控件的控件ID、控件名称、路径信息等,具体可参见方法500中步骤550给出的路径表示例,其中,id表示监控服务器200为本次监控事件生成的监控事件ID,name表示已选定的可监控控件对应的监控事件信息,即为开发人员在第二客户端400所渲染出的页面中对已选定的可监控控件配置的监控事件别名,type表示要监控的事件类型,其值为“click”说明要监控的事件类型为点击事件,path表示路径信息,是查找控件所必须的信息,path中从上到下依次为视图层级结构中的最顶层到具体选定的控件。如path中第一个元素"id":16908290,代表当前页面中的根控件的id,"id_name":"button_test2"元素代表选定的可监控控件的控件ID,是开发人员在移动应用开发阶段设置的值。
在步骤S650中,第一客户端向监控服务器发送埋点配置信息请求。在本实施例中,第一客户端300向监控服务器200发送埋点配置信息请求,埋点配置信息请求中可包括第一配置信息版本号,第一配置信息版本表示第一客户端300中当前埋点配置信息的版本。
随后,进入步骤S660,监控服务器根据接收到的埋点配置信息请求,将埋点配置信息发送给第一客户端。首先,从接收到的第一客户端发送的埋点配置信息请求中获取第一配置信息版本号,再获取监控服务器中埋点配置信息的第二配置信息版本号,若第二配置信息版本号高于第一配置信息版本号,则将埋点配置信息发送给第一客户端,若第二配置信息版本号不高于第一配置信息版本号,则向第一客户端发送暂不更新埋点配置信息的通知。在本实施例中,第一客户端300发送的埋点配置信息请求中包括有第一配置信息版本号,其值为1.3,而监控服务器200中埋点配置信息的第二配置信息版本号为1.5,很明显,第二配置信息版本号高于第一配置信息版本号,因此,将第二配置信息版本号为1.5的埋点配置信息发送给第一客户端300。
最后,在步骤S670中,第一客户端根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。首先,根据接收到的埋点配置信息,对待监控应用中的控件进行匹配以查找选定的可监控控件,再向查找到的选定的可监控控件添加埋点事件以便监控。在本实施例中,第一客户端300在查找选定的可监控控件的过程中,会检查每个控件与路径表中path的元素的对应关系,比如id、id_name或class的继承关系,如果做到对应的控件,再进一步搜索该控件的子控件,直到找到选定的可监控控件为止。在找到选定的可监控控件后,修改控件的AccessibilityDelegate对象,在回调方法中添加了埋点事件,使控件在页面中所显示的按钮每次触发点击事件的同时也会触发一次埋点事件,将该埋点事件记录下来,其对应的用户数据会在下次上报数据的时候发送到服务器端。
图6示出了根据本发明一个实施例的监控服务器200的示意图。如图6所示,监控服务器200分别与第一客户端300和第二客户端400通信连接,包括第一接收模块210、信息处理模块220、第一组合模块230、第一发送模块240、生成模块250、第二接收模块260和第二发送模块270。
第一接收模块210适于接收第一客户端300发送的与待监控应用中目标页面相关的页面数据,目标页面为待监控应用的当前页面,页面数据包括页面截图和页面控件信息,页面控件信息包括目标页面的视图树和控件属性信息。其中,控件属性信息包括控件名称、控件ID、HashCode、位置、尺寸、可见性、父子关系和可点击性中的至少一种。
信息处理模块220与第一接收模块210相连,适于基于第一接收模块210所接收到控件属性信息,将视图树转化为渲染树,并生成可监控控件的标记信息,进一步适于从控件属性信息中获取控件的HashCode的值,根据控件的HashCode的值,将视图树转化为渲染树。
第一组合模块230分别与第一接收模块210和信息处理模块220相连,适于组合页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合,其中页面截图和页面控件信息从第一接收模块210中获取,渲染树和标记信息从信息处理模块220中获取。
第一发送模块240与第一组合模块230相连,适于将渲染信息集合发送给第二客户端400,并指示第二客户端400根据渲染信息集合将标记出可监控控件的目标页面渲染出来。
生成模块250适于根据接收到的第二客户端400发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息,进一步适于向接收到的第二客户端400发送的已选定的可监控控件添加一条监控事件,对监控事件分配一个对应的监控事件ID,根据已选定的可监控控件及其控件属性信息,利用视图树生成查找该控件的路径信息,将已选定的可监控控件的监控事件信息、监控事件ID和路径信息组合生成埋点配置信息。
第二接收模块260适于接收第一客户端300发送的埋点配置信息请求。
第二发送模块270分别与生成模块250和第二接收模块260相连,适于在第二接收模块260接收到埋点配置信息请求后,将生成模块250所生成的埋点配置信息发送给第一客户端300,并指示第一客户端300根据埋点配置信息在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。第二发送模块270进一步适于从第二接收模块260接收到的第一客户端300发送的埋点配置信息请求中,获取第一配置信息版本号,获取监控服务器200中埋点配置信息的第二配置信息版本号,当第二配置信息版本号高于第一配置信息版本号时,将埋点配置信息发送给第一客户端300,当第二配置信息版本号不高于第一配置信息版本号时,向第一客户端300发送暂不更新埋点配置信息的通知。
图7示出了根据本发明一个实施例的第一监控处理装置700的示意图。如图7所示,第一监控处理装置700驻留在第一客户端300中,并与监控服务器200通信连接,其包括截图模块710、第二组合模块720、第三发送模块730、第四发送模块740和埋点监控模块750。
截图模块710适于对第一客户端300中待监控应用的目标页面进行截图操作以获得页面截图,进一步适于获取待监控控件中目标页面的Activity组件,通过Activity组件来获取目标页面中视图树的根控件,调用根控件对应的截屏函数对目标页面进行屏幕截图以获取屏幕图片,并将屏幕图片保存为Bitmap类型对象,根据从屏幕图片的Bitmap类型对象中获取的图片缩放比例重新调整屏幕图片的宽高,以获取目标页面的页面截图。
第二组合模块720与截图模块710相连,适于将截图模块710中获取的页面截图和目标页面的页面控件信息组合生成页面信息集合。
第三发送模块730与第二组合模块720相连,适于向监控服务器200发送第二组合模块720组合生成的页面信息集合。
第四发送模块740适于向监控服务器200发送埋点配置信息请求。
埋点监控模块750适于根据从监控服务器200接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控,进一步适于根据接收到的埋点配置信息,对待监控应用中的控件进行匹配以查找选定的可监控控件,向查找到的选定的可监控控件添加埋点事件以便监控。
图8示出了根据本发明一个实施例的第二监控处理装置800的示意图。如图8所示,第二监控处理装置800驻留在第二客户端400中,并与监控服务器200通信连接,其包括渲染模块810、获取模块820和第五发送模块830。
渲染模块810适于根据接收到的监控服务器200发送的渲染信息集合,将标记出可监控控件的目标页面渲染出来。
获取模块820适于获取开发人员在第二客户端400所渲染出的标记出可监控控件的目标页面中、选定的可监控控件及其对应的监控事件信息;
第五发送模块830与获取模块820相连,适于向监控服务器200发送从获取模块820中获取的已选定的可监控控件及其对应的监控事件信息。
关于监控应用中控件的具体步骤以及实施例,在基于图1~5的描述中已经详细公开,此处不再赘述。
现有的监控应用中控件的方法,多是由开发人员人工地定义控件所对应的统计逻辑,并将该统计逻辑写入该控件对应的代码里,当应用功能升级时,需要重新定义埋点逻辑并编写相应的埋点代码,费时费力且容易出错。根据本发明的监控应用中控件的技术方案,将待监控应用中目标页面渲染到可供开发人员使用的终端设备中,根据开发人员对可监控控件的选定,在监控服务器之中生成埋点配置信息,从而实现了待监控控件与外部配置文件的关联,不需要在应用源文件中为待监控控件编写埋点监控代码,而是通过监控服务器来实现对控件的监听。当用户使用应用时,涉及到与待监控控件相关的操作一旦触发,监控服务器即可实时采集用户行为数据。上述监控应用控件的方法将埋点监控代码与应用源代码分离,减轻了开发人员的编码负担,随时埋点,即时生效。同时,埋点配置信息在服务器端进行配置,在更新配置信息时,无需对应用本身进行更新。
B8.如B7所述的方法,所述第一客户端对待监控应用的目标页面进行截图操作以获取页面截图包括:
获取待监控应用中目标页面的Activity组件;
通过所述Activity组件来获取目标页面中视图树的根控件;
调用所述根控件对应的截屏函数对目标页面进行屏幕截图以获取屏幕图片,并将所述屏幕图片保存为Bitmap类型对象;
根据从屏幕图片的Bitmap类型对象中获取的图片缩放比例重新调整屏幕图片的宽高,以获取目标页面的页面截图。
B9.如B7或8所述的方法,所述第二客户端根据接收到的所述渲染信息集合,将标记出可监控控件的目标页面渲染出来包括:
从所述渲染信息集合中获取所述页面截图、渲染树、页面控件信息和标记信息;
根据所述所述页面截图、渲染树、页面控件信息和标记信息,将标记出可监控控件的目标页面渲染出来。
B10.如B7-9中任一项所述的方法,所述第一客户端根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控包括:
根据接收到的埋点配置信息,对待监控应用中的控件进行匹配以查找选定的可监控控件;
向查找到的选定的可监控控件添加埋点事件以便监控。
C12.如C11所述的监控服务器,其中所述控件属性信息包括控件名称、控件ID、HashCode、位置、尺寸、可见性、父子关系和可点击性中的至少一种。
C13.如C12所述的监控服务器,所述信息处理模块进一步适于:
从所述控件属性信息中获取控件的HashCode的值;
根据所述控件的HashCode的值,将所述视图树转化为渲染树。
C14.如C11-13中任一项所述的监控服务器,所述生成模块进一步适于:
向接收到的第二客户端发送的已选定的可监控控件添加一条监控事件;
对所述监控事件分配一个对应的监控事件ID;
根据已选定的可监控控件及其控件属性信息,利用所述视图树生成查找该控件的路径信息;
将所述已选定的可监控控件的监控事件信息、监控事件ID和路径信息组合生成埋点配置信息。
C15.如C11-14中任一项所述的监控服务器,所述第二发送模块进一步适于:
从接收到的第一客户端发送的埋点配置信息请求中获取第一配置信息版本号;
获取监控服务器中埋点配置信息的第二配置信息版本号;
当所述第二配置信息版本号高于所述第一配置信息版本号时,将所述埋点配置信息发送给第一客户端。
C16.如C15所述的监控服务器,所述第二发送模块进一步适于:
当所述第二配置信息版本号不高于所述第一配置信息版本号时,向第一客户端发送暂不更新埋点配置信息的通知。
D18.如D17所述的监控控件系统,所述截图模块进一步适于:
获取所述待监控控件中目标页面的Activity组件;
通过所述Activity组件来获取目标页面中视图树的根控件;
调用所述根控件对应的截屏函数对目标页面进行屏幕截图以获取屏幕图片,并将所述屏幕图片保存为Bitmap类型对象;
根据从屏幕图片的Bitmap类型对象中获取的图片缩放比例重新调整屏幕图片的宽高,以获取目标页面的页面截图。
D19.如D17或18所述的监控控件系统,所述埋点监控模块进一步适于:
根据接收到的埋点配置信息,对待监控应用中的控件进行匹配以查找选定的可监控控件;
向查找到的选定的可监控控件添加埋点事件以便监控。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (20)

1.一种监控应用中控件的方法,适于在监控服务器中执行,所述监控服务器分别与第一客户端和第二客户端通信连接,所述方法包括:
接收第一客户端发送的与待监控应用中目标页面相关的页面信息集合,所述目标页面为所述待监控应用的当前页面,所述页面信息集合包括页面截图和页面控件信息,所述页面控件信息包括目标页面的视图树和控件属性信息;
基于所述控件属性信息,将所述视图树转化为渲染树,并生成可监控控件的标记信息,其中根据控件属性信息中的可点击性,来确定控件是否可监控;
组合所述页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合;
将所述渲染信息集合发送给第二客户端,并指示第二客户端根据所述渲染信息集合将标记出可监控控件的目标页面渲染出来,以便开发人员在目标页面中选定可监控控件及其对应的监控事件信息;
根据接收到的第二客户端发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息;
接收第一客户端发送的埋点配置信息请求,将所述埋点配置信息发送给第一客户端,并指示所述第一客户端根据所述埋点配置信息在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
2.如权利要求1所述的方法,其中所述控件属性信息包括控件名称、控件ID、HashCode、位置、尺寸、可见性、父子关系和可点击性中的至少一种。
3.如权利要求2所述的方法,所述基于所述控件属性信息,将所述视图树转化为渲染树息包括:
从所述控件属性信息中获取控件的HashCode的值;
根据所述控件的HashCode的值,将所述视图树转化为渲染树。
4.如权利要求1-3中任一项所述的方法,所述根据接收到的第二客户端发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息包括:
向接收到的第二客户端发送的已选定的可监控控件添加一条监控事件;
对所述监控事件分配一个对应的监控事件ID;
根据已选定的可监控控件及其控件属性信息,利用所述视图树生成查找该控件的路径信息;
将所述已选定的可监控控件的监控事件信息、监控事件ID和路径信息组合生成埋点配置信息。
5.如权利要求1-3中任一项所述的方法,所述接收第一客户端发送的埋点配置信息请求,将所述埋点配置信息发送给第一客户端包括:
接收第一客户端发送的埋点配置信息请求;
从接收到的第一客户端发送的埋点配置信息请求中获取第一配置信息版本号;
获取监控服务器中埋点配置信息的第二配置信息版本号;
若所述第二配置信息版本号高于所述第一配置信息版本号,则将所述埋点配置信息发送给第一客户端。
6.如权利要求5所述的方法,还包括:
若所述第二配置信息版本号不高于所述第一配置信息版本号,则向第一客户端发送暂不更新埋点配置信息的通知。
7.一种监控应用中控件的方法,适于在监控控件系统中执行,所述监控控件系统包括监控服务器、第一客户端和第二客户端,其中,所述监控服务器分别与第一客户端和第二客户端通信连接,所述第二客户端为将待监控应用中目标页面渲染出来的终端设备,所述方法包括:
第一客户端对待监控应用的目标页面进行截图操作以获得页面截图,将所述页面截图和目标页面的页面控件信息组合生成页面信息集合,并发送给监控服务器,其中,所述目标页面为所述待监控应用的当前页面,所述页面控件信息包括目标页面的视图树和控件属性信息;
监控服务器接收第一客户端发送的所述页面信息集合,基于所述控件属性信息,将所述视图树转化为渲染树,并生成可监控控件的标记信息,组合所述页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合,将所述渲染信息集合发送给第二客户端;
第二客户端根据接收到的所述渲染信息集合,将标记出可监控控件的目标页面渲染出来,获取开发人员选定的可监控控件及其对应的监控事件信息并发送给监控服务器;
监控服务器根据接收到的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息;
第一客户端向监控服务器发送埋点配置信息请求;
监控服务器根据接收到的埋点配置信息请求,将所述埋点配置信息发送给第一客户端;
第一客户端根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
8.如权利要求7所述的方法,所述第一客户端对待监控应用的目标页面进行截图操作以获取页面截图包括:
获取待监控应用中目标页面的Activity组件;
通过所述Activity组件来获取目标页面中视图树的根控件;
调用所述根控件对应的截屏函数对目标页面进行屏幕截图以获取屏幕图片,并将所述屏幕图片保存为Bitmap类型对象;
根据从屏幕图片的Bitmap类型对象中获取的图片缩放比例重新调整屏幕图片的宽高,以获取目标页面的页面截图。
9.如权利要求7或8所述的方法,所述第二客户端根据接收到的所述渲染信息集合,将标记出可监控控件的目标页面渲染出来包括:
从所述渲染信息集合中获取所述页面截图、渲染树、页面控件信息和标记信息;
根据所述页面截图、渲染树、页面控件信息和标记信息,将标记出可监控控件的目标页面渲染出来。
10.如权利要求7或8所述的方法,所述第一客户端根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控包括:
根据接收到的埋点配置信息,对待监控应用中的控件进行匹配以查找选定的可监控控件;
向查找到的选定的可监控控件添加埋点事件以便监控。
11.一种监控服务器,分别与第一客户端和第二客户端通信连接,所述监控服务器包括:
第一接收模块,适于接收第一客户端发送的与待监控应用中目标页面相关的页面数据,所述目标页面为所述待监控应用的当前页面,所述页面数据包括页面截图和页面控件信息,所述页面控件信息包括目标页面的视图树和控件属性信息;
信息处理模块,适于基于所述控件属性信息,将所述视图树转化为渲染树,并生成可监控控件的标记信息,其中根据控件属性信息中的可点击性,来确定控件是否可监控;
第一组合模块,适于组合所述页面截图、渲染树、页面控件信息和标记信息来生成渲染信息集合;
第一发送模块,适于将所述渲染信息集合发送给第二客户端,并指示第二客户端根据所述渲染信息集合将标记出可监控控件的目标页面渲染出来,以便开发人员在目标页面中选定可监控控件及其对应的监控事件信息;
生成模块,适于根据接收到的第二客户端发送的已选定的可监控控件及其对应的监控事件信息,生成埋点配置信息;
第二接收模块,适于接收第一客户端发送的埋点配置信息请求;
第二发送模块,适于将所述埋点配置信息发送给第一客户端,并指示所述第一客户端根据所述埋点配置信息在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
12.如权利要求11所述的监控服务器,其中所述控件属性信息包括控件名称、控件ID、HashCode、位置、尺寸、可见性、父子关系和可点击性中的至少一种。
13.如权利要求12所述的监控服务器,所述信息处理模块进一步适于:
从所述控件属性信息中获取控件的HashCode的值;
根据所述控件的HashCode的值,将所述视图树转化为渲染树。
14.如权利要求11-13中任一项所述的监控服务器,所述生成模块进一步适于:
向接收到的第二客户端发送的已选定的可监控控件添加一条监控事件;
对所述监控事件分配一个对应的监控事件ID;
根据已选定的可监控控件及其控件属性信息,利用所述视图树生成查找该控件的路径信息;
将所述已选定的可监控控件的监控事件信息、监控事件ID和路径信息组合生成埋点配置信息。
15.如权利要求11-13中任一项所述的监控服务器,所述第二发送模块进一步适于:
从接收到的第一客户端发送的埋点配置信息请求中获取第一配置信息版本号;
获取监控服务器中埋点配置信息的第二配置信息版本号;
当所述第二配置信息版本号高于所述第一配置信息版本号时,将所述埋点配置信息发送给第一客户端。
16.如权利要求15所述的监控服务器,所述第二发送模块进一步适于:
当所述第二配置信息版本号不高于所述第一配置信息版本号时,向第一客户端发送暂不更新埋点配置信息的通知。
17.一种监控控件系统,包括监控服务器、第一客户端和第二客户端,所述监控服务器分别与第一客户端和第二客户端通信连接,其中,所述第一客户端包括第一监控处理装置,所述第一监控处理装置包括:
截图模块,适于对待监控应用的目标页面进行截图操作以获得页面截图;
第二组合模块,适于将所述页面截图和目标页面的页面控件信息组合生成页面信息集合;
第三发送模块,适于向监控服务器发送所述页面信息集合;
第四发送模块,适于向监控服务器发送埋点配置信息请求;
埋点监控模块,适于根据接收到的埋点配置信息,在待监控应用中查找到选定的可监控控件进行埋点处理以便监控。
18.如权利要求17所述的监控控件系统,所述截图模块进一步适于:
获取所述待监控应用中目标页面的Activity组件;
通过所述Activity组件来获取目标页面中视图树的根控件;
调用所述根控件对应的截屏函数对目标页面进行屏幕截图以获取屏幕图片,并将所述屏幕图片保存为Bitmap类型对象;
根据从屏幕图片的Bitmap类型对象中获取的图片缩放比例重新调整屏幕图片的宽高,以获取目标页面的页面截图。
19.如权利要求17或18所述的监控控件系统,所述埋点监控模块进一步适于:
根据接收到的埋点配置信息,对待监控应用中的控件进行匹配以查找选定的可监控控件;
向查找到的选定的可监控控件添加埋点事件以便监控。
20.如权利要求17或18所述的监控控件系统,所述第二客户端包括第二监控处理装置,所述第二监控处理装置包括:
渲染模块,适于根据接收到的渲染信息集合,将标记出可监控控件的目标页面渲染出来;
获取模块,适于获取开发人员选定的可监控控件及其对应的监控事件信息;
第五发送模块,适于向监控服务器发送已选定的可监控控件及其对应的监控事件信息。
CN201611037466.4A 2016-11-23 2016-11-23 一种监控应用中控件的方法、服务器及系统 Active CN106776247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611037466.4A CN106776247B (zh) 2016-11-23 2016-11-23 一种监控应用中控件的方法、服务器及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611037466.4A CN106776247B (zh) 2016-11-23 2016-11-23 一种监控应用中控件的方法、服务器及系统

Publications (2)

Publication Number Publication Date
CN106776247A CN106776247A (zh) 2017-05-31
CN106776247B true CN106776247B (zh) 2020-07-14

Family

ID=58973800

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611037466.4A Active CN106776247B (zh) 2016-11-23 2016-11-23 一种监控应用中控件的方法、服务器及系统

Country Status (1)

Country Link
CN (1) CN106776247B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368293B (zh) * 2017-05-24 2020-06-16 阿里巴巴集团控股有限公司 页面结构生成方法、页面截图上报方法、装置及系统
CN109145231A (zh) * 2017-06-27 2019-01-04 阿里巴巴集团控股有限公司 一种界面元素标识符的生成方法、装置以及电子设备
CN109213652A (zh) * 2017-06-30 2019-01-15 北京嘀嘀无限科技发展有限公司 用户行为数据采集方法和装置
CN107491488B (zh) * 2017-07-18 2020-05-01 北京京东尚科信息技术有限公司 页面数据采集的方法和装置
CN109829121B (zh) * 2017-08-22 2021-07-06 北京京东尚科信息技术有限公司 一种点击行为数据上报的方法和装置
CN107562620B (zh) * 2017-08-24 2020-06-30 阿里巴巴集团控股有限公司 一种埋点自动设置方法和装置
CN107818163B (zh) * 2017-11-01 2019-03-29 平安科技(深圳)有限公司 页面展示方法、装置、计算机设备和存储介质
CN107861655B (zh) * 2017-11-01 2020-07-07 平安科技(深圳)有限公司 控件匹配方法、装置、计算机设备和存储介质
CN107818162B (zh) * 2017-11-01 2019-02-01 平安科技(深圳)有限公司 埋点处理方法、装置、计算机设备和存储介质
CN107832218B (zh) * 2017-11-10 2019-03-12 平安科技(深圳)有限公司 动态页面中的埋点处理方法、装置和计算机设备
CN107894945A (zh) * 2017-11-17 2018-04-10 深圳市泉眼网络科技有限公司 埋点添加方法、移动终端及计算机可读存储介质
CN107909494B (zh) * 2017-12-08 2020-07-21 中国平安财产保险股份有限公司 保险数据信息的配置方法、装置、计算机设备和存储介质
CN108304176B (zh) * 2017-12-14 2021-09-07 广东数果科技有限公司 一种跨平台移动终端的可视化埋点方法
CN108182060B (zh) * 2018-01-31 2020-11-27 北京腾云天下科技有限公司 一种混合应用的埋点方法、移动终端及系统
CN109739717B (zh) * 2018-04-12 2021-01-26 京东方科技集团股份有限公司 一种页面数据采集的方法及装置、服务器
CN109302340B (zh) * 2018-10-25 2021-02-12 金瓜子科技发展(北京)有限公司 一种埋点数据上报方法、装置及计算机可读存储介质
CN109542440A (zh) * 2018-11-29 2019-03-29 金蝶软件(中国)有限公司 对窗口的操作方法和装置、计算机装置及可读存储介质
CN111581567B (zh) * 2019-02-18 2023-03-28 阿里巴巴集团控股有限公司 一种页面生成方法及装置
CN109918070A (zh) * 2019-03-30 2019-06-21 佛山点度物联科技有限公司 一种平台基于浏览器的自定义监控组态的系统及方法
CN110059282A (zh) * 2019-04-23 2019-07-26 北京奇艺世纪科技有限公司 一种交互类数据的获取方法及系统
CN113127771A (zh) * 2019-05-30 2021-07-16 北京腾云天下科技有限公司 应用埋点方法、装置、计算设备和系统
CN110489105B (zh) * 2019-07-19 2022-07-29 厦门美柚股份有限公司 一种可视化埋点的设置方法、系统、设备及其存储介质
CN110457035A (zh) * 2019-07-23 2019-11-15 厦门美柚信息科技有限公司 一种场景化信息的设置方法、系统、设备及其存储介质
CN110399067A (zh) * 2019-07-31 2019-11-01 江苏满运软件科技有限公司 可视化埋点方法、装置、电子设备、存储介质
CN110647438B (zh) * 2019-08-13 2022-03-15 平安科技(深圳)有限公司 事件监控方法、装置、计算机设备和存储介质
CN110659191B (zh) * 2019-09-02 2023-07-18 深圳市铭数信息有限公司 埋点数据分析方法、装置、计算机设备和存储介质
CN110851326A (zh) * 2019-11-08 2020-02-28 浙江每日互动网络科技股份有限公司 一种埋点方法、数据采集方法和装置
CN111581067B (zh) * 2020-04-21 2023-08-15 北京龙云科技有限公司 一种数据采集方法和装置
CN113448832B (zh) * 2020-06-18 2024-03-12 北京新氧科技有限公司 一种控件曝光检测方法及应用程序运行监测系统
CN111857720B (zh) * 2020-07-31 2023-08-22 抖音视界有限公司 用户界面状态信息的生成方法、装置、电子设备及介质
CN112394908A (zh) * 2020-11-19 2021-02-23 平安普惠企业管理有限公司 埋点页面自动生成的方法、装置、计算机设备及存储介质
CN112988532B (zh) * 2021-01-27 2022-07-29 腾讯科技(深圳)有限公司 埋点事件的上报方法、装置、服务器及存储介质
CN117075786A (zh) * 2023-07-12 2023-11-17 荣耀终端有限公司 一种页面显示方法及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016558A (en) * 1997-12-09 2000-01-18 Electronics And Telecommunications Research Institute Communication event/message tracing method for RPC-based distribution processing program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090164034A1 (en) * 2007-12-19 2009-06-25 Dopetracks, Llc Web-based performance collaborations based on multimedia-content sharing
CN101662493B (zh) * 2008-08-25 2012-10-03 阿里巴巴集团控股有限公司 一种用户访问路径的数据采集方法、系统及服务器
US20120260158A1 (en) * 2010-08-13 2012-10-11 Ryan Steelberg Enhanced World Wide Web-Based Communications
CN104572043B (zh) * 2013-10-16 2018-01-19 阿里巴巴集团控股有限公司 一种对客户端应用的控件进行实时埋点的方法及装置
US9703662B2 (en) * 2014-08-12 2017-07-11 Xiaomi Inc. Method for controlling plug-in by a router and the router thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016558A (en) * 1997-12-09 2000-01-18 Electronics And Telecommunications Research Institute Communication event/message tracing method for RPC-based distribution processing program

Also Published As

Publication number Publication date
CN106776247A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106776247B (zh) 一种监控应用中控件的方法、服务器及系统
CN106933722B (zh) 一种网页应用监控方法、服务器和系统
CN108182060B (zh) 一种混合应用的埋点方法、移动终端及系统
CN110008045B (zh) 微服务的聚合方法、装置、设备及存储介质
CN109901834B (zh) 文档页面生成方法、装置、计算机设备和存储介质
KR20210040321A (ko) 지도 서비스 테스트 방법 및 장치
KR20080053293A (ko) 클라이언트 스크립트 웹 페이지에 대한 서버측 초기 콘텐츠렌더링
CN110119294A (zh) 菜单页面的生成方法、装置及系统
KR20110052521A (ko) 정보 처리 장치, 통신 시스템, 컴퓨터 판독 가능 매체 및 정보 처리 방법
US10152405B2 (en) Application testing system and method
WO2011151112A1 (en) Method and system for executing a graphics application
CN113010395A (zh) 数据采集方法、装置、设备、介质和程序产品
CN114036439A (zh) 网站搭建方法、装置、介质及电子设备
CN110515514B (zh) 一种数据处理方法、装置及存储介质
CN111767229A (zh) 性能测试方法、装置和设备
US11853685B2 (en) Transformation of resource files using mapped keys for tracking content location
CN111061522A (zh) 基于后端生成前端卡片组件的方法、装置、设备及存储介质
KR20180076020A (ko) 애플리케이션 테스트 자동화 장치 및 방법
CN113220381A (zh) 一种点击数据展示方法和装置
Kumar et al. A brief investigation on web usage mining tools (WUM)
CN111782992B (zh) 显示控制方法、装置、设备及可读存储介质
CN101772196A (zh) 处理移动终端发送的信息的方法和系统以及代理服务器
CN105450501A (zh) 设置定制化回复功能的方法及装置
CN113961835A (zh) 数据处理方法、装置、电子设备及存储介质
JP2018116394A (ja) 操作自動化装置

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
TR01 Transfer of patent right

Effective date of registration: 20220517

Address after: Room 1401, building 5, pinshang commercial center, No. 1168, Xiangcheng Avenue, Yuanhe street, Xiangcheng District, Suzhou, Jiangsu 215133

Patentee after: Tengyun Tianyu Technology (Suzhou) Co.,Ltd.

Address before: 608, 6th floor, aviation service building, building 2, yard 39, dongzhimenwai street, Dongcheng District, Beijing 100027

Patentee before: TENGYUN TIANYU SCIENCE & TECHNOLOGY (BEIJING) CO.,LTD.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240428

Address after: Units 1-8-10-11, Room 201, 2nd Floor, Building 3, Yard 8, Xinyuan South Road, Chaoyang District, Beijing, 100027

Patentee after: TENGYUN TIANYU SCIENCE & TECHNOLOGY (BEIJING) CO.,LTD.

Country or region after: China

Address before: Room 1401, building 5, pinshang commercial center, No. 1168, Xiangcheng Avenue, Yuanhe street, Xiangcheng District, Suzhou, Jiangsu 215133

Patentee before: Tengyun Tianyu Technology (Suzhou) Co.,Ltd.

Country or region before: China