CN108874437A - 一种android应用程序的在线云更新方法 - Google Patents

一种android应用程序的在线云更新方法 Download PDF

Info

Publication number
CN108874437A
CN108874437A CN201810481175.7A CN201810481175A CN108874437A CN 108874437 A CN108874437 A CN 108874437A CN 201810481175 A CN201810481175 A CN 201810481175A CN 108874437 A CN108874437 A CN 108874437A
Authority
CN
China
Prior art keywords
update
server
patch
application program
renewal process
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.)
Granted
Application number
CN201810481175.7A
Other languages
English (en)
Other versions
CN108874437B (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.)
Shenzhen Love Encryption Technology Co Ltd
Original Assignee
Shenzhen Love Encryption 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 Shenzhen Love Encryption Technology Co Ltd filed Critical Shenzhen Love Encryption Technology Co Ltd
Publication of CN108874437A publication Critical patent/CN108874437A/zh
Application granted granted Critical
Publication of CN108874437B publication Critical patent/CN108874437B/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/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本发明公开了一种android应用程序的在线云更新方法,其包括如下的步骤:在应用程序内部写入渠道标示Tag,使用补丁生成工件生成新旧版本之间产生的补丁,采用多线程的方式,在后台下载更新补丁,并使用c层的合并补丁代码去合并补丁,产生新版本apk,使新版本apk不用通过系统安装运行起来,由服务端统计更新结果的各参数并在服务器前台向用户展示。本发明把多渠道更新变得简单,更新过程更加稳定,节省下载流量,缩短更新过程的时间、更新过程中不会影响用户操作、无需用户手动自动完成更新,并且可以直观看到各渠道版本更新的成功率。

Description

