一种对应用程序进行远程问题定位的方法及装置制造方法

文档序号:6636294阅读:261来源:国知局
一种对应用程序进行远程问题定位的方法及装置制造方法
【专利摘要】本发明实施例公开了一种对应用程序进行远程问题定位的方法及装置,根据服务器获取的第一终端设备的硬件信息、操作系统和第一应用程序的版本信息,建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机,在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作,获取第一应用程序运行时产生的日志信息并输出,以实现对第一应用程序出现问题的位置进行远程定位。应用本发明,不需要通过和用户多次进行沟通来对第一应用程序出现的问题进行复现,减少了沟通的成本,实现了远程对问题出现的位置进行定位,提高了定位的效率。
【专利说明】一种对应用程序进行远程问题定位的方法及装置

【技术领域】
[0001]本发明涉及对应用程序进行问题定位的【技术领域】,特别涉及一种对应用程序进行远程问题定位的方法及装置。

【背景技术】
[0002]随着科技的发展,终端设备得到了广泛的使用,安装在终端设备中的应用软件种类也越来越丰富。当用户在使用终端设备中的软件过程时,可能在应用程序运行时会出现一些问题,比如,界面显示黑屏、应用软件强制退出等。为了找出应用程序运行时出现这些问题的具体位置,常常通过用户反馈的信息对应用程序进行定位。
[0003]在现有技术的定位方案中,有两种方案对用户的设备进行定位。一种方案是应用程序开发人员通过和用户进行电话沟通,或者是通过其他通信方式,比如,QQ、MSN等聊天工具进行沟通,并通过用户反馈的信息对应用程序进行定位;另一种方案是通过获得用户抓取的应用程序运行时记录的日志信息,日志信息是一种特殊的信息,它记录着操作系统中所发生的操作信息,如各种系统服务的启动、运行、关闭等信息。应用程序开发人员根据获得的用户抓取的应用程序运行时产生的日志信息,对应用程序进行定位。这两种方案在一定程度上可以解决对应用程序进行定位的问题,但同时也存在着以下几点缺点:
[0004]首先,在利用电话、QQ、MSN等工具和用户进行沟通的过程中,由于用户描述应用程序出现的问题过于简洁,常需要反复多次的和用户联系以定位应用程序中问题出现的位置,因此,需要用户主动进行配合,导致沟通成本高、降低了沟通的效率。
[0005]其次,除了开发人员通过和用户配合,在设备中的应用程序抓取日志信息来定位的过程外,由于部分设备不具有抓取日志信息的功能,导致不能实现对应用程序进行定位,降低了对应用程序出现问题进行定位的成功率。


【发明内容】

