掌桥专利:专业的专利平台
掌桥专利
首页

一种单个软件中加载不同功能的方法及终端

文献发布时间:2023-06-19 09:52:39


一种单个软件中加载不同功能的方法及终端

技术领域

本发明涉及软件定制领域,尤其涉及一种单个软件中加载不同功能的方法及终端。

背景技术

在做项目的过程中,常遇到在同一个项目中不同的客户需要不同的功能。如客户A提出需要功能A、功能B、功能C及功能D;客户B提出需要功能A、功能B及功能C;客户C提出需要功能A及功能D;不同客户之间所提出的需求功能有重叠但是又不完全相同,故针对不同客户专门开发不同的软件成本过高。

现有技术中目前采取如下方案解决上述问题:方案1:对于有不同功能需要的客户使用不同的软件代码基线来管理其不同功能及不同的镜像文件;此种方式在需要针对不同客户进行修改时较为直观,但在项目数量较多时,需要对每个项目都针对不同用户进行修改或维护较为不便,并且每次修改都需要对不同基线做出相同修改,产生了大量重复工作;并且对于产线中不同项目中的相同功能需要做出不同的镜像文件,容易导致混淆;在使用OTA升级维护时,服务器需要为不同客户的不同项目分别准备一套OTA,较为不便;

方案2:对于有不同功能需要的客户,使用同一个软件代码基线,其中使用不同的编译脚本管理不同功能及不同的镜像文件,不同需求的用户共用一套软件代码,若发生共性问题只需修改一份代码,减少了重复工作,但产线相同然而项目功能不同,需要不同的镜像,容易造成混乱,且此种方式在OTA升级维护时,服务器也需要为不同客户的不同项目分别准备一套OTA;

方案3:对于有不同功能需要的客户,使用同一个软件代码基线、同一个编译脚本及同一个镜像文件;最终通过pkg(安装包配置文件)管理不同的功能;具体的,对于不同客户在生产时安装不同的pkg包,使得客户在安装后实现功能差异性;虽然不同用户要求的功能不同,但共用一套软件代码,共性问题只需修改一份代码,减少重复工作量,对于产线中的不同项目,最终生成同个镜像,不容易混乱;但是此种方式无法实现OTA升级,一旦OTA升级则软件将混乱或出错。

发明内容

本发明所要解决的技术问题是:提供一种单个软件中加载不同功能的方法及终端,通过相同的软件代码基线实现不同功能的定制和更新。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种单个软件中加载不同功能的方法,包括步骤:

S1、加载产品标识,根据所述产品标识获取对应的第一配置文件,所述第一配置文件包括第一版本号;

S2、根据所述第一配置文件获取对应的功能文件;

S3、根据所述功能文件进行系统配置后,保存所述第一版本号为现有版本号。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种单个软件中加载不同功能的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

S1、加载产品标识,根据所述产品标识获取对应的第一配置文件,所述第一配置文件包括第一版本号;

S2、根据所述第一配置文件获取对应的功能文件;

S3、根据所述功能文件进行系统配置后,保存所述第一版本号为现有版本号。

本发明的有益效果在于:设置与产品名称对应的配置文件及与配置文件对应的功能文件,在加载时获取产品名称,根据此时产品名称加载不同的配置文件,从而实现不同功能文件的加载,最终完成基于不同产品名称的不同系统配置,并且使用版本号标识配置文件;根据产品名称自动加载对应的配置文件,在开发过程中能够将整个程序打包,无需在开发过程中区别出不同产品的配置和功能,方便后续进行维护和升级,缩短了开发周期,提高了开发的效率,只需一条软件代码基线实现不同功能的定制,减少开发成本。

附图说明

图1为本发明实施例的一种单个软件中加载不同功能的方法的步骤流程图;

图2为本发明实施例的一种单个软件中加载不同功能的终端的结构示意图;

图3为本发明实施例的一种单个软件中加载不同功能的方法应用于实际场景中的步骤流程图;

标号说明:

