受保护系统的应用程序调试方法及智能终端的制作方法_2

文档序号:9810440阅读:来源:国知局
找进程标识相比,大大提升了进程标识的获取效率,进而提升了整个调试过程的效率。
[0031]因此,本发明的实施例可以更加高效地对应用程序进行全程调试。
[0032]下面结合附图具体介绍本发明实施例的技术方案。
[0033]本发明实施例的应用场景,是对需要在智能终端中的受保护系统下安装运行的应用程序进行调试。
[0034]本发明实施例中的受保护系统可以是传统意义上的Linux操作系统或Unix操作系统。受保护系统也可以是基于Linux操作系统衍生出来的操作系统;例如,Android(安卓)系统、基于SELinux模块的操作系统、基于Linux Container虚拟化技术实现的隔离系统。
[0035]本发明实施例中的智能终端可以是智能手机、平板电脑等终端设备;该智能终端的内部结构的框架示意图,如图1所示,包括:进程管理器101和调试器102。
[0036]其中,进程管理器101主要用于为应用程序分配进程、重定向输入输出、存储进程标识等,具体功能将在后续进行详细介绍,此处不再赘述。
[0037]调试器102主要用于对应用程序的进程进行调试,具体功能将在后续进行详细介绍,此处不再赘述。
[0038]较佳地,如图1所示,本发明实施例中的智能终端还包括:调试启动器103和命令处理器104。
[0039]其中,调试启动器103用于根据调试员输入的指令,输出相关命令;命令处理器104用于将调试启动器103输出的命令,转发至进程管理器101或调试器102;调试启动器103和命令处理器104的具体功能都将在后续进行详细介绍,此处不再赘述。
[0040]基于上述进程管理器101和调试器102,本发明实施例提供了一种受保护系统的应用程序调试方法,包括:智能终端中的进程管理器101接收到延时启动命令后,为延时启动命令涉及的应用程序分配进程,并存储进程的进程标识;智能终端中的调试器102接收到进程连接命令后,根据其中携带的进程标识的存储位置或进程标识,连接进程;进程管理器在所延时启动命令所指示的延时时间到达时,启动进程。由于调试器102连接进程在先,进程启动在后,因此调试器102可以对应用程序的进程进行全程调试。
[0041]较佳地,基于上述包含调试启动器103和命令处理器104的智能终端,本发明实施例的受保护系统的应用程序调试方法的流程示意图如图2所示,包括如下步骤:
[0042]S201:调试启动器103接收到调试员输入的调试指令后,输出延时启动命令到智能终端中的命令处理器104。
[0043]具体地,调试启动器103可以通过人机交互界面,直接接收调试员输入的调试指令;也可以接收到调试员输入的记载有调试指令的文件后,从文件中获取调试指令。记载有调试指令的文件可以是脚本文件。
[0044]调试启动器103从接收或获取的调试指令中,解析出应用程序的名称、进程管理器名称、以及进程延迟启动的延迟时间等参数信息。
[0045]调试启动器103将解析出的应用程序的名称、进程管理器名称、以及进程延迟启动的延迟时间等参数信息携带于延时启动命令中后,将该延迟启动命令输出到智能终端中的命令处理器104。
[0046]较佳地,延时启动命令可以包括多个命令行。例如,命令行invoker delay_timeappl icat1n_name ;该命令行中invoker (启动器)表示进程管理器名称,delay_time表示进程延迟启动的延迟时间,applicat1n_name表示应用程序的名称。
[0047]较佳地,调试启动器103可以从调试指令中,解析出应用程序的名称、进程管理器名称、进程延迟启动的延迟时间、以及开关参数;将解析出的应用程序的名称、进程管理器名称、进程延迟启动的延迟时间、以及开关参数都携带于延时启动命令中后,将该延迟启动命令输出到智能终端中的命令处理器104。
[0048]S202:命令处理器104接收到延时启动命令后,通过识别出其中的关键字涉及进程管理器101,将延时启动命令转发至进程管理器101。
[0049 ]具体地,命令处理器104接收到延时启动命令后,从接收到的延时启动命令中解析出应用程序的名称、进程管理器名称、以及进程延迟启动的延迟时间等参数信息。
[0050]命令处理器104将解析出的进程管理器名称作为关键字,根据该关键字进行查询,从本智能终端中查询出名称与该关键字相一致的进程管理器作为该关键字涉及进程管理器 1l0
[0051]较佳地,进程管理器101可以是名为invoker的进程管理器。
[0052]命令处理器104启动进程管理器101,将接收的延时启动命令转发至进程管理器101。
[0053]S203:智能终端中的进程管理器101接收到延时启动命令后,为该延时启动命令涉及的应用程序分配进程,并存储所分配的进程的进程标识。
[0054]具体地,进程管理器101获取延迟启动命令中携带的应用程序的名称。例如,进程管理器101接收到延时启动命令后,从中解析出应用程序的名称。
[0055]进程管理器101获取应用程序的名称后,为该应用程序分配进程。
[0056]较佳地,进程管理器101从延时启动命令中解析出应用程序的名称和开关参数后,从智能终端中已经运行的应用程序的实例中查找该名称的应用程序的实例,若查找不到该名称的应用程序的实例,则确定智能终端中不存在已运行的该名称的应用程序的实例,即确定该应用程序未运行;之后,进程管理器101为该应用程序分配进程。
[0057]例如,进程管理器101获取应用程序的名称并确定该应用程序未运行后,创建一个进程用于运行该应用程序。
[0058]再如,进程管理器101获取应用程序的名称并确定该应用程序未运行后,从现存的进程中选择一个空闲的进程用于运行该应用程序。
[0059]进程管理器101从延时启动命令中解析出应用程序的名称和开关参数后,从智能终端中已经运行的应用程序的实例中查找该名称的应用程序的实例,若查找到该名称的应用程序的实例,则确定该应用程序已运行,可以根据预设的开关参数涉及的规则,对运行该应用程序的进程进行结束、重新启动或暂停等操作。
[0060]进程管理器101为应用程序分配进程,并存储所分配的进程的进程标识。较佳地,进程管理器101在为应用程序分配进程的过程中,获取所分配的进程的进程标识并进行存储;或者,进程管理器101对运行应用程序的进程进行结束、重新启动或暂停等操作后,获取该进程的进程标识并进行存储。
[0061]较佳地,进程管理器101将为应用程序所分配的进程的进程标识,存储到指定文件中,并记录指定文件的存放路径和进程标识在指定文件中的位置。
[0062]例如,指定文件的存放路径可以是/tmp/app_id;该存放路径中app_id表示指定文件的文件名。
[0063]更优的,由于进程通常将从其标准输入文件中得到输入数据,将正常输出数据输出到其标准输出文件,而将错误信息输送到标准错误文件中。进程管理器101存储所分配的进程的进程标识后,根据指定的进程通信机制,例如socket套接字通信机制,可以将运行本进程管理器101的进程(即进程管理器101所在进程)的标准输入(STDIN)文件重定向到为应用程序分配的进程,
[0064]例如,进程管理器101根据socket通信机制,向为应用程序分配的进程发送输入重定向请求,获得应用程序的进程针对该请求的允许信息后,将应用程序的进程的标准输入的文件描述符(File Descriptor),重定向到进程管理器101所在进程的标准输入文件。
[0065]此时,应用程序可以从进程管理器101的标准输入文件中,直接获取或接收到进程管理器101所接收的命令,便于应用程序接收其进程外部的命令,例如多种调试命令等,便于在后续调试应用程序。
[0066]进一步,进程管理器101存储所分配的进程的进程标识后,根据指定的进程通信机制,可以将为应用程序分配的进程的标准输出(STDOUT)和标准错误(STDERR)文件,重定向到进程管理器101所在进程。
[0067]例如,进程管理器101根据socket通信机制,向为应用程序分配的
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1