CN105138327A - 一种跨平台web应用的打包方法 - Google Patents
一种跨平台web应用的打包方法 Download PDFInfo
- Publication number
- CN105138327A CN105138327A CN201510514039.XA CN201510514039A CN105138327A CN 105138327 A CN105138327 A CN 105138327A CN 201510514039 A CN201510514039 A CN 201510514039A CN 105138327 A CN105138327 A CN 105138327A
- Authority
- CN
- China
- Prior art keywords
- web
- platform
- sharing
- library file
- application
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种跨平台web应用的打包方法,涉及计算机应用软件技术领域。该方法将具有相同web平台的多个web应用中的运行平台核心库文件打包成一个共享APP,其他的内容分别打包成各自的独立APP,各web应用在启动独立APP时调用共享APP中的平台库文件实现web应用的正常运行。该方法一方面在存在多个web应用的情况下相比传统的打包方法可以减小应用所占的存储空间,应用个数越多优势越明显;另一方面在web应用版本升级时,如果web应用的特有库文件内容未发生变化,只需对共享APP进行升级,具有更好的移植性。
Description
技术领域
本发明涉及计算机应用软件技术领域,特别涉及一种跨平台web应用的打包方法。
背景技术
随着智能终端设备的普及以及通讯技术的迅猛发展,web应用相比传统的C/S(客户端/服务器)模式的应用程序优越性愈加明显。越来越多的web应用在具备访问本设备的能力的同时,被跨平台应用到其他平台(如Android、Blackberry、Windows、Firefox等)环境中。
发明人在实现本发明的过程中发现:
现有的跨平台web应用打包采用单独对每个web应用进行打包的方式,需要将web应用所有的库文件打包到APP中,当设备安装的web应用比较多时,会占用比较多的存储空间;另外在传统的打包方式下当同一平台下的多个web应用因运行平台发生变化进行版本升级时,需要对所有的web应用重新进行打包,一方面增加了程序开发人员的工作量,另一方面web应用的可移植性比较差。
发明内容
本发明提供了一种跨平台web应用打包的方法,以节省终端设备web-APP所占的存储空间,增强web应用版本变化时的可移植性。
为达到上述目的,本发明提供的一种跨平台web应用打包的方法可以通过以下技术方案为:
一种跨平台web应用打包的方法,该方法包括将web应用公用的运行平台核心库文件单独打包成一个共享APP,并且将各web应用的非公用部分分别打包成独立APP;独立APP运行时通过调用共享APP与其运行平台的核心库文件进行交互实现web应用的功能。
具体的,将web应用公用的运行平台核心库文件单独打包成一个共享APP包括:
a、在web应用运行平台中创建一个空工程;
b、从web平台提供的库文件工程包中获取web平台的核心库文件,导入上述空工程;
c、在上述工程中添加提供共享APP安装信息的功能以及供独立APP调用共享APP的接口功能;
d、对执行完上述操作的工程进行编译、打包,生成一个共享APP。
具体的,将各web应用的非公用部分分别打包成独立APP包括:
a、在web应用运行平台中创建一个空工程,将待打包的web应用程序包导入所述空工程获得生成独立APP的应用工程;
b、生成与web平台交互相关的库文件;
具体的,从web平台提供的库文件工程包中获取与web平台交互相关的库包;对所述库包进行封装生成与web平台交互相关的工程包;对该工程包进行编译生成与web平台交互相关的库文件。
c、将与web平台交互相关的库文件链接到所述生成独立APP的应用工程;
d、在生成独立APP的应用工程的主程序中添加独立APP启动初始化时查询终端设备是否安装共享APP的功能,同时将应用工程配置文件中的应用配置修改为可调用共享APP的配置文件;
e、对执行完上述操作后的应用工程进行编译、打包,生成web应用的独立APP。
具体的,独立APP运行时通过调用共享APP与其运行平台的核心库文件进行交互实现web应用的功能通过以下方式实现:
当独立APP运行时,首先通过内置的查询终端设备是否安装共享APP的功能判断终端设备上是否安装共享APP,若是则通过接口调用共享APP中的核心库文件实现web运行平台的访问;若否则启动失败,提示用户进行共享APP的安装。
上述技术方案有如下技术效果:
通过将多个待打包web应用中相同的web平台核心库文件单独打包成一个共享APP,剩余的web应用特有库文件(包括web应用库文件以及与web平台交互相关的库文件)分别打包成各自的独立APP,相比web应用传统的打包方式减小了占用的存储空间,当web应用个数越多时该优势越明显。采用该打包方式终端设备在使用时通过独立APP调用共享APP的形式实现web应用的功能,不影响web应用的正常使用。
此外在不改变web应用内容的平台升级以及跨平台使用时,可以只对共享APP重新进行打包,延用web应用的独立APP,提高了web应用的可移植性。
附图说明
图1为一种跨平台web应用打包方法的流程图
图2为实施例中三个待打包的web应用;
图3为实施例中三个待打包的web应用的库文件组成;
图4为实施例中打包完的三个web应用;
图5为共享APP的生成示意图;
图6为独立APP的生成示意图;
图7为打包后的APP使用示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步的详细描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部实施例。基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下获取的其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种跨平台web应用的打包方法,包括:
S10:将web应用公用的运行平台核心库文件单独打包成一个共享APP,并且将各web应用的非公用部分分别打包成独立APP;
S20:独立APP运行时通过接口调用共享APP的核心库文件,实现对运行平台的访问。
下面结合图2-图4对本发明实施例中独立APP和共享APP的打包做进一步的解释。假设待打包的web应用包括a应用、b应用、c应用三个不同的应用,其中a应用中的a1、a2文件为a应用特有的库文件,b应用中的b1、b2文件为b应用特有的库文件,c应用中的c1、c2文件为c应用特有的库文件,所述特有的库文件包括web应用本身库文件以及与web平台交互相关的库文件;d、e、f文件为web平台的核心库文件。对所述三个web应用进行打包包括:
将a应用的所有特有库文件a1和a2打包生成a的独立APP,将b应用的所有特有库文件b1和b2打包生成b的独立APP,将c应用的所有特有库文件c1和c2打包生成c的独立APP,将三者共有的d、e、f库文件打包生成共享APP,标记为应用s。所述s优先选择以隐藏的形式安装在终端设备中。
本发明实施例提供的一种跨平台web应用的打包方法,其中生成web应用的一个共享APP的过程,如图5所示,包括:
S100:在web应用运行平台中创建一个空工程;
S101:从web平台提供的库文件工程包中获取web平台的核心库文件,导入上述空工程;
S102:添加共享APP安装信息功能;
S103:添加调用接口功能;
S104:对执行完操作的库文件进行编译、打包,生成共享APP。
在本实施例中,所述共享APP安装信息功能用于在独立APP安装后提供共享APP已经安装的信息,供独立APP启动时查询,所述信息包括安装的web平台核心库文件的版本、大小等。
在本实施例中,所述调用接口功能用于独立APP调用共享APP中的核心库文件,实现独立APP在web平台下的正常运行。
本发明实施例提供的一种跨平台web应用的打包方法,其中生成每个web应用的独立APP的过程,如图6所示,包括:
S110:创建生成独立APP的应用工程;
S111:生成与web平台交互相关的库文件,链接到上述应用工程中;
S112:在上述应用工程的主程序中添加独立APP启动初始化时查询终端设备是否安装共享APP的功能;
S113:将上述应用工程配置文件中的应用配置修改为可调用共享APP的配置文件;
S114:对修改后的上述应用工程进行编译,生成web应用的独立APP。
在本实施例中,所述创建生成独立APP的应用工程通过以下方式实现:
在web应用运行平台上建立一个空工程,将待打包的web应用程序包导入所述空工程获得生成独立APP的应用工程。
在本实施例中,所述生成与web平台交互相关的库文件可以通过以下方式获得:从web平台提供的库文件工程包获取与web平台交互相关的库包;对上述所有库包进行封装生成与web平台交互相关的工程包;最后对该工程包进行编译生成与web平台交互相关的库文件。
本发明实施例提供的一种跨平台web应用的打包方法,如图7所示,其中独立APP和共享APP安装在终端设备上,以以下方式实现web应用的功能:
独立APP启动时判断终端设备上是否安装了共享APP,若是则通过接口调用共享APP中的核心库文件实现对web运行平台的访问;若否则启动失败,提示用户安装共享APP。
需要注意的是,本发明实施例中的web应用可以为一个或者多个,但都应用于同一平台;此外,本发明实施例中的web应用运行平台可以为windows、Linux、ios、Android等操作系统。
为进一步理解本发明的实施例,下面以Android系统为例对实施例中的独立APP和共享APP的生成过程进行说明:
一种在Android平台下的共享APP的生成过程,包括:
a、从Android平台提供的库文件包中获取Android平台的核心库文件;
b、在Android平台上创建一个空工程,导入上述核心库文件;
c、在该工程中添加insetallReady()方法,当独立APP在设备上安装的时候,该方法会主动提供共享APP已经安装的信息,包括所安装的核心库文件的版本,大小等信息;
d、在该工程中添加调用接口useFun(),该接口主要用于独立APP调用共享APP的核心库文件;
e、对执行完上述操作的工程进行编译、打包,生成共享APP。
一种在Android平台下的独立APP的生成过程,包括:
a、生成xShare_library.jar库文件;
所述库文件用于与Android平台进行交互,具体的生成过程为:
创建xShare_library工程包,对该工程包进行编译生成xShare_library.jar库文件。其中所述xShare_library工程包通过将Android平台提供的与平台交互相关的所有库包进行打包得到,具体的包括org.chromium.ui.resources,org.chromium.net,org.chromium.media,org.chromium.device.battery等。
b、将上述获取的xShare_library.jar库文件链接到创建的应用工程中;
所述创建的应用工程中包含web应用的程序包。
c、在所述应用工程的主程序中添加新的方法onXShareReady(),所述方法用于在独立APP启动进行初始化时,查询是否已经安装了共享APP;
其中,在添加所述onXShareReady()方法之前需继承XShareActivity,该类用于在独立APP启动时调用函数onXShareReady()判断终端设备是否安装了共享APP。
d、将应用程序配置文件中的原配置文件Application替换为XShareApplication,所述新的配置文件用于调用共享APP;
e、将执行完上述操作的应用工程进行编译、打包生成独立APP。
将打包好的独立APP和共享APP在终端设备中安装后,其中共享APP以隐藏形式的呈现,运行某web应用对应的独立APP时,独立APP首先会判断终端设备上是否安装了共享APP,若是则通过接口onXShareReady()调用共享APP中的核心库文件实现web运行平台的访问;若否则启动失败,提示用户进行共享APP的安装。具体的实现步骤包括:
a、独立APP启动时XShareActivity类调用函数onXShareReady()判断是否安装了共享独立APP;
b、若是,则通过useFun()接口调用共享APP,与共享APP中的平台核心库文件进行交互,实现正常运行web应用并执行各项操作功能。
c、若否,提示需要安装共享APP。
可以理解的是,本发明实施例描述的web应用打包后的APP包括但不限于ios系统格式的ipa、pxl、deb,Android系统格式的apd,诺基亚S60系统格式的sis、sisx、jar,黑莓平台的zip等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换方案,都涵盖在本发明的保护范围内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种跨平台web应用的打包方法,其特征在于,所述方法包括:
将web应用公用的运行平台核心库文件单独打包成一个共享APP,并且将各web应用的非公用部分分别打包成独立APP;
所述独立APP运行时能够通过接口调用共享APP中的核心库文件,实现对运行平台的访问。
2.根据权利要求1所述方法,其特征在于,所述将web应用公用的运行平台核心库文件单独打包成一个共享APP具体包括:
创建生成共享APP的应用工程;
在所述工程的主程序中添加提供共享APP安装信息的功能;
在所述工程中添加供独立APP调用共享APP的接口功能;
对执行完上述操作的工程进行编译、打包,生成一个共享APP。
3.根据权利要求1或2所述方法,其特征在于,所述创建生成共享APP的应用工程包括:
在web应用运行平台上建立一个空工程;
从web平台提供的库文件工程包中获取web平台核心库文件;
将所述web平台核心库文件添加到上述空工程,获得生成共享APP的应用工程。
4.根据权利要求1所述方法,其特征在于,所述将各web应用的非公用部分分别打包成独立APP具体包括:
创建生成独立APP的应用工程;
生成与web平台交互相关的库文件;
将所述库文件链接到上述应用工程中;
在上述应用工程的主程序中添加独立APP启动初始化时查询终端设备是否安装共享APP的功能;
将上述应用工程配置文件中的应用配置修改为可调用共享APP的配置文件;
对执行完上述操作的应用工程进行编译,生成web应用的独立APP。
5.根据权利要求1或4所述方法,其特征在于,所述创建生成独立APP的应用工程包括:
在web应用运行平台上建立一个空工程;
将web应用的程序包导入所述空工程。
6.根据权利要求1或4所述方法,其特征在于,所述生成与web平台交互相关的库文件,具体的步骤为:
从web平台提供的库文件工程包中获取与web平台交互相关的库包;
对所述库包进行封装生成与web平台交互相关的工程包;
对所述工程包进行编译生成与web平台交互相关的库文件。
7.根据权利要求1所述方法,其特征在于,所述独立APP中包含web应用特有的库文件,具体为web应用库文件和与web平台交互相关的库文件。
8.根据权利要求1所述方法,其特征在于,所述共享APP中包含web平台核心库文件;
所述共享APP在终端设备中安装时优先选择以隐藏的方式呈现。
9.根据权利要求1所述方法,其特征在于,所述web应用可以为一个或者多个,并且运行于同一web平台。
10.根据权利要求1所述方法,其特征在于,所述web应用运行平台可以为windows、Linux、ios、Android等操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510514039.XA CN105138327A (zh) | 2015-08-21 | 2015-08-21 | 一种跨平台web应用的打包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510514039.XA CN105138327A (zh) | 2015-08-21 | 2015-08-21 | 一种跨平台web应用的打包方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105138327A true CN105138327A (zh) | 2015-12-09 |
Family
ID=54723685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510514039.XA Pending CN105138327A (zh) | 2015-08-21 | 2015-08-21 | 一种跨平台web应用的打包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138327A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614705A (zh) * | 2017-02-07 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 一种数据编译处理方法及终端 |
CN109558121A (zh) * | 2018-11-26 | 2019-04-02 | 上海达梦数据库有限公司 | 接口驱动程序的开发方法、装置、设备及存储介质 |
CN111736824A (zh) * | 2020-02-13 | 2020-10-02 | 北京京东尚科信息技术有限公司 | 应用程序的数据处理方法及装置、电子设备、存储介质 |
CN115309376A (zh) * | 2022-08-25 | 2022-11-08 | 北京泰迪熊移动科技有限公司 | 一种应用创建方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828527A (zh) * | 2005-02-28 | 2006-09-06 | 微软公司 | 用于跨不同应用程序框架的数据服务的平台 |
CN102289374A (zh) * | 2011-08-31 | 2011-12-21 | 中兴通讯股份有限公司 | 一种构建跨平台软件运行环境的方法及装置 |
CN104603752A (zh) * | 2012-09-05 | 2015-05-06 | 微软公司 | 跨平台共享应用代码 |
CN104714812A (zh) * | 2013-12-13 | 2015-06-17 | 中国电信股份有限公司 | 在云环境中快速部署和加载Java应用的方法和系统 |
-
2015
- 2015-08-21 CN CN201510514039.XA patent/CN105138327A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828527A (zh) * | 2005-02-28 | 2006-09-06 | 微软公司 | 用于跨不同应用程序框架的数据服务的平台 |
CN102289374A (zh) * | 2011-08-31 | 2011-12-21 | 中兴通讯股份有限公司 | 一种构建跨平台软件运行环境的方法及装置 |
CN104603752A (zh) * | 2012-09-05 | 2015-05-06 | 微软公司 | 跨平台共享应用代码 |
CN104714812A (zh) * | 2013-12-13 | 2015-06-17 | 中国电信股份有限公司 | 在云环境中快速部署和加载Java应用的方法和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614705A (zh) * | 2017-02-07 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 一种数据编译处理方法及终端 |
CN108614705B (zh) * | 2017-02-07 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 一种数据编译处理方法及终端 |
CN109558121A (zh) * | 2018-11-26 | 2019-04-02 | 上海达梦数据库有限公司 | 接口驱动程序的开发方法、装置、设备及存储介质 |
CN111736824A (zh) * | 2020-02-13 | 2020-10-02 | 北京京东尚科信息技术有限公司 | 应用程序的数据处理方法及装置、电子设备、存储介质 |
CN115309376A (zh) * | 2022-08-25 | 2022-11-08 | 北京泰迪熊移动科技有限公司 | 一种应用创建方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8898662B2 (en) | Method and device for generating software installation packet | |
CN107766050B (zh) | 一种异构应用的部署方法以及装置 | |
CN103379481B (zh) | 一种实现安全防护的方法 | |
CN105138327A (zh) | 一种跨平台web应用的打包方法 | |
CN103491111A (zh) | 无线应用发布、实现方法与装置 | |
CN101957766B (zh) | 一种字节码织入方法、装置及系统 | |
CN104156225B (zh) | 一种安装包的下载方法、系统及服务器 | |
CN103488466B (zh) | 用于执行应用程序的方法和装置 | |
US20120023496A1 (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
CN105404524A (zh) | Java应用中的类加载隔离方法及装置 | |
CN106648724B (zh) | 应用程序的热修复方法及终端 | |
CN103246525A (zh) | 一种实现应用运行的方法及客户端 | |
US20140033208A1 (en) | Method and device for loading application program | |
CN103365668B (zh) | 一种动态链接库装载和链接的方法、装置 | |
CN108647032B (zh) | 应用加载方法及装置、计算机装置和计算机可读存储介质 | |
CN103838572A (zh) | 一种安卓开发包的打包系统和方法 | |
CN103713902A (zh) | 一种基于Android系统的BOA编译方法和系统 | |
CN110659031A (zh) | 应用程序的编译方法、装置、电子设备及存储介质 | |
CN104090946A (zh) | 应用安装包中添加信息的方法及装置 | |
WO2012034421A1 (zh) | 一种编译webkit浏览器的方法及装置 | |
CN104636122A (zh) | 一种能力组件的共享方法和设备 | |
CN102999371B (zh) | 基于Lua脚本的人机界面开发方法及系统 | |
CN105335206A (zh) | 一种自定义系统控件的扩展方法及系统 | |
CN103885784A (zh) | 具有安全模块可插拔功能的Android平台构建方法 | |
CN107357529B (zh) | 一种存储集群在线升级方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151209 |