CN107402792B - 应用软件安装包的集成方法、装置、设备及存储介质 - Google Patents

应用软件安装包的集成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN107402792B
CN107402792B CN201710647600.0A CN201710647600A CN107402792B CN 107402792 B CN107402792 B CN 107402792B CN 201710647600 A CN201710647600 A CN 201710647600A CN 107402792 B CN107402792 B CN 107402792B
Authority
CN
China
Prior art keywords
apk
party function
api
party
host software
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
CN201710647600.0A
Other languages
English (en)
Other versions
CN107402792A (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.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology 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 Guangzhou Shiyuan Electronics Thecnology Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN201710647600.0A priority Critical patent/CN107402792B/zh
Publication of CN107402792A publication Critical patent/CN107402792A/zh
Application granted granted Critical
Publication of CN107402792B publication Critical patent/CN107402792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种应用软件安装包的集成方法、装置、设备及存储介质。该集成方法包括:获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK,第一APK和第二APK具有相同的API使用规则;对第一APK和第二APK进行合并处理,生成包含API使用规则且集成第三方功能的宿主软件的第三APK。采用上述方法可以解决现有技术中将第三方功能APK写入原始的宿主软件程序包代码中导致的程序包通用性较差且代码功能耦合性比较紧的技术问题。

Description

应用软件安装包的集成方法、装置、设备及存储介质
技术领域
本发明涉及数据处理领域,尤其涉及一种应用软件安装包的集成方法、装置、设备及存储介质。
背景技术
安卓(Android)操作***是一种自由及开放源代码的操作***,被广泛的应用于平板电脑、手机等智能终端中。安卓安装包(AndroidPackage,APK)是一类安卓***可以识别的文件格式。一般而言,智能终端下载APK后,对其进行解压和安装,以在智能终端中运行相应的应用软件。
随着智能终端的普及以及用户需求的日益增多,同一应用软件所要集成的第三方功能越来越来多。比如,某一视频应用程序被用户使用过程中,需要涉及到用户登录、视频推送、会员购买、第三方广告应用以及视频分享等第三方功能。现有技术中,在开发应用软件原始的程序包时,尽可能的将各类第三方功能的安卓安装包(AndroidPackage,APK)写入至原始的程序包代码中,使得最终开发得到的程序包通用性较差且代码功能耦合性比较紧。
发明内容
有鉴于此,本发明实施例提供一种应用软件安装包的集成方法、装置、设备及存储介质,以解决现有技术中将第三方功能APK写入原始的宿主软件程序包中导致的程序包通用性较差且代码功能耦合性比较紧的技术问题。
第一方面,本发明实施例提供了一种应用软件安装包的集成方法,包括:
获取待集成第三方功能的宿主软件的第一安卓安装包APK和第三方功能的第二APK,所述第一APK和所述第二APK具有相同的应用程序编程接口API使用规则;
对所述第一APK和所述第二APK进行合并处理,生成包含所述API使用规则且集成第三方功能的宿主软件的第三APK。
第二方面,本发明实施例还提供了一种应用软件安装包的集成装置,包括:
获取模块,用于获取待集成第三方功能的宿主软件的第一安卓安装包APK和第三方功能的第二APK,所述第一APK和所述第二APK具有相同的应用程序编程接口API使用规则;
合并模块,用于对所述第一APK和所述第二APK进行合并处理,生成包含所述API使用规则且集成第三方功能的宿主软件的第三APK。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例所述的应用软件安装包的集成方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所述的应用软件安装包的集成方法。
上述提供的应用软件安装包的集成方法、装置、设备及存储介质,通过获取待集成第三方功能的宿主软件的第一APK和第三方功能第二APK,其中,第一APK和第二APK具有相同的API使用规则,进一步的,对具有相同的API使用规则的第一APK和第二APK进行合并处理以得到具有该API使用规则的第三APK的技术手段,实现了在宿主软件的第三APK中集成第三方功能APK,且宿主软件和第三方功能可以通过与API使用规则对应的API接口进行交互,无需将第三方功能APK写入宿主软件程序包中,使得第三方功能和宿主软件可以独立区分,便于分别对宿主软件和第三方功能进行管理和资源开发。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种应用软件安装包的集成方法的流程图;
图2a为本发明实施例二提供的一种应用软件安装包的集成方法的流程图;
图2b为一种应用软件安装包的集成方法的流程示意图;
图3为本发明实施例三提供的一种应用软件安装包的集成装置的结构示意图;
图4为本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一提供的一种应用软件安装包的集成方法的流程图。本实施例提供的应用软件安装包的集成方法可以由应用软件安装包的集成装置执行,该集成装置可以通过软件和/或硬件的形式实现,并集成在设备中,其中该设备可选是为宿主软件集成第三方功能的服务器。具体的,参考图1,本实施例提供的应用软件安装包的集成方法具体包括:
S110、获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK。
在本实施例中,宿主软件为可以安装在安卓***的应用软件,该应用软件在运行时,需要使用第三方功能。待集成第三方功能的宿主软件是指该宿主软件的程序包中并不包含第三方功能的APK或者第三方功能的程序包,即在使用过程中并不具备使用第三方功能的能力。其中,第三方功能并未特指某一种功能,其可以理解为可在宿主软件中使用的全部第三方功能的统称,例如,第三方功能包括但不限定于支付功能、登录功能、推送功能以及共享功能等。
进一步的,第一APK和第二APK具有相同的API使用规则。可选的,API使用规则是由服务器设定的,调用第三方应用程序的API的使用规则。一般而言,使用规则可以在配置文件中记载,该配置文件用于后续对第一APK和第二APK进行合成时,确定中间API的调用规则。当第一APK和第二APK具有相同的API使用规则时,宿主软件和第三方功能可以通过与该API使用规则对应的API进行交互,其具体为,宿主软件可以通过API调用第三方功能软件开发工具包(Software Development Kit,SDK),以实现在宿主软件中实现该第三方功能。
具体的,宿主软件和第三方功能进行交互的API可以默认为是各类API接口的集成,如登录API、支付API、推送API以及共享API的集成。对应的API使用规则的具体内容可以根据实际情况进行设定。例如,设定关于登陆的第三方功能均可以通过主入口类为登录的API进行调用,其中,该主入口类名为登陆API。关于支付的第三方功能均可以通过主入口类为支付的API进行调用,其中,该主入口类名为支付API。进一步的,针对登录API进行设定时,其具体为:登录、异步登录、延时登录、获取登录后用户信息以及登录是否成功回调等第三方登录功能均可以通过该登录API进行调用,且各类登录功能设定不同的功能码,以在通过登录API进行登录功能调用时,通过功能码对不同登录功能进行区分。针对支付API进行设定,其具体为:微信支付、支付宝支付、京东支付以及银行卡支付等第三方支付功能均可以通过该支付API进行调用,且各类支付功能设定不同的身份标识,以在通过支付API进行支付功能调用时,通过身份标识对不同支付功能进行区分。
当第一APK和第二APK具有相同的API使用规则时,通常可以理解为第一APK和第二APK中的一个集成了与API使用规则对应的API的Java代码可执行文件(jar包),另一个集成了该API的引用规则,以保证对应的宿主软件可以通过API对第三方功能进行调用。例如,在第一APK中集成API jar包,此时,第一APK中包括宿主软件程序包以及API jar包。在第二APK中集成API引用规则,此时,第二APK中包括第三方功能程序包以及API引用规则。其中,引用规则优选为provide方式,即无需在第二APK中集成API jar包,仅是通过provide方式引用API。其中,需要说明的是,本实施例中第二APK并不是特指某一个具体第三方功能APK,而是泛指各类第三方功能APK的集合,即第二APK中包含的第三方功能APK的数量并不唯一。
S120、对第一APK和第二APK进行合并处理,生成包含API使用规则且集成第三方功能的宿主软件的第三APK。
示例性的,对第一APK进行反编译处理,得到第一反编译文件。对第二APK进行反编译处理,得到第二反编译文件。其中,对第一APK和第二APK反编译的处理方式相同,例如,均通过同一APK编译工具进行反编译。其中,APK反编译后,可以将APK文件反编译成相应格式的文件。即第一反编译文件和第二反编译文件的格式相同,例如均为smali文件。其中,第一反编译文件包括具有API jar包的宿主软件程序包,第二反编译文件包括具有API引用规则的第三方功能程序包。需要说明的是,由于第二APK中第三方功能APK的个数并不唯一,因此,得到的第二反编译文件的个数并不唯一。
具体的,对第一反编译文件和多个第二反编译文件进行合并处理。其中,合并处理的具体方式可选为:按照预设脚本文件合成第一反编译文件和多个第二反编译文件。预设脚本文件的具体内容可以根据实际情况进行设定。其中,预设脚本文件中优选包括:API的配置文件。该配置文件包括API主入口类、类名以及各类下可调用的第三方功能等内容,以使客户端在下载第三APK后,通过该配置文件实现API的插件化。其中,在合并处理时采用静态合并的方式,即不改变宿主软件本身APK以及第三方功能本身的APK,保证宿主软件的APK和第三方功能的APK完全解耦,仅是通过配置文件实现了API的插件化,进而通过API实现宿主软件对第三方功能的调用。
进一步的,对合并后的文件编译处理,以得到最终的第三APK。第三APK中包含宿主软件APK、第三方功能APK以及API的jar包。即该第三APK为包含该API引用规范且集成了第三方功能的宿主软件的APK。其中,利用APK编译工具对合并后的文件进行编译,得到第三APK。可选的,对第三APK执行签名、对齐优化操作,并将签名、对齐优化操作后的第三APK作为下发到客户端的APK。
本实施例提供的技术方案,通过获取待集成第三方功能的宿主软件的第一APK和第三方功能第二APK,其中,第一APK和第二APK具有相同的API使用规则,进一步的,对具有相同的API使用规则的第一APK和第二APK进行合并处理以得到具有该API使用规则的第三APK的技术手段,实现了在宿主软件的第三APK中集成第三方功能APK,且宿主软件和第三方功能可以通过与API使用规则对应的API接口进行交互,无需将第三方功能APK写入宿主软件程序包中,使得第三方功能和宿主软件可以独立区分,便于分别对宿主软件和第三方功能进行管理和资源开发。
实施例二
图2a为本发明实施例二提供的一种应用软件安装包的集成方法的流程图。本实施例在上述实施例的基础上进行具体化。具体的,在获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK之前,还可以包括:在构建的工程中导入选定的第三方功能程序包;基于预设的调用第三方功能程序包所需的API的引用规则,编译第三方功能程序包,以生成第二APK。
进一步的,在获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK之前,还可以包括:编译设置有调用第三方功能程序包所需的API的Java代码可执行文件的第四APK,以生成第一APK。
进一步的,对第一APK和第二APK进行合并处理,生成包含API使用规则且集成第三方功能的宿主软件的第三APK具体包括:反编译第一APK和第二APK,生成对应的第一反编译文件和第二反编译文件;静态合成第一反编译文件和第二反编译文件,并编译静态合成后的文件生成包含API使用规则且集成第三方功能的宿主软件的第三APK。
参考图2a,本实施例提供的一种应用软件安装包的集成方法具体包括:
S210、在构建的工程中导入选定的第三方功能程序包。
其中,第三方功能程序包是指包含第三方功能SDK的代码程序包,每个第三方功能均对应一个第三方功能程序包。
S220、基于预设的调用第三方功能程序包所需的API的引用规则,编译第三方功能程序包,以生成第二APK。
具体的,为每个第三方功能程序包设置API引用规则,其可以是将API jar包对应的代码写入当前工程的代码中,并设置第三方功能程序包被宿主软件通过API调用时,第三方功能程序包引用该API的引用规则,即将API引用规则写入第三方功能程序包中。其中,引用规则优选为provide方式。设置API引用规则的好处是,对第三方功能程序包进行编译时,无需对API jar包进行编译。尤其当第三方功能过多时,编译API jar包的过程需要大量的工作量,所以通过设置API引用规则,仅基于引用规则对每个第三方功能程序包进行编译,其可以减小程序处理时的工作量。
具体的,对第三方功能程序包进行编译时具体的编译方式、采用的编译工具可以根据实际情况进行设定。进一步的,基于引用规则对第三方功能程序包进行编译,以生成包含引用规则的第二APK,且该第二APK中并不包括API jar包。同时,由于可以通过引用规则实现API,因此使得第二APK具有API使用规则。
S230、编译设置有调用第三方功能程序包所需的API的Java代码可执行文件的第四APK,以生成第一APK。
其中,第四APK是指待集成第三方功能的且不具有API使用规则的宿主软件的APK。一般而言,第四APK可以由宿主软件开发方提供。
具体的,在第四APK中设置可以调用第三方功能程序包的API的jar包,其具体可以是:将jar包写入第四APK中的宿主软件程序包中。例如,对第四APK进行反编译,得到第四APK文件中的源文件,即宿主软件程序包,并将API jar包写入宿主软件程序包中。
进一步的,对第四APK进行编译时具体的编译方式、采用的编译工具可以根据实际情况进行设定。进一步的,基于jar包编译第四APK可以是对写入API jar包的宿主软件程序包进行编译,以生成包含API jar包的第一APK。由于可以通过API jar包实现API,因此使得第一APK具有了API使用规则,且该API使用规则与配置有API引用规则的第二APK的API使用规则相同。
需要说明的是,S210-S220主要是开发第二APK时的具体流程。S230主要是对宿主软件APK(第四APK)配置API的具体流程,上述两个流程在时序上可以完全独立进行。本实施例中执行顺序只是作为一种可选方式,而并非限定方式。示例性的,参考图2b,在开始为宿主软件集成第三方功能时,设置第二APK,其包含各类第三方功能(如登录、支付、广告等)APK,且设置通过provide方式引用API。同时,设置第一APK,将API jar包集成进宿主软件的程序包中。其中,第一APK和第二APK是同时设置的。进一步的,第一APK和第二APK在使用时,可以通过API进行交互。
S240、反编译第一APK和第二APK,生成对应的第一反编译文件和第二反编译文件。
具体的,反编译方式、采用的反编译工具可以根据实际情况进行设定。其中,第一APK对应的反编译文件记为第一反编译文件,其包括具有jar包的宿主软件程序包,第二APK对应的反编译文件记为第二反编译文件,其包括各具有引用规则的第三方功能程序包。需要说明的是,第二APK的数量并不唯一,因此得到的第二反编译文件的数量也并不唯一。
可选的,利用同一反编译工具对第一APK和第二APK进行反编译时,生成的第一反编译文件和第二反编译文件的格式相同。
S250、静态合成第一反编译文件和第二反编译文件,并编译静态合成后的文件生成包含API使用规则且集成第三方功能的宿主软件的第三APK。
具体的,按照预先设定的脚本对第一反编译文件和第二反编译文件执行静态合成,其中,预先设定的脚本中可选包括:合成规则以及配置文件。在配置文件中记载了API的使用规则,即主入口类、类名以及各类下可调用的第三方功能等。例如,调用支付功能时对应为支付类,类名为支付API。同时,记录各主入口类可以调用的第三方功能SDK以及各第三方功能SDK的身份标识。其中,设置身份标识是为了通过同一类API调用不同第三方功能SDK时,对不同第三方功能进行区别。其中,为每类第三方功能设定了主入口类,可以避免当第三方功能过多且为每个第三方功能均设置对应的API时所需的大量工作量。
示例性的,根据预先设定的脚本合并得到的文件中第三方功能程序包和宿主软件程序包是相互独立的,仅是在该文件中设定了宿主软件调用第三方功能时的API,以实现在宿主软件中集成第三方功能。
进一步的,将合并后的文件进行编译,以得到第三APK。其中,编译方式可以根据实际情况进行设定。
可选的,由于第二反编译文件的数量不唯一,因此第一反编译文件和第二反编译文件的合并操作的次数并不是唯一的。参考图2b,具体的,第一反编译文件和一个第二反编译文件进行合并后,继续与第二个第二反编译文件进行合并,直到与全部第二反编译文件进行合并后,对合并得到的文件进行编译得到第三APK。其中,脚本中包含第一反编译文件和全部第二反编译文件的合并规则。
本实施例提供的技术方案,通过在第三方功能的第二APK中设置了API的引用规则,在待集成第三方功能的宿主软件的第一APK中设置了API的jar包,并将第一APK和第二APK进行合并处理得到第三APK。其中,第三APK中宿主软件程序包和第三方功能程序包是相互独立的,仅通过一个API实现了集成。这样做的好处是可以将宿主软件和第三方功能分离开来,不仅能从维护上实现完全解耦,同时在程序开发层面也可以实现分别对宿主软件和第三方功能的开发,节省了人力资源以及开发资源。同时得到第三APK时,仅需要通过预先设定的脚本文件对第一APK和第二APK进行合成,而不改变宿主软件程序包和第三方功能程序包,也可以避免加载各类第三方功能程序包时引起的加载问题。
实施例三
图3为本发明实施例三提供的一种应用软件安装包的集成装置的结构示意图。参考图3,本实施例提供的集成装置具体包括:获取模块301和合并模块302。
其中,获取模块301,用于获取待集成第三方功能的宿主软件的第一安卓安装包APK和第三方功能的第二APK,第一APK和第二APK具有相同的应用程序编程接口API使用规则;合并模块302,用于对第一APK和第二APK进行合并处理,生成包含API使用规则且集成第三方功能的宿主软件的第三APK。
本实施例提供的技术方案,通过获取待集成第三方功能的宿主软件的第一APK和第三方功能第二APK,其中,第一APK和第二APK具有相同的API使用规则,进一步的,对具有相同的API使用规则的第一APK和第二APK进行合并处理以得到具有该API使用规则的第三APK的技术手段,实现了在宿主软件的第三APK中集成第三方功能APK,且宿主软件和第三方功能可以通过与API使用规则对应的API进行交互,无需将第三方功能APK写入宿主软件程序包中,使得第三方功能和宿主软件可以独立区分,便于分别对宿主软件和第三方功能进行管理和资源开发。
在上述实施例的基础上,还包括:导入模块,用于在获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK之前,在构建的工程中导入选定的第三方功能程序包;第一生成模块,用于基于预设的调用所述第三方功能程序包所需的API的引用规则,编译第三方功能程序包,以生成第二APK。
在上述实施例的基础上,还包括:第二生成模块,用于在获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK之前,编译设置有调用第三方功能程序包所需的API的Java代码可执行文件的第四APK,以生成第一APK。
在上述实施例的基础上,所述合并模块302包括:反编译单元,用于反编译第一APK和第二APK,生成对应的第一反编译文件和第二反编译文件;文件合并单元,用于静态合成第一反编译文件和第二反编译文件,并编译静态合成后的文件生成包含API使用规则且集成第三方功能的宿主软件的第三APK。
本发明实施例提供的应用软件安装包的集成装置可以用于执行上述任意实施例提供的应用软件安装包的集成方法,具备相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种设备的结构示意图。如图4所示,该设备包括处理器40、存储器41、输入装置42和输出装置43;设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的应用软件安装包的集成方法对应的程序指令/模块(例如,获取模块301和合并模块302)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的应用软件安装包的集成方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
本发明实施例提供的设备可以执行上述任意实施例提供的应用软件安装包的集成方法,具备相应的功能和有益效果。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种应用软件安装包的集成方法,该应用软件安装包的集成方法包括:
获取待集成第三方功能的宿主软件的第一安卓安装包APK和第三方功能的第二APK,第一APK和第二APK具有相同的应用程序编程接口API使用规则;
对第一APK和第二APK进行合并处理,生成包含API使用规则且集成第三方功能的宿主软件的第三APK。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用软件安装包的集成方法操作,还可以执行本发明任意实施例所提供的应用软件安装包的集成方法中的相关操作,具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的应用软件安装包的集成方法。
值得注意的是,上述应用软件安装包的集成装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种应用软件安装包的集成方法,其特征在于,包括:
获取待集成第三方功能的宿主软件的第一安卓安装包APK和第三方功能的第二APK,所述第一APK和所述第二APK具有相同的应用程序编程接口API使用规则;
对所述第一APK和所述第二APK进行合并处理,生成包含所述API使用规则且集成第三方功能的宿主软件的第三APK,所述第三APK中宿主软件的程序包和第三方功能的程序包相互独立。
2.根据权利要求1所述的集成方法,其特征在于,所述获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK的步骤之前,还包括:
在构建的工程中导入选定的第三方功能程序包;
基于预设的调用所述第三方功能程序包所需的API的引用规则,编译所述第三方功能程序包,以生成第二APK。
3.根据权利要求1所述的集成方法,其特征在于,所述获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK的步骤之前,还包括:
编译设置有调用第三方功能程序包所需的API的Java代码可执行文件的第四APK,以生成第一APK。
4.根据权利要求1所述的集成方法,其特征在于,所述对所述第一APK和所述第二APK进行合并处理,生成包含所述API使用规则且集成第三方功能的宿主软件的第三APK的步骤包括:
反编译所述第一APK和所述第二APK,生成对应的第一反编译文件和第二反编译文件;
静态合成所述第一反编译文件和所述第二反编译文件,并编译静态合成后的文件生成包含所述API使用规则且集成第三方功能的宿主软件的第三APK。
5.一种应用软件安装包的集成装置,其特征在于,包括:
获取模块,用于获取待集成第三方功能的宿主软件的第一安卓安装包APK和第三方功能的第二APK,所述第一APK和所述第二APK具有相同的应用程序编程接口API使用规则;
合并模块,用于对所述第一APK和所述第二APK进行合并处理,生成包含所述API使用规则且集成第三方功能的宿主软件的第三APK,所述第三APK中宿主软件的程序包和第三方功能的程序包相互独立。
6.根据权利要求5所述的集成装置,其特征在于,还包括:
导入模块,用于在获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK之前,在构建的工程中导入选定的第三方功能程序包;
第一生成模块,用于基于预设的调用所述第三方功能程序包所需的API的引用规则,编译所述第三方功能程序包,以生成第二APK。
7.根据权利要求5所述的集成装置,其特征在于,还包括:
第二生成模块,用于在获取待集成第三方功能的宿主软件的第一APK和第三方功能的第二APK之前,编译设置有调用第三方功能程序包所需的API的Java代码可执行文件的第四APK,以生成第一APK。
8.根据权利要求5所述的集成装置,其特征在于,所述合并模块包括:
反编译单元,用于反编译所述第一APK和所述第二APK,生成对应的第一反编译文件和第二反编译文件;
文件合并单元,用于静态合成所述第一反编译文件和所述第二反编译文件,并编译静态合成后的文件生成包含所述API使用规则且集成第三方功能的宿主软件的第三APK。
9.一种应用软件安装包的集成设备,其特征在于,所述应用软件安装包的集成设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的应用软件安装包的集成方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的应用软件安装包的集成方法。
CN201710647600.0A 2017-08-01 2017-08-01 应用软件安装包的集成方法、装置、设备及存储介质 Active CN107402792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710647600.0A CN107402792B (zh) 2017-08-01 2017-08-01 应用软件安装包的集成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710647600.0A CN107402792B (zh) 2017-08-01 2017-08-01 应用软件安装包的集成方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN107402792A CN107402792A (zh) 2017-11-28
CN107402792B true CN107402792B (zh) 2020-08-28

Family

ID=60401810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710647600.0A Active CN107402792B (zh) 2017-08-01 2017-08-01 应用软件安装包的集成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN107402792B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844301A (zh) * 2017-12-12 2018-03-27 苏州蜗牛数字科技股份有限公司 一种安卓应用渠道合包方法及装置
CN112711445B (zh) * 2019-10-26 2023-12-12 广州星际悦动股份有限公司 一种应用程序的管理方法及***
CN110908734A (zh) * 2019-11-15 2020-03-24 网易(杭州)网络有限公司 基于插件化的应用组合方法、装置、终端设备及存储介质
CN111290801A (zh) * 2020-02-13 2020-06-16 北京字节跳动网络技术有限公司 数据处理方法、装置、计算机设备和存储介质
US11972244B2 (en) 2020-11-13 2024-04-30 Iron Gaming Limited Method and apparatus for improving a mobile application

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140114769A (ko) * 2013-03-15 2014-09-29 주식회사 에스이웍스 안드로이드에서의 dex파일 바이너리 난독화 방법
CN104090772A (zh) * 2014-07-23 2014-10-08 广州金山网络科技有限公司 一种生成安卓安装包apk的方法及装置
CN104216741A (zh) * 2014-08-25 2014-12-17 华中科技大学 基于APK动态加载的Android插件化实现方法、装置及交互方法
CN104484585A (zh) * 2014-11-26 2015-04-01 北京奇虎科技有限公司 一种应用程序安装包的处理方法、装置及移动设备
CN104572089A (zh) * 2014-12-26 2015-04-29 北京京东尚科信息技术有限公司 生成安卓安装包的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140114769A (ko) * 2013-03-15 2014-09-29 주식회사 에스이웍스 안드로이드에서의 dex파일 바이너리 난독화 방법
CN104090772A (zh) * 2014-07-23 2014-10-08 广州金山网络科技有限公司 一种生成安卓安装包apk的方法及装置
CN104216741A (zh) * 2014-08-25 2014-12-17 华中科技大学 基于APK动态加载的Android插件化实现方法、装置及交互方法
CN104484585A (zh) * 2014-11-26 2015-04-01 北京奇虎科技有限公司 一种应用程序安装包的处理方法、装置及移动设备
CN104572089A (zh) * 2014-12-26 2015-04-29 北京京东尚科信息技术有限公司 生成安卓安装包的方法和装置

Also Published As

Publication number Publication date
CN107402792A (zh) 2017-11-28

Similar Documents

Publication Publication Date Title
CN107402792B (zh) 应用软件安装包的集成方法、装置、设备及存储介质
CN109918055B (zh) 一种应用程序的生成方法及设备
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
CN110688232B (zh) 应用程序调用方法、终端设备及计算机可读存储介质
US20180081911A1 (en) Deployment of applications conforming to application data sharing and decision service platform schema
CN113079200A (zh) 一种数据处理的方法、装置及***
CN110580154A (zh) 基于h5接入方式的接入方法及其接入组件和移动终端
CN106055375B (zh) 应用程序安装方法及装置
CN108170430B (zh) 一种界面展示的方法及***
CN103970563A (zh) 动态加载安卓类的方法
CN113157345A (zh) 前端工程自动启动方法及装置
CN110727469B (zh) 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质
CN111459685A (zh) 页面端与原生端的通信方法、装置、设备及可读介质
CN111179061A (zh) 一种资源转移的处理方法、装置及设备
CN111144878B (zh) 指令生成方法与指令生成装置
CN112395098A (zh) 应用程序接口调用方法、装置、存储介质和电子设备
CN110968358A (zh) 一种基于浏览器插件加载脚本模块的方法及装置
CN110018831B (zh) 程序处理方法、装置及计算机可读存储介质
WO2020044093A1 (zh) 应用程序编程接口的调用方法及其装置
CN111045746A (zh) 代码扩展方法和框架
CN113448585B (zh) 一种线程池的编译方法、装置、电子设备和存储介质
CN113721929A (zh) 一种自动化植入公用代码到Android App的方法
CN111796865B (zh) 一种字节码文件修改方法、装置、终端设备及介质
CN114816361A (zh) 拼搭工程生成方法、装置、设备、介质和程序产品
CN111274551A (zh) 基于编译器的java代码保护方法、装置及电子设备

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