一种android应用程序的在线云更新方法
技术领域
本发明涉及android系统的基本功能领域,尤其涉及一种android应用程序的在线云更新方法。
背景技术
随着手机的普及,android应用的繁荣,各应用厂商为适应市场,不断迭代更新,开发新版本的应用。目前市场上大部分的应用和游戏应用,依然使用的是传统的版本更新,而传统更新方式因为涉及到的分发渠道过多,需要渠道-CP-发行配合处理,导致整个更新过程异常繁琐;在应用游戏更新时,还经常会遇到因网络不稳定而导致的更新缓慢异常乃至崩溃的情况,浪费用户大量的流量和宝贵时间,影响用户的正常体验。版本升级方式则需要用户到指定链接下载新版apk进行版本升级,或者由应用(游戏)自己下载,下载完成后,然后需要用户在手机上覆盖安装或者卸载旧版本再安装新版本。
此技术中存在着以下缺点,即多渠道更新繁琐、更新不稳定,浪费下载流量、更新过程时间长、更新过程中影响用户操作、用户需自己手动完成更新、无法统计各渠道版本更新的成功率等问题。
发明内容
本发明的目的在于提供一种android应用程序的在线云更新方法,以解决上述现有技术不足的问题。
为实现上述发明目的,本发明采用如下技术方案:
本发明提供了一种android应用程序的在线云更新方法,其包括如下的步骤:
步骤1,在应用程序内部写入渠道标示Tag,通过客户端和服务端的数据交互,由服务端判断Tag,确定安装了该渠道的设备是否更新应用,若未更新应用,则由客户端发送更新请求至服务端;
步骤2,在更新过程中由服务端对比新旧应用程序,使用补丁生成工件生成新旧版本之间产生的补丁,并搭配优化的afinal网络下载框架下载更新补丁;
步骤3,所述更新过程中采用静默更新的方式,采用多线程的方式,在后台下载更新补丁,并使用c层的合并补丁代码去合并补丁,产生新版本apk;
步骤4,采用classLoader动态加载的方式,去加载通过合并补丁生成的新版本apk,并通过hook四大组件,application,动态代理组件和加入新版本资源的方式,通过使用旧版本的云更新外壳去完成新版本apk的加载,使之不用通过系统安装运行起来,即完成更新;
步骤5,在更新过程前、更新过程后,向服务端发送对应的设备,版本信息,以及更新的结果,由服务端统计各参数并在服务器前台向用户展示。
作为本发明对上述方案的优选,所述客户端通过3G、4G、5G、WIFI或NFC技术与服务端连接,实现数据的通讯。
作为本发明对上述方案的优选,所述步骤1中客户端发出的更新请求的同时,会在应用程序界面出现版本更新提示框。
作为本发明对上述方案的优选,所述服务端获取客户端所发出的更新请求后,会对更新请求的合法性进行验证。
本发明的有益效果在于:本发明通过在应用程序写入Tag标示,从而客户端和服务端通过数据交互,由服务端判断Tag标示,从而避免了多分发渠道导致的更新过程繁琐问题;本发明的更新过程中只需下载新旧版本之间产生的补丁,而非完整的新版本应用,从而节省下载流量,减少下载时间;本发明采用静默更新的方式,利用多线程在后台更新补丁,能够不影响用户操作;此外,本发明还解决了用户下载完成新版本后,需自己手动完成更新的问题,以及统计各渠道版本更新的成功率的问题。
附图说明
图1为本发明所述的一种android应用程序的在线云更新方法的WIFI环境下的更新过程流程图;
图2为本发明所述的一种android应用程序的在线云更新方法的默认更新过程流程图;
图3为本发明所述的一种android应用程序的在线云更新方法的强制认更新过程流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1至图3的一种android应用程序的在线云更新方法,具体包括如下步骤:
针对应用型包体,将原apk反编译后,插入云更新的代码,如果方法数超过65535,就对dex进行分包处理,将云更新的启动代码作为class.dex而用户原dex作为class2.dex,如果未超过就直接合成一个class.dex。并在AndroidManifest.xml中写入云更新需要声明的权限和组件,在资源assets下放入对应的UI资源图片,回包生成集成云更新后的apk。
针对游戏型的apk,与上面不同的是,不再判断方法数,直接进行分包,即将云更新的代码打成class.dex而将原包的dex封装成libijm_packet..so,放入lib目录下。
Apk启动时,会动态代理apk的application,优先启动云更新的application,在其中完成云更新一系列的初始化操作,如本地配置写入,启动hook框架,多dex的加载,动态加载apk,签名校验,完整性校验,执行完之后,再启动原包apk的application,接着再动态代理四大组件,启动相对应的组件,完成外壳程序对原有程序生命周期的接管。最后启动入口activity,完成apk的启动。
启动完成后,云更新将开启后台服务,开启一条线程去检测更新,这里使用的是afinal网络框架,客户端将本地的相关配置用protobuf封装后发送给服务端,服务端根据用户的更新策略(这里以静默更新为例),将更新策略,下载地址,校验信息等数据返回给客户端,客户端根据策略,静默下载对应的补丁文件,下载完毕后,调用c层的合并补丁功能,静默合并补丁,合成新版本的apk,并计算该apk的crc32值,与服务器返回的检验信息进行比对,如果不同,证明合并失败,将重新从服务器下载完整的apk放入sdcard中对应的obb目录下,以保证下载合并环节的可靠性。完成后,释放新版本的so到/data/data/包名/files/plugin……下,保存新版的配置信息,写入到本地sharedPreference中,并开启服务对新版dex进行优化,以减少下次启动的时间。同时在回报线程中,发送更新成功的相关信息给服务器,如系统版本、更新版本、设备型号等,以方便服务器进行统计,并将更新成功率和版本分布,型号分布,在服务器前台展示给用户。
以上过程即已完成更新,而在更新过程中,将不影响用户的正常操作,待用户重新启动应用,则进入该应用的新版本。该种方法能够把多渠道更新变得简单,更新过程更加稳定,节省下载流量,缩短更新过程的时间、更新过程中不会影响用户操作、无需用户手动自动完成更新,并且可以直观看到各渠道版本更新的成功率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种android应用程序的在线云更新方法,其特征在于,其包括如下的步骤:
步骤1,在应用程序内部写入渠道标示Tag,通过客户端和服务端的数据交互,由服务端判断Tag,确定安装了该渠道的设备是否更新应用,若未更新应用,则由客户端发送更新请求至服务端;
步骤2,在更新过程中由服务端对比新旧应用程序,使用补丁生成工件生成新旧版本之间产生的补丁,并搭配优化的afinal网络下载框架下载更新补丁;
步骤3,所述更新过程中采用静默更新的方式,采用多线程的方式,在后台下载更新补丁,并使用c层的合并补丁代码去合并补丁,产生新版本apk;
步骤4,采用classLoader动态加载的方式,去加载通过合并补丁生成的新版本apk,并通过hook四大组件,application,动态代理组件和加入新版本资源的方式,通过使用旧版本的云更新外壳去完成新版本apk的加载,使之不用通过系统安装运行起来,即完成更新;
步骤5,在更新过程前、更新过程后,向服务端发送对应的设备,版本信息,以及更新的结果,由服务端统计各参数并在服务器前台向用户展示。
2.根据权利要求1所述的一种android应用程序的在线云更新方法,其特征在于,所述客户端通过3G、4G、5G、WIFI或NFC技术与服务端连接,实现数据的通讯。
3.根据权利要求1所述的一种android应用程序的在线云更新方法,其特征在于,所述步骤1中客户端发出的更新请求的同时,会在应用程序界面出现版本更新提示框。
4.根据权利要求1所述的一种android应用程序的在线云更新方法,其特征在于,所述服务端获取客户端所发出的更新请求后,会对更新请求的合法性进行验证。
CN201810481175.7A 2018-04-26 2018-05-18 一种android应用程序的在线云更新方法 Active CN108874437B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2018103849278 2018-04-26
CN201810384927 2018-04-26

Publications (2)

Publication Number Publication Date
CN108874437A true CN108874437A (zh) 2018-11-23
CN108874437B CN108874437B (zh) 2022-01-21

Family

ID=64333910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810481175.7A Active CN108874437B (zh) 2018-04-26 2018-05-18 一种android应用程序的在线云更新方法