1、一种单个软件中加载不同功能的终端;2、处理器;3、存储器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1,一种单个软件中加载不同功能的方法,包括步骤:

S1、加载产品标识,根据所述产品标识获取对应的第一配置文件,所述第一配置文件包括第一版本号;

S2、根据所述第一配置文件获取对应的功能文件;

S3、根据所述功能文件进行系统配置后,保存所述第一版本号为现有版本号。

从上述描述可知,本发明的有益效果在于:设置与产品名称对应的配置文件及与配置文件对应的功能文件,在加载时获取产品名称,根据此时产品名称加载不同的配置文件,从而实现不同功能文件的加载,最终完成基于不同产品名称的不同系统配置,并且使用版本号标识配置文件;根据产品名称自动加载对应的配置文件,在开发过程中能够将整个程序打包,无需在开发过程中区别出不同产品的配置和功能,方便后续进行维护和升级,缩短了开发周期,提高了开发的效率,只需一条软件代码基线实现不同功能的定制,减少开发成本。

进一步的,所述S1之前还包括:

预设OEM分区;

在所述OEM分区中预设存放所述配置文件的配置文件目录;

在所述OEM分区中预设存放所述功能文件的功能文件目录;

所述S1具体为:

加载产品标识,根据所述产品标识从所述配置文件目录中获取对应的第一配置文件,所述第一配置文件包括第一版本号;

所述S2具体为:

根据所述第一配置文件从所述功能文件目录中获取对应的所述功能文件。

由上述描述可知,设置专门的OEM分区,在OEM分区中设置配置文件目录及功能文件目录分别存放配置文件及功能文件,将OEM分区作为系统预设的功能分区,避免了用户误操作使得其中文件丢失的情况,保证系统能够在每次上电时都进行正常配置。

进一步的,所述S1具体为:

获取保存的现有版本号,根据所述产品标识获取对应的第一配置文件,获取所述第一配置文件中的第一版本号,根据预设规则对比所述第一版本号及所述现有版本号,若所述第一版本号新于所述现有版本号,则执行所述S2;否则,退出加载;

所述现有版本号的初始值为0。

由上述描述可知,每次上电时都获取配置文件的版本号与系统所保存的现有版本号进行对比,因初始现有版本号设置为0表示最旧版本,故首次上电时所获取的文件版本号一定新于现有版本号,则系统能够获取配置文件所对应的功能文件进行功能配置,若后续对配置文件进行更新,则更新后的配置文件的版本号若新于系统所保存的现有版本号,会自动加载更新后的配置文件,在无需为不同定制功能分多个不同安装包的情况下实现了对配置文件的更新。

进一步的,所述S1中所述第一配置文件包括产品功能;

所述S2具体为:

根据所述产品功能获取对应的功能文件。

由上述描述可知,根据配置文件中存放的产品功能加载对应的功能文件,不同的产品标识对应不同的配置文件,最终加载不同的功能文件实现为系统配置不同的功能项而无需制作多个不同的安装包。

进一步的,还包括更新第一配置文件:

向服务端请求第二版本号,根据预设规则对比所述第二版本号及所述第一版本号;

若所述第二版本号新于所述第一版本号,则获取所述第二版本号所对应的第二配置文件;

通过OTA或APK的方式根据所述第二配置文件更新所述第一配置文件。

由上述描述可知,能够向服务端获取相应配置文件的版本号与自身已保存的配置文件的版本号进行对比,若服务端的版本号较新,能够对自身保存的配置文件进行更新,可通过OTA或APK的方式更新配置文件,且配置文件大小通常较小,使用OTA方式更新稳定、不容易出现掉电情况,能够给用户更好的使用体验。

请参照图2,一种单个软件中加载不同功能的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

S1、加载产品标识,根据所述产品标识获取对应的第一配置文件,所述第一配置文件包括第一版本号;

S2、根据所述第一配置文件获取对应的功能文件;

S3、根据所述功能文件进行系统配置后,保存所述第一版本号为现有版本号。

