CN105138327A - 一种跨平台web应用的打包方法 - Google Patents

一种跨平台web应用的打包方法 Download PDF

Info

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
Application number
CN201510514039.XA
Other languages
English (en)
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.)
Hisense Mobile Communications Technology Co Ltd
Original Assignee
Hisense Mobile Communications Technology 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 Hisense Mobile Communications Technology Co Ltd filed Critical Hisense Mobile Communications Technology Co Ltd
Priority to CN201510514039.XA priority Critical patent/CN105138327A/zh
Publication of CN105138327A publication Critical patent/CN105138327A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种跨平台web应用的打包方法,涉及计算机应用软件技术领域。该方法将具有相同web平台的多个web应用中的运行平台核心库文件打包成一个共享APP,其他的内容分别打包成各自的独立APP,各web应用在启动独立APP时调用共享APP中的平台库文件实现web应用的正常运行。该方法一方面在存在多个web应用的情况下相比传统的打包方法可以减小应用所占的存储空间,应用个数越多优势越明显;另一方面在web应用版本升级时,如果web应用的特有库文件内容未发生变化,只需对共享APP进行升级,具有更好的移植性。

Description

一种跨平台web应用的打包方法
技术领域
本发明涉及计算机应用软件技术领域,特别涉及一种跨平台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等操作系统。
CN201510514039.XA 2015-08-21 2015-08-21 一种跨平台web应用的打包方法 Pending CN105138327A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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应用的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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