日志数据的通讯处理装置、方法以及移动终端的制作方法

文档序号:10512018阅读:166来源:国知局
日志数据的通讯处理装置、方法以及移动终端的制作方法
【专利摘要】本发明提供日志数据的通讯处理装置及方法与移动终端,其中该日志数据的通讯处理装置包括流套接字通讯模块、分发线程和线程池,所述线程池包括多个可并行工作的工作线程;其中,流套接字通讯模块,用于接收应用发送的日志数据,并将所述日志数据发送给所述分发线程;所述分发线程,用于从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程;所述工作线程,用于对所述分发线程发送的日志数据进行解析处理。本发明能避免现有Logd数据通讯处理效率低的缺陷。
【专利说明】
曰志数据的通讯处理装置、方法以及移动终端
技术领域
[0001]本发明涉及移动终端领域,尤其涉及一种日志数据的通讯处理装置、方法以及移动终端。
【背景技术】
[0002]Log即日志,通常是系统或者某些软件对已完成的某种处理的记录,以便将来作为参考。Log并没有固定的格式,通常是文本文件,可以用记事本打开以查看内容,当然也Log可以是其它格式。大部分的Log可以从文件名中看出它的作用,比如unins tall.log或是error, log,前者通常是软件安装过程中生成的记录,以便将来卸载的时候可以提供给卸载程序使用,后者通常是用来记录一些软件运行中的错误信息等等。
[0003]Log机制是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。Android系统提供了用户级的轻量的Log机制,它的实现贯穿了 Java,JNI,本地c/c++实现以及LINUX内核驱动等Android系统的各个层次,方便程序员使用。Android系统从5.0开始使用了一个全新的Log机制,S卩LogdC3Logd是一个后台运行的服务程序,术语叫守护进程(daemon),其负责收集、存储、输出其他所有程序的日志数据。Logd抛弃了原来内核缓冲(kernel buffer)的机制,使用用户态的Logd来维护日志缓冲区(Log buffer) ,Log buffer是一块循环使用的内存区域。
[0004]每个应用(即Log客户端)都会生成Log数据,并与Logd通讯,这时Logd就是系统的中心。其中,如果应用采用数据报套接字(即Datagram Socket)通讯模块与Logd通讯,由于Datagram Socket不会阻塞应用,因此可以提高Android系统的运行效率。但是,DatagramSocket不是一种保证送达的通讯协议,很容易造成Log数据丢失,特别是在经过深度定制的Android系统中,Log数据丢失的问题会更加严重。如果应用采用流套接字(即StreamSocket)通讯模块与Logd通讯,当Logd工作负荷比较大时,应用就会被Stream Socket阻塞以等待Logd与之通讯,整个Android系统就会因为Logd而变得缓慢,影响了 Android系统的运行效率,而与Datagram Socket相比,Stream Socket可以保证Log数据不丢失,即保证了通讯的可靠性。
[0005]目前的现有技术还无法同时保证Android系统的运行效率和通讯的可靠性。

【发明内容】