Country Status (1)

Country Link
CN (1) CN108874437B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857441A (zh) * 2019-02-19 2019-06-07 深圳供电局有限公司 一种移动终端及其app软件包云更新的方法
CN110333888A (zh) * 2019-07-10 2019-10-15 广州酷狗计算机科技有限公司 功能更新方法、装置、设备及存储介质
CN111913730A (zh) * 2020-07-15 2020-11-10 上海莉莉丝科技股份有限公司 用户无感的应用程序内更新方法及用户端、程序服务器
CN112827180A (zh) * 2021-01-21 2021-05-25 厦门雅基软件有限公司 一种游戏更新方法、装置、设备和存储介质
CN114924809A (zh) * 2022-05-19 2022-08-19 西安理工大学 一种基于dex文件类的流式微服务加载验证方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468514A (zh) * 2014-10-31 2015-03-25 联想(北京)有限公司 信息处理方法、电子设备及服务器
CN104978530A (zh) * 2015-03-12 2015-10-14 腾讯科技(深圳)有限公司 一种应用安全管理方法、装置、服务器以及系统
CN106155727A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 一种应用程序的更新方法、装置及终端
CN107346252A (zh) * 2016-05-07 2017-11-14 腾讯科技(深圳)有限公司 应用更新方法和装置
CN107797818A (zh) * 2017-03-28 2018-03-13 平安壹钱包电子商务有限公司 应用程序升级方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468514A (zh) * 2014-10-31 2015-03-25 联想(北京)有限公司 信息处理方法、电子设备及服务器
CN104978530A (zh) * 2015-03-12 2015-10-14 腾讯科技(深圳)有限公司 一种应用安全管理方法、装置、服务器以及系统
CN106155727A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 一种应用程序的更新方法、装置及终端
CN107346252A (zh) * 2016-05-07 2017-11-14 腾讯科技(深圳)有限公司 应用更新方法和装置
CN107797818A (zh) * 2017-03-28 2018-03-13 平安壹钱包电子商务有限公司 应用程序升级方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857441A (zh) * 2019-02-19 2019-06-07 深圳供电局有限公司 一种移动终端及其app软件包云更新的方法
CN110333888A (zh) * 2019-07-10 2019-10-15 广州酷狗计算机科技有限公司 功能更新方法、装置、设备及存储介质
CN110333888B (zh) * 2019-07-10 2023-10-13 广州酷狗计算机科技有限公司 功能更新方法、装置、设备及存储介质
CN111913730A (zh) * 2020-07-15 2020-11-10 上海莉莉丝科技股份有限公司 用户无感的应用程序内更新方法及用户端、程序服务器
CN112827180A (zh) * 2021-01-21 2021-05-25 厦门雅基软件有限公司 一种游戏更新方法、装置、设备和存储介质
CN114924809A (zh) * 2022-05-19 2022-08-19 西安理工大学 一种基于dex文件类的流式微服务加载验证方法
CN114924809B (zh) * 2022-05-19 2024-03-29 西安理工大学 一种基于dex文件类的流式微服务加载验证方法

Also Published As

Publication number Publication date
CN108874437B (zh) 2022-01-21

Similar Documents

Publication Publication Date Title
CN108874437A (zh) 一种android应用程序的在线云更新方法
US11924068B2 (en) Provisioning a service
CN102622241B (zh) 一种软件升级方法及装置
CN106911502B (zh) 一种智能家庭网关设备的升级方法及系统
CN104639648A (zh) 一种智能储物柜的远程升级方法
CN111786893B (zh) mesh组网中无线路由器软件版本的同步方法和装置
CN109725952B (zh) 一种应用程序插件化的方法、系统以及相关装置
RU2533638C2 (ru) Способ и устройство для конфигурирования данных
US20140208307A1 (en) Method and System for Upgrading CPE Firmware
WO2014070055A1 (en) Method for configuring a communication device using a configuration file template
WO2018033094A1 (zh) 富通信套件发布平台、版本更新方法及系统、移动终端
CN105472465B (zh) 机顶盒升级的方法及装置
CN102970342A (zh) 一种基于ota 技术的嵌入式终端自动升级方法
CN106936633A (zh) 一种应用安装包制作的方法及服务器
WO2015043407A1 (en) Method, system, and apparatus for online service inspection
CN107181618A (zh) 固件升级方法及系统
CN106933625A (zh) 一种多源软件更新的方法及系统
CN110045969A (zh) 应用程序安装方法、服务器、系统、设备及存储介质
CN104348646A (zh) 配置数据处理方法、装置及系统
CN103095532A (zh) 网络游戏反外挂系统、方法及反外挂服务端
KR101587030B1 (ko) M2m 어플리케이션의 api 함수 호출 정책 관리 시스템 및 그 구현 방법
CN113497720A (zh) 一种固件服务器、电力物联代理网关及固件远程升级方法
CN115811457A (zh) 多源数据融合的一体化数据采集方法
CN107301062A (zh) 一种系统的升级方法及装置
CN108874432A (zh) 无线固件升级系统

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