移动终端中调试多系统的方法及装置
技术领域
本发明涉及终端设备技术领域,具体而言,本发明涉及一种移动终端中调试多系统的方法及装置。
背景技术
随着移动互联网技术的普及,移动终端日渐成为人们生活中不可分割的一部分。对移动终端中系统以及系统中的应用程序的调试需求也越来越大,一般情况下,用户通过PC(英文全称:Personal Computer)机对移动终端中的系统以及系统中的应用程序进行调试。在单系统的移动终端中,PC机可以直接对该系统以及该系统中的应用程序进行调试。
随着双系统移动终端的兴起,如何对双系统中各个系统以及各个系统中的应用程序进行调试成为新的需要解决的技术问题。目前,现有的移动终端中调试多系统的方法中,PC机确定当前前台正在运行的系统,并对当前前台运行的系统以及系统中的应用程序进行调试。即现有的对双系统移动终端进行调试的方法为PC机仅能调试当前前台运行的系统以及该系统中的应用程序,若需要对移动终端中的其它系统以及其他系统中的应用程序进行调试,需要先切换系统,然后再对该系统以及该系统中的应用程序进行调试,从而导致对双系统移动终端进行调试的复杂度较高,并且无法同时调试移动终端中的各个系统和/或各个系统中分别对应的应用程序。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例根据一个方面,提供了一种移动终端中调试多系统的方法,包括:
创建内域系统以及主控系统分别对应的通用串行总线USB设备节点;
采用第一调试工具,并通过已存在的USB设备节点调试外域系统;和/或
采用第二调试工具,并通过已创建的内域系统对应的USB设备节点,调试所述内域系统;和/或
采用第三调试工具,并通过已创建的主控系统对应的USB设备节点,调试所述主控系统。
可选地,还包括:
根据检测到的调试开启请求消息中携带的系统标识,确定当前需要开启调试功能的系统,并开启所述系统对应的USB设备节点。
具体地,所述开启所述系统对应的USB设备节点的步骤,包括:
若当前需要开启调试功能的系统为外域系统,则直接开启所述外域系统对应的USB设备节点;
若当前需要开启调试功能的系统为内域系统,则通过所述外域系统将所述调试开启请求消息通过所述主控系统发送至所述内域系统;响应于所述调试开启请求消息,通过调用所述内域系统对应的函数,设置对应的环境变量,以使得内核根据设置的环境变量,开启所述内域系统对应的USB设备节点;
若当前需要调试的系统为主控系统,则通过所述外域系统将所述调试开启请求消息发送至所述主控系统;响应于所述调试开启请求消息,通过调用所述主控系统对应的函数,设置对应的环境变量,以使得所述内核根据设置的环境变量,开启所述主控系统对应的USB设备节点。
具体地,所述通过所述外域系统将所述调试开启请求消息通过所述主控系统发送至所述内域系统的步骤,包括:
将所述调试开启请求消息通过JNI调用binder发送至log service;
通过HAL接口将所述调试开启请求消息通过所述主控系统中的log service发送至所述内域系统的log service。
具体地,所述通过所述外域系统将所述调试开启请求消息发送至所述主控系统的步骤,包括:
将所述调试开启请求消息通过JNI调用binder发送至log service;
通过所述HAL接口将所述调试开启请求消息发送至所述主控系统的log service。
可选地,所述方法还包括:
接收调试信息,所述调试信息中携带调试数据以及USB串口号,所述USB串口号用于表征所述调试信息对应的系统;
根据所述USB串口号确定传输所述调试数据的通信接口。
具体地,所述采用第一调试工具,并通过已存在的USB设备节点调试外域系统的步骤,包括:
采用所述第一调试工具以及已存在的USB设备节点连接所述外域系统,并将所述调试数据通过所述已确定的通信接口传输至所述外域系统;
通过所述已确定的通信接口接收所述外域系统返回的调试结果。
具体地,所述采用所述第二调试工具,并通过已创建的内域系统对应的USB设备节点,调试所述内域系统的步骤,包括:
采用所述第二调试工具以及已创建的内域系统对应的USB设备节点连接所述内域系统,并将所述调试数据通过所述已确定的通信接口传输至所述内域系统;
通过所述已确定的通信接口接收所述内域系统返回的调试结果。
具体地,所述采用第三调试工具,并通过已创建的主控系统对应的USB设备节点,调试所述主控系统的步骤,包括:
采用所述第三调试工具以及已创建的主控系统对应的USB设备节点连接所述主控系统,并将所述调试数据通过所述已确定的通信接口传输至所述主控系统;
通过所述已确定的通信接口接收所述主控系统返回的调试结果。
本发明的实施例根据另一个方面,还提供了一种移动终端中调试多系统的装置,所述装置包括:
创建模块,用于创建内域系统以及主控系统分别对应的通用串行总线USB设备节点;
调试模块,用于采用第一调试工具,并通过已存在的USB设备节点调试外域系统;
所述调试模块,还用于采用第二调试工具,并通过已创建的内域系统对应的USB设备节点,调试所述内域系统;
所述调试模块,还用于采用第三调试工具,并通过已创建的主控系统对应的USB设备节点,调试所述主控系统。
可选地,还包括:确定模块、开启模块;
所述确定模块,用于根据检测到的调试开启请求消息中携带的系统标识,确定当前需要开启调试功能的系统;
所述开启模块,用于开启所述系统对应的USB设备节点。
具体地,所述开启模块,具体用于当当前需要开启调试功能的系统为外域系统时,直接开启所述外域系统对应的USB设备节点;
所述开启模块具体包括:发送单元、响应单元、设置单元;
所述发送单元,用于当当前需要开启调试功能的系统为内域系统时,通过所述外域系统将所述调试开启请求消息通过所述主控系统发送至所述内域系统;
所述响应单元,用于响应于所述调试开启请求消息;
所述设置单元,用于通过调用所述内域系统对应的函数,设置对应的环境变量,以使得内核根据设置的环境变量,开启所述内域系统对应的USB设备节点;
所述发送单元,还用于当当前需要调试的系统为主控系统时,通过所述外域系统将所述调试开启请求消息发送至所述主控系统;
所述响应单元,还用于响应于所述调试开启请求消息;
所述设置单元,还用于通过调用所述主控系统对应的函数,设置对应的环境变量,以使得所述内核根据设置的环境变量,开启所述主控系统对应的USB设备节点。
具体地,所述发送单元,具体还用于将所述调试开启请求消息通过JNI调用binder发送至log service;
所述发送单元,具体还用于通过HAL接口将所述调试开启请求消息通过所述主控系统中的log service发送至所述内域系统的log service。
具体地,所述发送单元,具体还用于将所述调试开启请求消息通过JNI调用binder发送至log service;
所述发送单元,具体还用于通过所述HAL接口将所述调试开启请求消息发送至所述主控系统的log service。
可选地,所述装置还包括:接收模块;
所述接收模块,用于接收调试信息,所述调试信息中携带调试数据以及USB串口号,所述USB串口号用于表征所述调试信息对应的系统;
所述确定模块,还用于根据所述USB串口号确定传输所述调试数据的通信接口。
具体地,所述调试模块,具体用于采用所述第一调试工具以及已存在的USB设备节点连接所述外域系统;
所述调试模块,具体还用于将所述调试数据通过所述已确定的通信接口传输至所述外域系统;
所述调试模块,具体还用于通过所述已确定的通信接口接收所述外域系统返回的调试结果。
具体地,所述调试模块,具体用于采用所述第二调试工具以及已创建的内域系统对应的USB设备节点连接所述内域系统;
所述调试模块,具体还用于将所述调试数据通过所述已确定的通信接口传输至所述内域系统;
所述调试模块,具体还用于通过所述已确定的通信接口接收所述内域系统返回的调试结果。
具体地,所述调试模块,具体用于采用所述第三调试工具以及已创建的主控系统对应的USB设备节点连接所述主控系统;
所述调试模块,具体还用于将所述调试数据通过所述已确定的通信接口传输至所述主控系统;
所述调试模块,具体还用于通过所述已确定的通信接口接收所述主控系统返回的调试结果。
本发明提供了一种移动终端中调试多系统的方法及装置,与现有技术相比,本发明通过创建内域系统以及主控系统分别对应的USB设备节点,在对外域系统进行调试的同时,也可以采用第二调试工具,通过已创建的内域系统对应的USB设备节点,调试内域系统,或者采用第三调试工具,并通过已创建的主控系统对应的USB节点,调试主控系统,即需要调试内域系统时,直接利用已创建的内域系统对应的USB设备节点进行调试,不需要先将运行于内域中的系统切换至外域,再对该系统进行调试,从而可以降低对双系统移动终端进行调试的复杂度,又由于外域系统、内域系统以及主控系统均可以采用各自对应的调试工具以及USB设备节点进行调试,即每个系统均存在对应的USB设备节点,进而可以同时调试移动终端中的各个系统和/或各个系统中分别对应的应用程序,且保证了各个系统的调整过程互不干扰。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的双系统终端设备中各系统间的关系示意图;
图2为本发明实施例中一种移动终端中调试多系统的方法流程图;
图3为本发明实施例中一种移动终端中调试多系统的装置结构示意图;
图4为本发明实施例中另一种移动终端中调试多系统的装置结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本发明实施例的终端设备的内部结构的框架示意图如图1所示,包括:主控系统和两个子系统。
其中,本发明实施例中的子系统,可以是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统、Ubuntu系统或FireFox系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的子系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。
优选地,主控系统可以是上述传统的操作系统,也可以是对传统的kernel进行改进和/或在kernel之外(例如框架层和应用层)增加功能模块之后,得到的操作系统。
主控系统主要用于对两个子系统进行前后台管理,与各子系统进行交互等。
需要说明的是,本方案通过调试设备对移动终端的双系统进行调整;其中,调试设备包括PC机、平板电脑以及笔记本电脑等。
实施例一
本发明实施例提供了一种移动终端中调试多系统的方法,如图2所示,该方法包括:
步骤201、创建内域系统以及主控系统分别对应的通用串行总线USB设备节点。
对于本发明实施例,安卓默认的安卓调试桥进程(英文全称:AndroidDebugBridge Deamon,英文缩写:adbd)访问的设备节点为/dev/android_adb,为了对内域系统以及主控系统进行调试,需要创建内域系统对应的通用串行总线(英文全称:Universal Serial Bus,英文缩写:USB)设备节点以及主控系统对应的USB设备节点,以使得当使用安卓调试工具对内域系统进行调试时,访问内域系统对应的USB设备节点,当使用主控调试工具对主控系统进行调试时,访问主控系统对应的USB设备节点。
步骤202、采用第一调试工具,并通过已存在的USB设备节点调试外域系统。
对于本发明实施例,第一调试工具可以为安卓调试桥(英文全称:AndroidDebugBridge,英文缩写:adb)。在本发明实施例中,USB设备节点具备adb功能,PC端可以通过开启USB设备的adb功能,对外域系统进行调试。
对于本发明实施例,当对双系统移动终端进行调试时,利用adbdevices命令可以获取当前PC端连接的移动终端对应的串号,使用adb-s+串号+shell命令可以登入上述移动终端对应的运行环境,使用adb help,命令可以查看所有adb支持的命令,与原生安卓相同,但唯一的区别为需要使用-s(设备USB串号)指定需要调试的系统。其中,需要调试的系统包括:内域系统、外域系统以及主控系统。
步骤203、采用第二调试工具,并通过已创建的内域系统对应的USB设备节点,调试内域系统。
对于本发明实施例,创建的内域系统对应的USB设备节点同样具备adb功能,PC端可以通过开启该USB设备节点的adb功能,对内域系统进行调试。
步骤204、采用第三调试工具,并通过已创建的主控系统对应的USB设备节点,调试主控系统。
对于本发明实施例,第三调试工具可以为主控调试桥。在本发明实施例中,已创建的主控系统对应的USB设备节点具备主控调试桥功能,PC端可以通过开启USB设备节点的主控调试桥功能,对主控系统进行调试。
对于本发明实施例,步骤202、步骤203、步骤204可以同时执行,也可以单独执行,也可以按照任意顺序执行。在本发明实施例中不做限定。
本发明实施例提供了一种移动终端中调试多系统的方法,与现有技术相比,本发明实施例通过创建内域系统以及主控系统分别对应的USB设备节点,在对外域系统进行调试的同时,也可以采用第二调试工具,通过已创建的内域系统对应的USB设备节点,调试内域系统,或者采用第三调试工具,并通过已创建的主控系统对应的USB节点,调试主控系统,即需要调试内域系统时,直接利用已创建的内域系统对应的USB设备节点进行调试,不需要先将运行于内域中的系统切换至外域,再对该系统进行调试,从而可以降低对双系统移动终端进行调试的复杂度,又由于外域系统、内域系统以及主控系统均可以采用各自对应的调试工具以及USB设备节点进行调试,即每个系统均存在对应的USB设备节点,进而可以同时调试移动终端中的各个系统和/或各个系统中分别对应的应用程序。
实施例二
本发明实施例的另一种可能的实现方式,在实施例一所示的基础上,步骤202、采用第一调试工具,并通过已存在的USB设备节点调试外域系统,之前还包括实施例二所示的步骤302-303,其中步骤301、304-306所执行的操作与步骤201-204所执行的操作相似,在此不再赘述。
步骤302、根据检测到的调试开启请求消息中携带的系统标识,确定当前需要开启调试功能的系统。
对于本发明实施例,外域中设置有内域系统调试开启按钮以及主控系统调试开启按钮。其中,当需要对内域系统进行调试时,点击内域系统调试开启按钮,即发出携带内域系统标识的调试开启请求消息,以使得根据内域系统标识确定当前需要调试的系统为内域系统。
步骤303、开启系统对应的USB设备节点。
对于本发明实施例,通过在外域中设置内域系统的调试开启按钮以及主控系统的调试开启按钮,能够开启内域系统对应的USB设备节点的调试功能以及主控系统对应的USB设备节点的调试功能,而不是将外部设备直接与内域系统以及主控系统进行连接,开启内域系统对应的USB设备节点的调试功能以及主控系统对应的USB设备节点的调试功能,能够避免内域中的信息外泄,从而可以提高内域系统的安全性。
实施例三
本发明实施例的另一种可能的实现方式,在实施例二所示的基础上,步骤303、开启系统对应的USB设备节点,包括实施例三所示的步骤401-402、408-410所执行的操作与步骤301-302、304-306所执行的操作相似,在此不再赘述。
步骤403、若当前需要开启调试功能的系统为外域系统,则直接开启外域系统对应的USB设备节点。
对于本发明实施例,当需要开启或者关闭外域系统对应的USB设备节点时,使用USB设备接口连接移动终端,进入手机设备->关于手机->版本号界面,然后连续点击版本号6次,将提示开启了开发者调试功能,返回上一层,进入开发者调试界面,打开USB调试功能,即成功开启了外域系统对应的USB设备节点的调试功能。
步骤404、若当前需要开启调试功能的系统为内域系统,则通过外域系统将调试开启请求消息通过主控系统发送至内域系统。
对于本发明实施例,若根据检测到开启请求消息中携带的系统标识,确定当前需要开启调试功能的系统为内域系统,则外域系统将调试开启请求消息利用socket文件描述符通过主控系统发送至内域系统。
步骤405、响应于调试开启请求消息,通过调用内域系统对应的函数,设置对应的环境变量,以使得内核根据设置的环境变量,开启内域系统对应的USB设备节点。
对于本发明实施例,当内域系统接收到调试开启请求消息时,将调用对应的函数,设置内域系统中的环境变量,然后内域系统中的init函数根据改变的环境变量对/dev/adbs_enable进行写入,以开启USB设备节点对内域系统的调试功能。
对于本发明实施例,当用户空间向/dev/adbs_enable写入1,表征开启对内域系统的调试功能;当用户空间向/dev/adbs_enable写入0,表征关闭对内域系统的调试功能。
步骤406、若当前需要调试的系统为主控系统,则通过外域系统将调试开启请求消息发送至主控系统。
对于本发明实施例,当检测到携带主控系统标识的调试开启请求消息时,将该调试开启请求消息利用socket文件描述符,由外域系统发送至主控系统。
步骤407、响应于调试开启请求消息,通过调用主控系统对应的函数,设置对应的环境变量,以使得内核根据设置的环境变量,开启主控系统对应的USB设备节点。
对于本发明实施例,当主控系统接收到携带主控系统标识的调试开启请求消息时,在主控系统中调用对应的函数设置对应的环境变量,然后主控系统中的init函数根据改变的环境变量对/dev/cdb_enable进行写入,以开启主控系统对应的USB设备节点的调试功能。
对于本发明实施例,当用户空间向/dev/cdb_enable写入1时,表征开启对内域系统的调试功能;当用户空间向/dev/cdb_enable写入0时,表征关闭对内域系统的调试功能。
实施例四
本发明实施例的另一种可能的实现方式,在实施例三所示的基础上,步骤404、若当前需要开启调试功能的系统为内域系统,则通过外域系统将调试开启请求消息通过主控系统发送至内域系统,包括实施例四所示的步骤504-505,其中,步骤501-503、506-511所执行的操作与步骤401-403、405-410所执行的操作相似,在此不再赘述。
步骤504、若当前需要开启调试功能的系统为内域系统,则将调试开启请求消息通过JNI调用binder发送至log service。
对于本发明实施例,JNI为Java Native Interface的缩写,中文为JAVA本地调用,从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。
步骤505、通过HAL接口将调试开启请求消息通过主控系统中的log service发送至内域系统的log service。
对于本发明实施例,外域中的log service通过硬件抽象层(英文全称:HardwareAbstract Layer,英文缩写:HAL)接口将调试开启请求消息发送至主控系统中的logservice。
实施例五
本发明实施例的另一种可能的实现方式,在实施例三所示的基础上,步骤406、若当前需要调试的系统为主控系统,则通过外域系统将调试开启请求消息发送至主控系统,具体包括实施例五所示的步骤606-607,其中步骤601-605、608-611所执行的操作与步骤401-405、407-410相似,在此不再赘述。
步骤606、将调试开启请求消息通过JNI调用binder发送至log service。
步骤607、通过HAL接口将调试开启请求消息发送至主控系统的log service。
实施例六
本发明实施例的另一种可能的实现方式,在实施例一所示的基础上,步骤202、采用第一调试工具,并通过已存在的USB设备节点调试外域系统,之前还包括实施例六所示的步骤702-703,其中步骤701、704-706与步骤201-204所执行的操作相似,在此不再赘述。
步骤702、接收调试信息。
其中,调试信息中携带调试数据以及USB串口号,USB串口号用于表征调试信息对应的系统。
对于本发明实施例,当开启外域系统、和/或主控系统、和/或外域系统对应的USB设备节点的调试功能之后,PC端将调试信息发送至对应的系统,以对该系统进行调试。在本发明实施例中,移动终端的调试功能打开,外域adbd打开外域系统对应的USB设备节点/dev/android_adb,内域adbd打开内域系统对应的USB设备节点/dev/android_adbs,然后内域的adbd以及外域的adbd等待打开的USB设备节点传来数据,当接收到adb命令时,自动启动adb server,并打开/dev/bus/usb下的设备节点,并进行初始化,然后当接收到adb***命令准备进行调试,adb-s【devices】可以指定调试的系统,然后adb向/dev/bus/usb下的设备节点写入数据,经过驱动传输到移动终端,adbd读取打开的文件传来的数据,并进行回复,以实现对移动终端的外域系统或者内域系统进行调试。
步骤703、根据USB串口号确定传输调试数据的通信接口。
对于本发明实施例,adb服务器根据调试信息中携带的USB串口号确定传输该调试数据对应的端口。在本发明实施例中,传输调试数据的通信端口包括PC端对应的端口、以及移动终端对应的端口。
对于本发明实施例,通过根据USB串口号确定传输调试数据的通信端口,能够使得不同系统对应的调试信息通过对应的端口传输至对应的系统,从而可以避免资源冲突或者同时读取、写入同一个设备文件时,产生错误。
实施例七
本发明实施例的另一种可能的实现方式,在实施例六所示的基础上,步骤704、采用第一调试工具,并通过已存在的USB设备节点调试外域系统,包括实施例七所示的步骤804-805,其中步骤801-803、806-807所执行的操作与步骤701-703、705-706所执行的操作相似,在此不再赘述。
步骤804、采用第一调试工具以及已存在的USB设备节点连接外域系统,并将调试数据通过已确定的通信接口传输至外域系统。
对于本发明实施例,在Linux下,服务器和设备的链接是通过/dev/bus/usb下的设备节点实现的,adb服务器将不断遍历文件夹下的设备文件,读取其中的设备信息、配置信息以及接口信息,若该设备可用,usb模式正确,并且接口初始化正常,保存本次连接的所有信息。
步骤805、通过已确定的通信接口接收外域系统返回的调试结果。
实施例八
本发明实施例的另一种可能的实现方式,在实施例六所示的基础上,步骤705、采用第二调试工具,并通过已创建的内域系统对应的USB设备节点,调试内域系统,包括实施例八所示的步骤905-906,其中步骤901-904、907所执行的操作与步骤701-704、706所执行的操作相似,在此不再赘述。
步骤905、采用第二调试工具以及已创建的内域系统对应的USB设备节点连接内域系统,并将调试数据通过已确定的通信接口传输至内域系统。
步骤906、通过已确定的通信接口接收内域系统返回的调试结果。
实施例九
本发明实施例的另一种可能的实现方式,在实施例六所示的基础上,步骤706、采用第三调试工具,并通过已创建的主控系统对应的USB设备节点,调试主控系统,包括实施例九所示的步骤1006-1007,其中,步骤1001-1005所执行的操作与步骤701-705相似,在此不再赘述。
步骤1006、采用第三调试工具以及已创建的主控系统对应的USB设备节点连接主控系统,并将调试数据通过已确定的通信接口传输至主控系统。
对于本发明实施例,cdb要启动一个服务器,遍历所有的USB设备,但是只保存设备节点中binterfaceClass=240的端口,即内核中存储的为0XF0,并修改其中的通信端口等变量,防止与adb对应的通信端口冲突。
例如,cdb服务器将通信端口修改为5039。
步骤1007、通过已确定的通信接口接收主控系统返回的调试结果。
本发明实施例提供了另一种移动终端中调试多系统的方法,通过在外域中设置内域系统的调试开启按钮以及主控系统的调试开启按钮,能够开启内域系统对应的USB设备节点的调试功能以及主控系统对应的USB设备节点的调试功能,而不是将外部设备直接与内域系统以及主控系统进行连接,开启内域系统对应的USB设备节点的调试功能以及主控系统对应的USB设备节点的调试功能,能够避免内域中的信息外泄,从而可以提高内域系统的安全性;通过根据USB串口号确定传输调试数据的通信端口,能够使得不同系统对应的调试信息通过对应的端口传输至对应的系统,从而可以避免资源冲突或者同时读取、写入同一个设备文件时,产生错误。
本发明实施例提供了一种移动终端中调试多系统的装置,如图3所示,包括:创建模块31、调试模块32,其中,
创建模块31,用于创建内域系统以及主控系统分别对应的通用串行总线USB设备节点。
调试模块32,用于采用第一调试工具,并通过已存在的USB设备节点调试外域系统。
调试模块32,还用于采用第二调试工具,并通过已创建的内域系统对应的USB设备节点,调试内域系统。
调试模块32,还用于采用第三调试工具,并通过已创建的主控系统对应的USB设备节点,调试主控系统。
进一步的,如图4所示,该装置还包括:确定模块41、开启模块42。
确定模块41,用于根据检测到的调试开启请求消息中携带的系统标识,确定当前需要开启调试功能的系统。
开启模块42,用于开启系统对应的USB设备节点。
开启模块42,具体用于当当前需要开启调试功能的系统为外域系统时,直接开启外域系统对应的USB设备节点。
进一步地,如图4所示,开启模块42具体包括:发送单元421、响应单元422、设置单元423。
发送单元421,用于当当前需要开启调试功能的系统为内域系统时,通过外域系统将调试开启请求消息通过主控系统发送至内域系统。
响应单元422,用于响应于调试开启请求消息。
设置单元423,用于通过调用内域系统对应的函数,设置对应的环境变量,以使得内核根据设置的环境变量,开启内域系统对应的USB设备节点。
发送单元421,还用于当当前需要调试的系统为主控系统时,通过外域系统将调试开启请求消息发送至主控系统。
响应单元422,还用于响应于调试开启请求消息。
设置单元423,还用于通过调用主控系统对应的函数,设置对应的环境变量,以使得内核根据设置的环境变量,开启主控系统对应的USB设备节点。
发送单元421,具体还用于将调试开启请求消息通过JNI调用binder发送至logservice。
发送单元421,具体还用于通过HAL接口将调试开启请求消息通过主控系统中的log service发送至内域系统的log service。
发送单元421,具体还用于将调试开启请求消息通过JNI调用binder发送至logservice。
发送单元421,具体还用于通过HAL接口将调试开启请求消息发送至主控系统的log service。
进一步地,如图4所示,该装置还包括:接收模块43。
接收模块43,用于接收调试信息。
其中,调试信息中携带调试数据以及USB串口号,USB串口号用于表征调试信息对应的系统。
确定模块41,还用于根据USB串口号确定传输调试数据的通信接口。
调试模块32,具体用于采用第一调试工具以及已存在的USB设备节点连接外域系统。
调试模块32,具体还用于将调试数据通过已确定的通信接口传输至外域系统。
调试模块32,具体还用于通过已确定的通信接口接收外域系统返回的调试结果。
调试模块32,具体用于采用第二调试工具以及已创建的内域系统对应的USB设备节点连接内域系统。
调试模块32,具体还用于将调试数据通过已确定的通信接口传输至内域系统。
调试模块32,具体还用于通过已确定的通信接口接收内域系统返回的调试结果。
调试模块32,具体用于采用第三调试工具以及已创建的主控系统对应的USB设备节点连接主控系统。
调试模块32,具体还用于将调试数据通过已确定的通信接口传输至主控系统。
调试模块32,具体还用于通过已确定的通信接口接收主控系统返回的调试结果。
本发明实施例提供了一种移动终端中调试多系统的装置,与现有技术相比,本发明实施例通过创建内域系统以及主控系统分别对应的USB设备节点,在对外域系统进行调试的同时,也可以采用第二调试工具,通过已创建的内域系统对应的USB设备节点,调试内域系统,或者采用第三调试工具,并通过已创建的主控系统对应的USB节点,调试主控系统,即需要调试内域系统时,直接利用已创建的内域系统对应的USB设备节点进行调试,不需要先将运行于内域中的系统切换至外域,再对该系统进行调试,从而可以降低对双系统移动终端进行调试的复杂度,又由于外域系统、内域系统以及主控系统均可以采用各自对应的调试工具以及USB设备节点进行调试,即每个系统均存在对应的USB设备节点,进而可以同时调试移动终端中的各个系统和/或各个系统中分别对应的应用程序。
本发明实施例提供了另一种移动终端中调试多系统的装置,通过在外域中设置内域系统的调试开启按钮以及主控系统的调试开启按钮,能够开启内域系统对应的USB设备节点的调试功能以及主控系统对应的USB设备节点的调试功能,而不是将外部设备直接与内域系统以及主控系统进行连接,开启内域系统对应的USB设备节点的调试功能以及主控系统对应的USB设备节点的调试功能,能够避免内域中的信息外泄,从而可以提高内域系统的安全性;通过根据USB串口号确定传输调试数据的通信端口,能够使得不同系统对应的调试信息通过对应的端口传输至对应的系统,从而可以避免资源冲突或者同时读取、写入同一个设备文件时,产生错误。
本发明实施例提供的移动终端中调试多系统的装置可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的移动终端中调试多系统的方法及装置可以适用于同时调试移动终端中运行的各个子系统以及主控系统,但不仅限于此。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。