CN105930249B - 应用监控方法和装置 - Google Patents
应用监控方法和装置 Download PDFInfo
- Publication number
- CN105930249B CN105930249B CN201610249118.7A CN201610249118A CN105930249B CN 105930249 B CN105930249 B CN 105930249B CN 201610249118 A CN201610249118 A CN 201610249118A CN 105930249 B CN105930249 B CN 105930249B
- Authority
- CN
- China
- Prior art keywords
- thread
- information
- terminal
- application
- title
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了应用监控方法和装置。所述方法的一具体实施方式包括:向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能。该实施方式有效利用了用于实现应用预定功能的进程或线程的状态信息,实现了更加精准的应用监控。
Description
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及应用监控方法和装置。
背景技术
目前的应用监控方法的主要是监控应用的使用时间或者使用次数。通过安卓开发商提供的API(Application Programming Interface,应用程序编程接口)就能实现。
但是随着大数据的发展,对于数据的需求越来越细化。一些类似个性化推送的服务需要获取更细粒度的应用使用数据,例如应用预定功能的使用数据。这就需要从进程级别甚至线程级别来监控应用。
发明内容
本申请的目的在于提出一种改进的应用监控方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种应用监控方法,所述方法包括:向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能。
第二方面,本申请提供了另一种应用监控方法,其特征在于,所述方法包括:接收服务器发送的查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现预定应用的预定功能;查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;向所述服务器发送所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,使得所述服务器根据所述进程的状态信息或所述线程的状态信息确定所述应用的所述预定功能是否正在被使用。
第三方面,本申请提供了另一种应用监控方法,其特征在于,所述方法包括:服务器向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;所述终端查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;所述终端向所述服务器发送所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;所述服务器根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能。
第四方面,本申请提供了一种应用监控装置,所述装置包括:查询信息发送单元,用于向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;获取单元,用于从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;确定单元,用于根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能。
第五方面,本申请提供了一种应用监控装置,所述装置包括:查询信息接收单元,用于接收服务器发送的查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现预定应用的预定功能;状态信息查询单元,用于查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;状态信息发送单元,用于向所述服务器发送所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,使得所述服务器根据所述进程的状态信息或所述线程的状态信息确定所述应用的所述预定功能是否正在被使用。
本申请提供的应用监控方法和装置,通过向安装了预定应用的终端发送查询信息,而后从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,最后根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能,实现了更加精准的应用监控。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性***架构图;
图2是根据本申请的应用监控方法的一个实施例的流程图;
图3是根据本申请的应用监控方法的一个应用场景的示意图;
图4是根据本申请的应用监控方法的又一个实施例的流程图;
图5是根据本申请的应用监控装置的一个实施例的结构示意图;
图6是根据本申请的应用监控装置的又一个实施例的结构示意图;
图7是适于用来实现本申请实施例的服务器的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的应用监控方法或应用监控装置的实施例的示例性***架构100。
如图1所示,***架构100可以包括终端101、102、103,网络104和服务器105。网络104用以在终端101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端101、102、103上可以安装有各种客户端应用,例如应用市场类应用、地图类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端101、102、103可以是具有显示屏并且支持信息浏览的各种电子设备,包括但不限于电脑、智能手机、平板电脑、电子书阅读器和可穿戴智能设备等等。
服务器105可以是提供各种服务的服务器,例如监控终端101、102、103上安装的应用的使用情况的应用监控服务器。应用监控服务器可以向安装了预定应用的终端发送查询信息,并获取终端根据所述查询信息查询到的结果信息,最后根据获取的结果信息确定终端是否使用应用的预定功能。
应该理解,图1中的终端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、网络和服务器。
继续参考图2,示出了根据本申请的应用监控方法的一个实施例的流程200。所述的应用监控方法,包括以下步骤:
步骤201,向安装了预定应用的终端发送查询信息。
在本实施例中,应用监控方法运行于其上的电子设备(例如图1所示的服务器)可以定期获取终端已安装应用列表,响应于终端已安装应用列表中包括了预定应用,向上述终端发送查询信息。预定应用可以是任何需要监控其使用情况的应用。
在本实施例中,上述查询信息包括进程名称和/或线程名称,上述进程名称对应的进程或上述线程名称对应的线程用于实现上述应用的预定功能,其中,进程名称可以是预定应用的包名。用于实现上述应用的预定功能的进程或线程的名称,可以通过控制测试机运行上述应用的预定功能,同时监控测试机上进程和线程的信息来确定,也可以根据上述应用公开的API等资料分析得出。
在本实施例的一些可选的实现方式中,服务器可以先向终端发送预先配置的监控参数。监控参数可以包括以下至少一项:监控开关开启的时间范围、应用的最大监控数目、预定功能的最大监控数目,其中,监控开关用于开启或关闭监控功能。终端根据上述监控参数确定是否向服务器发送获取查询信息的请求。监控参数还可以包括终端发送获取查询信息的请求的时间间隔,终端可以响应于距上次接收到查询信息的时间隔大于预设的发送查询信息的时间间隔发送获取查询信息的请求,服务器可以响应于接收到终端发送的获取查询信息的请求,向上述终端发送查询信息。例如,如果监控开关处于开启状态,当前监控的应用的数目未超过应用的最大监控数目,当前监控的预定功能的数目未超过预定功能的最大监控数目,且距上次接收到查询信息的时间隔大于预设的发送查询信息的时间间隔,则终端可以向服务器发送获取查询信息的请求。如果服务器未能成功向终端发送监控参数,终端也可以使用之前获取到的监控参数或者使用缺省值,这样的容错机制可以避免因配置问题导致的应用监控数据获取失败。
步骤202,从终端获取进程名称对应的进程的状态信息或线程名称对应的线程的状态信息。
在本实施例中,应用监控方法运行于其上的电子设备(例如图1所示的服务器)可以获取终端根据步骤201中服务器发送的查询信息查询到的查询结果,上述查询结果包括上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。
在本实施例中,终端接收到步骤201中服务器发送的进程名称和/或线程名称后,可以首先判断是否已经存在上述进程名称和/或线程名称对应的监控任务,如果否则开始查询进程名称对应的进程的状态信息或线程名称对应的线程的状态信息。
在下文中,将以常用的安卓平台为例阐述终端查询进程名称对应的进程的状态信息以及线程名称对应的线程的状态信息的过程:
查询进程名称对应的进程的状态信息时,可以查看所有正在运行的进程,这个步骤在安卓***下可以通过ps命令来实现。ps命令是安卓***中基本的进程查看命令。执行ps命令后会显示以下信息:“USER、PID、PPID、VSIZE、RSS、WCHAN、PC、NAME”,其中,USER表示进程的当前用户;PID表示进程号;PPID表示父进程号;VSIZE表示进程虚拟地址空间大小;RSS表示进程正在使用的物理内存的大小;WCHAN表示进程如果处于休眠状态,在内核中的地址;PC表示程序计数器;NAME表示进程的名称。以此确定上述进程名称对应的进程是否处于运行状态。也可以通过ps和进程的名称的组合命令直接查看上述进程名称对应的进程信息。查询线程名称对应的线程的状态信息时,可以首先获取线程的父进程的进程号,而后执行ps-t命令,显示该进程下的线程列表,以此可以确定上述线程名称对应的线程是否处于运行状态。如果是按照一定频率查询线程名称对应的线程的状态信息,在上述线程的父进程的一个生命周期内,即上述父进程未被杀死之前,首次查询线程名称对应的线程的状态信息时,可以通过ps和上述线程的父进程的名称的组合命令查看上述线程的父进程的进程号,非首次查询时可以使用首次查询时获取线程的父进程的进程号,因为在上述线程的父进程的一个生命周期内上述父进程的进程号不会改变。
在本实施例的一些可选的实现方式中,终端可以响应于上述进程名称对应的进程为前台进程或上述线程名称对应的线程为前台线程,查询上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。其中,前台进程或线程是指目前正在屏幕上显示的进程或线程。在安卓***下,可以使用RunningTaskInfo类或者RunningAppProcessInfo类判断一个进程是否是前台进程。RunningTaskInfo类和RunningAppProcessInfo类是安卓的常用类,用于获取***当前正在运行的任务的信息,RunningAppProcessInfo类中封装了正在运行的进程信息。RunningTaskInfo类和RunningAppProcessInfo类同属于ActivityManager类,可以在安卓的SDK(SoftwareDevelopment Kit,软件开发工具包)中查询该类的信息。确定线程是否为前台线程可以通过其是否与UI(User Interface,用户界面)线程交互或者通过判断其父进程是否前台进程实现,其中,UI线程也可称为主线程,UI线程是安卓***中根据用户的要求做出快速响应的线程。
步骤203,根据进程的状态信息或线程的状态信息确定终端是否使用应用的预定功能。
在本实施例中,应用监控方法运行于其上的电子设备(例如图1所示的服务器)根据步骤202中获取到进程名称对应的进程的状态信息或线程名称对应的线程的状态信息确定终端是否使用应用的预定功能。
服务器可以根据上述状态信息判断上述进程或线程的是否正在运行,如果是,则确定上述终端正在使用上述应用的预定功能,如果否,则确定上述终端未使用上述应用的预定功能。其中,上述应用的预定功能可以是地图类应用的导航功能,视频类应用或者音频播放类应用的播放功能,以及社交类应用的聊天或者文件传输功能等。
在本实施例的一些可选的实现方式中,如果步骤201中查询信息还包括查询频率,步骤202中从上述终端还获取到了上述终端按照上述查询频率查询到的上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息,那么服务器可以记录上述终端按照上述查询频率查询上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息的查询时间;利用上述状态信息以及上述状态信息对应的查询时间确定上述终端使用上述应用的预定功能的时长。例如,查询频率为一分钟查询一次,19:28-19:37时查询到某一进程处于运行状态,19:27、19:38时查询到某一进程处于非运行状态,那么可以认为在19:27-19:38这段时间内用户使用上述进程对应的预定功能约为9分钟,具体的查询频率可根据具体的监控需要确定。如果服务器未向终端发送监控频率,终端可以使用之前获取的监控频率,或者监控频率的缺省值。还可以统计一段时间内同一线程名称对应的线程或同一进程名称对应的进程的运行次数,运行次数是指完成从开始运行到结束运行这一过程的次数。例如,用于实现某一购物类应用的付款功能的进程每一次运行时进程名称相同,统计一段时间内付款功能的进程的运行次数就能确定一段时间内终端使用上述付款功能的次数。
在本实施例的一些可选的实现方式中,上述状态信息还可以包括以下至少一项:CPU占用率、内存占用量、产生的网络流量;服务器还可以根据上述CPU占用率和/或内存占用量和/或产生的网络流量是否超过预设阈值确定上述终端是否使用上述应用的预定功能。上述预设阈值可以通过控制测试机运行上述应用的预定功能,同时监控测试机上进程和线程的CPU占用率和/或内存占用量和/或产生的网络流量,结合上述终端自身CPU和内存数据来确定。
在本实施例的一些可选的实现方式中,服务器还可以向上述终端发送以下查询项中的至少一项:终端操作***的版本、终端设备型号、终端的网络连接情况,并从上述终端接收对上述查询项的查询结果。可以结合此类信息和应用预定功能的使用信息,得到更加全面的应用监控数据。
继续参见图3,图3是根据本实施例的应用监控方法的应用场景的一个示意图。在图3的应用场景中,服务器判断终端已安装了某个社交类的应用,则向安装了上述社交类的应用的终端发送查询信息,其中,上述查询信息包括用于实现上述社交类的应用的视频通话功能的进程的名称;从上述终端获取用于实现上述社交类的应用的视频通话功能的进程的状态信息;根据上述进程的状态信息确定上述终端是否使用上述应用的上述预定功能。如图3示,在19:28时,上述终端正在使用上述视频通话功能,那么,用于实现上述视频通话功能的进程在19:28时处于运行状态,在19:38时,上述终端未使用上述视频通话功能,那么,用于实现上述视频通话功能的进程在19:38时就处于非运行状态。
本申请的上述实施例提供的方法通过向安装了预定应用的终端发送查询信息,从上述终端获取上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息;响应于获取到上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息,根据上述进程的状态信息或上述线程的状态信息确定上述终端是否使用上述应用的上述预定功能,实现了更加精准的应用监控。
进一步参考图4,其示出了应用监控方法的又一个实施例的流程400。该应用监控方法的流程400,包括以下步骤:
步骤401,接收服务器发送的查询信息。
在本实施例中,应用监控方法运行于其上的电子设备(例如图1所示的终端)可以定期向服务器发送已安装应用列表,接收服务器响应于已安装应用列表中包括了预定应用发送的查询信息。预定应用可以是任何需要监控其使用情况的应用。
在本实施例中,上述查询信息包括进程名称和/或线程名称,上述进程名称对应的进程或上述线程名称对应的线程用于实现上述应用的预定功能,其中,进程名称可以是预定应用的包名。用于实现上述应用的预定功能的进程或线程的名称,可以通过控制测试机运行上述应用的预定功能,同时监控测试机上进程和线程的信息来确定,也可以根据上述应用公开的API等资料分析得出。
在本实施例的一些可选的实现方式中,终端可以先向服务器请求监控参数。监控参数可以包括以下至少一项:监控开关开启的时间范围、应用的最大监控数目、预定功能的最大监控数目,其中,监控开关用于开启或关闭监控功能。终端根据上述监控参数确定是否向服务器发送获取查询信息的请求。监控参数还可以包括终端发送获取查询信息的请求的时间间隔,终端可以响应于距上次接收到查询信息的时间隔大于预设的发送查询信息的时间间隔发送获取查询信息的请求,服务器可以响应于接收到终端发送的获取查询信息的请求,向上述终端发送查询信息。例如,如果监控开关处于开启状态,当前监控的应用的数目未超过应用的最大监控数目,当前监控的预定功能的数目未超过预定功能的最大监控数目,且距上次接收到查询信息的时间隔大于预设的发送查询信息的时间间隔,则终端可以向服务器发送获取查询信息的请求。如果终端未获取到监控参数,也可以使用之前获取到的监控参数或者使用缺省值,这样的容错机制可以避免因配置问题导致的应用监控数据获取失败。
步骤402,查询进程名称对应的进程的状态信息或线程名称对应的线程的状态信息。
在本实施例中,应用监控方法运行于其上的电子设备(例如图1所示的终端)根据步骤401中接收的查询信息进行查询,得到上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。
在下文中,将以常用的安卓平台为例阐述终端查询进程名称对应的进程的状态信息以及线程名称对应的线程的状态信息的过程:
查询进程名称对应的进程的状态信息时,可以查看所有正在运行的进程,这个步骤在安卓***下可以通过ps命令来实现。执行ps命令后会显示以下信息:“USER、PID、PPID、VSIZE、RSS、WCHAN、PC、NAME”,以此确定上述进程名称对应的进程是否处于运行状态。也可以通过ps和进程的名称的组合命令直接查看上述进程名称对应的进程信息。查询线程名称对应的线程的状态信息时,可以首先获取线程的父进程的进程号,而后执行ps-t命令,显示该进程下的线程列表,以此可以确定上述线程名称对应的线程是否处于运行状态。如果是按照一定频率查询线程名称对应的线程的状态信息,在上述线程的父进程的一个生命周期内,即上述父进程未被杀死之前,首次查询线程名称对应的线程的状态信息时,可以通过ps和上述线程的父进程的名称的组合命令查看上述线程的父进程的进程号,非首次查询时可以使用首次查询时获取线程的父进程的进程号,因为在上述线程的父进程的一个生命周期内上述父进程的进程号不会改变。
在本实施例的一些可选的实现方式中,终端可以响应于上述进程名称对应的进程为前台进程或上述线程名称对应的线程为前台线程,查询上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。其中,前台进程或线程是指目前正在屏幕上显示的进程或线程。在安卓***下,可以使用RunningTaskInfo类或者RunningAppProcessInfo类判断一个进程是否是前台进程。确定线程是否为前台线程可以通过其是否与UI线程交互或者通过判断其父进程是否前台进程实现。
在本实施例的一些可选的实现方式中,如果步骤401中查询信息还包括查询频率,终端可以按照上述查询频率查询到的上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息,使得服务器可以利用上述状态信息以及上述状态信息对应的查询时间确定上述终端使用上述应用的预定功能的时长。例如,查询频率为一分钟查询一次,19:28-19:37时查询到某一进程处于运行状态,19:27、19:38时查询到某一进程处于非运行状态,那么可以认为在19:27-19:38这段时间内用户使用上述进程对应的预定功能约为9分钟,具体的查询频率可根据具体的监控需要确定。如果服务器未向终端发送监控频率,终端可以使用之前获取的监控频率,或者监控频率的缺省值。还可以统计一段时间内同一线程名称对应的线程或同一进程名称对应的进程的运行次数,运行次数是指完成从开始运行到结束运行这一过程的次数。例如,用于实现某一购物类应用的付款功能的进程每一次运行时进程名称相同,统计一段时间内付款功能的进程的运行次数就能确定一段时间内终端使用上述付款功能的次数。
步骤403,向服务器发送进程名称对应的进程的状态信息或线程名称对应的线程的状态信息。
在本实施例中,应用监控方法运行于其上的电子设备(例如图1所示的终端)向服务器发送步骤402中查询到的进程名称对应的进程的状态信息或线程名称对应的线程的状态信息,使得上述服务器根据上述进程的状态信息或上述线程的状态信息确定上述应用的上述预定功能是否正在被使用。
上述服务器可以根据终端发送的上述状态信息判断上述进程或线程的是否正在运行,如果是,则确定上述终端正在使用上述应用的预定功能,如果否,则确定上述终端未使用上述应用的预定功能。其中,上述应用的预定功能可以是地图类应用的导航功能,视频类应用或者音频播放类应用的播放功能,以及社交类应用的聊天或者文件传输功能等。
在本实施例的一些可选的实现方式中,上述状态信息还可以包括以下至少一项:CPU占用率、内存占用量、产生的网络流量;终端可以查询并向服务器发送上述状态信息,使得服务器还可以根据上述CPU占用率和/或内存占用量和/或产生的网络流量是否超过预设阈值确定上述终端是否使用上述应用的预定功能。上述预设阈值可以通过控制测试机运行上述应用的预定功能,同时监控测试机上进程和线程的CPU占用率和/或内存占用量和/或产生的网络流量,结合上述终端自身CPU和内存数据来确定。
在本实施例的一些可选的实现方式中,终端还可以响应于待发送数据的大小在预设的数据大小范围内,向上述服务器发送待发送数据,其中,上述待发送数据是将上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息进行加密得到的;判断在预定时间段内是否接收到上述服务器发送的成功接收上述待发送数据的信息;如果是,则删除本地存储的上述待发送数据;如果否,则修改上述待发送数据的发送次数;响应于满足预设的重新发送条件组,重新发送上述待发送数据,其中,上述重新发送条件组包括以下条件中的至少一个:终端当前已连接无线网络,上述待发送数据的发送次数未超过预设的发送次数阈值,距上述终端上一次发送上述待发送数据的时间大于预设的发送时间间隔。其中,上述加密可以使用通用的加密算法加密处理,也可以在通用的加密算法处理后再进一步进行客户端和服务端协商好的自定义加密头部替换处理,从而增强数据的加密安全性。除加密操作外还可以进行压缩操作。另外,准备向服务器发送待发送数据时可以重命名待发送的文件,以避免文件发送失败导致丢失查询到的数据。
本申请的上述实施例提供的方法通过接收服务器发送的查询信息,查询上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息,向上述服务器发送上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息,使得上述服务器根据上述进程的状态信息或上述线程的状态信息确定上述终端是否使用上述应用的上述预定功能,实现了更加精准的应用监控。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种应用监控装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例上述的应用监控装置500包括:查询信息发送单元501、获取单元502和确定单元503。其中,查询信息发送单元501,用于向安装了预定应用的终端发送查询信息,其中,上述查询信息包括进程名称和/或线程名称,上述进程名称对应的进程或上述线程名称对应的线程用于实现上述应用的预定功能;获取单元502,用于从上述终端获取上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息;确定单元503,用于根据上述进程的状态信息或上述线程的状态信息确定上述终端是否使用上述应用的上述预定功能。
在本实施例中,查询信息发送单元501可以定期获取终端已安装应用列表,响应于终端已安装应用列表中包括了预定应用,向上述终端发送查询信息。预定应用可以是任何需要监控其使用情况的应用。
在本实施例中,获取单元502可以获取终端根据查询信息发送单元501发送的查询信息查询到的查询结果,上述查询结果包括上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。
在本实施例中,确定单元503可以根据获取单元502中获取到进程名称对应的进程的状态信息或线程名称对应的线程的状态信息确定终端是否使用应用的预定功能。
在本实施例的一些可选的实现方式中,上述获取单元502进一步配置用于:响应于上述进程名称对应的进程为前台进程或上述线程名称对应的线程为前台线程,从上述终端获取上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。
在本实施例的一些可选的实现方式中,上述查询信息还包括查询频率;以及上述获取单元502进一步配置用于:从上述终端获取上述终端按照上述查询频率查询到的上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。
在本实施例的一些可选的实现方式中,上述确定单元503,还包括:记录子单元,用于记录上述终端按照上述查询频率查询上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息的查询时间;确定子单元,用于利用上述状态信息以及上述状态信息对应的查询时间确定上述终端使用上述应用的预定功能的时长。
在本实施例的一些可选的实现方式中,上述状态信息还包括以下至少一项:CPU占用率、内存占用量、产生的网络流量;以及上述确定单元503进一步配置用于:根据上述CPU占用率和/或内存占用量和/或产生的网络流量是否超过预设阈值确定上述终端是否使用上述应用的预定功能。
在本实施例的一些可选的实现方式中,上述装置还包括:查询项发送单元504,用于向上述终端发送以下查询项中的至少一项:终端操作***的版本、终端设备型号、终端的网络连接情况;查询结果接收单元505,用于从上述终端接收对上述查询项的查询结果。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了另一种应用监控装置的一个实施例,该装置实施例与图4所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例上述的应用监控装置600包括:查询信息接收单元601、状态信息查询单元602和状态信息发送单元603。其中,查询信息接收单元601,用于接收服务器发送的查询信息,其中,上述查询信息包括进程名称和/或线程名称,上述进程名称对应的进程或上述线程名称对应的线程用于实现预定应用的预定功能;状态信息查询单元602,用于查询上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息;状态信息发送单元603,用于向上述服务器发送上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息,使得上述服务器根据上述进程的状态信息或上述线程的状态信息确定上述应用的上述预定功能是否正在被使用。
在本实施例中,所述查询信息接收单元601可以定期向服务器发送已安装应用列表,接收服务器响应于已安装应用列表中包括了预定应用发送的查询信息。预定应用可以是任何需要监控其使用情况的应用。
在本实施例中,状态信息查询单元602根据查询信息接收单元601中接收的查询信息进行查询,得到上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息。
在本实施例中,状态信息发送单元603向服务器发送状态信息查询单元602中查询到的进程名称对应的进程的状态信息或线程名称对应的线程的状态信息,使得上述服务器根据上述进程的状态信息或上述线程的状态信息确定上述终端是否使用上述应用的上述预定功能。
在本实施例的一些可选的实现方式中,上述状态信息查询单元进一步配置用于602,进一步配置用于:响应于上述进程名称对应的进程为前台进程或所述线程名称对应的线程为前台线程,查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
在本实施例的一些可选的实现方式中,上述状态信息发送单元603进一步配置用于:响应于待发送数据的大小在预设的数据大小范围内,向上述服务器发送待发送数据,其中,上述待发送数据是将上述进程名称对应的进程的状态信息或上述线程名称对应的线程的状态信息进行加密得到的;判断在预定时间段内是否接收到上述服务器发送的成功接收上述待发送数据的信息;如果是,则删除本地存储的上述待发送数据;如果否,则修改上述待发送数据的发送次数;响应于满足预设的重新发送条件组,重新发送上述待发送数据,其中,上述重新发送条件组包括以下条件中的至少一个:终端当前已连接无线网络,上述待发送数据的发送次数未超过预设的发送次数阈值,距上述终端上一次发送上述待发送数据的时间大于预设的发送时间间隔。
下面参考图7,其示出了适于用来实现本申请实施例的服务器的计算机***700的结构示意图。
如图7所示,计算机***700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有***700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括查询信息发送单元、获取单元和确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,确定单元还可以被描述为“根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (15)
1.一种应用监控方法,其特征在于,所述方法包括:
获取终端已安装应用列表,响应于终端已安装应用列表中包括预定应用,向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;
从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;
根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能;
其中,所述从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,包括:
响应于所述进程名称对应的进程为前台进程或所述线程名称对应的线程为前台线程,从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
2.根据权利要求1所述的方法,其特征在于,所述查询信息还包括查询频率;以及
所述从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,包括:
从所述终端获取所述终端按照所述查询频率查询到的所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述进程的状态信息和/或所述线程的状态信息确定所述终端是否使用所述应用的预定功能,还包括:
记录所述终端按照所述查询频率查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息的查询时间;
利用所述状态信息以及所述状态信息对应的查询时间确定所述终端使用所述应用的预定功能的时长。
4.根据权利要求1所述的方法,其特征在于,所述状态信息还包括以下至少一项:CPU占用率、内存占用量、产生的网络流量;以及
所述根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的预定功能,还包括:
根据所述CPU占用率和/或内存占用量和/或产生的网络流量是否超过预设阈值确定所述终端是否使用所述应用的预定功能。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述终端发送以下查询项中的至少一项:终端操作***的版本、终端设备型号、终端的网络连接情况;
从所述终端接收对所述查询项的查询结果。
6.一种应用监控方法,应用于终端,其特征在于,所述方法包括:
向服务器发送已安装应用列表;
接收服务器响应于所述已安装应用列表中包括预定应用发送的查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现预定应用的预定功能;
查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;
向所述服务器发送所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,使得所述服务器根据所述进程的状态信息或所述线程的状态信息确定所述应用的所述预定功能是否正在被使用;
其中,所述查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,包括:
响应于所述进程名称对应的进程为前台进程或所述线程名称对应的线程为前台线程,查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
7.根据权利要求6所述的方法,其特征在于,所述向所述服务器发送所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,包括:
响应于待发送数据的大小在预设的数据大小范围内,向所述服务器发送待发送数据,其中,所述待发送数据是将所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息进行加密得到的;
判断在预定时间段内是否接收到所述服务器发送的成功接收所述待发送数据的信息;
如果是,则删除本地存储的所述待发送数据;
如果否,则修改所述待发送数据的发送次数;响应于满足预设的重新发送条件组,重新发送所述待发送数据,其中,所述重新发送条件组包括以下条件中的至少一个:所述终端当前已连接无线网络,所述待发送数据的发送次数未超过预设的发送次数阈值,距所述终端上一次发送所述待发送数据的时间大于预设的发送时间间隔。
8.一种应用监控方法,其特征在于,所述方法包括:
服务器获取终端已安装应用列表,响应于终端已安装应用列表中包括预定应用,向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;
所述终端查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;
所述终端向所述服务器发送所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;
所述服务器根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能;
其中,所述查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,包括:
响应于所述进程名称对应的进程为前台进程或所述线程名称对应的线程为前台线程,查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
9.一种应用监控装置,其特征在于,所述装置包括:
查询信息发送单元,用于获取终端已安装应用列表,响应于终端已安装应用列表中包括预定应用,向安装了预定应用的终端发送查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现所述应用的预定功能;
获取单元,用于从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;
确定单元,用于根据所述进程的状态信息或所述线程的状态信息确定所述终端是否使用所述应用的所述预定功能;
其中,所述获取单元进一步配置用于:
响应于所述进程名称对应的进程为前台进程或所述线程名称对应的线程为前台线程,从所述终端获取所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
10.根据权利要求9所述的装置,其特征在于,所述查询信息还包括查询频率;以及
所述获取单元进一步配置用于:
从所述终端获取所述终端按照所述查询频率查询到的所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
11.根据权利要求10所述的装置,其特征在于,所述确定单元,还包括:
记录子单元,用于记录所述终端按照所述查询频率查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息的查询时间;
确定子单元,用于利用所述状态信息以及所述状态信息对应的查询时间确定所述终端使用所述应用的预定功能的时长。
12.根据权利要求9所述的装置,其特征在于,所述状态信息还包括以下至少一项:CPU占用率、内存占用量、产生的网络流量;以及
所述确定单元进一步配置用于:
根据所述CPU占用率和/或内存占用量和/或产生的网络流量是否超过预设阈值确定所述终端是否使用所述应用的预定功能。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
查询项发送单元,用于向所述终端发送以下查询项中的至少一项:终端操作***的版本、终端设备型号、终端的网络连接情况;
查询结果接收单元,用于从所述终端接收对所述查询项的查询结果。
14.一种应用监控装置,其特征在于,所述装置包括:
查询信息接收单元,用于向服务器发送已安装应用列表,接收服务器响应于所述已安装应用列表中包括预定应用发送的查询信息,其中,所述查询信息包括进程名称和/或线程名称,所述进程名称对应的进程或所述线程名称对应的线程用于实现预定应用的预定功能;
状态信息查询单元,用于查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息;
状态信息发送单元,用于向所述服务器发送所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息,使得所述服务器根据所述进程的状态信息或所述线程的状态信息确定所述应用的所述预定功能是否正在被使用;
其中,所述状态信息查询单元进一步配置用于:
响应于所述进程名称对应的进程为前台进程或所述线程名称对应的线程为前台线程,查询所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息。
15.根据权利要求14所述的装置,其特征在于,所述状态信息发送单元进一步配置用于:
响应于待发送数据的大小在预设的数据大小范围内,向所述服务器发送待发送数据,其中,所述待发送数据是将所述进程名称对应的进程的状态信息或所述线程名称对应的线程的状态信息进行加密得到的;
判断在预定时间段内是否接收到所述服务器发送的成功接收所述待发送数据的信息;
如果是,则删除本地存储的所述待发送数据;
如果否,则修改所述待发送数据的发送次数;响应于满足预设的重新发送条件组,重新发送所述待发送数据,其中,所述重新发送条件组包括以下条件中的至少一个:终端当前已连接无线网络,所述待发送数据的发送次数未超过预设的发送次数阈值,距所述终端上一次发送所述待发送数据的时间大于预设的发送时间间隔。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610249118.7A CN105930249B (zh) | 2016-04-20 | 2016-04-20 | 应用监控方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610249118.7A CN105930249B (zh) | 2016-04-20 | 2016-04-20 | 应用监控方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105930249A CN105930249A (zh) | 2016-09-07 |
CN105930249B true CN105930249B (zh) | 2019-11-12 |
Family
ID=56839492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610249118.7A Active CN105930249B (zh) | 2016-04-20 | 2016-04-20 | 应用监控方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930249B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649064B (zh) * | 2016-11-28 | 2020-02-07 | 武汉斗鱼网络科技有限公司 | 一种应用操作监测方法及装置 |
CN108243204B (zh) * | 2016-12-23 | 2021-06-18 | 北京奇虎科技有限公司 | 进程运行状态的展示方法和展示装置 |
CN109240893B (zh) * | 2018-07-18 | 2021-06-25 | 平安科技(深圳)有限公司 | 应用运行状态查询方法及终端设备 |
CN110971643B (zh) * | 2018-09-30 | 2022-07-29 | 北京国双科技有限公司 | 消息推送方法和装置、存储介质和处理器 |
CN113190404B (zh) * | 2021-04-23 | 2023-01-03 | Oppo广东移动通信有限公司 | 场景识别方法、装置、电子设备和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360923A (zh) * | 2014-11-03 | 2015-02-18 | 中国银行股份有限公司 | 批量应用进程的监控方法及监控*** |
CN104486138A (zh) * | 2014-11-25 | 2015-04-01 | 北京奇虎科技有限公司 | 流量监控方法、装置和监控服务器 |
CN105095049A (zh) * | 2015-08-17 | 2015-11-25 | 安一恒通(北京)科技有限公司 | 用于监控应用操作的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156306B (zh) * | 2013-07-31 | 2017-08-25 | 腾讯科技(深圳)有限公司 | 一种应用进程检测方法、装置及终端设备 |
-
2016
- 2016-04-20 CN CN201610249118.7A patent/CN105930249B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360923A (zh) * | 2014-11-03 | 2015-02-18 | 中国银行股份有限公司 | 批量应用进程的监控方法及监控*** |
CN104486138A (zh) * | 2014-11-25 | 2015-04-01 | 北京奇虎科技有限公司 | 流量监控方法、装置和监控服务器 |
CN105095049A (zh) * | 2015-08-17 | 2015-11-25 | 安一恒通(北京)科技有限公司 | 用于监控应用操作的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105930249A (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105930249B (zh) | 应用监控方法和装置 | |
US10033832B2 (en) | Systems and methods for providing a client agent for delivery of remote services | |
US9594597B2 (en) | Systems and methods for automated server side brokering of a connection to a remote device | |
CN106302445B (zh) | 用于处理请求的方法和装置 | |
EP3030966B1 (en) | Virtual computing instance migration | |
JP6127150B2 (ja) | ユーザに関連付けられている複数のデバイスに対する通知の送信 | |
CN109347934B (zh) | 消息推送方法和***以及服务器、存储介质和电子装置 | |
CN110505141B (zh) | 即时通讯消息的处理方法、装置、可读介质及电子设备 | |
CN113079164B (zh) | 堡垒机资源的远程控制方法、装置、存储介质及终端设备 | |
CN110727560A (zh) | 云服务报警方法及装置 | |
WO2021139383A1 (zh) | 直播间礼物资源更新方法、装置、介质及电子设备 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
CN108200132A (zh) | 资源获取方法、装置、设备及计算机可读存储介质 | |
CN110008050A (zh) | 用于处理信息的方法和装置 | |
CN110209984A (zh) | 信息交互方法、电子设备和计算机可读介质 | |
CN110187877B (zh) | 图标获取方法及装置、***、电子设备、存储介质 | |
US10432490B2 (en) | Monitoring single content page application transitions | |
CN110858242A (zh) | 页面跳转方法及装置 | |
US20170223136A1 (en) | Any Web Page Reporting and Capture | |
CN111600883A (zh) | 一种车辆诊断方法、***及电子设备和存储介质 | |
CN115587860A (zh) | 业务处理方法、装置、存储介质及电子设备 | |
CN112099976A (zh) | 政务数据交换任务调度方法和装置 | |
CN104657152A (zh) | 数据传输管理方法以及电子设备 | |
US20240152504A1 (en) | Data interaction method, apparatus, and electronic device | |
CN109508194A (zh) | 一种推送应用程序的方法及***、终端、云端服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |