应用功能定制方法、装置、计算设备以及存储介质制造方法及图纸

技术编号:18138207 阅读:20 留言:0更新日期:2018-06-06 11:41
本发明专利技术公开了一种应用功能定制方法、装置、计算设备以及存储介质。根据期望为目标应用配置的定制功能,从功能实现组件库中选取与定制功能对应的功能实现组件。在使用预设的构建工具构建目标应用的软件安装包的过程中,注入功能实现组件,以使得构建后的软件安装包具备定制功能。由此,可以在构建目标应用的软件安装包的过程中,动态地注入期望为目标应用配置的定制功能,从而可以在不改变现有的打包逻辑的基础上,满足个性化的功能定制需求。

【技术实现步骤摘要】
应用功能定制方法、装置、计算设备以及存储介质
本专利技术涉及应用开发领域,特别是涉及一种应用功能定制方法、装置、计算设备以及存储介质。
技术介绍
随着移动互联网的迅速发展,应用功能定制化是一个越来越重要的需求。例如,应用发行渠道多种多样,同一个应用需要针对不同的渠道有不同的定制功能,比如是否开启广告等。再例如,应用在开发测试阶段往往需要集成一些第三方的工具包来辅助开发和调试,而这些第三方的工具包是不属于产品本身的功能、不能也不应该集成到最终的发布包,因此有在发布包中清除调试功能代码的需求。针对这种应用功能定制化的需求,业界一般有如下两种方案。1.通过自带的构建工具例如gradle实现对APK包的功能定制化。简单来说它们具有针对开发生命周期的不同阶段进行配置、为不同的产品渠道定义使用不同的代码和资源,同时对所有应用版本共有的部分加以共享和重复利用的能力。使用gradle构建工具可以在一定程度上实现功能定制化需求。但是这需要预定义配置各种功能组合,并将配置信息写在源码中,不能动态地为应用定制个性化的功能。2.另一种方案是mockAPI。这种方案主要针对开发阶段的辅助工具包。由于辅助功能不能发布到正式包中,所以实现方案是打正式包和测试包分别引用不同的jar,测试包引用的jar具有真正的逻辑代码,正式包引用的jar具有相同的接口,但接口函数是空的,没有任何实现(Leakcanary工具提供这种方式的集成)。通过这种方式在不需要修改源码前提下,可以把辅助功能从正式包中移除。但是这种方案一方面只适用于有限的场景、不够灵活,另一方面需要明确在源码中调用辅助功能jar中的类和方法,如果打包出错,很容易把不该发布的功能泄露到线上,并且造成源代码的污染。由此,需要一种新的应用功能定制方案,以更好地满足应用的功能定制化需求。
技术实现思路
本专利技术的目的在于提供一种能够更好地满足应用的功能定制化需求的应用功能定制方案。根据本专利技术的一个方面,提供了一种应用功能定制方法,包括:根据期望为目标应用配置的定制功能,从功能实现组件库中选取与定制功能对应的功能实现组件;在使用预设的构建工具构建目标应用的软件安装包的过程中,注入功能实现组件,以使得构建后的软件安装包具备定制功能。由此,可以在构建目标应用的软件安装包的过程中,动态地注入期望为目标应用配置的定制功能,从而可以在不改变现有的打包逻辑的基础上,满足个性化的功能定制需求。优选地,从功能实现组件库中选取与定制功能对应的功能实现组件的步骤包括:根据期望为目标应用配置的定制功能,使用预定的语言对实现定制功能所依赖的功能实现组件进行声明,以实现功能实现组件的选取。由此,可以实现对定制功能所对应的功能实现组件的动态引用。优选地,该应用功能定制方法还可以包括:从功能配置文件中读取功能配置信息,以确定需要为目标应用配置的定制功能。由此,可以通过修改功能配置文件中的功能配置信息,为目标应用配置不同的功能。优选地,注入功能实现组件的步骤可以包括:根据功能实现组件实现时的依赖逻辑,确定功能实现组件的功能注入点;将功能实现组件的初始化代码插入功能注入点,以使得功能实现组件能够被正常调用。由此,可以实现功能实现组件的动态注入,从而满足应用的定制化需求。优选地,预设的构建工具为Gradle,将初始化代码插入功能注入点的步骤可以包括:在使用Gradle对目标应用的源文件进行编译以得到类文件后,利用预设的字节码处理工具将功能实现组件的初始化代码插入其所属的类文件中。由此,可以借助javassist等字节码处理工具的字节码处理功能,使得在不改变现有的打包流程的基础上,实现功能实现组件的动态注入。根据本专利技术的另一个方面,还提供了一种应用功能定制装置,包括:组件选取模块,用于根据期望为目标应用配置的定制功能,从功能实现组件库中选取与定制功能对应的功能实现组件;组件注入模块,用于在使用预设的构建工具构建目标应用的软件安装包的过程中,注入功能实现组件,以使得构建后的软件安装包具备定制功能。优选地,组件选取模块根据期望为目标应用配置的定制功能,使用预定的语言对实现定制功能所依赖的功能实现组件进行声明,以实现功能实现组件的选取。优选地,该应用功能定制装置还可以包括:读取模块,用于从功能配置文件中读取功能配置信息,以确定需要为目标应用配置的定制功能。优选地,组件注入模块根据功能实现组件实现时的依赖逻辑,确定功能实现组件的功能注入点,并将功能实现组件的初始化代码插入功能注入点,以使得功能实现组件能够被正常调用。优选地,预设的构建工具为Gradle,组件注入模块在使用Gradle对目标应用的源文件进行编译以得到类文件后,利用预设的字节码处理工具将功能实现组件的初始化代码插入其所属的类文件中。根据本专利技术的另一个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上文述及的方法。根据本专利技术的另一个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行上文述及的方法。综上,本专利技术的应用功能定制方法、装置、计算设备以及存储介质,可以在构建目标应用的软件安装包的过程中,动态地注入期望为目标应用配置的定制功能,从而可以在不改变现有的打包逻辑的基础上,满足个性化的功能定制需求。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1是示出了根据本专利技术一实施例的计算设备的结构的示意性方框图。图2是示出了根据本专利技术一实施例的应用功能定制方法的示意性流程图。图3是示出了利用本专利技术的打包构建流程示意图。图4是示出了根据本专利技术一实施例的应用功能定制装置的结构的示意性方框图。具体实施方式下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。为了更好地满足应用的功能定制化需求,本专利技术提出了一种应用功能定制方案。本专利技术的应用功能定制方案可以在应用的打包构建过程中,动态地注入用于实现特定功能的功能实现组件,从而可以在不影响应用的正常打包流程基础上,实现应用功能的个性化定制需求。本专利技术实施例所提供的应用功能定制方案可应用于如图1所示的计算设备。图1是示出了根据本专利技术一个实施例的计算设备100的结构的示意性方框图。其中,计算设备100可以是可以实施为各种类型的计算机装置,例如台式机、便携式计算机、平板电脑、智能手机、个人数据助理(PDA),或者其他类型的计算机装置,但是不限于任何特定形式。如图1所示,本专利技术的计算设备100可以包括处理器110以及存储器120。处理器110可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器110可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器110可以使用定制的电路实现,例如特本文档来自技高网
...
应用功能定制方法、装置、计算设备以及存储介质