本发明的有益效果在于:设置与产品名称对应的配置文件及与配置文件对应的功能文件,在加载时获取产品名称,根据此时产品名称加载不同的配置文件,从而实现不同功能文件的加载,最终完成基于不同产品名称的不同系统配置,并且使用版本号标识配置文件;根据产品名称自动加载对应的配置文件,在开发过程中能够将整个程序打包,无需在开发过程中区别出不同产品的配置和功能,方便后续进行维护和升级,缩短了开发周期,提高了开发的效率,只需一条软件代码基线实现不同功能的定制,减少开发成本。

进一步的,所述S1之前还包括:

预设OEM分区;

在所述OEM分区中预设存放所述配置文件的配置文件目录;

在所述OEM分区中预设存放所述功能文件的功能文件目录;

所述S1具体为:

加载产品标识,根据所述产品标识从所述配置文件目录中获取对应的第一配置文件,所述第一配置文件包括第一版本号;

所述S2具体为:

根据所述第一配置文件从所述功能文件目录中获取对应的所述功能文件。

由上述描述可知,设置专门的OEM分区,在OEM分区中设置配置文件目录及功能文件目录分别存放配置文件及功能文件,将OEM分区作为系统预设的功能分区,避免了用户误操作使得其中文件丢失的情况,保证系统能够在每次上电时都进行正常配置。

进一步的,所述S1具体为:

获取保存的现有版本号,根据所述产品标识获取对应的第一配置文件,获取所述第一配置文件中的第一版本号,根据预设规则对比所述第一版本号及所述现有版本号,若所述第一版本号新于所述现有版本号,则执行所述S2;否则,退出加载;

所述现有版本号的初始值为0。

由上述描述可知,每次上电时都获取配置文件的版本号与系统所保存的现有版本号进行对比,因初始现有版本号设置为0表示最旧版本,故首次上电时所获取的文件版本号一定新于现有版本号,则系统能够获取配置文件所对应的功能文件进行功能配置,若后续对配置文件进行更新,则更新后的配置文件的版本号若新于系统所保存的现有版本号,会自动加载更新后的配置文件,在无需为不同定制功能分多个不同安装包的情况下实现了对配置文件的更新。

进一步的,所述S1中所述第一配置文件包括产品功能;

所述S2具体为:

根据所述产品功能获取对应的功能文件。

由上述描述可知,根据配置文件中存放的产品功能加载对应的功能文件,不同的产品标识对应不同的配置文件,最终加载不同的功能文件实现为系统配置不同的功能项而无需制作多个不同的安装包。

进一步的,所述处理器执行所述计算机程序时还包括更新第一配置文件:

向服务端请求第二版本号,根据预设规则对比所述第二版本号及所述第一版本号;

若所述第二版本号新于所述第一版本号,则获取所述第二版本号所对应的第二配置文件;

通过OTA或APK的方式根据所述第二配置文件更新所述第一配置文件。

由上述描述可知,能够向服务端获取相应配置文件的版本号与自身已保存的配置文件的版本号进行对比,若服务端的版本号较新,能够对自身保存的配置文件进行更新,可通过OTA或APK的方式更新配置文件,且配置文件大小通常较小,使用OTA方式更新稳定、不容易出现掉电情况,能够给用户更好的使用体验。

请参照图1,本发明的实施例一为:

一种单个软件中加载不同功能的方法,包括步骤;

S1、预设OEM分区,在所述OEM分区中预设存放所述配置文件的配置文件目录,在所述OEM分区中预设存放所述功能文件的功能文件目录;

如设置配置文件目录customer,存放配置文件customer_A_feature.txt、customer_B_feature.txt及customer_C_feature.txt,分别根据应客户A、客户B及客户C的定制功能生成;配置文件中包括产品功能,如:

customer_A_feature.txt内容:

feature_A;

feature_B;

feature_C;

feature_D;

customer_b_feature.txt内容:

feature_A;

feature_B;

feature_C;

customer_C_feature.txt内容:

feature_A;

feature_D;

在一种可选的实施方式中,在功能文件目录中设置多个功能目录,每个功能目录中存放该功能所对应的功能文件,如设置功能文件目录feature,存放功能目录feature_A、feature_B、feature_C及feature_D,分别存储功能A、功能B、功能C及功能D所对应的功能文件,在功能文件中可配置参数、使能开关等值;

其中,如feature_A为双卡双待功能,则可按此规则将功能目录命名为feature_dual_sim,其中存放功能文件persis.txt及nv.txt,在功能文件persis.txt中配置双卡双待的属性persist.multisim.config=dsds表示打开双卡双待功能,nv.txt配置双卡的NV_UIM_HW_SIM_CONFIG_I参数,此参数值为0表示项目为单卡,此参数值为1表示该项目为双卡,如设置NV_UIM_HW_SIM_CONFIG_I参数6907=1,标识该项目为双卡;

S2、加载产品标识,根据所述产品标识获取对应的第一配置文件,所述第一配置文件包括第一版本号;具体为:加载产品标识,根据所述产品标识从所述配置文件目录中获取对应的第一配置文件,所述第一配置文件包括第一版本号及产品功能;

S3、根据所述第一配置文件获取对应的功能文件;具体为:根据所述第一配置文件从所述功能文件目录中获取对应的所述功能文件,根据产品功能获取对应的功能文件;

S4、根据所述功能文件进行系统配置后,保存所述第一版本号为现有版本号。

本发明的实施例二为:

现有的软件版本功能一般是固定的,如某个客户需要更新放开或者限制某些功能的设定,一般都是通过OTA升级软件镜像包,因软件镜像包是对整个软件进行更新,若被截获风险较大,并且将整个软件作为镜像包通过OTA传送可能因镜像包过大导致消耗的流量过多且提高升级过程中的掉电风险,并且,镜像包容易引入其他漏洞;则本发明提出一种单个软件中加载不同功能的方法,其与实施例一的不同之处在于:

还包括更新第一配置文件:

向服务端请求第二版本号,根据预设规则对比所述第二版本号及所述第一版本号;

若所述第二版本号新于所述第一版本号,则获取所述第二版本号所对应的第二配置文件;

通过OTA或APK的方式根据所述第二配置文件更新所述第一配置文件;

S2具体为:

获取保存的现有版本号,根据所述产品标识获取对应的第一配置文件,获取所述第一配置文件中的第一版本号,根据预设规则对比所述第一版本号及所述现有版本号,若所述第一版本号新于所述现有版本号,则执行所述S2;否则,退出加载;所述现有版本号的初始值为0;

在一种可选的实施方式中,还可为:

首次上电时:S2具体为:

获取保存的初始现有版本号,根据所述产品标识获取对应的第一配置文件,获取所述第一配置文件中的第一版本号,根据预设规则对比所述第一版本号及所述初始现有版本号,若所述第一版本号新于所述初始现有版本号,则执行所述S2;否则,退出加载;初始现有版本号的值为0;

S4具体为:

根据所述功能文件进行系统配置后,将所述第一版本号替换初始现有版本号作为现有版本号;

非首次上电时:S1具体为:

向服务端请求第二版本号,根据预设规则对比所述第二版本号及所述现有版本号,若所述第二版本号新于所述现有版本号,则更新所述第一版本号对应的所述第一配置文件;其中,更新所述第一版本号对应的所述第一配置文件具体为:获取所述第二版本号所对应的第二配置文件;通过OTA或APK的方式根据所述第二配置文件更新所述第一配置文件;