[0006]有鉴于此,本发明实施例的目的在于提供一种对应用程序进行远程问题定位的方法及装置,开发人员利用所述方法及装置不需要反复和用户进行沟通,并能提高定位问题的效率和成功率。
[0007]为了达到上述目的,本发明实施例提供了一种对应用程序进行远程问题定位的方法及装置,技术方案如下:
[0008]一种对应用程序进行远程问题定位的方法,应用于服务器,所述方法包括:
[0009]获取第一终端设备在启动第一应用程序时发送的硬件信息、操作系统和所述第一应用程序的版本信息;
[0010]建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0011]获取用户在第一终端设备上对第一应用程序的操作信息;
[0012]在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作;
[0013]获取第一应用程序运行时产生的日志信息;
[0014]输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
[0015]可选的,所述获取用户在第一终端设备上对第一应用程序的操作信息,包括:
[0016]接收第一终端设备实时发送的用户对第一应用程序的操作信息;所述操作信息为第一终端设备在用户对第一应用程序进行操作时获得的。
[0017]可选的,所述获取用户在第一终端设备上对第一应用程序的操作信息,包括:
[0018]接收第一终端设备发送的脚本文件;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
[0019]可选的,所述操作信息,包括:
[0020]用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
[0021]可选的,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
[0022]可选的,在所述建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机之前,还包括:
[0023]判断已建立的虚拟机中,是否有与第一终端设备的硬件信息和操作系统均相同的第一虚拟机;
[0024]如果有,则在第一虚拟机中未安装该版本的第一应用程序时,执行所述根据所述第一应用程序的版本信息,安装对应版本的第一应用程序的步骤;在第一虚拟机中已安装该版本的第一应用程序时,执行所述获取用户在第一终端设备上对第一应用程序的操作信息的步骤;
[0025]如果没有,则执行所述建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机的步骤。
[0026]一种对应用程序进行远程问题定位的装置,应用于服务器,所述装置包括:
[0027]第一获取模块,用于获取第一终端设备在启动第一应用程序时发送的硬件信息、操作系统和所述第一应用程序的版本信息;
[0028]虚拟机建立模块,用于建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0029]第二获取模块,用于获取用户在第一终端设备上对第一应用程序的操作信息;
[0030]同步操作模块,用于在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作;
[0031]第三获取模块,用于获取第一应用程序运行时产生的日志信息;
[0032]远程定位模块,用于输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
[0033]可选的,所述第二获取模块,包括:
[0034]第一接收模块,用于接收第一终端设备实时发送的用户对第一应用程序的操作信息;所述操作信息为终端设备在用户对应用程序进行操作实时获得的。
[0035]可选的,所述第二获取模块,包括:
[0036]第二接收模块,用于接收第一终端设备发送的脚本文件;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
[0037]可选的,所述操作信息,包括:
[0038]用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
[0039]可选的,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
[0040]可选的,还包括:
[0041]判断模块,用于在所述虚拟机建立模块建立第一虚拟机之前,判断已建立的虚拟机中,是否有与第一终端设备的硬件和操作系统均相同的第一虚拟机;
[0042]如果有,则在第一虚拟机中未安装该版本的第一应用程序时,触发所述虚拟机建立模块,执行所述根据所述第一应用程序的版本信息,安装对应版本的第一应用程序的步骤;在第一虚拟机中已安装该版本的第一应用程序时,触发所述第二获取模块,执行获取用户在第一终端设备上对第一应用程序的操作信息的步骤;
[0043]如果没有,则触发所述虚拟机建立模块,执行所述根据获取的硬件信息和操作系统建立一个与所述第一终端设备硬件和操作系统均相同的第一虚拟机的
[0044]一种对应用程序进行远程问题定位的方法,应用于终端设备,所述方法包括:
[0045]获取本第一终端设备中的硬件信息、操作系统和第一应用程序的版本信息;
[0046]将获取的所述硬件信息和操作系统发送至服务器,以使服务器建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0047]将获取的用户在本第一终端设备上对所述第一应用程序的操作信息发送至服务器,以使在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作,并获取第一应用程序运行时产生的日志信息,输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
[0048]可选的,所述将获取的用户在本第一终端设备上对所述第一应用程序的操作信息发送至服务器,包括:
[0049]本第一终端设备将用户对第一应用程序的操作信息实时发送至服务器;所述操作信息为第一终端设备在用户对第一应用程序进行操作实时获得的。
[0050]可选的,所述将获取的用户在本第一终端设备上对所述第一应用程序的操作信息发送至服务器,包括:
[0051]本第一终端设备将用户对第一应用程序的操作信息生成的脚本文件发送至服务器;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
[0052]可选的,所述操作信息,包括:
[0053]用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
[0054]可选的,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
[0055]一种对应用程序进行远程问题定位的装置,应用于终端设备,所述装置包括:
[0056]第一获取模块,用于获取本第一终端设备的硬件信息、操作系统和第一应用程序的版本信息;
[0057]第一发送模块,用于将获取的所述硬件信息和操作系统发送至服务器,以使服务器建立一个与第一终端设备硬件、操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0058]第二发送模块,用于将获取的用户在第一本终端设备上对所述第一应用程序的操作信息发送至服务器,以使在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作,并获取第一应用程序运行时产生的日志信息,输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
[0059]可选的,所述第二发送模块,包括:
[0060]第二发送第一子模块,用于本第一终端设备将用户对第一应用程序的操作信息实时发送至服务器;所述操作信息为第一终端设备在用户对第一应用程序进行操作实时获得的。
[0061]可选的,所述第二发送模块,包括:
[0062]第二发送第二子模块,用于本第一终端设备将用户对第一应用程序的操作信息生成的脚本文件发送至服务器;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
[0063]可选的,所述操作信息,包括:
[0064]用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
[0065]可选的,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
[0066]首先,在本发明中,通过在服务器建立了与第一终端设备相同的硬件信息和操作系统的第一虚拟机,并且将获取的第一应用程序安装到到第一虚拟机中,实现了第一虚拟机对第一应用程序进行同步操作,获取第一应用程序运行后生成的日志信息,与现有技术相比,由于本发明不需要用户帮忙来提供应用程序运行时产生的日志信息,也不需要多次和用户进行电话或QQ等工具沟通,因此,减少了沟通成本,同时提高了沟通的效率。
[0067]其次,在对第一应用程序出现问题的位置进行定位时,第一终端设备将用户对第一应用程序的操作信息发送到第一虚拟机,在第一虚拟机上实现了对应用程序的同步操作,并获取第一应用程序运行后生成的日志信息,根据输出的日志信息,对第一应用程序出现的问题进行远程定位,本发明在服务器中建立的第一虚拟机,由于在第一虚拟机中实现了对第一应用程序的同步操作,可以对第一应用程序出现问题的位置进行复现,因此,提高了定位的可信度和定位的效率。