【技术保护点】
一种应用功能定制方法,包括:根据期望为目标应用配置的定制功能,从功能实现组件库中选取与所述定制功能对应的功能实现组件;在使用预设的构建工具构建目标应用的软件安装包的过程中,注入所述功能实现组件,以使得构建后的软件安装包具备所述定制功能。

【技术特征摘要】
1.一种应用功能定制方法,包括:根据期望为目标应用配置的定制功能,从功能实现组件库中选取与所述定制功能对应的功能实现组件;在使用预设的构建工具构建目标应用的软件安装包的过程中,注入所述功能实现组件,以使得构建后的软件安装包具备所述定制功能。2.根据权利要求1所述的应用功能定制方法,其中,从功能实现组件库中选取与所述定制功能对应的功能实现组件的步骤包括:根据期望为目标应用配置的定制功能,使用预定的语言对实现所述定制功能所依赖的功能实现组件进行声明,以实现所述功能实现组件的选取。3.根据权利要求1所述的应用功能定制方法,还包括:从功能配置文件中读取功能配置信息,以确定需要为所述目标应用配置的定制功能。4.根据权利要求1所述的应用功能定制方法,其中,注入所述功能实现组件的步骤包括:根据所述功能实现组件实现时的依赖逻辑,确定所述功能实现组件的功能注入点;将所述功能实现组件的初始化代码插入所述功能注入点,以使得所述功能实现组件能够被正常调用。5.根据权利要求4所述的应用功能定制方法,其中,所述预设的构建工具为Gradle,所述将初始化代码插入所述功能注入点的步骤包括:在使用Gradle对所述目标应用的源文件进行编译以得到类文件后,利用预设的字节码处理工具将所述功能实现组件的初始化代码插入其所属的类文件中。6.一种应用功能定制装置,包括:组件选取模块,用于根据期望为目标应用配置的定制功能,从功能实现组件库中选取与所述定制功能对应的功能...

【专利技术属性】
技术研发人员:杨文亮刘泽文祝中良杨瑾
申请(专利权)人:广州阿里巴巴文学信息技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1