Android终端运行异常时的信息反馈方法及系统的制作方法

文档序号:7774027阅读:866来源:国知局
Android终端运行异常时的信息反馈方法及系统的制作方法
【专利摘要】本发明公开一种Android终端运行异常时的信息反馈方法及系统,其中,方法包括步骤:A、当Android终端运行异常时,前台应用活动向后台系统服务发送执行打印并导出文件的命令,所述后台系统服务具有root权限;B、后台系统服务接收到命令后,开始打印并导出内核层、系统层以及应用层的运行日志文件;C、前台应用活动获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。本发明将包括内核层、系统层和应用层的运行日志文件、用户信息及异常描述信息全部反馈给用户,为异常分析提供了更全面的依据。
【专利说明】Android终端运行异常时的信息反馈方法及系统
【技术领域】
[0001]本发明涉及Android系统异常问题处理【技术领域】,尤其涉及一种Android终端运行异常时的信息反馈方法及系统。
【背景技术】
[0002]在Android异常发生时,目前的解决方法是从应用层发起获取日志请求,以获取运行异常信息。这种方法执行的权限仅能保持和应用进程一致的权限,即为应用级权限,其不具有root权限(系统权限的一种),而Android为了对系统内部文件保护,仅对具有root权限的服务开放了所有文件的读取执行功能,而执行打印内核和系统运行日志都需要该权限,对于用户级应用而言无法打印内核信息等内容,其反馈信息必然不够完善。其仅能分析应用层的异常原因,无法跟踪应用层以下的系统和内核错误。
[0003]因此,现有技术还有待于改进和发展。

【发明内容】

[0004]鉴于上述现有技术的不足,本发明的目的在于提供Android终端运行异常时的信息反馈方法及系统,旨在解决现有的解决方法只能基于应用层日志文件进行分析的问题。
[0005]本发明的技术方案如下:
一种Android终端运行异常时的信息反馈方法,其中,包括步骤:
A、当Android终端运行异常时,前台应用活动向后台系统服务发送执行打印并导出文件的命令,所述后台系统服务具有root权限;
B、后台系统服务接收到命令后,开始打印并导出内核层、系统层以及应用层的运行日志文件;
C、前台应用活动获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。
[0006]所述的Android终端运行异常时的信息反馈方法,其中,所述步骤A具体包括:
Al、后台系统服务指定Socket连接的端口,并建立Socket服务器端,用于监听命令; A2、前台应用活动发起建立一个Socket连接,建立发送命令以及接收确认消息的数据
通道,并作为Socket客户端连接到后台系统服务指定的端口 ;
A3、当Android终端运行异常时,Socket客户端发送执行打印并导出文件的命令至Socket服务器端。
[0007]所述的Android终端运行异常时的信息反馈方法,其中,所述步骤B具体包括:
B1、Socket服务器端监听到Socket客户端发送的命令后,执行打印并导出内核层、系
统层以及应用层的运行日志文件;
B2、Socket服务器端发送给Socket客户端操作完毕的确认消息;
B3,Socket客户端接收到确认消息后,提示用户描述异常信息,并接收用户输入的异常描述信息。[0008]所述的Android终端运行异常时的信息反馈方法,其中,所述步骤A之前还包括: A0、预先在系统初始化启动文件中定义后台系统服务的名称、对应的可执行模块的名
称、权限、以及入口函数。
[0009]—种Android终端运行异常时的信息反馈系统,其中,包括:
命令发送模块,用于当Android终端运行异常时,前台应用活动向后台系统服务发送执行打印并导出文件的命令,所述后台系统服务具有root权限;
日志打印导出模块,用于接收到命令后,开始打印并导出内核层、系统层以及应用层的运行日志文件;
封装模块,用于获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。
[0010]所述的Android终端运行异常时的信息反馈系统,其中,所述命令发送模块具体包括:
端口指定单元,用于指定Socket连接的端口,并建立Socket服务器端,用于监听命
令;
端口连接单元,用于发起建立一个Socket连接,建立发送命令以及接收确认消息的数据通道,并作为Socket客户端连接到后台系统服务指定的端口 ;
命令发送单元,用于当Android终端运行异常时,Socket客户端发送执行打印并导出文件的命令至Socket服务器端。
[0011]所述的Android终端运行异常时的信息反馈系统,其中,所述日志打印导出模块具体包括:
打印导出单元,用于监听到Socket客户端发送的命令后,执行打印并导出内核层、系统层以及应用层的运行日志文件;
确认消息发送单元,用于发送给Socket客户端操作完毕的确认消息;
异常描述信息接收单元,用于接收到确认消息后,提示用户描述异常信息,并接收用户输入的异常描述信息。
[0012]所述的Android终端运行异常时的信息反馈系统,其中,所述系统还包括:
定义模块,用于预先在系统初始化启动文件中定义后台系统服务的名称、对应的可执行模块的名称、权限、以及入口函数。
[0013]有益效果:本发明由系统后台服务打印并导出了内核层、系统层及应用层的运行日志文件,并辅以用户输入的运行异常的描述信息,将这些信息封装为运行异常信息,反馈给用户,用户可将其发送至设备厂商和应用开发者,这样设备厂商和应用开发者就能对运行日志文件和异常描述信息进行全面的分析,以修正运行异常产生的原因,并修正错误,提供有针对性的解决方案。
【专利附图】