[0006]本发明旨在解决上面描述的问题。本发明的一个目的是提供一种日志数据通讯处理装置、方法以及移动终端,以避免现有技术中无法同时保证Android系统的运行效率和通讯的可靠性。
[0007]根据本发明的第一方面,一种日志数据的通讯处理装置,包括:流套接字通讯模块、分发线程和线程池,所述线程池包括多个可并行工作的工作线程;其中,流套接字通讯模块,用于接收应用发送的Log数据,并将所述log数据发送给所述分发线程;所述分发线程,用于从所述线程池中为所述Log数据选择至少一个空闲的工作线程,将所述Log数据发送给所述至少一个空闲的工作线程;所述工作线程,用于对所述分发线程发送的Log数据进行解析处理。
[0008]进一步地,所述工作线程还用于,将自身的工作状态上报给所述分发线程,所述工作状态包括空闲状态和非空闲状态;所述分发线程用于,根据所述工作线程上报的工作状态从所述线程池中为所述Log数据选择至少一个空闲的工作线程,将所述Log数据发送给所述至少一个空闲的工作线程。
[0009]进一步地,所述的日志数据的通讯处理装置还包括存储器;所述存储器,用于存储所述工作线程解析处理后的数据。
[0010]进一步地,所述分发线程用于,从所述线程池中为所述日志数据选择一个空闲的工作线程,将所述日志数据发送给所述一个空闲的工作线程。
[0011 ]根据本发明的第二方面,一种移动终端包括流套接字通讯模块和处理器,所述处理器包括分发线程和线程池,所述线程池包括多个可并行工作的工作线程;其中,所述流套接字通讯模块,用于接收应用发送的日志数据,并将所述日志数据发送给所述分发线程;所述分发线程,用于从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程;所述工作线程,用于对所述分发线程发送的日志数据进行解析处理。
[0012]进一步地,所述工作线程还用于,将自身的工作状态上报给所述分发线程,所述工作状态包括空闲状态和非空闲状态;
[0013]所述分发线程用于,根据所述工作线程上报的工作状态从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程。进一步地,所述移动终端还包括存储器;所述存储器,用于存储所述工作线程将解析处理后的数据。
[0014]根据本发明的第三方面,一种日志数据的通讯处理方法,包括:
[0015]步骤A:流套接字通讯模块接收应用发送的日志数据,并将所述日志数据发送给分发线程;步骤B:所述分发线程从线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程,所述线程池包括多个可并行工作的工作线程;步骤C:所述至少一个空闲的工作线程对所述日志数据进行解析处理。
[0016]进一步地,所述的日志数据的通讯处理方法在步骤C之后,还包括:步骤D:所述至少一个空闲的工作线程将解析处理后的数据存储到存储器中。
[0017]进一步地,所述分发线程从线程池中为所述日志数据选择至少一个空闲的工作线程的步骤,包括:所述分发线程接收所述工作线程上报的自身的工作状态,所述工作状态包括空闲状态和非空闲状态;所述分发线程根据所述工作线程上报的工作状态确定线程池中空闲的工作线程,进而从所述线程池中为所述日志数据选择至少一个空闲的工作线程。
[0018]本发明提出的一种日志数据通讯处理装置、方法及移动终端,通过在流套接字通讯模块接收日志数据后,选择线程池中一个空闲的工作线程,并将日志数据传送至空闲的工作线程进行处理,即前端接收应用发送过来的日志数据,但不对数据进行任何处理,因此前端的处理能力可以和多个应用的数据请求发送负荷相匹配,后端空闲的工作线程对发送来的日志数据进行耗时的处理工作,因为工作线程是多个并行工作,所以整个线程池的处理能力非常大,由此通过将接收日志数据与处理日志数据分开进行,且利用线程池进行日志数据处理,能有效提高日志数据通讯处理效率,避免现有Logd系统通讯处理效率低的缺陷。即,使用阻塞可靠的Stream Socket通讯方式保证Log数据不会丢失,同时结合多线程的线程池技术来提高了 Android系统的运行效率。
[0019]参照附图来阅读对于示例性实施例的以下描述,本发明的其他特性特征和优点将变得清晰。
【附图说明】
[0020]并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。
[0021 ]图1示例性地示出了一种日志数据的通讯处理方法的流程图;
[0022]图2示例性地示出了一种日志数据的通讯处理方法的另一流程图;
[0023]图3示例性地示出了一种日志数据的通讯处理装置的结构框图;为方便理解,图中还示出了 Log客户端;
[0024]图4示例性地示出了一种日志数据的通讯处理装置的另一结构框图。
【具体实施方式】
[0025]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0026]如图1所示,一种日志数据的通讯处理方法,包括:
[0027]步骤101:流套接字通讯模块接收应用发送的Log数据,并将所述log数据发送给分发线程;
[0028]步骤103:所述分发线程从线程池中为所述Log数据选择至少一个空闲的工作线程,将所述Log数据发送给所述至少一个空闲的工作线程,所述线程池包括多个可并行工作的工作线程;
[0029]步骤105:所述分发线程从线程池中将所述Log数据发送给所述至少一个空闲的工作线程,所述线程池包括多个可并行工作的工作线程;
[0030]步骤107:所述至少一个空闲的工作线程对Log数据进行解析处理。
[0031]本实施例Log系统的通讯处理方法,通过流套接字通讯模块在接收Log数据后将所述log数据发送给分发线程,分发线程选择线程池中至少一个空闲的工作线程,并将Log数据传送至该至少一个空闲的工作线程进行解析处理,即前端(分发线程)接收应用发送过来的数据,但不对数据进行任何处理,因此前端的处理能力可以和多个应用的数据请求发送负荷相匹配,后端(工作线程)Log数据进行耗时的处理工作,因为后端是并行工作,所以整个后端的处理能力非常大,通过将接收Log数据与处理Log数据分开进行,且利用工作线程之间的并行处理能力,能有效提高Log数据通讯处理效率,避免现有Logd架构通讯处理效率低的缺陷。
[0032]图2所示方案是基于图1所示方案的一种优化方案,如图2所示,一种日志数据的通讯处理方法,包括:
[0033]步骤201:流套接字(S卩stream socket)通讯模块接收并转发应用(如Log客户端)发送的Log数据;其中,该Log客户端是需要输出Log数据的所有应用;
[0034]步骤203:线程池中的各工作线程实时将自身的工作状态上报给分发线程;该工作状态至少包括空闲状态及非空闲状态;
[0035]步骤205:分发线程接收Log数据;
[0036]步骤207:分发线程选择线程池中一个空闲的工作线程,且将Log数据传送至少一个空闲的工作线程;
[0037]步骤209:至少一个空闲的工作线程对Log数据进行处理。
[0038]优选地,在步骤209之后还可以包括:至少一个空闲的工作线程将解析处理后的数据存储到存储器中。
[0039]可以理解的是,具体操作时,步骤203与步骤201、步骤205、步骤207及步骤209之间的执行顺序关系没有特定要求,在整个流程执行中,各工作线程可实时(比如间隔预设时间)将自身的工作状态上报给分发线程,本实施例将步骤203放在步骤201后,只是一种实施方式,不应作限定性理解。
[°04°] 本实施例中Log客户端通过阻塞的可靠的stream socket与Logd进行通讯,相比于现有各个应用通过datagram socket与Logd进行通讯容易丢失Log数据而言,能保证不会丢失Log数据;同时将Log数据传送至空闲的工作线程进行处理,即前端接收Log客户端发送过来的数据,但不对数据进行任何处理,因此前端的处理能力可以和多个客户端的请求发送负荷相匹配,且线程池中的各个工作线程是并行工作的,所以整个线程池的处理能力非常大,避免现有使用阻塞的方式系统通讯处理效率不高的缺陷;由此不仅通过使用阻塞可靠的stream socket通讯方式保证不会丢失,实现了阻塞可靠的通讯方式,同时结合多线程的线程池技术来提高Logd的处理能力,还能提高Logd架构的处理效率,解决Log系统中吞吐量和系统效能的矛盾,实现了可靠的高吞吐量的Log系统的通讯处理方法。
[0041 ]图3是图1及图2所示方法实施例对应的Log数据的通讯处理装置,图1及图2的解释说明可以适用于本实施例,如图3所示,一种Log数据的通讯处理装置,包括:
[0042]流套接字通讯模块、分发线程和线程池,所述线程池包括多个可并行工作的工作线程;其中,
[0043]流套接字通讯模块,用于接收应用(如Log客户端)发送的Log数据,并将所述log数据发送给所述分发线程;
[0044]所述分发线程,用于从所述线程池中为所述Log数据选择至少一个空闲的工作线程,将所述Log数据发送给所述至少一个空闲的工作线程;
[0045]所述工作线程,用于对所述分发线程发送的Log数据进行解析处理。
[0046]在本发明的一个优选实施方式中,所述工作线程还用于,将自身的工作状态上报给所述分发线程,所述工作状态包括空闲状态和非空闲状态;所述分发线程用于,根据所述工作线程上报的工作状态从所述线程池中为所述Log数据选择至少一个空闲的工作线程,将所述Log数据发送给所述至少一个空闲的工作线程。
[0047]在本发明的另一个优选实施方式中,如图4所示,所述的Log数据的通讯处理装置还包括存储器;所述存储器,用于存储所述工作线程解析处理后的数据。
[0048]本实施例中,Log客户端通过阻塞的可靠的stream socket与Logd进行通讯,能保证不会丢失Log数据;同时将Log数据传送至空闲的工作线程进行处理,前端的处理能力可以和多个客户端的请求发送负荷相匹配,且工作线程是多个并行工作,所以整个线程池的处理能力非常大,避免现有使用阻塞的方式系统通讯处理效率不高的缺陷;由此不仅通过使用阻塞可靠的stream socket通讯方式保证不会丢失,实现了阻塞可靠的通讯方式,同时结合多线程的线程池技术来提高Logd的处理能力,还能提高Logd架构的处理效率,解决Log系统中吞吐量和系统效能的矛盾,提供了一种高吞吐量的Log系统。
[0049]此外,本发明还提供一种移动终端,包括流套接字通讯模块和处理器,所述处理器包括分发线程和线程池,所述线程池包括多个可并行工作的工作线程;其中,
[0050]所述流套接字通讯模块,用于接收应用发送的Log数据,并将所述log数据发送给所述分发线程;
[0051]所述分发线程,用于从所述线程池中为所述Log数据选择至少一个空闲的工作线程,将所述Log数据发送给所述至少一个空闲的工作线程;
[0052]所述工作线程,用于对所述分发线程发送的Log数据进行解析处理。
[0053]在本发明的一个优选实施方式中,所述工作线程还用于,将自身的工作状态上报给所述分发线程,所述工作状态包括空闲状态和非空闲状态;所述分发线程用于,根据所述工作线程上报的工作状态从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程。
[0054]在本发明的另一个优选实施方式中,所述移动终端还包括存储器;所述存储器,用于存储所述工作线程将解析处理后的数据。
[0055]该移动终端有该Log数据的通讯处理装置相应的技术效果,在此不再赘述。
[0056]上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
[0057]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种日志数据的通讯处理装置,其特征在于,包括:流套接字通讯模块、分发线程和线程池,所述线程池包括多个可并行工作的工作线程;其中, 流套接字通讯模块,用于接收应用发送的日志数据,并将所述log数据发送给所述分发线程; 所述分发线程,用于从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程; 所述工作线程,用于对所述分发线程发送的日志数据进行解析处理。2.根据权利要求1所述的日志数据的通讯处理装置,其特征在于, 所述工作线程还用于,将自身的工作状态上报给所述分发线程,所述工作状态包括空闲状态和非空闲状态; 所述分发线程用于,根据所述工作线程上报的工作状态从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程。3.根据权利要求1或2所述的日志数据的通讯处理装置,其特征在于,还包括存储器; 所述存储器,用于存储所述工作线程解析处理后的数据。4.根据权利要求1或2所述的日志数据的通讯处理装置,其特征在于,所述分发线程用于,从所述线程池中为所述日志数据选择一个空闲的工作线程,将所述日志数据发送给所述一个空闲的工作线程。5.一种移动终端,其特征在于,包括流套接字通讯模块和处理器,所述处理器包括分发线程和线程池,所述线程池包括多个可并行工作的工作线程;其中, 所述流套接字通讯模块,用于接收应用发送的日志数据,并将所述日志数据发送给所述分发线程; 所述分发线程,用于从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程; 所述工作线程,用于对所述分发线程发送的日志数据进行解析处理。6.根据权利要求5所述的移动终端,其特征在于, 所述工作线程还用于,将自身的工作状态上报给所述分发线程,所述工作状态包括空闲状态和非空闲状态; 所述分发线程用于,根据所述工作线程上报的工作状态从所述线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程。7.根据权利要求5或6所述的移动终端,其特征在于,所述移动终端还包括存储器; 所述存储器,用于存储所述工作线程将解析处理后的数据。8.—种日志数据的通讯处理方法,其特征在于,包括: 步骤A:流套接字通讯模块接收应用发送的日志数据,并将所述日志数据发送给分发线程; 步骤B:所述分发线程从线程池中为所述日志数据选择至少一个空闲的工作线程,将所述日志数据发送给所述至少一个空闲的工作线程,所述线程池包括多个可并行工作的工作线程; 步骤C:所述至少一个空闲的工作线程对所述日志数据进行解析处理。9.根据权利要求8所述的日志数据的通讯处理方法,其特征在于,在步骤C之后,还包括: 步骤D:所述至少一个空闲的工作线程将解析处理后的数据存储到存储器中。10.根据权利要求8或9所述的日志数据的通讯处理方法,其特征在于,所述分发线程从线程池中为所述日志数据选择至少一个空闲的工作线程的步骤,包括: 所述分发线程接收所述工作线程上报的自身的工作状态,所述工作状态包括空闲状态和非空闲状态; 所述分发线程根据所述工作线程上报的工作状态确定线程池中空闲的工作线程,进而从所述线程池中为所述日志数据选择至少一个空闲的工作线程。
【文档编号】G06F9/54GK105868030SQ201510974084
【公开日】2016年8月17日
【申请日】2015年12月22日
【发明人】孙鹏
【申请人】乐视移动智能信息技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1