【专利附图】

【附图说明】
[0068]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的。
[0069]图1为本发明实施例提供的一种对应用程序进行远程问题定位的方法的流程图;
[0070]图2为本发明实施例提供的一种对应用程序进行远程问题定位的装置的结构示意图;
[0071]图3为本发明实施例提供的另一种对应用程序进行远程问题定位的方法的流程图;
[0072]图4为本发明实施例提供的另一种对应用程序进行远程问题定位的装置的结构示意图。

【具体实施方式】
[0073]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074]本发明实施例提供的一种对应用程序进行远程问题定位的方法,所述方法应用于服务器,如图1所示,该方法可以包括:
[0075]S100、获取第一终端设备在启动第一应用程序时发送的硬件信息、操作系统和所述第一应用程序的版本信息;
[0076]其中,硬件信息可以包括CPU型号信息、内存型号信息、摄像头型号信息、电池型号信息、听筒型号信息和屏幕型号信息等。操作系统可以为安卓操作系统或苹果操作系统等。在对第一应用程序进行远程问题定位时,可以对该第一应用程序的任意版本进行问题定位。例如:可以对图像处理应用程序Adobe Photoshop CC最新发布的版本进行问题定位,也可以对该图像处理应用程序的早期版本进行问题定位。
[0077]S200、建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0078]其中,第一虚拟机实际上是模拟第一终端设备硬件信息和操作系统的一种特殊的软件,可以理解的是,第一虚拟机完全可以像真实的设备一样进行工作,并搭建了和第一终端设备对应用程序相同的运行环境。建立虚拟机的方法为现有技术,这里不再赘述。
[0079]当然,在建立一个与获取所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机之前,还可以判断已建立的虚拟机中,是否有与第一终端设备的硬件信息和操作系统均相同的第一虚拟机;
[0080]如果有,则在第一虚拟机中未安装该版本的第一应用程序时,执行所述根据所述第一应用程序的版本信息,安装对应版本的第一应用程序的步骤;在第一虚拟机中已安装该版本的第一应用程序时,执行S300,获取用户在第一终端设备上对第一应用程序的操作信息的步骤;
[0081]如果没有,则执行所述建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机的步骤。
[0082]S300、获取用户在第一终端设备上对第一应用程序的操作信息;
[0083]其中,操作信息可以包括:用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识息。
[0084]具体的,获取操作信息可以为:接收第一终端设备实时发送的用户对第一应用程序的操作信息,其中,操作信息为第一终端设备在用户对第一应用程序进行操作实时获得的。也可以为:接收第一终端设备发送的脚本文件,其中,脚本文件为在用户执行完对第一应用程序的全部操作行为后所生成的。根据实际情况所知,全部操作可以为:对第一应用程序从启动到关闭对应用程序到关闭应用程序过程中的全部操作,或启动对第一应用程序从启动到发生故障过程中的应用程序发生故障自动关闭过程的全部操作,其中,发生故障的情况可以理解为,设备界面显示黑屏、设备自动关机或应用程序强制退出等。
[0085]在第一虚拟机接收操作信息的过程中,由于操作信息是第一终端设备实时发送的,或对第一应用程序操作后所生成的脚本文件发送至服务器,不需要和用户反复沟通,因此,降低了沟通成本,同时提高了接收操作信息的效率。
[0086]S400、在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作;
[0087]可以理解的是,不需要开发人员远程操作用户的设备,也不需要开发人员和用户进行多次沟通,而是通过第一虚拟机对第一应用程序进行同步操作,对问题出现的位置进行复现,所以,不仅减少了人力资源的浪费,而且提高了定位第一应用程序出现的问题的效率。
[0088]S500、获取第一应用程序运行时产生的日志信息;
[0089]其中,日志信息是专门记录操作事件的信息集合,具体的,日志信息可以包括操作系统的日志信息、数据库系统的日志信息和第一应用程序日志信息。因此,第一应用程序运行时产生的日志信息给开发人员对问题出现的位置进行定位起到了至关重要的作用。
[0090]S600、输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
[0091]也就是说,服务器会将第一虚拟机对第一应用程序运行时产生的日志信息输出,开发人员根据所输出的日志信息直接可以定位第一应用程序中问题出现的位置,这样,不需要和用户多次进行沟通,提高了定位的效率。
[0092]下面举例进行说明:
[0093]举例一、假设以安卓手机及安卓手机中安装的微信聊天软件程序进行说明:
[0094]首先,服务器获取手机的硬件信息、安卓操作系统和手机中的微信聊天软件程序信息,然后服务器会建立一个与手机硬件信息和安卓操作系统均相同的第一虚拟机,当然,第一虚拟机对微信聊天软件程序运行的环境和手机对微信聊天软件程序运行的环境也同样是相同的,此时,接收用户在手机上对微信聊天软件程序的启动或关闭的操作信息,和在微信聊天软件程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。通过第一虚拟机对微信聊天软件程序进行同步操作,获取微信聊天软件程序运行时生成的日志信息,最后,输出日志信息,以实现对微信聊天软件程序出现问题的位置进行远程定位。
[0095]当然,在完成对微信聊天软件程序出现问题的位置进行远程定位之后,仍然可以对其他的应用程序,比如QQ聊天软件、视频播放器等进行远程定位,不同的是,比如,当再次对视频播放器运行的程序进行远程定位时,不需要再次获取手机中的硬件信息和安卓操作系统,在视频播放器运行过程中,只需接收手机发送的用户对视频播放器程序运行的坐标信息和用户操作的控件的标识信息,根据服务器首次建立的第一虚拟机,对视频播放器程序的运行进行同步操作,获取视频播放器运行时生成的日志信息,最后,输出日志信息,以实现对视频播放器程序运行时,问题出现的位置进行远程定位。
[0096]在本发明实施例提供的一种对应用程序进行远程问题定位的方法中,由于在第一虚拟机中实现了对第一应用程序的同步操作,可以对第一应用程序出现问题的位置进行复现,因此,提高了定位的可信度和效率。当然,与现有技术相比,由于本发明不需要用户帮忙提供操作运行时产生的日志信息,也不需要多次和用户进行电话或QQ等工具沟通,因此,减少了沟通成本,同时提高了沟通的效率。
[0097]本发明实施例提供的一种对应用程序进行远程问题定位的装置,所述装置应用于服务器,与图1所示方法相对应,如图2所示,该装置可以包括:
[0098]第一获取模块100,用于获取第一终端设备的硬件信息、操作系统和所述第一应用程序的版本信息;
[0099]虚拟机建立模块200,用于建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0100]其中,第一虚拟机实际上是模拟第一终端设备硬件信息和操作系统的一种特殊的软件,可以理解的是,第一虚拟机完全可以像真实的设备一样进行工作,并搭建了和第一终端设备对应用程序相同的运行环境。
[0101]本实施例还可以包括判断模块,用于在所述虚拟机建立模块建立第一虚拟机之前,判断已建立的虚拟机中,是否有与第一终端设备的硬件信息和操作系统均相同的第一虚拟机;
[0102]如果有,则在第一虚拟机中未安装该版本的第一应用程序时,触发所述虚拟机建立模块,执行所述根据所述第一应用程序的版本信息,安装对应版本的第一应用程序的步骤;在第一虚拟机中已安装该版本的第一应用程序时,触发所述第二获取模块,执行获取用户在第一终端设备上对第一应用程序的操作信息的步骤;
[0103]如果没有,则触发所述虚拟机建立模块,执行所述根据获取的硬件信息和操作系统建立一个与所述第一终端设备硬件和操作系统均相同的第一虚拟机的步骤。
[0104]第二获取模块300,用于获取用户在第一终端设备上对第一应用程序的操作信息;
[0105]其中,第二获取模块300可以为图2所示的第一接收模块300a,或第二接收模块(图2中未示出);具体的,第一接收模块300a,用于接收第一终端设备实时发送的用户对第一应用程序的操作信息,其中,操作信息为终端设备在用户对第一应用程序进行操作实时获得的。第二接收模块,用于接收第一终端设备发送的脚本文件,所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的,所述脚本文件包含所述全部操作行为的操作信息。由于第一接收模块300a和第二接收模块是两种并列且相似的模块,在图2所示装置中,只对第一接收模块300a进行展示。根据实际情况所知,全部操作可以为,对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作,其中,发生故障的情况可以理解为,设备界面显示黑屏、设备自动关机或应用程序强制退出等。当然,在其他实施例中,第二获取模块300也可以包括第一接收模块300a和第二接收模块。
[0106]在第一虚拟机接收操作信息的过程中,由于操作信息是第一终端设备实时的发送的,或通过生成的脚本文件发送至虚拟机,不需要和用户反复沟通,因此,降低了沟通成本,同时提高了接收操作信息的效率。
[0107]同步操作模块400,用于在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作;
[0108]可以理解的是,不需要开发人员远程操作用户的设备,也不需要开发人员和用户进行多次沟通,而是通过第一虚拟机对第一应用程序进行同步操作,对第一应用程序问题出现的位置进行复现,所以,不仅减少了人力资源的浪费,而且提高了定位第一应用程序出现问题的效率。
[0109]第三获取模块500,用于获取第一应用程序运行时产生的日志信息;
[0110]其中,日志信息是专门记录操作事件的信息集合,具体的,日志信息可以包括操作系统的日志信息、数据库系统的日志信息和第一应用程序日志信息。因此,第一应用程序运行时产生的日志信息给开发人员对问题出现的位置进行定位起到了至关重要的作用。
[0111]远程定位模块600,用于输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
[0112]也就是说,服务器端会输出日志信息,由于开发人员会根据日志信息直接可以获取第一应用程序运行时问题出现的位置,因此,在很大程度上减少和用户沟通的次数,提高了对第一应用程序出现的位置进行定位的效率。在本发明实施例提供的一种对应用程序进行远程问题定位的装置中,服务器建立一个与第一终端设备硬件信息和操作系统均相同的第一虚拟机,由于第一虚拟机中的同步操作模块可以对第一应用程序进行同步操作,因此,可以对第一应用程序出现问题的位置进行复现,避免了多次和用户进行沟通来获取第一应用程序问题出现的位置,提高了定位的效率,满足了更多用户对找出第一终端设备中第一应用程序出现的问题的需求。
[0113]本发明实施例提供的另一种对应用程序进行远程问题定位的方法,所述方法应用于终端设备,如图3所示,该方法可以包括:
[0114]S101、获取本第一终端设备的硬件信息、操作系统和第一应用程序的版本信息;
[0115]S102、将获取的所述硬件信息和操作系统发送至服务器,以使服务器建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0116]S103、将获取的用户在本第一终端设备上对所述第一应用程序的操作信息发送至服务器,以使在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作,并获取第一应用程序运行时产生的日志信息,输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
[0117]以下,举三个本发明在实际应用的例子,对步骤做进一步说明:
[0118]应用例一:在手机中的应用
[0119]假设用户使用手机中的微信聊天软件时,手机会将获取的对微信聊天软件程序操作的坐标信息和用户操作控件的标识信息发送至服务器,其中,在获取坐标信息时,利用手机屏幕事件的处理方法onTouchEvent来获取用户对微信聊天软件操作后的坐标信息,以下三种情况全部由onTouchEvent方法完成对坐标信息的获取。通过用户开始触摸屏幕的某一位置来对坐标信息进行获取、通过用户结束触摸屏幕的某一位置来对坐标信息进行获取,以及通过用户在屏幕上从某一位置开始触摸并滑动至另外一个位置来对坐标信息进行获取。
[0120]实际上,本发明实施例不仅适用于手机,对所有安装Android系统或其他智能操作系统,能够安装应用程序的电子设备都适用。
[0121]应用例二:在使用遥控器的机顶盒中的应用
[0122]目前,已经有安装Android系统的机顶盒,这类机顶盒也能够安装应用程序。假设机顶盒运行某软件时,会将获取的对该软件程序操作的坐标信息和用户操作控件的标识信息发送至服务器,其中,在获取用户操作信息时,可以通过dispatchKeyEvent或者onKeyDown、onKeyUp来获取用户对软件的操作。
[0123]应用例三:在智能电视中的应用
[0124]目前,已经有安装Android系统的智能电视,这类智能电视也能够安装应用程序。
[0125]与机顶盒类似,智能电视在获取用户操作信息时,也可以通过dispatchKeyEvent或者onKeyDown、onKeyUp来获取用户对软件的操作。当然,也可以利用与智能电视连接的鼠标的事件的处理方法来获取用户对微信聊天软件操作后的坐标信息。
[0126]本发明实施例提供的另一种对应用程序进行远程问题定位的装置,所述装置应用于终端设备,与图3所示装置相对应,如图4所示,该装置可以包括:
[0127]第一获取模块101,用于获取本第一终端设备的硬件信息、操作系统和第一应用程序的版本信息;
[0128]第一发送模块201,用于将获取的所述硬件信息和操作系统发送至服务器,以使服务器建立一个与第一终端设备硬件、操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序;
[0129]第二发送模块301,用于将获取用户在本第一终端设备上对第一应用程序的操作信息发送至服务器,具体的,第二发送模块301可以为第二发送第一子模块301a或第二发送第二子模块(图4中未示出)。其中,第二发送第一子模块301a,用于本第一终端设备将用户对第一应用程序的操作信息实时发送至服务器,所述操作信息为第一终端设备在用户对第一应用程序进行操作实时获得的。第二发送第二子模块,用于本第一终端设备将用户对第一应用程序的操作信息生成的脚本文件发送至服务器。所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的,所述脚本文件包含所述全部操作行为的操作信息。将操作信息发送至服务器之后,以使在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作,并获取第一应用程序运行时产生的日志信息,输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。当然,在其他实施例中,第二发送模块也可以包括第二发送第一子模块301a和第二发送第二子模块。
[0130]在本发明实施例提供的另一种对应用程序进行远程问题定位的装置中,服务器建立一个与第一终端设备硬件信息和操作系统均相同的第一虚拟机,由于第一虚拟机中的同步操作模块可以对第一应用程序进行同步操作,因此,可以对第一应用程序出现问题的位置进行复现,避免了多次和用户进行沟通来获取第一应用程序问题出现的位置,提高了定位的效率。
[0131]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0132]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0133]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【权利要求】
1.一种对应用程序进行远程问题定位的方法,其特征在于,应用于服务器,所述方法包括: 获取第一终端设备在启动第一应用程序时发送的硬件信息、操作系统和所述第一应用程序的版本信息; 建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序; 获取用户在第一终端设备上对第一应用程序的操作信息; 在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作; 获取第一应用程序运行时产生的日志信息; 输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
2.根据权利要求1所述的方法,其特征在于,所述获取用户在第一终端设备上对第一应用程序的操作信息,包括: 接收第一终端设备实时发送的用户对第一应用程序的操作信息;所述操作信息为第一终端设备在用户对第一应用程序进行操作实时获得的。
3.根据权利要求1所述的方法,其特征在于,所述获取用户在第一终端设备上对第一应用程序的操作信息,包括: 接收第一终端设备发送的脚本文件;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
4.根据权利要求2或3所述的方法,其特征在于,所述操作信息,包括: 用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
5.根据权利要求3所述的方法,其特征在于,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机之前,还包括: 判断已建立的虚拟机中,是否有与第一终端设备的硬件信息和操作系统均相同的第一虚拟机; 如果有,则在第一虚拟机中未安装该版本的第一应用程序时,执行所述根据所述第一应用程序的版本信息,安装对应版本的第一应用程序的步骤;在第一虚拟机中已安装该版本的第一应用程序时,执行所述获取用户在第一终端设备上对第一应用程序的操作信息的步骤; 如果没有,则执行所述建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机的步骤。
7.—种对应用程序进行远程问题定位的装置,其特征在于,应用于服务器,所述装置包括: 第一获取模块,用于获取第一终端设备在启动第一应用程序时发送的硬件信息、操作系统和所述第一应用程序的版本信息; 虚拟机建立模块,用于建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序; 第二获取模块,用于获取用户在第一终端设备上对第一应用程序的操作信息; 同步操作模块,用于在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作; 第三获取模块,用于获取第一应用程序运行时产生的日志信息; 远程定位模块,用于输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
8.根据权利要求7所述的装置,其特征在于,所述第二获取模块,包括: 第一接收模块,用于接收第一终端设备实时发送的用户对第一应用程序的操作信息;所述操作信息为第一终端设备在用户对应用程序进行操作实时获得的。
9.根据权利要求7所述的装置,其特征在于,所述第二获取模块,包括: 第二接收模块,用于接收第一终端设备发送的脚本文件;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
10.根据权利要求8或9所述的装置,其特征在于,所述操作信息,包括: 用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
11.根据权利要求9所述的装置,其特征在于,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
12.根据权利要求7-11任一项所述的装置,其特征在于,还包括: 判断模块,用于在所述虚拟机建立模块建立第一虚拟机之前,判断已建立的虚拟机中,是否有与第一终端设备的硬件和操作系统均相同的第一虚拟机; 如果有,则在第一虚拟机中未安装该版本的第一应用程序时,触发所述虚拟机建立模块,执行所述根据所述第一应用程序的版本信息,安装对应版本的第一应用程序的步骤;在第一虚拟机中已安装该版本的第一应用程序时,触发所述第二获取模块,执行获取用户在第一终端设备上对第一应用程序的操作信息的步骤; 如果没有,则触发所述虚拟机建立模块,执行所述根据获取的硬件信息和操作系统建立一个与所述第一终端设备硬件和操作系统均相同的第一虚拟机的步骤。
13.—种对应用程序进行远程问题定位的方法,其特征在于,应用于终端设备,所述方法包括: 获取本第一终端设备中的硬件信息、操作系统和第一应用程序的版本信息; 将获取的所述硬件信息和操作系统发送至服务器,以使服务器建立一个与获取的所述第一终端设备的硬件信息和操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序; 将获取的用户在本第一终端设备上对所述第一应用程序的操作信息发送至服务器,以使在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作,并获取第一应用程序运行时产生的日志信息,输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
14.根据权利要求13所述的方法,其特征在于,所述将获取的用户在本第一终端设备上对所述第一应用程序的操作信息发送至服务器,包括: 本第一终端设备将用户对第一应用程序的操作信息实时发送至服务器;所述操作信息为第一终端设备在用户对第一应用程序进行操作实时获得的。
15.根据权利要求13所述的方法,其特征在于,所述将获取的用户在本第一终端设备上对所述第一应用程序的操作信息发送至服务器,包括: 本第一终端设备将用户对第一应用程序的操作信息生成的脚本文件发送至服务器;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
16.根据权利要求14或15所述的方法,其特征在于,所述操作信息,包括: 用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
17.根据权利要求15所述的方法,其特征在于,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
18.—种对应用程序进行远程问题定位的装置,其特征在于,应用于终端设备,所述装置包括: 第一获取模块,用于获取本第一终端设备的硬件信息、操作系统和第一应用程序的版本信息; 第一发送模块,用于将获取的所述硬件信息和操作系统发送至服务器,以使服务器建立一个与第一终端设备硬件、操作系统均相同的第一虚拟机;并在所述第一虚拟机中,根据所述第一应用程序的版本信息,安装对应版本的第一应用程序; 第二发送模块,用于将获取的用户在第一本终端设备上对所述第一应用程序的操作信息发送至服务器,以使在第一虚拟机中按照用户的操作信息,对第一应用程序进行同步操作,并获取第一应用程序运行时产生的日志信息,输出获取的日志信息,以实现对第一应用程序出现问题的位置进行远程定位。
19.根据权利要求18所述的装置,其特征在于,所述第二发送模块,包括: 第二发送第一子模块,用于本第一终端设备将用户对第一应用程序的操作信息实时发送至服务器;所述操作信息为第一终端设备在用户对第一应用程序进行操作实时获得的。
20.根据权利要求18所述的装置,其特征在于,所述第二发送模块,包括: 第二发送第二子模块,用于本第一终端设备将用户对第一应用程序的操作信息生成的脚本文件发送至服务器;所述脚本文件为第一终端设备执行完对第一应用程序的全部操作行为后生成的;所述脚本文件包含所述全部操作行为的操作信息。
21.根据权利要求19或20所述的装置,其特征在于,所述操作信息,包括: 用户在第一终端设备上对第一应用程序的启动或关闭的操作信息,和在第一应用程序运行过程中,用户操作的坐标信息或用户操作的控件的标识信息。
22.根据权利要求20所述的装置,其特征在于,所述对第一应用程序的全部操作,包括:对第一应用程序从启动到关闭过程中的全部操作,或对第一应用程序从启动到发生故障过程中的全部操作。
【文档编号】G06F9/455GK104331372SQ201410705502
【公开日】2015年2月4日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】张继峰, 马献伟 申请人:北京奇艺世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1