CN109144533B - 一种应用程序的更新及加载的方法、系统及计算机装置 - Google Patents
一种应用程序的更新及加载的方法、系统及计算机装置 Download PDFInfo
- Publication number
- CN109144533B CN109144533B CN201710509998.1A CN201710509998A CN109144533B CN 109144533 B CN109144533 B CN 109144533B CN 201710509998 A CN201710509998 A CN 201710509998A CN 109144533 B CN109144533 B CN 109144533B
- Authority
- CN
- China
- Prior art keywords
- resource
- installation package
- plug
- service plug
- updating
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出了一种应用程序的更新及加载的方法、系统及计算机装置,涉及应用程序技术领域,应用程序的更新及加载的方法包括:将应用程序划分为外壳及业务插件;通过资源安装包更新业务插件的资源;通过外壳的插件引擎对业务插件进行加载。本发明无需上新应用程序至各大应用市场,也无需用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。
Description
技术领域
本发明涉及应用程序技术领域,具体而言,涉及一种应用程序的更新及加载的方法、系统、计算机装置及计算机可读存储介质。
背景技术
在Android平台上,APP(Application,应用程序)的更新方式一直是一个痛点。当APP需要更新新版本时,需要将新版本上传到主流市场中,等待市场审核完成后才能向用户发布。另外,APP的更新速度也是很慢的,用户需要在市场中手动点击更新才能下载并使用新版本,这两个过程导致了APP更新周期长,一个新版本发布后,可能要经过1周至2周的时间后大部分用户才能使用新版本,这极大地阻碍了企业的业务发展。并且,随着APP的普及和发展,在移动端的运营活动越来越多,运营活动中常见的一个策略就是更改移动端的UI(User Interface,用户界面)资源,达到活动的目的,比如更改背景图片,按钮的颜色等等。由于APP的固有特性,发布新功能需要用户耗费流量下载新版本APP,流程链路较长,覆盖率提升缓慢。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的一个目的在于提出了一种应用程序的更新及加载的方法。
本发明的另一个目的在于提出了一种应用程序的更新及加载的系统。
本发明的再一个目的在于提出了一种计算机装置。
本发明的又一个目的在于提出了一种计算机可读存储介质。
有鉴于此,根据本发明的一个目的,提出了一种应用程序的更新及加载的方法,包括:将应用程序划分为外壳及业务插件;通过资源安装包更新业务插件的资源;通过外壳的插件引擎对业务插件进行加载。
本发明提供的应用程序的更新及加载的方法,将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。通过资源安装包更新业务插件的资源,然后外壳通过VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK(AndroidPackage,安卓安装包)即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
根据本发明的上述应用程序的更新及加载的方法,还可以具有以下技术特征:
在上述技术方案中,优选地,通过资源安装包更新业务插件的资源的步骤,具体包括:接收执行资源指令;根据执行资源指令,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,将执行资源的安装包ID修改为替换资源的安装包ID;在资源安装包中调用替换资源。
在该技术方案中,接收执行资源指令后,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源,当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,说明在资源安装包中存在与执行资源对应的替换资源,则将执行资源的安装包ID更改为替换资源的安装包ID,并在资源安装包中调用替换资源。由此实现跨安装包的资源更新,能够在不发新版的情况下可以更改应用程序的UI资源,并且应用程序中在使用活动资源时和内置资源相比,在分辨率和性能方面没有任何损失。
在上述任一技术方案中,优选地,执行资源及替换资源包括安装包ID、类型及资源编号。
在该技术方案中,主安装包会给每个UI资源分配一个安装包内唯一的ID,例如一张图片A的ID可能是0x7f0202ed,其中0x表示十六进制,7f表示安装包ID,所有的应用程序默认的安装包ID都是7f。紧接着的02,表示资源类型,例如可能有图片,颜色,动画等,每种类型都有不同的值。后面4位,表示资源编号,构建主安装包时编译系统会增序分配。
在上述任一技术方案中,优选地,还包括:构建资源安装包,修改资源安装包中资源的安装包ID;将资源安装包发送至服务器。
在该技术方案中,构建资源安装包,不同主安装包中的安装包ID互不影响,所以安装包ID有可能重复。例如,demo1.apk中的图片A和demo2.apk中的图片B 可能拥有相同的安装包ID。所以跨安装包调用资源,必须保证两个安装包的安装包ID不重复,由此本发明把资源安装包中资源的安装包ID修改为非7f的值,避免和主安装包中资源有相同的安装包ID,引起混乱,同时保证执行资源和对应的替换资源拥有相同的类型和资源编号,保证正确的映射,最后将资源安装包部署到服务器。
在上述任一技术方案中,优选地,还包括:检测资源安装包是否有更新;当资源安装包有更新时,将更新后的资源安装包下载至终端。
在该技术方案中,主安装包中的下载模块在检测到有新的资源安装包时,下载至终端,方便用户使用。
在上述任一技术方案中,优选地,通过外壳的插件引擎对业务插件进行加载的步骤,具体包括:通过外壳的插件引擎,拦截启动业务插件的相关方法;将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中;在代理业务插件中,解析原指向业务插件的统一资源标识符;创建业务插件;接收外界请求,通过代理业务插件将外界请求转至业务插件;业务插件将对外界请求的响应结果反馈至代理业务插件;通过代理业务插件将对外界请求的响应结果进行发送。
在该技术方案中,通过外壳的插件引擎,拦截启动业务插件的相关方法,将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中,在代理业务插件中,解析原指向业务插件的统一资源标识符,创建业务插件,接收外界请求,通过代理业务插件将外界请求转至业务插件,业务插件将对外界请求的响应结果反馈至代理业务插件,通过代理业务插件将对外界请求的响应结果进行发送,及通过代理业务插件实现跨进程调用业务插件,确保支持所中业务插件运行,提高了业务的发展。
在上述任一技术方案中,优选地,还包括:通过用户界面线程调用业务插件的生命周期。
在该技术方案中,在创建业务插件时,在用户界面线程中调用业务插件的生命周期,实现业务插件的生命周期的管理。
根据本发明的另一个目的,提出了一种应用程序的更新及加载的系统,其特征在于,包括:划分单元,用于将应用程序划分为外壳及业务插件;更新单元,用于通过资源安装包更新业务插件的资源;加载单元,用于通过外壳的插件引擎对业务插件进行加载。
本发明提供的应用程序的更新及加载的系统,划分单元将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。更新单元通过资源安装包更新业务插件的资源,然后加载单元通过外壳的VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
根据本发明的上述应用程序的更新及加载的系统,还可以具有以下技术特征:
在上述技术方案中,优选地,更新单元,包括:第一接收单元,用于接收执行资源指令;查询单元,用于根据执行资源指令,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;更新单元,具体用于当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,将执行资源的安装包ID修改为替换资源的安装包ID;第一调用单元,用于在资源安装包中调用替换资源。
在该技术方案中,第一接收单元接收执行资源指令后,通过查询单元在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源,当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,说明在资源安装包中存在与执行资源对应的替换资源,则更新单元将执行资源的安装包ID更改为替换资源的安装包ID,并由第一调用单元在资源安装包中调用替换资源。由此实现跨安装包的资源更新,能够在不发新版的情况下可以更改应用程序的UI资源,并且应用程序中在使用活动资源时和内置资源相比,在分辨率和性能方面没有任何损失。
在上述任一技术方案中,优选地,执行资源及替换资源包括安装包ID、类型及资源编号。
在该技术方案中,主安装包会给每个UI资源分配一个安装包内唯一的ID,例如一张图片A的ID可能是0x7f0202ed,其中0x表示十六进制,7f表示安装包ID,所有的应用程序默认的安装包ID都是7f。紧接着的02,表示资源类型,例如可能有图片,颜色,动画等,每种类型都有不同的值。后面4位,表示资源编号,构建主安装包时编译系统会增序分配。
在上述任一技术方案中,优选地,还包括:第一建立单元,用于构建资源安装包,修改资源安装包中资源的安装包ID;第一发送单元,用于将资源安装包发送至服务器。
在该技术方案中,第一建立单元构建资源安装包,不同主安装包中的安装包ID互不影响,所以安装包ID有可能重复。例如,demo1.apk中的图片A和demo2.apk中的图片B 可能拥有相同的安装包ID。所以跨安装包调用资源,必须保证两个安装包的安装包ID不重复,由此本发明把资源安装包中资源的安装包ID修改为非7f的值,避免和主安装包中资源有相同的安装包ID,引起混乱,同时保证执行资源和对应的替换资源拥有相同的类型和资源编号,保证正确的映射,最后第一发送单元将资源安装包部署到服务器。
在上述任一技术方案中,优选地,还包括:检测单元,用于检测资源安装包是否有更新;下载单元,用于当资源安装包有更新时,将更新后的资源安装包下载至终端。
在该技术方案中,主安装包中的下载模块在检测到有新的资源安装包时,下载至终端,方便用户使用。
在上述任一技术方案中,优选地,加载单元,包括:获取单元,用于通过外壳的插件引擎,拦截启动业务插件的相关方法;加载单元,具体用于将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中;解析单元,用于在代理业务插件中,解析原指向业务插件的统一资源标识符;第二建立单元,用于创建业务插件;第二接收单元,用于接收外界请求,通过代理业务插件将外界请求转至业务插件;反馈单元,用于通过业务插件将对外界请求的响应结果反馈至代理业务插件;第二发送单元,用于通过代理业务插件将对外界请求的响应结果进行发送。
在该技术方案中,获取单元通过外壳的插件引擎,拦截启动业务插件的相关方法,加载单元将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中,解析单元在代理业务插件中解析原指向业务插件的统一资源标识符,第二建立单元创建业务插件,第二接收单元接收外界请求,反馈单元通过代理业务插件将外界请求转至业务插件,业务插件将对外界请求的响应结果反馈至代理业务插件,第二发送单元通过代理业务插件将对外界请求的响应结果进行发送,及通过代理业务插件实现跨进程调用业务插件,确保支持所中业务插件运行,提高了业务的发展。
在上述任一技术方案中,优选地,还包括:第二调用单元,用于通过用户界面线程调用业务插件的生命周期。
在该技术方案中,在创建业务插件时,通过第二调用单元在用户界面线程中调用业务插件的生命周期,实现业务插件的生命周期的管理。
根据本发明的再一个目的,提出了一种计算机装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述任一项的应用程序的更新及加载的方法的步骤。
本发明提供的计算机装置,处理器执行计算机程序时实现将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。通过资源安装包更新业务插件的资源,然后外壳通过VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
根据本发明的又一个目的,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项的应用程序的更新及加载的方法的步骤。
本发明提供的计算机可读存储介质,计算机程序被处理器执行时实现将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。通过资源安装包更新业务插件的资源,然后外壳通过VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明的一个实施例的应用程序的更新及加载的方法的流程示意图;
图2示出了本发明的另一个实施例的应用程序的更新及加载的方法的流程示意图;
图3示出了本发明的再一个实施例的应用程序的更新及加载的方法的流程示意图;
图4示出了本发明的又一个实施例的应用程序的更新及加载的方法的流程示意图;
图5示出了本发明的一个实施例的应用程序的更新及加载的系统的示意框图;
图6示出了本发明的另一个实施例的应用程序的更新及加载的系统的示意框图;
图7示出了本发明的一个实施例的计算机装置的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
本发明第一方面的实施例,提出一种应用程序的更新及加载的方法,图1示出了本发明的一个实施例的应用程序的更新及加载的方法的流程示意图。其中,该方法包括:
步骤102,将应用程序划分为外壳及业务插件;
步骤104,通过资源安装包更新业务插件的资源;
步骤106,通过外壳的插件引擎对业务插件进行加载。
本发明提供的应用程序的更新及加载的方法,将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。通过资源安装包更新业务插件的资源,然后外壳通过VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
图2示出了本发明的另一个实施例的应用程序的更新及加载的方法的流程示意图。其中,该方法包括:
步骤202,将应用程序划分为外壳及业务插件;
步骤204,接收执行资源指令;根据执行资源指令,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;
步骤206,当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,将执行资源的安装包ID修改为替换资源的安装包ID;在资源安装包中调用替换资源;
步骤208,通过外壳的插件引擎对业务插件进行加载。
在该实施例中,接收执行资源指令后,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源,当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,说明在资源安装包中存在与执行资源对应的替换资源,则将执行资源的安装包ID更改为替换资源的安装包ID,并在资源安装包中调用替换资源。由此实现跨安装包的资源更新,能够在不发新版的情况下可以更改应用程序的UI资源,并且应用程序中在使用活动资源时和内置资源相比,在分辨率和性能方面没有任何损失。
在本发明的一个实施例中,优选地,执行资源及替换资源包括安装包ID、类型及资源编号。
在该实施例中,主安装包会给每个UI资源分配一个安装包内唯一的ID,例如一张图片A的ID可能是0x7f0202ed,其中0x表示十六进制,7f表示安装包ID,所有的应用程序默认的安装包ID都是7f。紧接着的02,表示资源类型,例如可能有图片,颜色,动画等,每种类型都有不同的值。后面4位,表示资源编号,构建主安装包时编译系统会增序分配。
图3示出了本发明的再一个实施例的应用程序的更新及加载的方法的流程示意图。其中,该方法包括:
步骤302,将应用程序划分为外壳及业务插件;
步骤304,构建资源安装包,修改资源安装包中资源的安装包ID;将资源安装包发送至服务器;
步骤306,接收执行资源指令;根据执行资源指令,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;
步骤308,当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,将执行资源的安装包ID修改为替换资源的安装包ID;在资源安装包中调用替换资源;
步骤310,检测资源安装包是否有更新;当资源安装包有更新时,将更新后的资源安装包下载至终端;
步骤312,通过外壳的插件引擎对业务插件进行加载。
在该实施例中,构建资源安装包,不同主安装包中的安装包ID互不影响,所以安装包ID有可能重复。例如,demo1.apk中的图片A和demo2.apk中的图片B 可能拥有相同的安装包ID。所以跨安装包调用资源,必须保证两个安装包的安装包ID不重复,由此本发明把资源安装包中资源的安装包ID修改为非7f的值,避免和主安装包中资源有相同的安装包ID,引起混乱,同时保证执行资源和对应的替换资源拥有相同的类型和资源编号,保证正确的映射,最后将资源安装包部署到服务器。主安装包中的下载模块在检测到有新的资源安装包时,下载至终端,方便用户使用。
图4示出了本发明的又一个实施例的应用程序的更新及加载的方法的流程示意图。其中,该方法包括:
步骤402,将应用程序划分为外壳及业务插件;
步骤404,构建资源安装包,修改资源安装包中资源的安装包ID;将资源安装包发送至服务器;
步骤406,接收执行资源指令;根据执行资源指令,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;
步骤408,当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,将执行资源的安装包ID修改为替换资源的安装包ID;在资源安装包中调用替换资源;
步骤410,检测资源安装包是否有更新;当资源安装包有更新时,将更新后的资源安装包下载至终端;
步骤412,通过外壳的插件引擎,拦截启动业务插件的相关方法;将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中;
步骤414,在代理业务插件中,解析原指向业务插件的统一资源标识符;创建业务插件;接收外界请求,通过代理业务插件将外界请求转至业务插件;业务插件将对外界请求的响应结果反馈至代理业务插件;通过代理业务插件将对外界请求的响应结果进行发送。
在该实施例中,通过外壳的插件引擎,拦截启动业务插件的相关方法,将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中,在代理业务插件中,解析原指向业务插件的统一资源标识符,创建业务插件,接收外界请求,通过代理业务插件将外界请求转至业务插件,业务插件将对外界请求的响应结果反馈至代理业务插件,通过代理业务插件将对外界请求的响应结果进行发送,及通过代理业务插件实现跨进程调用业务插件,确保支持所中业务插件运行,提高了业务的发展。
在本发明的一个实施例中,优选地,还包括:通过用户界面线程调用业务插件的生命周期。
在该实施例中,在创建业务插件时,在用户界面线程中调用业务插件的生命周期,实现业务插件的生命周期的管理。
本发明第二方面的实施例,提出一种应用程序的更新及加载的系统,图5示出了本发明的一个实施例的应用程序的更新及加载的系统500的示意框图。其中,该系统500包括:
划分单元502,用于将应用程序划分为外壳及业务插件;
更新单元504,用于通过资源安装包更新业务插件的资源;
加载单元506,用于通过外壳的插件引擎对业务插件进行加载。
本发明提供的应用程序的更新及加载的系统500,划分单元502将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。更新单元504通过资源安装包更新业务插件的资源,然后加载单元506通过外壳的VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
图6示出了本发明的另一个实施例的应用程序的更新及加载的系统600的示意框图。其中,该系统600包括:
划分单元602,用于将应用程序划分为外壳及业务插件;
更新单元604,用于通过资源安装包更新业务插件的资源;
加载单元606,用于通过外壳的插件引擎对业务插件进行加载;
更新单元604,包括:第一接收单元6402,用于接收执行资源指令;查询单元,用于根据执行资源指令,在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;
更新单元604,具体用于当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,将执行资源的安装包ID修改为替换资源的安装包ID;
第一调用单元6404,用于在资源安装包中调用替换资源。
在该实施例中,第一接收单元6402接收执行资源指令后,通过查询单元在资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源,当在资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,说明在资源安装包中存在与执行资源对应的替换资源,则更新单元604将执行资源的安装包ID更改为替换资源的安装包ID,并由第一调用单元6404在资源安装包中调用替换资源。由此实现跨安装包的资源更新,能够在不发新版的情况下可以更改应用程序的UI资源,并且应用程序中在使用活动资源时和内置资源相比,在分辨率和性能方面没有任何损失。
在本发明的一个实施例中,优选地,执行资源及替换资源包括安装包ID、类型及资源编号。
在该实施例中,主安装包会给每个UI资源分配一个安装包内唯一的ID,例如一张图片A的ID可能是0x7f0202ed,其中0x表示十六进制,7f表示安装包ID,所有的应用程序默认的安装包ID都是7f。紧接着的02,表示资源类型,例如可能有图片,颜色,动画等,每种类型都有不同的值。后面4位,表示资源编号,构建主安装包时编译系统会增序分配。
在本发明的一个实施例中,如图6所示,优选地,还包括:第一建立单元608,用于构建资源安装包,修改资源安装包中资源的安装包ID;
第一发送单元610,用于将资源安装包发送至服务器。
在该实施例中,第一建立单元608构建资源安装包,不同主安装包中的安装包ID互不影响,所以安装包ID有可能重复。例如,demo1.apk中的图片A和demo2.apk中的图片B 可能拥有相同的安装包ID。所以跨安装包调用资源,必须保证两个安装包的安装包ID不重复,由此本发明把资源安装包中资源的安装包ID修改为非7f的值,避免和主安装包中资源有相同的安装包ID,引起混乱,同时保证执行资源和对应的替换资源拥有相同的类型和资源编号,保证正确的映射,最后第一发送单元610将资源安装包部署到服务器。
在本发明的一个实施例中,如图6所示,优选地,还包括:检测单元612,用于检测资源安装包是否有更新;
下载单元614,用于当资源安装包有更新时,将更新后的资源安装包下载至终端。
在该实施例中,主安装包中的下载模块在检测到有新的资源安装包时,下载至终端,方便用户使用。
在本发明的一个实施例中,如图6所示,优选地,加载单元606,包括:
获取单元,用于通过外壳的插件引擎,拦截启动业务插件的相关方法;
加载单元606,具体用于将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中;
解析单元6604,用于在代理业务插件中,解析原指向业务插件的统一资源标识符;
第二建立单元6606,用于创建业务插件;
第二接收单元6608,用于接收外界请求,通过代理业务插件将外界请求转至业务插件;
反馈单元6610,用于通过业务插件将对外界请求的响应结果反馈至代理业务插件;
第二发送单元6612,用于通过代理业务插件将对外界请求的响应结果进行发送。
在该实施例中,获取单元通过外壳的插件引擎,拦截启动业务插件的相关方法,加载单元606将原指向业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向业务插件的统一资源标识符存储至代理业务插件的统一资源标识符的参数中,解析单元6604在代理业务插件中解析原指向业务插件的统一资源标识符,第二建立单元6606创建业务插件,第二接收单元6608接收外界请求,反馈单元6610通过代理业务插件将外界请求转至业务插件,业务插件将对外界请求的响应结果反馈至代理业务插件,第二发送单元6612通过代理业务插件将对外界请求的响应结果进行发送,及通过代理业务插件实现跨进程调用业务插件,确保支持所中业务插件运行,提高了业务的发展。
在本发明的一个实施例中,如图6所示,优选地,还包括:第二调用单元616,用于通过用户界面线程调用业务插件的生命周期。
在该实施例中,在创建业务插件时,通过第二调用单元616在用户界面线程中调用业务插件的生命周期,实现业务插件的生命周期的管理。
本发明第三方面的实施例,提出一种计算机装置,图7示出了本发明的一个实施例的计算机装置700的示意框图。其中,该计算机装置700包括:
存储器702、处理器704及存储在存储器702上并可在处理器704上运行的计算机程序,处理器704执行计算机程序时实现如上述任一项的应用程序的更新及加载的方法的步骤。
本发明提供的计算机装置700,处理器704执行计算机程序时实现将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。通过资源安装包更新业务插件的资源,然后外壳通过VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
本发明第四方面的实施例,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一项的应用程序的更新及加载的方法的步骤。
本发明提供的计算机可读存储介质,计算机程序被处理器执行时实现将应用程序拆成两个部分,一部分是外壳,另一个部分是业务插件。外壳仅仅是一个空壳,里面内置了VirtualAPK插件引擎,这部分和业务无关是不需要更新的。业务插件和业务相关,所有的业务实现都在业务插件中。通过资源安装包更新业务插件的资源,然后外壳通过VirtualAPK引擎来加载业务插件,同时外壳可以从服务端拉取新的业务插件,所以当需要更新应用程序时,只需要在服务端下发一个新的业务插件即可。无须上新应用程序至各大应用市场,也无须用户去手动更新应用程序,整个更新应用程序的过程都是自动和无感知的,进而极大地缩短了应用程序的更新周期,也就提高了应用程序的更新效率。其中,资源安装包与安卓系统主安装包不同,主安装包是指安装到用户手机里的应用程序文件,而资源安装包是指包含需要更改的UI资源的安装包,无需安装。VirtualAPK插件引擎为一种插件化框架,VirtualAPK插件引擎对插件没有额外的约束,其工作过程为:原生的APK即可作为插件,插件工程编译生成APK后即可通过宿主应用程序加载,每个插件APK被加载后都会在宿主APK中创建一个单独的对象,通过这些对象VirtualAPK插件引擎就可以管理插件并赋予插件新的意义。
本发明的一个具体实施例中的应用程序的更新及加载的方法的步骤包括:
1. 首先将APP改造为两个部分:APP外壳和业务插件。使得APP外壳不含业务功能,所有的业务逻辑都在业务插件中实现。
2. 通过VirtualAPK插件引擎来动态加载业务插件里面的内容,将其运行起来。
3. 当APP需要更新时,只需要工程师上传新版的业务插件到网络服务器中。
4. 当用户使用APP时,APP外壳会自动从网络下载新版的插件并运行它,APP更新完成。
这样不仅绕过了各大应用市场,为更新APP节省了市场审核的时间成本。另外由于下载新版业务插件并运行它,这个行为是自动完成的,所以时效性非常高。
本发明的一个具体实施例中提出一种应用程序的更新方法,在Android APK中会给每个资源分配一个APK内唯一的ID,例如一张图片A的ID可能是0x7f0202ed,其中0x 表示十六进制,7f表示packageId,所有的APP默认的packageId都是7f。紧接着2位,即02,表示资源类型,例如可能有图片,颜色,动画等,每种类型都有不同的值。后面4位,表示资源编号,构建APK时,编译系统会增序分配。不同APK中的资源ID互不影响,所以ID有可能重复。例如:demo1.apk中的图片A和demo2.apk中的图片B 可能拥有相同的ID。所以跨APK调用资源,必须保证两个APK的资源ID不重复。所以针对原资源和替换资源,修改资源APK的packageId,保持资源类型和资源编号和主APK保持一样。该应用程序的更新方法的步骤包括:
1. 在主APK里面增加UI资源的下载模块,负责资源APK的下载、管理、更新等工作。
2. 在主APK里面更换资源获取模块,负责查找资源是否在资源APK中有对应的替换资源。如果有,则返回替换资源的ID,如果没有,则返回主APK默认的资源ID。
3. 通过定制过的构建器,构建出资源APK。主要负责两部分:(1)需要把资源APK中资源ID的packageId修改为非7f的值,避免和主APK有相同的ID,引起混乱;(2)保证UI资源和对应的被替换的资源拥有相同的类型和资源编号,保证正确的映射。
4. 将资源APK部署到服务器。
5. 主APK的下载模块,检测到有新的资源APK,进行下载。
6. 资源获取模块,将资源APK添加到资源搜索路径。
7. APP运行过程中,执行到获取资源的代码,资源获取模块检测到有替换资源,将原来的资源ID更换为对应的替换的资源ID,例如:要获取资源ID为0x7f0202ed,资源获取模块将其修改为0x6c0202ed。
8. 将更换后的ID传递给系统的获取资源方法,即可查找到资源APK中的资源。
本发明的应用程序的更新方法,在不发版的情况下,可以更改Android APP的UI资源; APP中在使用活动资源时,和内置资源相比,在分辨率和性能方面没有任何损失;对APP的开发人员透明,无需为加载活动的UI资源做任何适配工作。例如:在元旦期间,运营人员想把APP端的四个普通按钮分别变为“元旦快乐”四个字的按钮。通过该方案,只需把带有“元旦快乐”四个字的按钮由工程师构建出资源APK,然后部署到服务器,最终下载到手机端。用户打开APP以后,四个原按钮就会变成带有“元旦快乐”的新按钮。
在Android插件化中,动态加载四大组件(Activity、Service、BroadcastReceiver和ContentProvider)是一项非常核心的能力,而动态加载组件则是其中的一部分。在很多APP中都会有大量的组件,因此是否可以动态加载组件是一项很重要的能力。
本发明的一个具体实施例中提出一种应用程序的加载方法,基于代理思想针对ContentProvider组件,不仅可以跨进程调用ContentProvider,还可以完成call方法调用。其中,Content Provider 属于Android应用程序的组件之一,作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口。每一个Content Provider 都对外提供一个能够唯一标识自己数据集(data set)的公开URI, 如果一个Content Provider管理多个数据集,其将会为每个数据集分配一个独立的URI。Android所提供的ContentProvider都存放在android.provider包当中。该应用程序的加载方法的步骤包括:
1. 拦截启动ContentProvider的相关方法。
2. 将原指向ContentProvider的Uri导向至代理ContentProvider的Uri,同时将原指向ContentProvider的Uri存储至代理ContentProvider的Uri中。
3. 在代理ContentProvider中,解析原指向ContentProvider的Uri,并在UI线程中调用其生命周期方法。
4. 在代理ContentProvider中,将外界的请求中转给插件的ContentProvider实例,插件ContentProvider返回结果后再将结果由代理ContentProvider发送出去。
经过上述步骤1至步骤4就可以全面支持插件ContentProvider的特性。
基于代理思想针对Service组件,不仅可以准确模拟Service的start状态,还可以准确模拟Service的bind状态,从而让插件中的Service就像真的在系统中注册后一样运行。其中,Service组件是Android中实现程序后台运行的解决方案,非常适合用于去执行那些不需要和用户交互而且还要求长期运行的任务,Service组件可以在很多场合使用,比如播放多媒体的时候用户启动了其它Activity,此时要在后台继续播放。Service类必须实现一个接收方法,接收中传递的是intent参数。该应用程序的加载方法的步骤包括:
1. hook AMS,拦截其Service相关方法(startService、stopService、bindService、unbindService等)。
2. 包装Intent,将原本指向插件Service的intent重新导向到宿主中的代理Service,同时把原始的intent存储起来。
3. 在代理Service中,解析原始的intent信息,根据需要创建插件Service对象,并调用其onCreate、onStartCommand(在onCreate或onStartCommand方法里执行一些具体的逻辑)等。
4. 如果插件Service运行在远程进程,那么对应的代理Service也会运行在远程进程,当Activity组件尝试捆绑(bind)它时,Runtime Service会管理插件Service的捆绑包(binder)并将其发送给Activity组件,这样一来,插件Service就会被成功捆绑。其中,Runtime Service为业务组件,主要用于管理流程在运行时产生的数据以及提供对流程进行操作的应用程序编程接口。
在本说明书的描述中,术语“一个实施例”、 “一些实施例”、 “具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种应用程序的更新及加载的方法,其特征在于,包括:
将所述应用程序划分为外壳及业务插件;
通过资源安装包更新所述业务插件的资源;
通过所述外壳的插件引擎对所述业务插件进行加载;
其中,所述外壳还用于从服务端拉取新的所述业务插件;
通过所述资源安装包更新所述业务插件的资源的步骤,具体包括:
接收执行资源指令;
根据所述执行资源指令,在所述资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;
当在所述资源安装包中存在与所述执行资源具有相同类型及资源编号的所述替换资源时,将所述执行资源的安装包ID修改为所述替换资源的安装包ID;
在所述资源安装包中调用所述替换资源;
所述资源安装包是包含需要更改的用户界面资源的安装包,无需安装。
2.根据权利要求1所述的应用程序的更新及加载的方法,其特征在于,
所述执行资源及所述替换资源包括所述安装包ID、所述类型及资源编号。
3.根据权利要求2所述的应用程序的更新及加载的方法,其特征在于,还包括:
构建所述资源安装包,修改所述资源安装包中资源的所述安装包ID;
将所述资源安装包发送至服务器。
4.根据权利要求1所述的应用程序的更新及加载的方法,其特征在于,还包括:
检测所述资源安装包是否有更新;
当所述资源安装包有更新时,将更新后的所述资源安装包下载至终端。
5.根据权利要求1至4中任一项所述的应用程序的更新及加载的方法,其特征在于,通过所述外壳的插件引擎对所述业务插件进行加载的步骤,具体包括:
通过所述外壳的插件引擎,拦截启动所述业务插件的相关方法;
将原指向所述业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向所述业务插件的统一资源标识符存储至所述代理业务插件的统一资源标识符的参数中;
在所述代理业务插件中,解析原指向所述业务插件的统一资源标识符;
创建所述业务插件;
接收外界请求,通过所述代理业务插件将所述外界请求转至所述业务插件;
所述业务插件将对所述外界请求的响应结果反馈至所述代理业务插件;
通过所述代理业务插件将对所述外界请求的响应结果进行发送。
6.根据权利要求5所述的应用程序的更新及加载的方法,其特征在于,还包括:
通过用户界面线程调用所述业务插件的生命周期。
7.一种应用程序的更新及加载的系统,其特征在于,包括:
划分单元,用于将所述应用程序划分为外壳及业务插件;
更新单元,用于通过资源安装包更新所述业务插件的资源,所述更新单元,具体用于当在所述资源安装包中存在与执行资源具有相同类型及资源编号的替换资源时,将所述执行资源的安装包ID修改为所述替换资源的安装包ID;
加载单元,用于通过所述外壳的插件引擎对所述业务插件进行加载;
其中,所述外壳还用于从服务端拉取新的所述业务插件;
所述更新单元,包括:
第一接收单元,用于接收执行资源指令;
查询单元,用于根据所述执行资源指令,在所述资源安装包中查询是否存在与执行资源具有相同类型及资源编号的替换资源;
第一调用单元,用于在所述资源安装包中调用所述替换资源;
所述资源安装包是包含需要更改的用户界面资源的安装包,无需安装。
8.根据权利要求7所述的应用程序的更新及加载的系统,其特征在于,
所述执行资源及所述替换资源包括所述安装包ID、所述类型及资源编号。
9.根据权利要求8所述的应用程序的更新及加载的系统,其特征在于,还包括:
第一建立单元,用于构建所述资源安装包,修改所述资源安装包中资源的所述安装包ID;
第一发送单元,用于将所述资源安装包发送至服务器。
10.根据权利要求7所述的应用程序的更新及加载的系统,其特征在于,还包括:
检测单元,用于检测所述资源安装包是否有更新;
下载单元,用于当所述资源安装包有更新时,将更新后的所述资源安装包下载至终端。
11.根据权利要求7至10中任一项所述的应用程序的更新及加载的系统,其特征在于,所述加载单元,具体用于将原指向所述业务插件的统一资源标识符导向至代理业务插件的统一资源标识符,同时将原指向所述业务插件的统一资源标识符存储至所述代理业务插件的统一资源标识符的参数中,包括:
获取单元,用于通过所述外壳的插件引擎,拦截启动所述业务插件的相关方法;
解析单元,用于在所述代理业务插件中,解析原指向所述业务插件的统一资源标识符;
第二建立单元,用于创建所述业务插件;
第二接收单元,用于接收外界请求,通过所述代理业务插件将所述外界请求转至所述业务插件;
反馈单元,用于通过所述业务插件将对所述外界请求的响应结果反馈至所述代理业务插件;
第二发送单元,用于通过所述代理业务插件将对所述外界请求的响应结果进行发送。
12.根据权利要求11所述的应用程序的更新及加载的系统,其特征在于,还包括:
第二调用单元,用于通过用户界面线程调用所述业务插件的生命周期。
13.一种计算机装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的应用程序的更新及加载的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的应用程序的更新及加载的方法的步骤。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509998.1A CN109144533B (zh) | 2017-06-28 | 2017-06-28 | 一种应用程序的更新及加载的方法、系统及计算机装置 |
EP17915568.4A EP3628080B1 (en) | 2017-06-28 | 2017-11-14 | Systems and methods for updating and loading application |
PCT/CN2017/110914 WO2019000787A1 (en) | 2017-06-28 | 2017-11-14 | SYSTEMS AND METHODS FOR UPDATING AND LOADING AN APPLICATION |
CN201780092575.2A CN110945480B (zh) | 2017-06-28 | 2017-11-14 | 用于更新和加载应用程序的系统和方法 |
US16/729,261 US10936298B2 (en) | 2017-06-28 | 2019-12-27 | Systems and methods for updating and loading an application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509998.1A CN109144533B (zh) | 2017-06-28 | 2017-06-28 | 一种应用程序的更新及加载的方法、系统及计算机装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144533A CN109144533A (zh) | 2019-01-04 |
CN109144533B true CN109144533B (zh) | 2021-05-04 |
Family
ID=64740831
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710509998.1A Active CN109144533B (zh) | 2017-06-28 | 2017-06-28 | 一种应用程序的更新及加载的方法、系统及计算机装置 |
CN201780092575.2A Active CN110945480B (zh) | 2017-06-28 | 2017-11-14 | 用于更新和加载应用程序的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780092575.2A Active CN110945480B (zh) | 2017-06-28 | 2017-11-14 | 用于更新和加载应用程序的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10936298B2 (zh) |
EP (1) | EP3628080B1 (zh) |
CN (2) | CN109144533B (zh) |
WO (1) | WO2019000787A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725952B (zh) * | 2019-01-07 | 2021-09-24 | 深圳市网心科技有限公司 | 一种应用程序插件化的方法、系统以及相关装置 |
CN110262830A (zh) * | 2019-05-24 | 2019-09-20 | 北京指掌易科技有限公司 | 一种移动端基于应用二次开发的方法 |
CN110888658B (zh) * | 2019-12-02 | 2023-04-21 | 广州市百果园信息技术有限公司 | 应用程序中功能模块的动态化方法、装置及存储介质 |
CN113568629A (zh) * | 2020-04-28 | 2021-10-29 | 中车株洲电力机车研究所有限公司 | 基于can的软件升级方法、装置、计算机设备和存储介质 |
CN111638882B (zh) * | 2020-05-29 | 2022-03-11 | 杭州鸿雁电器有限公司 | 操作界面的生成方法、装置、存储介质和处理器 |
CN111722865A (zh) * | 2020-06-18 | 2020-09-29 | 广州小鹏车联网科技有限公司 | 一种应用程序的资源数据处理方法和装置 |
CN111752585A (zh) * | 2020-06-23 | 2020-10-09 | 南京新研协同定位导航研究院有限公司 | 一种基于mr眼镜应用程序的内容配置方式 |
CN112328277B (zh) * | 2020-10-19 | 2023-04-07 | 武汉木仓科技股份有限公司 | 一种应用的资源更新方法、装置以及服务器 |
CN112596747A (zh) * | 2020-12-25 | 2021-04-02 | 航天信息股份有限公司 | 一种应用程序安装方法、装置、设备和介质 |
CN115080077A (zh) * | 2021-03-01 | 2022-09-20 | 京东科技控股股份有限公司 | 插件更新方法、装置、电子设备、系统和存储介质 |
CN114528048A (zh) * | 2022-02-18 | 2022-05-24 | Oppo广东移动通信有限公司 | 应用执行方法、应用执行架构、电子设备及存储介质 |
TWI816349B (zh) * | 2022-03-31 | 2023-09-21 | 啟碁科技股份有限公司 | 韌體更新應用程式安裝方法及其嵌入式裝置 |
CN114756271B (zh) * | 2022-04-29 | 2023-07-28 | 深圳市欧瑞博科技股份有限公司 | 界面更新方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843342A (zh) * | 2011-06-22 | 2012-12-26 | 华为软件技术有限公司 | 一种资源动态升级方法及系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI242725B (en) * | 2001-06-11 | 2005-11-01 | Oce Tech Bv | A method for executing a hot migrate operation through an incremental roll-over process that uses migration plug-in means for conversion during an upgrade transition, and a multiprocessing system and a system arranged for implementing such method |
US20050097574A1 (en) * | 2003-10-30 | 2005-05-05 | Microsoft Corporation | Modular, robust, component user interface framework |
US20090287559A1 (en) * | 2007-12-20 | 2009-11-19 | Michael Chen | TabTab |
US20100257539A1 (en) * | 2009-03-31 | 2010-10-07 | Krishnakumar Narayanan | System, method and apparatus for providing functions to applications on a digital electronic device |
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
US9201709B2 (en) * | 2011-05-20 | 2015-12-01 | Citrix Systems, Inc. | Shell integration for an application executing remotely on a server |
US20150172228A1 (en) * | 2012-04-17 | 2015-06-18 | George Zalepa | Method and system for communicating information over a network |
CN103544058A (zh) * | 2012-07-16 | 2014-01-29 | 天津书生投资有限公司 | 一种实现插件的方法和装置 |
CN103577415B (zh) * | 2012-07-20 | 2019-03-08 | 百度在线网络技术(北京)有限公司 | 用于更新移动搜索应用所对应的搜索配置的方法与设备 |
US9766870B2 (en) * | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
CN105468395B (zh) | 2014-09-10 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 更新方法、装置及系统 |
CN105187943B (zh) * | 2015-09-21 | 2018-06-15 | 三星电子(中国)研发中心 | 电视频道追加方法和装置 |
CN106648559A (zh) * | 2015-10-28 | 2017-05-10 | 广东电网有限责任公司佛山供电局 | Android应用插件化开发系统和方法 |
CN107273142B (zh) * | 2017-07-12 | 2021-04-23 | 北京龙之心科技有限公司 | 程序更新方法、程序运行方法及装置 |
-
2017
- 2017-06-28 CN CN201710509998.1A patent/CN109144533B/zh active Active
- 2017-11-14 CN CN201780092575.2A patent/CN110945480B/zh active Active
- 2017-11-14 EP EP17915568.4A patent/EP3628080B1/en active Active
- 2017-11-14 WO PCT/CN2017/110914 patent/WO2019000787A1/en unknown
-
2019
- 2019-12-27 US US16/729,261 patent/US10936298B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843342A (zh) * | 2011-06-22 | 2012-12-26 | 华为软件技术有限公司 | 一种资源动态升级方法及系统 |
Non-Patent Citations (2)
Title |
---|
VirtualAPK:滴滴 Android 插件化的实践之路;任玉刚;《https://www.iteye.com/news/32006》;20161227;第1-6页 * |
八位滴滴工程师QCon七场演讲精华大全;人民网-IT频道;《it.people.com.cn/n1/2017/0419/c1009-29222560.html》;20170419;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
EP3628080B1 (en) | 2024-05-22 |
CN110945480A (zh) | 2020-03-31 |
CN110945480B (zh) | 2023-04-25 |
US10936298B2 (en) | 2021-03-02 |
CN109144533A (zh) | 2019-01-04 |
EP3628080A1 (en) | 2020-04-01 |
WO2019000787A1 (en) | 2019-01-03 |
US20200167146A1 (en) | 2020-05-28 |
EP3628080A4 (en) | 2020-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144533B (zh) | 一种应用程序的更新及加载的方法、系统及计算机装置 | |
US10884722B2 (en) | Cross-environment application of tracing information for improved code execution | |
US11354144B2 (en) | Java native interface and windows universal app hooking | |
CN109597814B (zh) | 一种后台管理信息系统的在线快速交付系统 | |
CN105657191B (zh) | 一种基于Android系统的应用增量升级方法及系统 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN102279765B (zh) | 预编译托存托管代码 | |
US7814472B2 (en) | System and method for shared code-sourcing in a Java Virtual Machine environment | |
US9710288B2 (en) | Method and device for loading application program | |
CN111767092A (zh) | 作业执行方法、装置、系统及计算机可读存储介质 | |
CN105511889A (zh) | 一种通用的游戏版本增量更新系统和方法 | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
US20160179502A1 (en) | Identifying source code used to build executable files | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
CN106844153B (zh) | 应用程序运行监控方法、装置以及终端 | |
CN104750528A (zh) | 一种Android程序中的组件管理方法和装置 | |
CN104572114A (zh) | 一种绑定装置、应用更新装置及方法以及应用 | |
CN105516154B (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
US20200218581A1 (en) | Communication system and method for accessing and deploying temporary microservices on a heterogeneous platform | |
CN111880987A (zh) | 应用程序的动态监测方法、装置、存储介质以及电子装置 | |
CN105468427A (zh) | 一种自动编译和发布的实现方法及系统 | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
KR20060085698A (ko) | 중앙집중형 동적 어드레싱 매니저를 이용한 동적 어드레싱방법 및 장치 | |
CN108804100B (zh) | 创建界面元素的方法、装置、存储介质及移动终端 | |
JP5408141B2 (ja) | サービス提供装置、サービス提供システム、及びサービス提供方法 |
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 |