具体的,只需使用第二配置文件替换第一配置文件,并更新第二配置文件所对应的功能文件,无需对整个软件包进行更新,能够通过OTA或APK的方式更新OEM分区中的配置文件目录customer中的配置文件(OEM/customer/customere_*_featur.txt)或者更新OEM分区中的功能文件目录中的功能目录中的功能文件(OEM/feature/feature_*/*.txt);其中,*表示通配符;

其中,通过OTA或APK的方式更新OEM分区中的配置文件目录中的配置文件具体为:(1)通过OTA方式更新:从终端服务器获取最新的OTA软件包,具体的,终端开机联网后,会自动获取OTA服务器中的OTA包及OTA包版本号,如果版本比终端中保存的版本号新,则会从服务器下载OTA包,下载完成会进行软件升级;OTA软件包是一个增量差异包,需要更新的部分会在OTA增量包里;如需要更新customer_*_feature.txt文件,则OTA包会在对应的路径下存放这个文件,终端下载OTA包后会进行自动升级,用新下载的customer_*_feature.txt文件替换终端中保存的旧的customer_*_feature.txt文件:(2)通过APK更新:可以在OTA包中放入APK软件包,则在升级OTA包的同时也能够升级APK,或者用户在官网下载后手动安装APK软件包。

请参照图3,本发明的实施例三为:

将上述的一种单个软件中加载不同功能的方法应用于实际场景中:

设置属性ro.product.name获取产品标识,在此实施例中,用产品名称作为产品标识;

在开机时,通过ro.product.name获取产品名称A,启动feature加载服务,feature加载服务用于加载功能,根据产品名称A获取OEM分区中customer目录下对应的配置文件customer_A_feature.txt,此处设定版本号version的值越大表示配置文件越新;

读取customer_A_feature.txt的版本号,与系统保存的版本号比较,系统保存的版本号初始值为0,若customer_A_feature.txt的版本号小于或等于系统保存的版本号,则结束加载;

若customer_A_feature.txt的版本号大于系统保存的版本号,则说明customer_A_feature.txt文件为首次加载或存在更新,此时读取customer_A_feature.txt文件,获取其中功能配置,本实施例中包括功能A、功能B、功能C及功能D,在功能文件目录feature下获取对应的功能目录feature_A、feature_B、feature_C及feature_D,读取上述四个功能目录中的功能文件,并根据功能文件加载配置项进行系统配置;结束系统配置后,用customer_A_feature.txt文件的版本号更新系统保存的版本号后结束加载并重启设备;

在本实施例中,若需要进行配置文件更新,由服务器下发更新提示至终端,终端获取服务器上的配置文件customer_A_feature.txt的版本号,若大于本地customer_A_feature.txt的版本号,则下载服务器上的customer_A_feature.txt替代本地customer_A_feature.txt,在下次上电时系统会自动进行更新。

请参照图2,本发明的实施例四为:

一种单个软件中加载不同功能的终端1,包括处理器2、存储器3及存储在存储器3上并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现实施例一、实施例二或实施例三中的各个步骤。

综上所述,本发明提供了一种单个软件中加载不同功能的方法及终端,增设OEM分区、配置文件目录、功能文件目录及功能目录组成的文件存储结构,设置相应属性获取产品标识,根据产品标识确定在配置文件目录中所要加载的配置文件,并根据加载的配置文件中的内容确定所要加载的功能文件目录,最终加载功能文件目录中的功能文件,根据功能文件完成对系统的功能配置,实现同个软件基线、同个软件版本支持不同功能的定制,即同个软件会自动根据所读取到的不同的产品标识加载不同的配置文件,最终实现加载不同的功能文件进行不同的配置,并且在升级时能够采用同个软件镜像包、同个OTA升级包或同个APK进行,无需根据不同的产品定制不同的升级包,减少了后期维护的成本,减少了重复性的工作;并且,对不同产品进行统一更新减少了版本混乱的情况,不同的产品都使用同一个镜像包进行更新维护、之后的烧写、生产等流程的进行也更加效率;同时支持OTA及APK的更新方式,能够只下发更新的配置文件或功能文件而无需对整个软件进行完整的重装,节约了流量,增强了更新过程的稳定性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种单个软件中加载不同功能的方法及终端
  • 用于对由多个具有不同的子部件的部件构成的编组的子部件的处理器单元进行软件加载的方法
技术分类

06120112337404