CN112748946B - 应用程序安装文件生成方法和装置、计算设备、存储介质 - Google Patents

应用程序安装文件生成方法和装置、计算设备、存储介质 Download PDF

Info

Publication number
CN112748946B
CN112748946B CN201911041392.5A CN201911041392A CN112748946B CN 112748946 B CN112748946 B CN 112748946B CN 201911041392 A CN201911041392 A CN 201911041392A CN 112748946 B CN112748946 B CN 112748946B
Authority
CN
China
Prior art keywords
package
dependent
dependency
installation file
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.)
Active
Application number
CN201911041392.5A
Other languages
English (en)
Other versions
CN112748946A (zh
Inventor
魏常伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911041392.5A priority Critical patent/CN112748946B/zh
Publication of CN112748946A publication Critical patent/CN112748946A/zh
Application granted granted Critical
Publication of CN112748946B publication Critical patent/CN112748946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种应用程序安装文件生成方法和装置、计算设备、存储介质。所述应用程序安装文件生成方法包括:显示源代码界面,所述源代码界面包括源代码;接收针对所述源代码的编辑指令;根据所述编辑指令生成依赖包配置信息;获取与所述依赖包配置信息对应的第一依赖包;根据所述源代码和所述第一依赖包生成应用程序安装文件。本发明实施例能有针对性地根据所需要的依赖包来生成应用程序安装文件。

Description

应用程序安装文件生成方法和装置、计算设备、存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种应用程序安装文件生成方法和装置、计算设备、存储介质。
背景技术
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能助理、自动驾驶等,甚至智能编程,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
随着应用程序的功能的扩展,应用程序安装文件变得越来越大,主要原因有:
很多功能或模块是特定机型才需要引入(打包)的,而这些功能或模块一般机型一般不会引入,但是,对于一般机型而言,不需要的功能或模块往往也会被引入。
即,传统的打包方式(应用程序文件生成方式)是把所有的依赖包在编译脚本中全量配置,用户没有办法进行动态配置,因此,无法根据实际需求生成应用程序安装文件。
故,有必要提出一种新的技术方案,以解决上述技术问题。
发明内容
本发明的目的在于提供一种应用程序安装文件生成方法和装置、计算设备、存储介质,其能根据实际需求生成应用程序安装文件。
为解决上述问题,本发明实施例的技术方案如下:
第一方面,提供一种应用程序安装文件生成方法,包括:显示源代码界面,所述源代码界面包括源代码;接收针对所述源代码的编辑指令;根据所述编辑指令生成依赖包配置信息;获取与所述依赖包配置信息对应的第一依赖包;根据所述源代码和所述第一依赖包生成应用程序安装文件。
第二方面,提供一种应用程序安装文件生成装置,包括:显示模块,用于显示源代码界面,所述源代码界面包括源代码;接收模块,用于接收针对所述源代码的编辑指令;依赖包配置信息生成模块,用于根据所述编辑指令生成依赖包配置信息;获取模块,用于获取与所述依赖包配置信息对应的第一依赖包;应用程序安装文件生成模块,用于根据所述源代码和所述第一依赖包生成应用程序安装文件。
第三方面,提供一种计算设备,所述计算设备包括处理器和存储器,所述存储器用于存储程序代码,所述计算设备运行时,所述处理器用于执行所述程序代码,以执行上述第一方面的应用程序安装文件生成方法。
第四方面,提供一种存储有程序代码的计算机可读存储介质,所述程序代码用于使得计算机执行上述第一方面的应用程序安装文件生成方法。
在本发明实施例中,由于采用预定编译插件(VBCompiler),根据待生成的应用程序安装文件的实际需求选择特定的依赖包或过滤特定的依赖包,因此可以有针对性地根据所需要的依赖包来生成应用程序安装文件,满足依赖包可选择的需求,实现应用程序安装文件的定制化和差异化;另外,由于过滤了无用的依赖包,因此可以实现应用程序的轻量化(瘦身)。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用程序安装文件生成方法的一种运行模式的示意图。
图2是本发明实施例提供的应用程序安装文件生成方法的示意图。
图3是本发明实施例提供的应用程序安装文件生成方法的流程图。
图4是图3所示的应用程序安装文件生成方法中针对两种不同类型的依赖包的实现方式的流程图。
图5是本发明实施例提供的应用程序安装文件生成装置的框图。
图6是本发明实施例提供的应用程序安装文件生成装置的运行环境的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,术语“模块”一般指:硬件、硬件和软件的组合、软件等。例如,模块可以是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序等。运行在处理器上的应用和该处理器二者都可以是模块。一个或多个模块可以位于一个计算机中和/或分布在两个或更多计算机之间。
在本发明实施例中,“第一”、“第二”等仅为用于区分不同的对象,而不应对本发明实施例构成任何限定。
人工智能技术是一门综合学科,涉及领域广泛,具有广阔的发展前景。人工智能技术既有硬件层面的技术也有软件层面的技术。其中,人工智能软件层面的技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术、应用程序编译以及机器学习/深度学习等几大方向。
本发明实施例提供了一种应用程序安装文件生成方法和装置、计算设备、存储介质。具体地,本发明实施例提供的应用程序安装文件生成方法和装置适用于(集成于)计算机设备101,如图1所示,所述计算机设备101可以为个人计算机、服务器、移动设备(例如:移动电话、个人数字助理(PDA,Personal Digital Assistant)、平板电脑)等设备。
在这种情况下,计算机设备101(例如,个人计算机)显示源代码界面,计算机设备101接收编程人员在源代码界面上针对所述源代码的编辑指令;计算机设备101根据所述编辑指令生成依赖包配置信息;计算机设备101获取与所述依赖包配置信息对应的第一依赖包;计算机设备101根据所述源代码和所述第一依赖包生成应用程序安装文件。
下文将以本发明实施例提供的应用程序安装文件生成方法和装置适用于计算机设备101来说明。
本发明实施例提供的方案涉及人工智能的应用程序编译技术,具体通过如下实施例进行说明:
参考图1至图4,本发明实施例的应用程序安装文件生成方法包括以下步骤:
步骤301、显示源代码界面,所述源代码界面包括源代码。所述源代码界面配置有预定编译插件。所述预定编译插件可例如为VBCompiler。
步骤302、接收针对所述源代码的编辑指令。
步骤303、根据所述编辑指令生成依赖包配置信息。
所述依赖包配置信息可例如为待生成的所述应用程序安装文件所需要的第一依赖包的信息,和/或待生成的所述应用程序安装文件所不需要的第三依赖包的信息,即,所述第一依赖包的包名、依赖路径等信息和/或所述第三依赖包的包名、依赖路径等信息。所述编辑指令可例如为用户在所述源代码界面上编辑/编写所述源代码时所输入的调用(选择/配置)所述第一依赖包的代码(指令),或者,人工智能模块在编写所述源代码时所输入的调用(选择/配置)所述第一依赖包的代码(指令)。
步骤304、获取与所述依赖包配置信息对应的第一依赖包。所述第一依赖包来源于远程依赖包仓库的第一类型依赖包和/或来源于本地依赖包仓库的第二类型依赖包。
步骤305、根据所述源代码和所述第一依赖包生成应用程序安装文件。
在所述第一依赖包包括第一类型依赖包的情况下,所述依赖包配置信息包括依赖包选择信息。
所述步骤303包括:
步骤3031、通过所述源代码界面中的预定编译插件设置所述应用程序安装文件所需要的所述第一依赖包的信息,以生成所述依赖包选择信息。
具体地,所述步骤3031包括:
(1)配置所述预定编译插件(VBCompiler),在所述源代码所对应的项目主工程(所述应用程序安装文件所对应的工程)中添加所述预定编译插件的ClassPath依赖,如图2所示。
相应的代码为:
dependencies{
classpath'com.tencent.*.*:VBCompiler:1.0.0'
}
(2)在build.gradle当中使用并配置所述预定编译插件,以通过所述预定编译插件设置所述应用程序安装文件所需要的所述第一依赖包的信息。
相应的代码为:
在上述代码中,“USE_NETROUTER=true”表示使用网络库NetWork的NetRouter模块(依赖包),“TRANSPROT_IMPL="OKHttp"”表示使用网络库NetWork的OKHttp模块(依赖包),NetRouter模块和OKHttp模块均为所述应用程序安装文件所需要的所述第一依赖包的一个例子。
其中,所设置的所述应用程序安装文件所需要的所述第一依赖包的信息“USE_NETROUTER=true”和“TRANSPROT_IMPL="OKHttp"”均为所述依赖包选择信息。
所述步骤304包括:
步骤3041、读取所述预定编译插件所设置的所述依赖包选择信息;
步骤3042、根据所述依赖包选择信息从远程依赖包仓库中获取所述第一依赖包。
首先,根据所述依赖包选择信息向所述远程依赖包仓库发送所述第一依赖包的获取请求信息,其次,根据所述依赖包选择信息过滤(屏蔽)所述远程依赖包仓库中的第三依赖包,然后获取所述远程依赖包仓库在过滤后所保留的第一依赖包。
具体地,所述步骤304包括:
读取所述预定编译插件中所设置的依赖配置项,以实现依赖包过滤(过滤不需要的第三依赖包,获取需要的第一依赖包),即,通过所述预定编译插件,在所述应用程序安装文件的生成期间201读取通过CompileConfig配置的依赖maven仓库(远程依赖包仓库),如图2所示,实现maven依赖包(远程依赖包仓库中的依赖包)的动态地打包(编译)到Apk(应用程序安装文件)中。
在所述步骤305之前,所述方法还包括:
步骤306、生成依赖清单文件(DependList文件),所述依赖清单文件用于在所述应用程序安装文件处于运行期间202向所述应用程序安装文件提供待注入到所述应用程序安装文件的第二依赖包的信息。
具体地,在生成所述应用程序安装文件(Apk安装包)的过程中,生成Maven仓库的依赖列表文件DependList,声明Apk安装包需要的第二依赖包。
例如,使用网络库中的路由模块(第二依赖包)。
相应的代码为:
public static boolean USE_NETROUTER=${config.USE_NETROUTER};
例如,使用网络库中的OKHttp模块(第二依赖包)。
相应的代码为:
public static String TRANSPROT_IMPL=${config.TRANSPROT_IMPL};
在所述应用程序安装文件(Apk安装包)启动后,如果用户使用网络库的功能,在初始化网络库时,会读取DependList配置文件,按照DependList设置实现所述第二依赖包的动态注入。
所述步骤305包括:
根据所述源代码、所述第一依赖包和所述依赖清单文件生成应用程序安装文件。
在所述第一依赖包包括第二类型依赖包的情况下,所述依赖包配置信息包括依赖包过滤信息。
所述步骤303包括:
步骤3032、根据所述编辑指令设置待过滤的第三依赖包的信息;
步骤3033、根据待过滤的所述第三依赖包的信息生成所述依赖包过滤信息。
待过滤的所述第三依赖包的信息包括所述源代码中的第一代码的依赖路径信息和/或所述源代码中的第二代码的资源文件信息。
具体地,包括:
配置依赖包删除文件,即,配置待过滤的所述第三依赖包的类信息、资源信息中的至少一者,如图2所示。
例如,在项目的根目录下,通过包路径来设置针对Class类的删除操作。如删除Libs当中依赖的华为Push jar依赖包。
相应的代码为:
com.huawei.android
其中,“com.huawei.android”表示华为Push依赖包的包名。
例如,在项目的根目录下,通过制定资源名来设置针对资源文件的删除操作。如删除日志底层so库。
相应的代码为:
lib.armeabi.libmarsxlog.so
其中,“lib.armeabi.libmarsxlog.so”表示日志依赖包的资源。
根据待过滤的所述第三依赖包的信息生成所述依赖包过滤信息,即,根据所配置的待过滤的所述第三依赖包的类信息、资源信息中的至少一者生成所述依赖包过滤信息。
所述步骤304包括:
步骤3043、通过所述源代码界面中的预定编译插件,生成包括本地依赖包仓库中的至少两个依赖包的依赖包资源池。
步骤3044、根据所述依赖包过滤信息过滤所述依赖包资源池中的第三依赖包,以得到所述第一依赖包。
首先,根据所述源代码向所述本地依赖包仓库发送所述第一依赖包的获取请求信息,其次,接收所述本地依赖包仓库发送的与所述源代码对应的所述第一依赖包。
具体地,包括:
生成Apk资源池:通过所述预定编译插件,在生成所述应用程序安装文件的过程中,针对所有的aar和jar包形式的依赖,生成一个依赖池(依赖包资源池),如图2所示。
标记Class类信息和资源信息,为后续的过滤做准备。
根据所述依赖包过滤信息对所述依赖包资源池进行过滤,以得到所述第一依赖包。
首先,过滤所述依赖包资源池中类信息、资源信息中的至少一者中与所述依赖包过滤信息对应的第三依赖包,然后,获取所述依赖包资源池在过滤后所保留的第一依赖包。
具体地,根据所配置的依赖包删除文件(标记有Class类信息和资源信息),在生成所述应用程序安装文件的过程中,过滤不需要打包的依赖包资源池里面的aar/jar文件(第三依赖包)。
在本发明实施例提供的应用程序安装文件生成方法中,由于采用预定编译插件(VBCompiler),根据待生成的应用程序安装文件的实际需求选择特定的依赖包或过滤特定的依赖包,因此可以有针对性地根据所需要的依赖包来生成应用程序安装文件,满足依赖包可选择的需求,实现应用程序安装文件的定制化和差异化;另外,由于过滤了无用的依赖包,因此可以实现应用程序的轻量化(瘦身)。
为了更好地实施以上方法,相应的,本发明实施例还提供一种应用程序安装文件生成装置。
参考图5,本发明实施例提供的应用程序安装文件生成装置包括显示模块501、接收模块502、依赖包配置信息生成模块503、获取模块504和应用程序安装文件生成模块505。
所述显示模块501用于显示源代码界面,所述源代码界面包括源代码。所述源代码界面配置有预定编译插件。所述预定编译插件可例如为VBCompiler。
所述接收模块502用于接收针对所述源代码的编辑指令。
所述依赖包配置信息生成模块503用于根据所述编辑指令生成依赖包配置信息。
所述依赖包配置信息可例如为待生成的所述应用程序安装文件所需要的第一依赖包的信息,和/或待生成的所述应用程序安装文件所不需要的第三依赖包的信息,即,所述第一依赖包的包名、依赖路径等信息和/或所述第三依赖包的包名、依赖路径等信息。所述编辑指令可例如为用户在所述源代码界面上编辑/编写所述源代码时所输入的调用(选择/配置)所述第一依赖包的代码(指令),或者,人工智能模块在编写所述源代码时所输入的调用(选择/配置)所述第一依赖包的代码(指令)。
所述获取模块504用于获取与所述依赖包配置信息对应的第一依赖包。所述第一依赖包来源于远程依赖包仓库的第一类型依赖包和/或来源于本地依赖包仓库的第二类型依赖包。
所述应用程序安装文件生成模块505用于根据所述源代码和所述第一依赖包生成应用程序安装文件。
在所述第一依赖包包括第一类型依赖包的情况下,所述依赖包配置信息包括依赖包选择信息。
所述依赖包配置信息生成模块503用于通过所述源代码界面中的预定编译插件设置所述应用程序安装文件所需要的所述第一依赖包的信息,以生成所述依赖包选择信息。
具体地,所述依赖包配置信息生成模块503用于在所述源代码所对应的项目主工程(所述应用程序安装文件所对应的工程)中添加所述预定编译插件的ClassPath依赖。
相应的代码为:
dependencies{
classpath'com.tencent.*.*:VBCompiler:1.0.0'
}
所述依赖包配置信息生成模块503还用于在build.gradle当中使用并配置所述预定编译插件,以通过所述预定编译插件设置所述应用程序安装文件所需要的所述第一依赖包的信息。
相应的代码为:
在上述代码中,“USE_NETROUTER=true”表示使用网络库NetWork的NetRouter模块(依赖包),“TRANSPROT_IMPL="OKHttp"”表示使用网络库NetWork的OKHttp模块(依赖包),NetRouter模块和OKHttp模块均为所述应用程序安装文件所需要的所述第一依赖包的一个例子。
其中,所设置的所述应用程序安装文件所需要的所述第一依赖包的信息“USE_NETROUTER=true”和“TRANSPROT_IMPL="OKHttp"”均为所述依赖包选择信息。
所述获取模块504用于读取所述预定编译插件所设置的所述依赖包选择信息,并用于根据所述依赖包选择信息从远程依赖包仓库中获取所述第一依赖包。
首先,所述获取模块504用于根据所述依赖包选择信息向所述远程依赖包仓库发送所述第一依赖包的获取请求信息,其次,所述获取模块504用于根据所述依赖包选择信息过滤(屏蔽)所述远程依赖包仓库中的第三依赖包,然后,所述获取模块504用于获取所述远程依赖包仓库在过滤后所保留的第一依赖包。
具体地,所述获取模块504用于读取所述预定编译插件中所设置的依赖配置项,以实现依赖包过滤(过滤不需要的第三依赖包,获取需要的第一依赖包),即,通过所述预定编译插件,在所述应用程序安装文件的生成期间201读取通过CompileConfig配置的依赖maven仓库(远程依赖包仓库),实现maven依赖包(远程依赖包仓库中的依赖包)的动态地打包(编译)到Apk(应用程序安装文件)中。
所述应用程序安装文件生成模块505还用于生成依赖清单文件(DependList文件),所述依赖清单文件用于在所述应用程序安装文件处于运行期间202向所述应用程序安装文件提供待注入到所述应用程序安装文件的第二依赖包的信息。
具体地,所述应用程序安装文件生成模块505还用于在生成所述应用程序安装文件(Apk安装包)的过程中,生成Maven仓库的依赖列表文件DependList,以声明Apk安装包需要的第二依赖包。
例如,使用网络库中的路由模块(第二依赖包)。
相应的代码为:
public static boolean USE_NETROUTER=${config.USE_NETROUTER};
例如,使用网络库中的OKHttp模块(第二依赖包)。
相应的代码为:
public static String TRANSPROT_IMPL=${config.TRANSPROT_IMPL};
在所述应用程序安装文件(Apk安装包)启动后,如果用户使用网络库的功能,在初始化网络库时,会读取DependList配置文件,按照DependList设置实现所述第二依赖包的动态注入。
在所述第一依赖包包括第二类型依赖包的情况下,所述依赖包配置信息包括依赖包过滤信息;
所述依赖包配置信息生成模块503用于根据所述编辑指令设置待过滤的第三依赖包的信息,并用于根据待过滤的所述第三依赖包的信息生成所述依赖包过滤信息。
待过滤的所述第三依赖包的信息包括所述源代码中的第一代码的依赖路径信息和/或所述源代码中的第二代码的资源文件信息。
具体地,依赖包配置信息生成模块503用于配置依赖包删除文件,即,配置待过滤的所述第三依赖包的类信息、资源信息中的至少一者。
例如,在项目的根目录下,通过包路径来设置针对Class类的删除操作。如删除Libs当中依赖的华为Push jar依赖包。
相应的代码为:
com.huawei.android
其中,“com.huawei.android”表示华为Push依赖包的包名。
例如,在项目的根目录下,通过制定资源名来设置针对资源文件的删除操作。如删除日志底层so库。
相应的代码为:
lib.armeabi.libmarsxlog.so
其中,“lib.armeabi.libmarsxlog.so”表示日志依赖包的资源。
依赖包配置信息生成模块503还用于根据待过滤的所述第三依赖包的信息生成所述依赖包过滤信息,即,根据所配置的待过滤的所述第三依赖包的类信息、资源信息中的至少一者生成所述依赖包过滤信息。
所述获取模块504用于通过所述源代码界面中的预定编译插件,生成包括本地依赖包仓库中的至少两个依赖包的依赖包资源池,并用于根据所述依赖包过滤信息过滤所述依赖包资源池中的第三依赖包,以得到所述第一依赖包。
首先,根据所述源代码向所述本地依赖包仓库发送所述第一依赖包的获取请求信息,其次,接收所述本地依赖包仓库发送的与所述源代码对应的所述第一依赖包。
具体地,所述获取模块504用于生成Apk资源池:通过所述预定编译插件,在生成所述应用程序安装文件的过程中,针对所有的aar和jar包形式的依赖,生成一个依赖池(依赖包资源池)。
所述获取模块504用于标记Class类信息和资源信息,为后续的过滤做准备。
所述获取模块504还用于根据所述依赖包过滤信息对所述依赖包资源池进行过滤,以得到所述第一依赖包。
首先,所述获取模块504用于过滤所述依赖包资源池中类信息、资源信息中的至少一者中与所述依赖包过滤信息对应的第三依赖包,然后,所述获取模块504用于获取所述依赖包资源池在过滤后所保留的第一依赖包。
具体地,所述获取模块504用于根据所配置的依赖包删除文件(标记有Class类信息和资源信息),在生成所述应用程序安装文件的过程中,过滤不需要打包的依赖包资源池里面的aar/jar文件(第三依赖包)。
在本发明实施例提供的应用程序安装文件生成装置中,由于采用预定编译插件(VBCompiler),根据待生成的应用程序安装文件的实际需求选择特定的依赖包或过滤特定的依赖包,因此可以有针对性地根据所需要的依赖包来生成应用程序安装文件,满足依赖包可选择的需求,实现应用程序安装文件的定制化和差异化;另外,由于过滤了无用的依赖包,因此可以实现应用程序的轻量化(瘦身)。
本发明实施例的应用程序安装文件生成装置可以通过硬件实现,如图6所示,该硬件可以包括处理器603、存储器602、输入/输出电路605、显示屏604、通信电路601等的任意组合,其中,存储器602、输入/输出电路605、显示屏604、通信电路601均与处理器603电性连接。上述处理器603、存储器602、输入/输出电路605、显示屏604、通信电路601等的任意组合用于实现本发明实施例的应用程序安装文件生成装置功能、步骤。
其中,该处理器603可例如为:CPU(Central Processing Unit,中央处理器)、GPU、NPU(Neural Processing Unit,神经网络处理单元)、其他通用处理器、数字信号处理器(DSP,Digital Signal Processor)、专用集成电路(ASIC,Application SpecificIntegrated Circuit)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器602可以包括只读存储器和随机存取存储器,用于向处理器提供程序代码和数据。存储器还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。
本发明实施例的应用程序安装文件生成装置也可以通过软件实现,此时,本发明实施例的应用程序安装文件生成装置及其各个模块也可以为软件模块。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品(其载体可例如为本发明实施例的计算机可读存储介质)的形式实现。
本发明实施例的应用程序安装文件生成装置还可以通过软件、硬件的组合来实现。
本发明实施例的应用程序安装文件生成装置可对应于执行本发明实施例中描述的方法,并且所述应用程序安装文件生成装置中的各个模块的上述和其它操作和/或功能用于实现本发明实施例的应用程序安装文件生成方法的相应流程。
本发明实施例的计算设备包括处理器、存储器。其中,处理器、存储器通过总线进行通信。所述存储器用于存储程序代码,所述计算设备运行时,所述处理器执行所述程序代码,以执行本发明实施例的应用程序安装文件生成方法。例如,该程序代码可以执行如下步骤:
显示源代码界面,所述源代码界面包括源代码;接收针对所述源代码的编辑指令;根据所述编辑指令生成依赖包配置信息;获取与所述依赖包配置信息对应的第一依赖包;根据所述源代码和所述第一依赖包生成应用程序安装文件。
本发明实施例的计算设备可例如为:个人计算机、服务器、移动设备(包括:移动电话、个人数字助理、媒体播放器等)、分布式计算机系统等。
本发明实施例的计算机可读存储介质存储有程序代码,所述程序代码用于使得计算机执行本发明实施例的应用程序安装文件生成方法。例如,该程序代码可以执行如下步骤:
显示源代码界面,所述源代码界面包括源代码;接收针对所述源代码的编辑指令;根据所述编辑指令生成依赖包配置信息;获取与所述依赖包配置信息对应的第一依赖包;根据所述源代码和所述第一依赖包生成应用程序安装文件。
所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。
所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(Solid State Drive,SSD)。
所述程序代码的指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述程序代码的指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL,DigitalSubscriber Line))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

