CN116541104A - 程序管理方法、控制装置、平台、设备以及存储介质 - Google Patents
程序管理方法、控制装置、平台、设备以及存储介质 Download PDFInfo
- Publication number
- CN116541104A CN116541104A CN202310811877.8A CN202310811877A CN116541104A CN 116541104 A CN116541104 A CN 116541104A CN 202310811877 A CN202310811877 A CN 202310811877A CN 116541104 A CN116541104 A CN 116541104A
- Authority
- CN
- China
- Prior art keywords
- program
- information
- started
- stopped
- configuration information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000007726 management method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 101150053844 APP1 gene Proteins 0.000 description 2
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 2
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 2
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 2
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 1
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- 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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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/4401—Bootstrapping
- G06F9/442—Shutdown
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种程序管理方法、控制装置、平台、设备以及存储介质,方法包括:步骤S11:每隔预设时间段查询设备中的程序目录信息以及程序执行信息,程序目录信息中包括设备中的各程序的相关信息,程序执行信息中包括各程序的启动或停止运行的时间;步骤S12:比较程序目录信息以及程序执行信息,得到比较结果;步骤S13:基于比较结果,能够启动或停止运行设备中的程序。上述方案,能够实现动态启动或停止运行设备中的程序。
Description
技术领域
本申请涉及汽车电子领域,特别是涉及一种程序管理方法、控制装置、平台、设备以及存储介质。
背景技术
现阶段汽车电子软件设计中,程序的配置文件包含了程序的启动信息,***能够根据程序的配置文件启动和管理相关的进程。但是目前的方案都是只有在汽车上电时才会读取各程序的配置文件,而在***运行情况下安装新的程序的话,通常情况下***无法获取读取到新程序的配置文件,无法启动或管理该新程序,导致无法实现程序的动态启动。
发明内容
本申请至少提供一种程序管理方法、控制装置、平台、设备以及存储介质。
本申请提供了一种程序管理方法,包括:步骤S11:每隔预设时间段查询设备中的程序目录信息以及程序执行信息,程序目录信息中包括设备中的各程序的相关信息,程序执行信息中包括各程序的启动或停止运行的时间;步骤S12:比较程序目录信息以及程序执行信息,得到比较结果;步骤S13:基于比较结果,能够启动或停止运行设备中的程序。
在上述方案中,动态地查询程序目录信息以及程序执行信息,比较程序目标信息以及程序执行信息得到的比较结果能够获知各程序的执行情况,方便根据需要对程序进行管理,例如启动程序或停止运行处于已启动状态的程序,实现程序的动态启动或动态停止运行。
在一些实施例中,步骤S12包括:基于各程序的启动时间或停止运行时间,确定当前处于已启动状态的程序;将程序目录信息中的程序与处于已启动状态的程序进行比较,得到比较结果。
在上述方案中,通过对各程序进行比较,能够确定哪些程序处于启动状态且不处于程序目录信息,或者处于未启动状态且处于程序目录信息,方便后续基于该比较结果对各程序进行针对性的处理。
在一些实施例中,步骤S13包括:当第一程序为处于已启动状态且不处于程序目录信息的程序,能够停止运行第一程序;或,当第二程序为处于未启动状态且处于程序目录信息的程序,能够启动第二程序。
在上述方案中,程序执行信息中包括各程序的启动或停止运行的时间,通过各程序的启动时间或停止运行时间能够确定各程序处于已启动状态还是处于停止运行状态,从而根据比较的结果停止运行或启动对应的程序,以此实现动态启动或停止运行对应的程序。
在一些实施例中,各程序的相关信息包括各程序的配置信息,方法还包括:判断第三程序在程序目录信息中的配置信息是否发生变动,第三程序为处于已启动状态且处于程序目录信息的程序;响应于第三程序的配置信息发生了变动,基于变动后的配置信息能够停止运行第三程度程序或者重新启动第三程序。
在上述方案中,通过判断已经启动的程序的配置信息是否发生变动,若配置信息发生变动则重新启动对应的程序,方便运行更新后的程序。
在一些实施例中,方法包括:获取目标程序的当前配置信息;利用当前配置信息更新目标程序在程序目录信息中的历史配置信息。
在上述方案中,通过获取目标程序的当前配置信息,然后能够利用当前配置信息更新目标程序在程序目录信息中的历史配置信息,方便后续确定程序目标信息中程序的配置信息是否发生变动。
在一些实施例中,各程序的配置信息中包括程序的依赖关系,步骤S13还包括:基于待启动程序的依赖关系,启动被待启动程序依赖的其他程序;或,基于待停止运行程序的依赖关系,调整依赖待停止运行程序的其他程序的依赖关系。
在上述方案中,通过确定待启动程序的依赖关系,启动需要依赖的其他程序,保障待启动程序的正常启动或正常运行,通过调整依赖待停止运行程序的其他程序的依赖关系,以防待停止运行程序停止运行之后,其他程序的运行错误。
在一些实施例中,方法还包括:步骤S14:响应于程序被启动,将程序的启动时间记录至程序执行信息中;或者,响应于程序被停止运行,将程序的停止运行时间记录至程序执行信息中。
在上述方案中,程序被启动时将程序的启动时间记录至程序执行信息中,或者程序被停止运行时将程序的停止运行时间记录在程序执行信息中,方便后续判断程序是处于已启动状态还是停止运行状态。
本申请提供一种控制装置,包括进程管理模块,进程管理模块用于执行上述任意程序管理方法,其中,进程管理模块设置在具备可移植操作***接口的操作***上。
在上述方案中,通过设置可移植操作***接口,保证不同操作***之间的兼容性。
本申请提供了一种平台,尤其是自适应平台,包括:查询单元、比较单元以及执行单元;查询单元,用于每隔预设时间段查询,尤其是自动地查询设备中的程序目录信息以及程序执行信息,程序目录信息中包括设备中的各程序的相关信息,程序执行信息中包括各程序的启动或停止运行的时间;比较单元,用于比较程序目录信息以及程序执行信息,得到比较结果;执行单元,用于基于比较结果,能够启动或停止运行设备中的程序。
本申请提供了一种设备,包括上述平台。
本申请提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述程序管理方法。
在上述方案中,动态地查询程序目录信息以及程序执行信息,比较程序目标信息以及程序执行信息得到的比较结果能够获知各程序的执行情况,方便根据需要对程序进行管理,例如启动程序或停止运行处于已启动状态的程序,实现程序的动态启动或动态停止运行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是一些实施例提供的程序管理方法的流程示意图;
图2是一些实施例提供的程序目录文件的结构示意图;
图3是一些实施例提供的程序管理方法的另一流程示意图;
图4是一些实施例提供的控制装置的结构示意图;
图5是一些实施例提供的进程管理模块的部署示意图;
图6是一些实施例提供的平台的结构示意图;
图7是一些实施例提供的设备的结构示意图;
图8是一些实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定子***结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
现阶段汽车电子软件设计中,自适应平台(AP)的进程管理模块(EM模块)可以做到根据程序的配置文件启动和管理相关的进程,但其启动进程是根据配置文件静态的启动,如果***中安装新的应用程序或者利用空中下载技术(Over-the-Air Technology,OTA)增加新的应用程序,则没有办法直接进行动态启动和管理。故,本方案提供了一种能够动态启动或关闭程序的方式。
请参阅图1,本申请提供的程序管理方法可以包括以下步骤S11至步骤S13的内容。步骤S11:每隔预设时间段查询设备中的程序目录信息以及程序执行信息。其中,程序目录信息中包括设备中的各程序的相关信息,程序执行信息中包括各程序的启动或停止运行的时间。步骤S12:比较程序目录信息以及程序执行信息,得到比较结果。步骤S13:基于比较结果,能够启动或停止运行设备中的程序。
设备可以是车辆、轮船、飞机等任意需要运行程序的交通设备或者工业设备等任意需要运行程序的设备。本实施例以设备为车辆为例。程序可以是应用程序,也可以是***程序。预设时间段的长度的设置方式包括但不限于用户自定义或根据设备内所包含的至少部分程序的大小确定。示例性地,若设备中最小程序的大小为A,下载该程序的时间为B,则预设时间段可以是B。程序目录信息中包括设备中各程序的相关信息可以认为是关于设备所包含程序的标识信息和/或配置信息等等,示例性地,程序目录信息可以包含在程序目录文件中,该文件下又可包括各程序的相关配置文件。如图2所示,程序目录文件的名称为PRO_ROOT,下面包括多种可执行配置文件,例如包括进程管理模块EM的相关文件、如状态管理模块SM的相关文件以及各程序的相关文件,各程序可以是APP1、APP2以及APP3等,相关文件可以是APP1、APP2以及APP3的可执行文件(EXE文件)、配置文件(CONFI1G文件)以及日志文件(LOG文件)等。一些应用场景中,程序的相关文件可以是该程序下不同功能模块(例如A功能模块、B功能模块)的相关文件。程序执行信息可以是程序执行记录,例如可以是程序执行日志。日志可以记录各程序状态的变动时间。各程序的启动时间一般可以包括处于启动状态的程序开始该启动状态的时间,程序的停止运行时间可以包括处于停止运行的程序停止运行时的时间。通过比较程序目录信息和程序执行信息能够确定程序目录信息中包含的程序当前处于已启动状态还是停止运行状态。比较结果可以是程序目录信息中所有的程序都已经启动或部分程序处于未已启动状态,或者已经启动的程序不在程序目录中。基于比较结果,能够启动或停止运行设备中的程序的方式可以是基于比较结果启动处于未启动状态的程序或停止运行处于已启动状态的程序。
在上述方案中,动态地查询程序目录信息以及程序执行信息,比较程序目标信息以及程序执行信息得到的比较结果能够获知各程序的执行情况,方便根据需要对程序进行管理,例如启动程序或停止运行处于已启动状态的程序,实现程序的动态启动或动态停止运行。
在一些实施例中,上述步骤S12可以包括:基于程序的执行记录,确定当前处于已启动状态的程序。尤其是最新的操作记录,例如程序的最新记录是包括程序启动时间或停止运行时间,那么就表示程序处于运行状态或停止状态,确定当前处于已启动状态的程序。然后,将程序目录信息中的程序与处于已启动状态的程序进行比较,得到比较结果。
上述基于各程序的启动时间或停止运行时间,确定当前处于已启动状态的程序的方式可以是基于该程序在距离当前时刻最近的记录确定。示例性地,若该程序在距离当前时刻最近一次记录的时间为启动时间,则可以确定该程序已经启动,同理,若该程序在距离当前时刻最近一次记录的时间为停止运行时间,则可以确定该程序处于未启动状态。程序处于已启动状态具体可以理解为程序处于启动过程中或处于运行过程中的状态。
在上述方案中,通过对各程序进行比较,能够确定哪些程序处于启动状态且不处于程序目录信息,或者处于未启动状态且处于程序目录信息,方便后续基于该比较结果对各程序进行针对性的处理。
在一些实施例中,上述步骤S13可以包括:当第一程序为处于已启动状态且不处于程序目录信息的程序,能够停止运行第一程序;或,当第二程序为处于未启动状态且处于程序目录信息的程序,能够启动第二程序。
也就是,处于已启动状态且不处于程序目录信息中的程序都可以称之为第一程序。若程序已经启动,但是该程序不处于程序目录信息中,则表明该程序在启动之后很可能已经被云端或用户从设备中删除,则可以停止运行该程序。处于未启动状态且处于程序目录信息的程序都可以称之为第二程序。处于未启动状态且处于程序目标信息的程序可能是新增到设备中的程序,则可以启动该程序。
在上述方案中,程序执行信息中包括各程序的启动或停止运行的时间,通过各程序的启动时间或停止运行时间等历史信息能够确定各程序处于已启动状态还是处于停止运行状态,从而根据比较的结果能够停止运行或启动对应的程序,以此实现动态启动或停止运行对应的程序。
在一些实施例中,各程序的相关信息包括各程序的配置信息。方法还包括:判断第三程序在程序目录信息中的配置信息是否发生变动,第三程序为处于已启动状态且处于程序目录信息的程序;响应于第三程序的配置信息发生了变动,基于变动后的配置信息能够停止运行或重新启动第三程序。
配置信息一般用于指示程序启动或运行所需的配置参数等内容。程序在程序目录信息中的配置信息发生变动之后,很可能意味着该程序被更新了,此时可以重新启动该程序以便使用最新的配置信息启动运行该程序。判断第三程序在程序目录信息中的配置信息是否发生变动的方式可以是判断程序的当前配置信息与上一次读取的历史配置信息之间是否存在区别,若存在区别则说明程序的配置信息发生变动,或者还可以是根据程序当前启动或运行使用的配置参数与程序目录信息下该程序的配置信息是否存在区别,若存在区别则说明程序的配置信息发生变动。
在上述方案中,通过判断已经启动的程序的配置信息是否发生变动,若配置信息发生变动则停止程序运行,或者,重新启动对应的程序,方便运行更新后的程序。
在一些实施例中,上述步骤S11还包括:获取目标程序的当前配置信息。利用当前配置信息更新目标程序在程序目录信息中的历史配置信息。
目标程序可以是从外部接口接收到的下载安装包或更新安装包对应的程序。也就是目标程序可以是新增到设备中的程序也可以是设备中需要更新升级的程序。获取目标程序的当前配置信息的方式可以是从程序对应的下载安装包解析得到。利用当前配置信息更新目标程序在程序目录信息中的历史配置信息之前,先判断程序目录信息中是否包括该程序,若包括则可以更新历史配置信息,若不包括则可以直接将获取到的目标程序的当前配置信息作为程序目录信息中该程序的配置信息,示例性地,在程序目录文件下新建关于目标程序的文件,然后将目标程序的配置信息放入目标程序对应的文件下。如图3所示,可以通过OTA的方式或者外部输入接口(包括有线方式,例如串口、网口,以及无线方式,例如蓝牙、WIFI)的方式导入新的程序(例如导入应用程序APP)。
在上述方案中,通过获取目标程序的当前配置信息,然后能够利用当前配置信息更新目标程序在程序目录信息中的历史配置信息,方便后续确定程序目标信息中程序的配置信息是否发生变动。
在一些实施例中,各程序的配置信息中包括程序的依赖关系。上述步骤S13还包括:基于待启动程序的依赖关系,启动被待启动程序依赖的其他程序。或,基于待停止运行程序的依赖关系,调整依赖待停止运行程序的其他程序的依赖关系。
待启动程序可以是需要启动的程序,如上述第二程序或第三程序,待停止运行程序可以是需要停止运行的程序,如上述第一程序。调整依赖关系的方式包括但不限于直接删除该依赖关系或者确定替代程序并建立替代程序与依赖待停止运行程序之间的依赖关系。一些应用场景中,部分程序之间的启动或运行存在依赖关系,例如A程序的运行需要应用到B程序的某功能,也就是A程序依赖于B程序,B程序被A程序依赖,此时,若A程序为待启动程序,则根据该依赖关系,可以启动被待启动程序依赖的B程序。示例性地,可以在启动待启动程序之前,启动被待启动程序依赖的其他程序。一些应用场景中,若待停止运行程序停止运行,很可能导致需要依赖待停止程序的其他程序的运行或启动产生问题,则可以更新需要依赖待停止运行程序的其他程序的依赖关系。示例性地,从该待停止运行程序以外的其他程序中确定替代程序以调整其他程序的依赖关系,或者直接将需要依赖该待停止运行程序的其他程序与该待停止运行程序的依赖关系删除。
在上述方案中,通过确定待启动程序的依赖关系,启动需要依赖的其他程序,保障待启动程序的正常启动或正常运行;通过调整依赖待停止运行程序的其他程序的依赖关系,以防待停止运行程序停止运行之后,导致其他程序的运行错误。
在一些实施例中,方法还包括:步骤S14:响应于程序被启动,将程序的启动时间记录至程序执行信息中;或,响应于程序被停止运行,将程序的停止运行时间记录至程序执行信息中。
具体可以通过日志的方式记录各程序的启动时间和停止运行时间。各程序的执行信息可以记录在一个日志里面,也可以分别为各程序建立对应的日志用于分别记录对应程序的执行信息。
在上述方案中,程序被启动时将程序的启动时间记录至程序执行信息中,或者程序被停止运行时将程序的停止运行时间记录在程序执行信息中,方便后续判断程序是处于已启动状态还是停止运行状态。
请参阅图4,本申请提供的控制装置30中包括进程管理模块31。进程管理模块31用于执行上述任意的程序管理方法。其中,进程管理模块31设置在具备可移植操作***接口的操作***上。
其中,控制装置30可以是微处理器。示例性地,控制装置30可以应用于自适应平台等能够实现本实施例提供的程序管理方法的平台。相比AUTOSAR经典平台,自适应平台运行具有多核的强大微处理器,例如微处理器可以具有1 GHz以上主频,并且可以访问更多的内存(64MB到2GB)。自适应平台通过软、硬件的结合提供了开发高灵活性、高效率应用的独特功能,使得开发者能够专注于应用的具体差异化。进程管理模块31(ExecutionManagement,简称EM)可以认为是一个功能集群,负责***执行管理的各个方面,包括平台初始化和启动/关闭应用程序。也就是进程管理模块31执行上述步骤S11至步骤S13的内容。可移植操作***接口(Portable Operating System Interface of UNIX,缩写为 POSIX)。操作***包括但不限于OS操作***或Linux操作***等。一些应用场景中,进程管理模块31(EM)在一个节点上(MCU、独立运行的OS上、SOC上的独立容器内)仅运行一个实例,换言之,在一个节点上只使用一个进程管理模块31来管理各程序。进程管理模块31(EM)部署在POSIX操作***之上,并基于操作***,实现进程调度功能。如图5所示,进程管理模块31(EM)部署在通讯中间件之上,并基于通讯中间件,实现进程间服务发现、信息交互等功能。进程管理模块31(EM)和其余Function API一起(如状态管理模块SM、诊断模块DIAG、数据库模块DB等),实现整体的***基础服务功能。
在上述方案中,通过设置可移植操作***接口,保证不同操作***之间的兼容性。
在一些实施例中,为实现动态发现并启动或者停止进入***新的应用程序的方法,还提供以下实施例。
如图3所示,可以使用OTA或者其他外部输入的方式将程序相关文件载入,并将新的程序文件新增至程序目录文件中。管理模块通过动态扫描的方式能够发现程序是否有更新或改变,能够实现动态启动或者停止相应的应用程序,达到动态管理程序的效果,而不用像现有技术中采用的每次更新后都需要重新上电才能启用。
进程管理模块是操作***启动之后,被执行的第一个守护进程。它负责根据配置信息,以进程的方式启动执行和配置每个可执行文件(APP)。进程管理模块的主要功能,是管理和控制服务/软件(APP)的启动、关闭,并动态扫描一个固定文件结构目录下的文件,固定文件结构目录可以认为是上述程序目录文件,程序目录文件携带的信息可以包含程序目录信息,固定文件结构目录下的文件可以包括各程序对应的相关文件,各程序的相关文件可以包含各程序的相关信息。当有扫描到新的文件时,查询相应的依赖、配置并能够根据需要启动新加入的APP,若有被删除的应用程序,则负责更新依赖并停止相应的应用程序。其中,动态扫描可以用shell脚本或者代码实现,通过读取固定目录下文件是否有增加新的文件或者删除文件来确定变更。
其中,进程管理可执行的配置文件和应用程序的配置文件以JSON文件格式提供。如图2所示,程序目录文件下还包括进程管理模块的配置文件、状态管理模块的配置文件。并在APP/EM集成发布期间同时发布。配置文件内的信息包括:可执行文件的启动条件、版本、启动模式、资源需求、调度优先级、可提供服务接口(非必需)和/或依赖***接口(非必需)等。
进程管理模块EM在运行期间,动态维护一个JSON文件格式的记录文件,该记录文件记录了程序执行信息,也就是执行记录文件内存储关于本节点范围内的进程启动或停止的日志,用于与实时扫描目录下的文件比较,来判断新的应用程序的导入。动态维护的方式可以是动态扫描。
上述方案提供的进程管理模块能够应用于汽车嵌入式SOA架构(ServiceOriented Architecture,面向服务的架构)。
请参阅图6,如图6所示,本实施例提供的平台40可以包括:查询单元41、比较单元42以及执行单元43。平台40具体可以是自适应平台或其他能够实现本申请实施例提供的程序管理方法的平台,例如AUTOSAR经典平台等。查询单元41,用于每隔预设时间段查询设备中的程序目录信息以及程序执行信息,程序目录信息中包括设备中的各程序的相关信息,程序执行信息中包括各程序的启动或停止运行的时间;比较单元42,用于比较程序目录信息以及程序执行信息,得到比较结果;执行单元43,用于基于比较结果,能够启动或停止运行设备中的程序。
可选地,查询单元、比较单元以及执行单元可部署在上述进程管理模块内。换言之,由自适应平台中的进程管理模块执行每隔预设时间段查询,尤其是自动地查询设备中的程序目录信息以及程序执行信息的步骤、比较程序目录信息以及程序执行信息,得到比较结果的步骤以及基于比较结果,能够启动或停止运行设备中的程序的步骤。
在上述方案中,动态地查询程序目录信息以及程序执行信息,比较程序目标信息以及程序执行信息,根据得到的比较结果能够得到各程序的执行情况,方便根据各程序的执行情况启动其他的程序或停止运行处于已启动状态的程序,实现程序的动态启动或动态停止运行。
在一些实施例中,比较单元42比较程序目录信息以及程序执行信息,得到比较结果,包括:基于各程序的启动时间或停止运行时间,确定当前处于已启动状态的程序;将程序目录信息中的程序与处于已启动状态的程序进行比较,得到比较结果。
在上述方案中,通过对各程序进行比较,能够确定哪些程序处于启动状态且不处于程序目录信息,或者处于未启动状态且处于程序目录信息,方便后续基于该比较结果对各程序进行针对性的处理。
在一些实施例中,执行单元43基于比较结果能够选择启动或停止运行设备中的程序,包括:当第一程序为处于已启动状态且不处于程序目录信息的程序,能够停止运行第一程序;或,当第二程序为处于未启动状态且处于程序目录信息的程序,能够启动第二程序。
在上述方案中,程序执行信息中包括各程序的启动或停止运行的时间,通过各程序的启动时间或停止运行时间能够确定各程序处于已启动状态还是处于停止运行状态,从而根据比较的结果停止运行或启动对应的程序,以此实现动态启动或停止运行对应的程序。
在一些实施例中,各程序的相关信息包括各程序的配置信息,比较单元42还用于:判断第三程序在程序目录信息中的配置信息是否发生变动,第三程序为处于已启动状态且处于程序目录信息的程序;响应于第三程序的配置信息发生了变动,基于变动后的配置信息停止第三程序或者重新启动第三程序。
在上述方案中,通过判断已经启动的程序的配置信息是否发生变动,若配置信息发生变动则可以重新启动对应的程序,方便运行更新后的程序;或者,若配置信息发生变动导致当前程序需要停止时,则可以停止对应的程序。
在一些实施例中,查询单元41还用于:获取目标程序的当前配置信息;利用当前配置信息更新目标程序在程序目录信息中的历史配置信息。
在上述方案中,通过获取目标程序的当前配置信息,然后能够利用当前配置信息更新目标程序在程序目录信息中的历史配置信息,方便后续确定程序目标信息中程序的配置信息是否发生变动。
在一些实施例中,各程序的配置信息中包括程序的依赖关系,执行单元43还用于:基于待启动程序的依赖关系,启动被待启动程序依赖的其他程序;或,基于待停止运行程序的依赖关系,调整依赖待停止运行程序的其他程序的依赖关系。
在上述方案中,通过确定待启动程序的依赖关系,启动需要依赖的其他程序,保障待启动程序的正常启动或正常运行,通过调整依赖待停止运行程序的其他程序的依赖关系,以防待停止运行程序停止运行之后,导致其他程序的运行错误。
在一些实施例中,平台40还包括状态管理单元(图中未示出),状态管理单元可以部署在状态管理模块中,状态管理单元用于:响应于程序被启动,将程序的启动时间记录至程序执行信息中;或,响应于程序被停止运行,将程序的停止运行时间记录至程序执行信息中。
在上述方案中,程序被启动时将程序的启动时间记录至程序执行信息中,或者程序被停止运行时将程序的停止运行时间记录在程序执行信息中,方便后续判断程序是处于已启动状态还是停止运行状态。
请参阅图7,本实施例提供的设备50包括上述平台40。
本实施例提供的设备50可以是车辆、轮船、飞机等任意需要运行程序的交通设备或者工业设备等任意需要运行程序的设备。
在上述方案中,通过动态地查询程序目录信息以及程序执行信息,比较程序目标信息以及程序执行信息得到的比较结果能够获知各程序的执行情况,方便根据各程序的执行情况启动其他的程序或停止运行处于已启动状态的程序,实现程序的动态启动或动态停止运行。
请参阅图8,本实施例提供的计算机可读存储介质60存储有能够被处理器运行的程序指令61,程序指令61用于实现上述任一程序管理方法实施例中的步骤。
上述方案,动态地查询程序目录信息以及程序执行信息,比较程序目标信息以及程序执行信息得到的比较结果能够获知各程序的执行情况,方便根据需要对程序进行管理,例如启动程序或停止运行处于已启动状态的程序,实现程序的动态启动或动态停止运行。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个子***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
Claims (11)
1.一种程序管理方法,其特征在于,包括:
步骤S11:每隔预设时间段查询设备中的程序目录信息以及程序执行信息,所述程序目录信息中包括所述设备中的各程序的相关信息,所述程序执行信息包括各程序的启动或停止运行的时间;
步骤S12:比较所述程序目录信息以及所述程序执行信息,得到比较结果;
步骤S13:基于所述比较结果,能够启动或停止运行所述设备中的程序。
2.根据权利要求1所述的方法,其特征在于,步骤S12包括:
基于程序的启动时间或停止运行时间,确定当前处于已启动状态的程序;
将所述程序目录信息中的程序与处于已启动状态的程序进行比较,得到比较结果。
3.根据权利要求1所述的方法,其特征在于,步骤S13包括:当第一程序为处于已启动状态且不处于所述程序目录信息的程序,能够停止运行第一程序;或,当第二程序为处于未启动状态且处于所述程序目录信息的程序,能够启动第二程序。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述各程序的相关信息包括各程序的配置信息,所述方法还包括:
判断第三程序在所述程序目录信息中的配置信息是否发生变动,所述第三程序为处于已启动状态且处于所述程序目录信息的程序;
响应于所述第三程序的配置信息发生了变动,基于变动后的配置信息能够停止运行第三程序或者重新启动所述第三程序。
5.根据权利要求4所述的方法,其特征在于,步骤S11还包括:
获取目标程序的当前配置信息;
利用所述当前配置信息更新所述目标程序在所述程序目录信息中的历史配置信息。
6.根据权利要求4所述的方法,其特征在于,各程序的配置信息中包括所述程序的依赖关系,步骤S13还包括:
基于待启动程序的依赖关系,启动被所述待启动程序依赖的其他程序;
或,基于待停止运行程序的依赖关系,调整依赖所述待停止运行程序的其他程序的依赖关系。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
步骤S14:响应于程序被启动,将程序的启动时间记录至所述程序执行信息中;或者,响应于程序被停止运行,将程序的停止运行时间记录至所述程序执行信息中。
8.一种控制装置,其特征在于,包括进程管理模块,所述进程管理模块用于执行如权利要求1至7中任一项所述的程序管理方法;其中,所述进程管理模块设置在具备可移植操作***接口的操作***上。
9.一种平台,其特征在于,包括:
查询单元,用于每隔预设时间段查询设备中的程序目录信息以及程序执行信息,所述程序目录信息中包括所述设备中的各程序的相关信息,所述程序执行信息包括各程序的启动或停止运行的时间;
比较单元,用于比较所述程序目录信息以及所述程序执行信息,得到比较结果;
执行单元,用于基于所述比较结果启动或停止运行所述设备中的程序。
10.一种设备,其特征在于,包括如权利要求9所述的平台。
11.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行以实现如权利要求1至7中任一项所述的程序管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310811877.8A CN116541104B (zh) | 2023-07-04 | 2023-07-04 | 程序管理方法、控制装置、平台、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310811877.8A CN116541104B (zh) | 2023-07-04 | 2023-07-04 | 程序管理方法、控制装置、平台、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116541104A true CN116541104A (zh) | 2023-08-04 |
CN116541104B CN116541104B (zh) | 2023-09-29 |
Family
ID=87456303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310811877.8A Active CN116541104B (zh) | 2023-07-04 | 2023-07-04 | 程序管理方法、控制装置、平台、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541104B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100186001A1 (en) * | 2009-01-21 | 2010-07-22 | International Business Machines Corporation | Method and apparatus for native method calls |
CN107608706A (zh) * | 2017-09-26 | 2018-01-19 | 南京哈卢信息科技有限公司 | 一种基于功能模块的应用程序自动热更新方法 |
CN109062594A (zh) * | 2018-07-20 | 2018-12-21 | 武汉科技大学 | 一种嵌入式QNX/Linux下汽车ECU程序自动安全升级的方法 |
JP2019096271A (ja) * | 2017-11-28 | 2019-06-20 | 株式会社東芝 | プログラム実行装置、プログラムおよびプログラム実行方法 |
CN113641544A (zh) * | 2021-08-23 | 2021-11-12 | 北京百度网讯科技有限公司 | 用于检测应用状态的方法、装置、设备、介质和产品 |
CN115828231A (zh) * | 2022-10-28 | 2023-03-21 | 广州汽车集团股份有限公司 | 应用程序运行方法、装置、车辆以及存储介质 |
CN115933578A (zh) * | 2023-03-10 | 2023-04-07 | 宁德时代新能源科技股份有限公司 | 设备管理方法、装置、***、电子设备和可读存储介质 |
-
2023
- 2023-07-04 CN CN202310811877.8A patent/CN116541104B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100186001A1 (en) * | 2009-01-21 | 2010-07-22 | International Business Machines Corporation | Method and apparatus for native method calls |
CN107608706A (zh) * | 2017-09-26 | 2018-01-19 | 南京哈卢信息科技有限公司 | 一种基于功能模块的应用程序自动热更新方法 |
JP2019096271A (ja) * | 2017-11-28 | 2019-06-20 | 株式会社東芝 | プログラム実行装置、プログラムおよびプログラム実行方法 |
CN109062594A (zh) * | 2018-07-20 | 2018-12-21 | 武汉科技大学 | 一种嵌入式QNX/Linux下汽车ECU程序自动安全升级的方法 |
CN113641544A (zh) * | 2021-08-23 | 2021-11-12 | 北京百度网讯科技有限公司 | 用于检测应用状态的方法、装置、设备、介质和产品 |
CN115828231A (zh) * | 2022-10-28 | 2023-03-21 | 广州汽车集团股份有限公司 | 应用程序运行方法、装置、车辆以及存储介质 |
CN115933578A (zh) * | 2023-03-10 | 2023-04-07 | 宁德时代新能源科技股份有限公司 | 设备管理方法、装置、***、电子设备和可读存储介质 |
Non-Patent Citations (1)
Title |
---|
韦涌泉 等: "一种基于文件的嵌入式星载软件在轨升级方法", 《单片机与嵌入式***应用》, vol. 18, no. 5, pages 32 - 35 * |
Also Published As
Publication number | Publication date |
---|---|
CN116541104B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106446B2 (en) | Preinstalled application management method for mobile terminal and mobile terminal | |
US9134991B2 (en) | Automatic upgrade of virtual appliances | |
US9250672B2 (en) | Cloning target machines in a software provisioning environment | |
US8402123B2 (en) | Systems and methods for inventorying un-provisioned systems in a software provisioning environment | |
US20080222160A1 (en) | Method and system for providing a program for execution without requiring installation | |
KR20080082623A (ko) | 애플리케이션의 메타데이터 구동 배치 | |
CN109739619B (zh) | 一种基于容器化应用的处理方法、装置及存储介质 | |
CN107220074B (zh) | 对支撑层软件功能的访问、升级方法及装置 | |
US20040205167A1 (en) | Automatic configuration of performance management tools | |
CN110753088A (zh) | 一种***部署方法及装置 | |
JP2001356912A (ja) | ソフトウェアのインストール/アップデート/アンインストールシステム | |
US20070028228A1 (en) | Software upgrades with user advisement | |
CN113448686A (zh) | 一种资源部署方法、装置、电子设备及存储介质 | |
CN111273924A (zh) | 软件更新方法及装置 | |
CN108733398B (zh) | 一种软件升级的处理方法及装置 | |
CN112256351B (zh) | Feign组件的实现方法、微服务调用方法及装置 | |
CN116541104B (zh) | 程序管理方法、控制装置、平台、设备以及存储介质 | |
CN112748949A (zh) | 一种操作***的软件包管理方法、装置、设备及存储介质 | |
CN108228192B (zh) | 一种面向服务的机载软件的动态管理的实现方法 | |
WO2023141502A1 (en) | Technologies for over-the-air updates for telematics systems | |
KR101461319B1 (ko) | 셋탑박스의 펌웨어 업그레이드 방법 및 펌웨어 업그레이드 장치 | |
CN115309421A (zh) | 单点***的静态变量同步方法、装置、设备及存储介质 | |
CN114662102A (zh) | 一种文件处理方法、装置及存储介质 | |
CN111736863A (zh) | 一种软件升级方法、装置及电子设备 | |
CN111158705A (zh) | 行车软件的安装方法、装置及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |