CN109086102A - 诊断软件的动态加载方法、装置及存储介质 - Google Patents
诊断软件的动态加载方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109086102A CN109086102A CN201810870517.4A CN201810870517A CN109086102A CN 109086102 A CN109086102 A CN 109086102A CN 201810870517 A CN201810870517 A CN 201810870517A CN 109086102 A CN109086102 A CN 109086102A
- Authority
- CN
- China
- Prior art keywords
- function
- diagnostic software
- dynamic base
- dynamic
- load
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
本申请揭示了一种诊断软件的动态加载方法、装置及计算机可读存储介质,包括:接收诊断软件的启动指令;根据启动指令进行指定公共动态库加载以启动诊断软件,指定公共动态库是诊断软件的运行中各功能执行所必须的;诊断软件启动后,根据运行状态下诊断软件中的功能选择操作进行相应功能动态库的加载;通过所加载的功能动态库执行所选择功能;所选择功能执行完成后,根据所选择功能的退出指令卸载功能动态库。在诊断软件启动时只加载指定公共动态库,缩短了诊断软件的启动时间,提高了用户体验,之后根据所选择功能进行功能动态库的加载,实现了按需加载功能动态库,节省了运行目录空间,提高了运行速度。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种诊断软件的动态加载方法、装置及存储介质。
背景技术
现有的汽车诊断设备上一般安装有多个诊断软件用于不同类型汽车的诊断。一般诊断软件运行前,将该诊断软件相关的动态库都加载到诊断软件的运行目录中,从而启动诊断软件。随着诊诊断软件的功能越来越完善,以及诊断软件所支持的功能越来越多,诊断软件的动态库也越来越多,从而导致启动诊断软件的时间变长,用户体验降低。
所以现有技术中存在由于动态库加载导致的诊断软件启动时间长,用户体验差的问题。
发明内容
为了解决相关技术中存在的问题,本申请提供了一种诊断软件的动态加载方法、装置及存储介质。
一种诊断软件的动态加载方法,包括:
接收诊断软件的启动指令;
根据所述启动指令进行指定公共动态库加载以启动所述诊断软件,所述指定公共动态库是所述诊断软件的运行中各功能执行所必须的;
所述诊断软件启动后,根据运行状态下所述诊断软件中的功能选择操作进行相应功能动态库的加载;
通过所加载的所述功能动态库执行所选择功能。
一种诊断软件的动态加载装置,所述装置包括:
接收模块,被配置为执行:接收诊断软件的启动指令;
指定公共动态库加载模块,被配置为执行:根据所述启动指令进行指定公共动态库加载以启动所述诊断软件,所述指定公共动态库是所述诊断软件的运行中各功能执行所必须的;
功能动态库加载模块,被配置为执行:所述指定公共动态库的加载完成使所述诊断软件处于运行状态,根据运行状态下所述诊断软件中的功能选择操作进行相应功能动态库的加载;
功能执行模块,被配置为执行:通过所加载的所述功能动态库执行所选择功能。
在一实施例中,所述装置还包括:
动态库加载标记获取模块,被配置为执行:从所述诊断软件的配置文件中获取动态库加载标记;
判断模块,被配置为执行:通过所述动态库加载标记,判断所述诊断软件是否支持动态加载;
加载模块,被配置为执行:如果所述诊断软件支持所述动态库加载,则控制执行所述根据所述启动指令进行指定公共动态库加载以启动所述诊断软件的步骤;以及
动态库加载单元,被配置为执行:如果判断所述诊断软件不支持所述动态库加载,则根据所述启动指令加载所述诊断软件的全部动态库。
在一实施例中,指定公共动态库加载模块进一步包括:
指定公共动态库加载单元,被配置为执行:根据所述诊断软件对应的公共框架,进行指定公共动态库的加载;
第一更新单元,被配置为执行:通过所加载的所述指定公共动态库更新所述诊断软件所在的运行目录,以启动所述诊断软件。
在一实施例中,功能动态库加载模块进一步包括:
功能动态库加载单元,被配置为执行:根据运行状态下所述诊断软件中的功能选择操作,加载所选择功能对应的功能动态库;
第二更新单元,被配置为执行:根据所加载的所述功能动态库更新所述诊断软件的运行目录。
在一实施例中,所述装置还包括:
功能动态库卸载模块,被配置为执行:所述所选择功能执行完成后,根据所述所选择功能的退出指令卸载所述功能动态库。
在一实施例中,所述装置还包括:
子功能动态库加载模块,被配置为执行:所述所选择功能完成后,根据触发的所述所选择功能中子功能选择操作,加载所选择子功能对应的子功能动态库并执行所选择子功能;
子功能动态库卸载模块,被配置为执行:所述所选择子功能完成后,卸载所述所选择子功能对应的子功能动态库。
在一实施例中,所述装置还包括:
返回模块,被配置为执行:随着所述功能动态库的卸载,控制返回所述所选择功能的上级功能选择界面。
一种诊断软件的动态加载装置,所述装置包括:
处理器;以及
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行以上所述的诊断软件的动态加载方法。
一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上所述的诊断软件的动态加载方法。
通过在启动诊断软件时只加载指定公共动态库,然后根据所选择要执行的功能进行加载该功能对应的功能动态库以执行所选择的功能,提高了诊断软件的启动时间,而且实现了按需进行诊断软件的动态库的加载,节省了诊断软件的运行目录空间,提高了诊断软件的运行速度,提高了用户体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本申请所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的诊断设备的框图;
图3是根据一示例性实施例示出的一种诊断软件的动态加载方法的流程图;
图4是图1所示实施例的步骤S110之后的步骤的流程图;
图5是根据另一示例性实施例步骤S110之后的步骤的流程图;
图6是图3对应实施例的步骤S130的流程图;
图7是图3对应实施例的步骤S150的流程图;
图8是根据另一示例性实施例示出的诊断软件的动态加载方法的流程图;
图9是图8对应实施例的步骤S170和S190之间步骤的流程图;
图10是图8对应实施例的步骤S190之后步骤的流程图;
图11是根据一示例性实施例示出的一种诊断软件的动态加载装置的框图;
图12是根据另一示例性实施例示出的一种诊断软件的动态加载装置的框图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据本申请所涉及的实施环境的示意图。该实施环境包括诊断设备100。其中诊断设备100上安装有至少一诊断软件200用于车辆的诊断。在其他实施例,为了保证车辆诊断的精度,诊断设备100上还可以安装多个诊断软件200用于诊断不同车型的车辆。诊断软件200的运行以及各个诊断功能的实现依赖于该诊断软件相关的若干动态库220,即为了发挥诊断软件200的诊断功能,需要将该诊断软件200相关的若干动态库220加载到诊断软件200的运行目录下,以执行诊断软件200的各个诊断功能。
图2是根据一示例性实施例示出的一种诊断设备100的框图。
需要说明的是,该诊断设备100只是一个适配于本发明的示例,不能认为是提供了本发明的使用范围的任何限制。该诊断设备100也不能认为需要依赖于或者必须具有图2中示出的示例性的诊断设备100中的一个或多个组件。
如图2所示,诊断设备100包括存储器101、存储控制器103、一个或多个处理器105(图2中仅示出一个)、外设接口107、通信模块109、定位模块111、摄像模块113、音频模块115、触控屏幕117以及按键模块119。这些组件通过一条或多条通讯总线/信号线121相互通讯。
其中,存储器101可用于存储计算机程序以及模块,如本发明示例性实施例中的诊断软件的动态加载方法及装置对应的计算机可读指令及模块,存储控制器103对存储器中的计算机程序等进行管理和控制,调用存储器101中存储的程序使得处理器105可以执行相应指令。处理器105通过执行存储在存储器101内的计算机可读指令,从而执行各种功能以及数据处理,在本发明中即完成诊断软件的动态加载方法。
存储器101作为资源存储的载体,可以是随机存储器、例如高速随机存储器、非易失性存储器,如一个或多个磁性存储装置、闪存、或者其它固态存储器。存储方式可以是短暂存储或者永久存储。
外设接口107可以包括至少一有线或无线网络接口、至少一串并联转换接口、至少一输入输出接口以及至少一USB接口等,用于将外部各种输入/输出装置耦合至存储控制器103以及处理器105,以实现与外部各种输入/输出装置的通信,例如通过诊断头与待诊断车辆连接,从而获取待诊断车辆的数据。
通信模块109用于建立诊断设备100和其它设备之间有线或无线的通信。诊断设备100可以接入基于通信标准的无线网络,如WiFi(WIreless-Fidelity,无线保真)等。在一个示例性实施例中,通信模块109可以经广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信模块109还包括近场通信(Near FieldCommunication,简称NFC)单元,以促进短程通信。例如,在NFC模块可基于射频识别(RadioFrequency Identification,简称RFID)技术,红外数据协会(Infrared DataAssociation,简称IrDA)技术,超宽带(Ultra Wideband,简称UWB)技术,蓝牙技术和其他技术来实现。
定位模块111用于获取诊断设备100的当前所在的地理位置。定位模块111的实例包括但不限于全球卫星定位系统(GPS)、基于无线局域网或者移动通信网的定位技术。
摄像模块113隶属于摄像头,用于拍摄图片或者视频。拍摄的图片或者视频可以存储至存储器101内,还可以通过通信模块109发送至上位机。
音频模块115向用户提供音频接口,其可包括一个或多个麦克风接口、一个或多个扬声器接口以及一个或多个耳机接口。通过音频接口与其它设备进行音频数据的交互。音频数据可以存储至存储器101内,还可以通过通信模块109发送。
触控屏幕117在诊断设备100与用户之间提供一个输入输出界面。具体地,用户可通过触控屏幕117进行输入操作,例如点击、触摸、滑动等手势操作,以使诊断设备100对该输入操作进行响应。诊断设备100则将文字、图片或者视频任意一种形式或者组合所形成的输出内容通过触控屏幕117向用户显示输出。在本发明中,例如将从待诊断车辆的数据显示在触控屏幕117上。
按键模块119包括至少一个按键,用以提供用户向诊断设备100进行输入的接口,用户可以通过按下不同的按键使诊断设备100执行不同的功能。例如,声音调节按键可供用户实现对用户100播放的声音音量的调节。
可以理解,图2所示的结构仅为示意,诊断设备100还可包括比图2中所示更多或更少的组件,或者具有与图2所示不同的组件。图2中所示的各组件可以采用硬件、软件或者其组合来实现。
图3是根据一示例性实施例示出的一种诊断软件的动态加载方法的流程图。该方法可以用于图所示的诊断设备中,可以有诊断设备100执行,可以包括以下步骤。
步骤S110,接收诊断软件的启动指令。
其中诊断软件的启动指令可以是根据用户在触控屏幕上的触发操作生成。该启动指令用于指示请求启动运行该诊断软件。在一具体实施例中,用户的触发操作可以是在诊断设备所提供的诊断软件列表中的选择操作,所选择的诊断软件即为启动指令指示请求启动运行的诊断软件。
步骤S130,根据启动指令进行指定公共动态库加载以启动诊断软件,指定公共动态库是诊断软件的运行中各功能执行所必须的。
指定公共动态库是根据诊断软件的公共框架所设定的,该指定公共动态库用于进行初始化诊断软件,以启动该诊断软件。其中,根据诊断软件的公共框架不同,指定公共动态库可以是一个,也可以是多个。在一具体实施例中,将进行数据通讯和包含一个统一入口的动态库作为指定公共动态库。
由于诊断软件中的各功能的执行必须是在诊断软件处于运行状态时,所以必须加载完指定公共动态库才能执行诊断软件的功能,因而指定公共动态库是诊断软件的运行中各功能执行所必须的。
步骤S150,诊断软件启动后,根据运行状态下诊断软件中的功能选择操作进行相应功能动态库的加载。
指定公共动态库加载完成后,诊断软件启动并处于运行状态。在运行状态下,可以在诊断软件的交互界面上进行各种操作,比如选择具体需要执行的功能、查看诊断数据、返回等。
针对诊断软件的功能选择,诊断软件为用户提供功能选择界面和对应的选择入口,当用户希望进行具体的功能选择以进行车辆的诊断时,便能在该选择界面中的选择入口触发相应操作,进而使得诊断软件根据检测到的选择操作确定所选择的功能。
例如,功能在诊断软件的选择界面中以图标集合的形式展示,选择入口即对应图标集合中可被点击的图标,当点击图标集合中任一图标,即完成功能的选择,其中,被点击的图标所对应的功能即为用户所选择功能,用户的点击操作即视为功能选择操作。
相应功能动态库即为所选择功能对应的功能动态库。执行一功能需要使用功能动态库中的功能函数,该功能动态库即为该功能对应的功能动态库,因而,一个功能是与一个或者几个功能动态库相对应的,该一个或者几个功能动态库即为该功能所对应的功能动态库。例如,在执行某一功能时,需要使用到某个功能动态库中的某个功能方法,那么该功能动态库即为该功能对应的功能动态库。当然,针对一功能,其对应的功能动态库可以是一个,也可以是多个。例如,执行一个功能需要且仅需要使用4个功能函数:func1,func2,func3,func4。如果这4个功能函数分别属于4个功能动态库:lib1、lib2、lib3、lib4。那么这4个功能动态库即为该功能对应的功能动态库。而如果这4个功能属于1个功能动态库libAll,那么该libAll功能动态库即为该功能对应的功能动态库。
在用户选择需要执行的功能后进行该功能的相应功能动态库的加载,以执行所选择的功能,实现了功能动态库的按需加载。
步骤S170,通过所加载的功能动态库执行所选择功能。
在加载完所选择功能的相应功能动态库中,可以通过调用所加载的功能动态库中的各个功能函数以执行所选择功能。
在一具体实施例中,若所选择功能为“读故障码”,该“读故障码”对应的功能动态库为:readFaultCode1.so,readFaultCode2.so,readFaultCode3.so。在用户选择“读故障码”这一功能后,进行readFaultCode1.so,readFaultCode2.so,readFaultCode3.so这三个功能动态库的加载,并更新诊断软件的运行目录,执行“读故障码”功能,在诊断设备上显示从车辆上读到的故障码数据。
通过本发明的技术方案,一方面,在启动诊断软件时,只加载指定公共动态库,大大缩短诊断软件的启动时间,提高了用户体验,且在后续诊断软件增加功能以及对应增加相应的功能动态库后,也对诊断软件的启动时间无影响。另一方面,根据所选择功能进行相应功能动态库的加载,实现了按需加载动态库,诊断软件的运行目录根据所选择的功能进行更新,节省了运行目录空间,提高了诊断软件的运行速度。
在另一实施例中,在完成诊断之后,根据用户的退出诊断软件操作,卸载所加载的指定公共动态库。
在一示例性实施例中,如图4所示,在步骤S110之后,还包括:
步骤S121,从诊断软件的配置文件中获取动态库加载标记。
步骤S122,通过动态库加载标记,判断诊断软件是否支持动态加载。
如果诊断软件支持动态库加载,则控制执行步骤S130。
动态库加载标记是在诊断软件开发过程中所设定的标记,如果一个诊断软件支持动态加载动态库,则在该诊断软件的配置文件中设定一个标记。其中该标记可以根据约定设定,在诊断软件行业中或者在该行业中某一公司开发的各种诊断软件中根据约定设定一个标记用于指示该诊断软件支持动态加载诊断软件。因而可以根据该动态库加载标记进行诊断软件是否支持动态加载。
在一具体实施例中,将DLL=1设定为动态库加载标记,那么在接收诊断软件的启动指令后,如果从诊断软件的配置文件中获取到该DLL=1标记,即认为该诊断软件支持动态加载动态库;如果从诊断软件的配置文件中查找不到该DLL=1标记,或者查找到的DLL不等于1,那么均认为该诊断软件不支持动态加载动态库。
如果判断诊断软件支持动态加载,则控制执行S130步骤及其之后的步骤。
如果判断该诊断软件不支持动态加载,在一实施例中,如图5所示,则执行步骤S140,根据启动指令加载诊断软件的全部动态库。
诊断软件的全部动态库即启动诊断软件、执行诊断软件各个功能所需要的动态库,根据加载的全部动态库,可以启动诊断软件,在启动之后,具体进行功能选择时,无需再进行动态库的加载。加载完全部动态库之后,诊断软件的运行目录进行相应更新,从而可以根据用户的选择操作,执行所选择功能。在完成车辆的诊断后,根据用户的退出诊断软件操作,进行全部动态库的卸载,将全部动态库移除诊断软件的运行目录。
因而,本申请的方法不仅适用于支持动态加载的诊断软件,而且适用于不支持动态加载的诊断软件,兼容性强,适用范围广。
在一示例性实施例中,如图6所示,步骤S130进一步包括:
步骤S131,根据诊断软件对应的公共框架,进行指定公共动态库的加载。
步骤S132,通过所加载的指定公共动态库更新诊断软件所在的运行目录,以启动诊断软件。
指定公共动态库加载完成后,根据所加载的指定公共动态库更新诊断软件的运行目录,从而在进行诊断软件的启动时,可以根据运行目录中的路径调用指定公共动态库中的函数,完成诊断软件的启动。在一示例性实施例中,如图7所示,步骤S150进一步包括:
步骤S151,根据运行状态下诊断软件中的功能选择操作,加载所选择功能对应的功能动态库;
步骤SS152,根据所加载的功能动态库更新诊断软件的运行目录。
在加载完成所选择功能对应的功能动态库后,根据所加载的功能动态库更新诊断软件的运行目录,从而在执行所选择功能时,从更新后的运行目录中的路径调取功能动态库中的功能函数,以执行所选择功能。
在一示例性实施例中,如图8所示,在执行完步骤S170之后,还包括:
步骤S190,所选择功能执行完成后,根据所选择功能的退出指令卸载功能动态库。
所选择功能的退出指令是根据用户的退出所选择功能操作生成的,以指示用户希望退出该所选择功能。例如在执行完成“读故障码”功能后,用户点击返回,该点击返回操作即视为用户的退出所选择功能操作,诊断软件根据该退出所选择功能操作生成相应的退出指令。
所选择功能执行完成后,根据用户触发生成的所选择功能的退出指令,进行功能动态库的卸载,将所选择功能的相应功能动态库移除诊断软件的运行目录,以减少诊断软件使用的内存,提高诊断软件的运行速度。
从而,实现了按需进行动态库的加载和卸载,进一步节省了运行目录空间,节省了诊断软件的运行内存,进一步提高了诊断软件的运行速度。
在一示例性实施例中,如图9所示,步骤S190之前还包括:
步骤S181,功能完成后,根据触发的功能中子功能选择操作,加载所选择子功能对应的子功能动态库并执行所选择子功能。
步骤S182,子功能完成后,卸载子功能对应的子功能动态库。
所选择功能下的子功能的执行依赖于步骤S170中所加载的所选择功能对应的功能动态库,当然所选择子功能的执行还需要子功能对应的子功能动态库。
所选择子功能对应的子功能动态库是指为了执行子功能,除已加载的功能动态库外所需的其他动态库。
在所选择功能下如果有子功能,例如在“读故障码”功能下还有“读故障码冻结帧数据流”这一子功能,用户在选择“读故障码”并执行完该功能后,并没有退出该功能,而是选择了“读故障码冻结帧数据流”这一子功能,那么根据用户的子功能选择操作,继续加载该子功能对应的子功能动态库。根据所加载的子功能动态库进行诊断软件运行目录的再一次更新,从而根据运行目录中执行路径调用子功能动态库中的功能函数和所选择功能对应的功能动态库中的功能函数以执行所选择子功能。
若“读故障码冻结帧数据流”这一子功能对应的子功能动态库为:readFrezee1.so,readFrezee2.so,readFrezee3.so,...readFrezeeN.so,在选择“读故障码冻结帧数据流”这一子功能后,进行该子功能对应的子功能动态库readFrezee1.so,readFrezee2.so,readFrezee3.so,...readFrezeeN.so的加载,并更新诊断软件的运行目录,在运行目录中的执行路径中调用子功能动态库中的功能函数以及上文中所提到的“读故障码”所对应功能动态库中的功能函数以执行子功能,子功能完成后,根据子功能的退出操作,从运行目录中卸载所加载的子功能动态库。
在一示例性实施例中,如图10所示,步骤S190之后,还包括:
步骤S200,随着功能动态库的卸载,控制返回所选择功能的上级功能选择界面。
返回到所选择功能的上级功能选择界面后,用户可以在上级功能选择界面中继续选择需要执行的功能以进行车辆的诊断。
进一步的,本申请还为诊断软件的动态库配置提供了一种配置方法,即将诊断软件的动态库模块化,例如一个动态库完成一个特定功能,动态库的功能单一化,以达到减少动态库之间的耦合性,增强动态库的重用性的目的。在组合具体的动态库时,加载对应动态库后,更新后运行目录中的执行路径找到对应功能函数,调用动态库中的功能函数以完成对应的功能。
下述为本申请装置实施例,可以用于执行本申请上述诊断设备100执行的诊断软件的动态加载方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请诊断软件的动态加载方法实施例。
图11是根据一示例性实施例示出的一种诊断软件的动态加载装置的框图,该装置可以用于图1所示实施环境的诊断设备100中,执行以上任一实施例诊断软件的动态加载方法的全部或者部分步骤。如图11所示,该诊断软件的动态加载装置包括但不限于:接收模块110、指定公共动态库加载模块130、功能动态库加载模块150、功能执行模块170以及功能动态库卸载模块190。
接收模块110,被配置为执行:接收诊断软件的启动指令。
指定公共动态库加载模块130,该模块与接收模块110连接,被配置为执行:根据启动指令进行指定公共动态库加载以启动诊断软件,指定公共动态库是诊断软件的运行中各功能执行所必须的。
功能动态库加载模块150,该模块与指定公共动态库加载模块130连接,被配置为执行:指定公共动态库的加载完成使诊断软件处于运行状态,根据运行状态下诊断软件中的功能选择操作进行相应功能动态库的加载。
功能执行模块170,该模块与功能动态库加载模块150连接,被配置为执行:通过所加载的功能动态库执行所选择功能。
在一实施例中,该诊断软件的动态加载装置还包括:
动态库加载标记获取模块,被配置为执行:从诊断软件的配置文件中获取动态库加载标记。
判断模块,被配置为执行:通过动态库加载标记,判断诊断软件是否支持动态加载。
加载模块,被配置为执行:如果诊断软件支持动态库加载,则控制执行根据启动指令进行指定公共动态库加载以启动诊断软件的步骤。
在一实施例中,该装置还包括:
动态库加载单元,被配置为执行:如果判断诊断软件不支持动态库加载,则根据启动指令加载诊断软件的全部动态库。
在一实施例中,指定公共动态库加载模块130进一步包括:
指定公共动态库加载单元,被配置为执行:根据诊断软件对应的公共框架,进行指定公共动态库的加载。
第一更新单元,被配置为执行:通过所加载的指定公共动态库更新诊断软件所在的运行目录,以启动诊断软件。
在一实施例中,功能动态库加载模块150进一步包括:
功能动态库加载单元,被配置为执行:根据运行状态下诊断软件中的功能选择操作,加载所选择功能对应的功能动态库。
第二更新单元,被配置为执行:根据所加载的功能动态库更新诊断软件的运行目录。
在一实施例中,该装置还包括:
功能动态库卸载模块,该模块与功能执行模块170连接,被配置为执行:所选择功能执行完成后,根据所选择功能的退出指令卸载功能动态库。
在一实施例中,该装置还包括:
子功能动态库加载模块,被配置为执行:所选择功能完成后,根据触发的所选择功能中子功能选择操作,加载所选择子功能对应的子功能动态库并执行所选择子功能。
子功能动态库卸载模块,被配置为执行:所选择子功能完成后,卸载所选择子功能对应的子功能动态库。
在一实施例中,该装置还包括:
返回模块,被配置为执行:随着功能动态库的卸载,控制返回所选择功能的上级功能选择界面。
上述装置中各个模块/单元的功能和作用的实现过程具体详见上述诊断软件的动态加载方法中对应步骤的实现过程,在此不再赘述。
可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序,例如图2的处理器105所执行的存储在存储器101中的程序。
可选的,本申请还提供一种诊断软件的动态加载装置1000,如图12所示,该装置可以用于图1所示实施环境的诊断设备100中,执行以上任一方法实施例的诊断软件的动态加载方法的全部或者部分步骤。所述装置包括:
处理器1001;
用于存储处理器1001可执行指令的存储器1002;
其中,处理器1001被配置为执行以上的诊断软件的动态加载方法,可执行指令可以是计算机可读指令1002,处理器1001可以通过通讯总线/信号线1003从存储子1002中读取计算机可读指令。
该实施例中的装置的处理器执行操作的具体方式已经在有关该诊断软件的动态加载方法的实施例中执行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种存储介质,该存储介质可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质可以是图2中包含计算机程序的存储器101,该存储介质上存储有计算机程序,该计算机程序被处理器执行时实现以上诊断软件的动态加载方法任一实施例中的全部或部分步骤。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种诊断软件的动态加载方法,其特征在于,包括:
接收诊断软件的启动指令;
根据所述启动指令进行指定公共动态库加载以启动所述诊断软件;
所述诊断软件启动后,根据运行状态下所述诊断软件中的功能选择操作进行相应功能动态库的加载;
通过所加载的所述功能动态库执行所选择功能。
2.根据权利要求1所述的方法,其特征在于,所述接收诊断软件的启动指令之后,还包括:
从所述诊断软件的配置文件中获取动态库加载标记;
通过所述动态库加载标记,判断所述诊断软件是否支持动态加载;
如果所述诊断软件支持所述动态库加载,则控制执行所述根据所述启动指令进行指定公共动态库加载以启动所述诊断软件的步骤;以及;
如果判断所述诊断软件不支持所述动态库加载,则根据所述启动指令加载所述诊断软件的全部动态库。
3.根据权利要求1所述的方法,其特征在于,所述根据所述启动指令进行指定公共动态库加载以启动所述诊断软件,包括:
根据所述诊断软件对应的公共框架,进行指定公共动态库的加载;
通过所加载的所述指定公共动态库更新所述诊断软件所在的运行目录,以启动所述诊断软件。
4.根据权利要求1所述的方法,其特征在于,所述根据运行状态下所述诊断软件中的功能选择操作进行相应功能动态库的加载,包括:
根据运行状态下所述诊断软件中的功能选择操作,加载所选择功能对应的功能动态库;
根据所加载的所述功能动态库更新所述诊断软件的运行目录。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述通过所加载的所述功能动态库执行所选择功能之后,还包括:
所述所选择功能执行完成后,根据所述所选择功能的退出指令卸载所述功能动态库。
6.根据权利要求5所述的方法,其特征在于,所述根据所述所选择功能的退出指令卸载所述功能动态库之前,所述方法还包括:
所述所选择功能完成后,根据触发的所述所选择功能中子功能选择操作,加载所选择子功能对应的子功能动态库并执行所选择子功能;
所述所选择子功能完成后,卸载所述所选择子功能对应的子功能动态库。
7.根据权利要求5所述的方法,其特征在于,所述根据所述所选择功能的退出指令卸载所述功能动态库之后,还包括:
随着所述功能动态库的卸载,控制返回所述所选择功能的上级功能选择界面。
8.一种诊断软件的动态加载装置,其特征在于,包括:
接收模块,被配置为执行:接收诊断软件的启动指令;
指定公共动态库加载模块,被配置为执行:根据所述启动指令进行指定公共动态库加载以启动所述诊断软件;
功能动态库加载模块,被配置为执行:所述指定公共动态库的加载完成使所述诊断软件处于运行状态,根据运行状态下所述诊断软件中的功能选择操作进行相应功能动态库的加载;
功能执行模块,被配置为执行:通过所加载的所述功能动态库执行所选择功能。
9.一种诊断软件的动态加载装置,其特征在于,所述装置包括:
处理器;以及
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1至7中任一项所述的诊断软件的动态加载方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的诊断软件的动态加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810870517.4A CN109086102A (zh) | 2018-08-02 | 2018-08-02 | 诊断软件的动态加载方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810870517.4A CN109086102A (zh) | 2018-08-02 | 2018-08-02 | 诊断软件的动态加载方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109086102A true CN109086102A (zh) | 2018-12-25 |
Family
ID=64833856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810870517.4A Pending CN109086102A (zh) | 2018-08-02 | 2018-08-02 | 诊断软件的动态加载方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086102A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110045998A (zh) * | 2019-04-22 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 加载动态库的方法及装置 |
CN112631254A (zh) * | 2020-12-24 | 2021-04-09 | 湖南联科科技有限公司 | 一种车辆故障诊断方法、系统、服务器和存储介质 |
CN115202914A (zh) * | 2022-06-14 | 2022-10-18 | 中汽创智科技有限公司 | 一种诊断服务配置方法、装置、系统、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541598A (zh) * | 2011-12-26 | 2012-07-04 | 深圳联友科技有限公司 | 一种动态加载组件的方法及系统 |
CN104133697A (zh) * | 2014-07-22 | 2014-11-05 | 东方通信股份有限公司 | 地铁调度系统动态加载资源的实现方法 |
CN104424002A (zh) * | 2013-09-10 | 2015-03-18 | 中国科学院声学研究所 | 一种基于插件机制的动态加载组件方法和系统 |
-
2018
- 2018-08-02 CN CN201810870517.4A patent/CN109086102A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541598A (zh) * | 2011-12-26 | 2012-07-04 | 深圳联友科技有限公司 | 一种动态加载组件的方法及系统 |
CN104424002A (zh) * | 2013-09-10 | 2015-03-18 | 中国科学院声学研究所 | 一种基于插件机制的动态加载组件方法和系统 |
CN104133697A (zh) * | 2014-07-22 | 2014-11-05 | 东方通信股份有限公司 | 地铁调度系统动态加载资源的实现方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110045998A (zh) * | 2019-04-22 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 加载动态库的方法及装置 |
CN112631254A (zh) * | 2020-12-24 | 2021-04-09 | 湖南联科科技有限公司 | 一种车辆故障诊断方法、系统、服务器和存储介质 |
CN115202914A (zh) * | 2022-06-14 | 2022-10-18 | 中汽创智科技有限公司 | 一种诊断服务配置方法、装置、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107402835B (zh) | 应用程序的异常处理方法、装置及存储介质和移动终端 | |
US11356139B2 (en) | Interference coordination method and apparatus, base station, and user equipment | |
US20090307679A1 (en) | Communication device and a host device, a method of processing signal in the communication device and the host device, and a system having the communication device and the host device | |
US20080119178A1 (en) | Allocating Compression-Based Firmware Over the Air | |
CN104951335B (zh) | 应用程序安装包的处理方法及装置 | |
US20080117991A1 (en) | Partitioning Compression-Based Firmware Over the Air | |
CN105791581A (zh) | 应用操作方法、装置及移动终端 | |
JP5710680B2 (ja) | 無線デバイスのための、工場でのプログラム時間を低減するシステムおよび方法 | |
US20040039965A1 (en) | Compliance testing communication protocols implemented on resource-constrained computing devices | |
CN109086102A (zh) | 诊断软件的动态加载方法、装置及存储介质 | |
US20080084992A1 (en) | Remote Handset Diagnostics | |
CN106201610A (zh) | Web应用访问终端原生功能的方法及装置 | |
US20150242076A1 (en) | Method of editing one or more objects and apparatus for same | |
CN106528255B (zh) | 类加载方法及装置 | |
WO2021052054A1 (zh) | 插件实现的方法和插件实现的系统 | |
CN107341013A (zh) | 一种开机故障处理方法、设备及计算机可读存储介质 | |
US11856571B2 (en) | Information feedback method and apparatus | |
US20160041879A1 (en) | Data backup to and restore from trusted devices | |
EP1777926A1 (en) | Method and mobile terminal for performing multiple tasks without conflict | |
CN106454541A (zh) | 呼叫方法、装置及系统 | |
CN106201189A (zh) | 微件显示方法、装置和电子设备 | |
CN111435318A (zh) | 应用程序的dex优化方法及终端 | |
JP2024517873A (ja) | 物理ダウンリンク制御チャネルのモニタリング方法、装置及び記憶媒体 | |
CN103514003A (zh) | 程序安装方法及装置 | |
KR102188685B1 (ko) | 애플리케이션 패키지를 생성하는 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181225 |