Claims (12)

1.一种应用程序安装文件生成方法,其特征在于,包括:
显示源代码界面,所述源代码界面包括源代码;
接收针对所述源代码的编辑指令;
根据所述编辑指令生成依赖包配置信息;
获取与所述依赖包配置信息对应的第一依赖包,包括:生成依赖清单文件,所述依赖清单文件用于在所述应用程序安装文件处于运行期间向所述应用程序安装文件提供待注入到所述应用程序安装文件的第二依赖包的信息;根据依赖包选择信息向远程依赖包仓库发送第一依赖包的获取请求信息,根据所述依赖包选择信息过滤所述远程依赖包仓库中的第三依赖包,以获取所述远程依赖包仓库在过滤后所保留的第一依赖包;
根据所述源代码和所述第一依赖包及所述依赖清单文件生成应用程序安装文件。
2.根据权利要求1所述的应用程序安装文件生成方法,其特征在于,所述依赖包配置信息包括依赖包选择信息;
所述根据所述编辑指令生成依赖包配置信息的步骤包括:
通过所述源代码界面中的预定编译插件设置所述应用程序安装文件所需要的所述第一依赖包的信息,以生成所述依赖包选择信息。
3.根据权利要求2所述的应用程序安装文件生成方法,其特征在于,所述获取与所述依赖包配置信息对应的第一依赖包的步骤包括:
读取所述预定编译插件所设置的所述依赖包选择信息;
根据所述依赖包选择信息从远程依赖包仓库中获取所述第一依赖包。
4.根据权利要求1所述的应用程序安装文件生成方法,其特征在于,所述依赖包配置信息包括依赖包过滤信息;
所述根据所述编辑指令生成依赖包配置信息的步骤包括:
根据所述编辑指令设置待过滤的第四依赖包的信息;
根据待过滤的所述第四依赖包的信息生成所述依赖包过滤信息。
5.根据权利要求4所述的应用程序安装文件生成方法,其特征在于,所述获取与所述依赖包配置信息对应的第一依赖包的步骤包括:
通过所述源代码界面中的预定编译插件,生成包括本地依赖包仓库中的至少两个依赖包的依赖包资源池;
根据所述依赖包过滤信息过滤所述依赖包资源池中的第四依赖包,以得到所述第一依赖包。
6.一种应用程序安装文件生成装置,其特征在于,包括:
显示模块,用于显示源代码界面,所述源代码界面包括源代码;
接收模块,用于接收针对所述源代码的编辑指令;
依赖包配置信息生成模块,用于根据所述编辑指令生成依赖包配置信息;
获取模块,用于获取与所述依赖包配置信息对应的第一依赖包,包括:生成依赖清单文件,所述依赖清单文件用于在所述应用程序安装文件处于运行期间向所述应用程序安装文件提供待注入到所述应用程序安装文件的第二依赖包的信息;根据依赖包选择信息向远程依赖包仓库发送第一依赖包的获取请求信息,根据所述依赖包选择信息过滤所述远程依赖包仓库中的第三依赖包,以获取所述远程依赖包仓库在过滤后所保留的第一依赖包;
应用程序安装文件生成模块,用于根据所述源代码和所述第一依赖包及所述依赖清单文件生成应用程序安装文件。
7.根据权利要求6所述的应用程序安装文件生成装置,其特征在于,所述依赖包配置信息包括依赖包选择信息;
所述依赖包配置信息生成模块用于通过所述源代码界面中的预定编译插件设置所述应用程序安装文件所需要的所述第一依赖包的信息,以生成所述依赖包选择信息。
8.根据权利要求7所述的应用程序安装文件生成装置,其特征在于,所述获取模块用于读取所述预定编译插件所设置的所述依赖包选择信息,并用于根据所述依赖包选择信息从远程依赖包仓库中获取所述第一依赖包。
9.根据权利要求6所述的应用程序安装文件生成装置,其特征在于,所述依赖包配置信息包括依赖包过滤信息;
所述依赖包配置信息生成模块用于根据所述编辑指令设置待过滤的第四依赖包的信息,并用于根据待过滤的所述第四依赖包的信息生成所述依赖包过滤信息。
10.根据权利要求9所述的应用程序安装文件生成装置,其特征在于,所述获取模块用于通过所述源代码界面中的预定编译插件,生成包括本地依赖包仓库中的至少两个依赖包的依赖包资源池,并用于根据所述依赖包过滤信息过滤所述依赖包资源池中的第四依赖包,以得到所述第一依赖包。
11.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器用于存储程序代码,所述计算设备运行时,所述处理器用于执行所述程序代码,以执行权利要求1至5中任意一项所述的应用程序安装文件生成方法。
12.一种存储有程序代码的计算机可读存储介质,其特征在于,所述程序代码用于使得计算机执行权利要求1至5中任意一项所述的应用程序安装文件生成方法。
CN201911041392.5A 2019-10-30 2019-10-30 应用程序安装文件生成方法和装置、计算设备、存储介质 Active CN112748946B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911041392.5A CN112748946B (zh) 2019-10-30 2019-10-30 应用程序安装文件生成方法和装置、计算设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911041392.5A CN112748946B (zh) 2019-10-30 2019-10-30 应用程序安装文件生成方法和装置、计算设备、存储介质