【附图说明】
[0014]图1为本发明Android终端运行异常时的信息反馈方法较佳实施例的流程图。
[0015]图2为图1所示方法中步骤SlOl的具体流程图。
[0016]图3为本发明中Socket客户端与Socket服务器端的数据通道示意图。
[0017]图4为图1所示方法中步骤S102的具体流程图。[0018]图5为本发明中向用户反馈的运行异常信息的结构图。
[0019]图6为本发明Android终端运行异常时的信息反馈系统较佳实施例的结构框图。
[0020]图7为图6所示系统中命令发送模块的具体结构框图。
[0021]图8为图6所示系统中日志打印导出模块的具体结构框图。 【具体实施方式】
[0022]本发明提供Android终端运行异常时的信息反馈方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]请参阅图1,图1为本发明Android终端运行异常时的信息反馈方法较佳实施例的流程图,如图所示,其包括:
5101、当Android终端运行异常时,前台应用活动向后台系统服务发送执行打印并导出文件的命令,所述后台系统服务具有root权限;
5102、后台系统服务接收到命令后,开始打印并导出内核层、系统层以及应用层的运行日志文件;
5103、前台应用活动获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。
[0024]在步骤SlOl中,首先在Android终端运行异常时,由前台应用活动向后台系统服务发送命令,请求打印并导出运行日志文件,在本发明中,后台系统服务需具有root权限,这样才导出内核层、系统层的运行日志文件。
[0025]具体来说,如图2所示,所述步骤SlOl可细化为以下步骤:
S201、后台系统服务指定Socket连接的端口,并建立Socket服务器端,用于监听命
令;
在本实施例中,通过Socket连接的方式来进行命令请求的传输,后台系统服务需先指定一个Socket连接的端口,例如:#define PORT 8090,并通过调用int socket (intdomain, int type, int protocol)来建立Socket服务器端,用来监听命令。例如:int socketfd = socket(AF_INET, S0CK_STREAM, 0);
上述结构表示:域名地址类型为IPv4网络协议,通信协议类型为提供面向连接的稳定数据传输,即TCP协议,而使用的传输协议编号通常不具体设置,所以设置为O。
[0026]由于Socket客户端只有在Socket服务器端启动后,才能发送命令,所以Socket服务器端是作为系统级后台服务在Android终端系统启动后时开启,并时刻保持监听。
[0027]具体地,可以通过在系统初始化启动文件int.rc中定乂后台系统服务的名称、对应的可执行模块名称、权限、入口函数,例如定义后台系统服务名称为“sockelserver”,权限为root权限等等,从而实现在Android终端启动时加载名称为socket_server的后台系统服务,并以root权限运行服务的可执行文件/system/bin中的入口函数main(),如:
service socket_server /system/bin/socket_serverclass mainuser root
而可执行文件是由后台服务代码的编译模块名称来确定的,如:LOCAL_SRC_FILES = socket_server.c
LOCAL_MODULE:= socket_server
因此,打印和导出运行日志的后台服务入口就在socket_server.c的入口函数main O函数中。
[0028]S202、前台应用活动发起建立一个Socket连接,建立发送命令以及接收确认消息的数据通道,并作为Socket客户端连接到后台系统服务指定的端口 ;
在前台应用活动发起建立一个Socket连接,从而建立一个数据通道,如图3所示,用来发送命令以及接受确认消息。这样,前台应用活动可作为Socket客户端请求连接到Socket服务器端指定的端口,IP地址为本机回送地址127.0.0.1,且端口号与定义好的端口号保持一致,例如:
Socket socket = new Socket (〃127.0.0.1〃,PORT);
S203、当Android终端运行异常时,Socket客户端发送执行打印并导出文件的命令至Socket服务器端。在Android终端运行异常时,Socket客户端就通过建立的数据通道发送命令。
[0029]在步骤S102中,Socket服务器端会保持监听状态,在监听到命令后,执行相应的操作。具体来说,如图4所示,其包括以下步骤:
S301、Socket服务器端监听到Socket客户端发送的命令后,执行打印并导出内核层、系统层以及应用层的运行日志文件;
Socket服务器端会不断地从数据通道中接收数据,监听是否有命令发送过来,在接收到相应的命令时,将开始执行打印并导出内核层、系统层以及应用层的运行日志文件,直至Socket连接关闭为止。
[0030]Socket服务器端的操作分为三个部分:一是输出内核层的运行信息;二是输出系统层的状态信息;三是输出应用层的实时操作信息,以获取对应层的运行日志文件,其中,
1、内核层的运行信息copy /proc/kmsg /sdcard/log/kmsg.txt
内核测试打印信息输出文件,任何时刻只能有一个具有root权限的进程可以读取这个文件;
2、系统层的状态信息bugreport > /sdcard/log/bugreport.txt
Bugr印ort(出错返回报告)能够获取系统内存、CPU使用状态,虚拟内存分配情况,显示网络状态、系统属性,服务唤醒和休眠记录,文件系统等系统信息内容并导出;
3、应用层的实时操作信息logcat-b main _b system _b radio -b events -v time>/sdcard/log/logcat.txt
Logcat (Android中一个命令行工具,用于获得日志信息)打印应用程序、射频相关、系统事件等等的实时测试信息内容并导出。
[0031]S302、Socket服务器端发送给Socket客户端操作完毕的确认消息;
在后台服务导出所有的运行日志文件后,Socket服务器端发送操作完毕的确认消息给Socket客户端。
[0032]S303、SOcket客户端接收到确认消息后,提示用户描述异常信息,并接收用户输入的异常描述信息。
[0033]Socket客户端接收到确认消息,可提示用户描述异常发生情景,用户可对异常产生的情景进行说明,即输入异常描述信息。
[0034]在步骤S103中,前台应用活动获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。
[0035]此步骤中,前台应用活动将获取前述的运行日志文件,然后将其与用户信息、用户输入的异常描述信息封装为运行异常信息,如图5所示,然后将运行异常信息反馈给用户,用户可将其发送设备厂商或者应用开发者,以便做出分析出来,判断是由内核原因、系统故障还是应用错误导致的运行异常,从而获得最终的分析结果和解决方案。
[0036]在本发明中,系统后台服务打印并导出了内核层、系统层及应用层的运行日志文件,并辅以用户输入的产生异常的描述信息,这样设备厂商和应用开发者就能对运行日志文件和异常描述信息进行全面的分析,以修正运行异常产生的原因,并修正错误,提供有针对性的解决方案。
[0037]基于上述方法,本发明还提供一种Android终端运行异常时的信息反馈系统,如图6所示,其包括:
命令发送模块100,用于当Android终端运行异常时,前台应用活动向后台系统服务发送执行打印并导出文件的命令,所述后台系统服务具有root权限;
日志打印导出模块200,用于接收到命令后,开始打印并导出内核层、系统层以及应用层的运行日志文件;
封装模块300,用于获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。
[0038]进一步,如图7所示,所述命令发送模块100具体包括:
端口指定单元110,用于指定Socket连接的端口,并建立Socket服务器端,用于监听命
令;
端口连接单元120,用于发起建立一个Socket连接,建立发送命令以及接收确认消息的数据通道,并作为Socket客户端连接到后台系统服务指定的端口 ;
命令发送单元130,用于当Android终端运行异常时,Socket客户端发送执行打印并导出文件的命令至Socket服务器端。关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。
[0039]进一步,如图8所示,所述日志打印导出模块200具体包括:
打印导出单元210,用于监听到Socket客户端发送的命令后,执行打印并导出内核层、系统层以及应用层的运行日志文件;
确认消息发送单元220,用于发送给Socket客户端操作完毕的确认消息;
异常描述信息接收单元230,用于接收到确认消息后,提示用户描述异常信息,并接收用户输入的异常描述信息。关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。
[0040]进一步,所述系统还包括:
定义模块,用于预先在系统初始化启动文件中定义后台系统服务的名称、对应的可执行模块的名称、权限、以及入口函数。关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。[0041]在本发明中,由具有root权限的后台系统服务来打印并导出内核层、系统层、应用层的运行日志文件,而前台应用活动只需处理最后获取到的运行日志文件,这既满足了对日志操作所需的权限需要,又避免了直接读取对系统文件的任意破坏,所有的执行行为对应用层都是不可见的,前台应用获得只需抓取最终的运行日志文件,以及其他的用户信息和异常描述信息,有利于设备厂商及应用开发人员对运行异常原因进行深入的分析,且保护了系统文件安全。
[0042]应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【权利要求】
1.一种Android终端运行异常时的信息反馈方法,其特征在于,包括步骤: A、当Android终端运行异常时,前台应用活动向后台系统服务发送执行打印并导出文件的命令,所述后台系统服务具有root权限; B、后台系统服务接收到命令后,开始打印并导出内核层、系统层以及应用层的运行日志文件; C、前台应用活动获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。
2.根据权利要求1所述的Android终端运行异常时的信息反馈方法,其特征在于,所述步骤A具体包括: Al、后台系统服务指定Socket连接的端口,并建立Socket服务器端,用于监听命令; A2、前台应用活动发起建立一个Socket连接,建立发送命令以及接收确认消息的数据通道,并作为Socket客户端连接到后台系统服务指定的端口 ; A3、当Android终端运行异常时,Socket客户端发送执行打印并导出文件的命令至Socket服务器端。
3.根据权利要求2所述的Android终端运行异常时的信息反馈方法,其特征在于,所述步骤B具体包括: B1、Socket服务器端监听到Socket客户端发送的命令后,执行打印并导出内核层、系统层以及应用层的运行日志文件; B2、Socket服务器端发送给Socket客户端操作完毕的确认消息; B3,Socket客户端接收到确认消息后,提示用户描述异常信息,并接收用户输入的异常描述信息。
4.根据权利要求1所述的Android终端运行异常时的信息反馈方法,其特征在于,所述步骤A之前还包括: A0、预先在系统初始化启动文件中定义后台系统服务的名称、对应的可执行模块的名称、权限、以及入口函数。
5.一种Android终端运行异常时的信息反馈系统,其特征在于,包括: 命令发送模块,用于当Android终端运行异常时,前台应用活动向后台系统服务发送执行打印并导出文件的命令,所述后台系统服务具有root权限; 日志打印导出模块,用于接收到命令后,开始打印并导出内核层、系统层以及应用层的运行日志文件; 封装模块,用于获取所述运行日志文件,并将用户信息、运行日志文件以及异常描述信息封装为运行异常信息,反馈给用户。
6.根据权利要求5所述的Android终端运行异常时的信息反馈系统,其特征在于,所述命令发送模块具体包括: 端口指定单元,用于指定Socket连接的端口,并建立Socket服务器端,用于监听命令; 端口连接单元,用于发起建立一个Socket连接,建立发送命令以及接收确认消息的数据通道,并作为Socket客户端连接到后台系统服务指定的端口 ; 命令发送单元,用于当Android终端运行异常时,Socket客户端发送执行打印并导出文件的命令至Socket服务器端。
7.根据权利要求6所述的Android终端运行异常时的信息反馈系统,其特征在于,所述日志打印导出模块具体包括: 打印导出单元,用于监听到Socket客户端发送的命令后,执行打印并导出内核层、系统层以及应用层的运行日志文件; 确认消息发送单元,用于发送给Socket客户端操作完毕的确认消息; 异常描述信息接收单元,用于接收到确认消息后,提示用户描述异常信息,并接收用户输入的异常描述信息。
8.根据权利要求6所述的Android终端运行异常时的信息反馈系统,其特征在于,所述系统还包括: 定义模块,用于预先在系统初始化启动文件中定义后台系统服务的名称、对应的可执行模块的名称、权限、以 及入口函数。
【文档编号】H04L29/08GK103544096SQ201310494928
【公开日】2014年1月29日 申请日期:2013年10月21日 优先权日:2013年10月21日
【发明者】田静 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1