Publications (2)

Publication Number Publication Date
CN112748946A CN112748946A (zh) 2021-05-04
CN112748946B true CN112748946B (zh) 2023-11-24

Family

ID=75640326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911041392.5A Active CN112748946B (zh) 2019-10-30 2019-10-30 应用程序安装文件生成方法和装置、计算设备、存储介质

Country Status (1)

Country Link
CN (1) CN112748946B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703827B (zh) * 2021-07-31 2024-02-09 浪潮电子信息产业股份有限公司 一种依赖包管理方法、系统、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870310A (zh) * 2014-02-18 2014-06-18 小米科技有限责任公司 程序编译方法及相关装置
CN106886394A (zh) * 2015-12-15 2017-06-23 五八同城信息技术有限公司 应用程序打包方法及装置
CN110389762A (zh) * 2018-04-19 2019-10-29 北京京东尚科信息技术有限公司 在Android工程中处理AAR包的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870310A (zh) * 2014-02-18 2014-06-18 小米科技有限责任公司 程序编译方法及相关装置
CN106886394A (zh) * 2015-12-15 2017-06-23 五八同城信息技术有限公司 应用程序打包方法及装置
CN110389762A (zh) * 2018-04-19 2019-10-29 北京京东尚科信息技术有限公司 在Android工程中处理AAR包的方法和装置

Also Published As

Publication number Publication date
CN112748946A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
Antoniadis et al. Static analysis of Java enterprise applications: frameworks and caches, the elephants in the room
CN103902859A (zh) 基于JAVA下hook技术的代码保护方法及系统
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
WO2018032653A1 (zh) 一种Java卡应用的功能实现方法及装置
US9032378B2 (en) Available symbol set generation using untyped variable
CN106796521B (zh) 独立于产品发布的api版本控制
CN112748946B (zh) 应用程序安装文件生成方法和装置、计算设备、存储介质
Parada et al. Automating mobile application development: UML-based code generation for Android and Windows Phone
de Dios et al. Model-driven development of a secure ehealth application
CN108536434B (zh) 一种基于高级程序设计语言实现钩子函数的方法及装置
CN110018831B (zh) 程序处理方法、装置及计算机可读存储介质
US8448244B1 (en) Methods and systems for fused files comprising logic and content data
Mongiello et al. AC-contract: Run-time verification of context-aware applications
Turner et al. Creating XPCOM Components
US8924924B2 (en) Representing the structure of a data format using a class-based representation
CN113760360A (zh) 一种文件生成方法、装置、设备及存储介质
CN113835680A (zh) 应用程序的生成方法、装置、电子设备及计算机存储介质
CN107506299B (zh) 一种代码分析方法及终端设备
CN105393216B (zh) 运行时内存调节
CN117093286B (zh) 插件生成方法、装置、设备及计算机可读存储介质
CN116136760B (zh) 浏览器的原生选择器替换方法、装置、设备及存储介质
US9519879B1 (en) Just in time compilation (JIT) for business process execution
CN112965714B (zh) 快速更新代码的方法、装置、设备及存储介质
US11467867B2 (en) Long-term programmatic workflow management by executing a sequence of code blocks

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