CN107025119A - 一种Android智能终端系统软件热修复的方法 - Google Patents

一种Android智能终端系统软件热修复的方法 Download PDF

Info

Publication number
CN107025119A
CN107025119A CN201710129346.5A CN201710129346A CN107025119A CN 107025119 A CN107025119 A CN 107025119A CN 201710129346 A CN201710129346 A CN 201710129346A CN 107025119 A CN107025119 A CN 107025119A
Authority
CN
China
Prior art keywords
terminal
patch
files
patch files
apk
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
CN201710129346.5A
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.)
Shandong University
Original Assignee
Shandong University
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 Shandong University filed Critical Shandong University
Priority to CN201710129346.5A priority Critical patent/CN107025119A/zh
Publication of CN107025119A publication Critical patent/CN107025119A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

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)
  • Information Transfer Between Computers (AREA)

Abstract

一种Android智能终端系统软件热修复的方法,属安卓系统技术领域,该方法包括:将原APK和修复后的APK进行差分比较,输出Patch文件;服务器端根据匹配属性进行Patch文件的匹配,并将Patch文件推送到终端;用户终端进行Patch文件的下载并将Patch文件中的匹配信息和用户终端的实际设备信息进行校验;待用户第二次启动该应用时完成Patch文件的动态加载,修复完成。对智能终端及系统提供者来讲,本发明无需通过生成OTA,即可实现对不同型号终端设备系统软件对应的修复,节约了大量成本;对智能终端用户来讲,本发明免除了OTA系统版本的下载与安装,在用户无感知情况下静默完成修复,在解决问题的同时又不影响用户使用体验。

Description

一种Android智能终端系统软件热修复的方法
技术领域
本发明涉及一种Android智能终端系统软件热修复的方法,属于安卓系统技术领域。
背景技术
当Android智能终端设备(手机、平板、电视等)的系统版本在发布之后,往往有个别系统软件会在使用中出现问题,此时需要立即对该系统软件进行修复,一般做法即将修复后的安卓应用整体打包成安卓安装包,并生成OTA(Over-the-Air Technology,空中下载技术)版本。系统开发测试部门则随后对OTA版本进行测试,在测试通过后向用户推送OTA升级包,用户下载OTA升级包后手动完成安装更新。对系统软件问题的解决,某些情况下仅是修改若干代码,但仍需按上述过程生成OTA版本,继而对终端系统进行更新,实际上OTA版本绝大部分内容保持不变,这导致了不必要的系统开销和时间浪费,大大降低了用户使用体验。
中国专利文献CN106095502A公开了一种安卓应用的热修复方法。该方法包括:获取指定安卓应用的补丁包,补丁包中包括指定安卓应用中的修复后的指定类文件;当指定安卓应用启动时,加载该补丁包;当指定安卓应用需要调用指定的类文件时,从该补丁包中调用修复后的指定类文件以执行相应功能。但该方法存在以下缺陷:对于智能终端及系统提供者来讲,它无法对不同型号及不同区域终端设备的某个系统软件进行控制,比如对于某个系统软件来讲,大陆地区和港澳台地区是不同的;而终端设备型号不同,系统软件也会不同。
发明内容
为克服上述背景技术所存在的缺陷和不足,本发明提出了一种Android智能终端系统软件热修复的方法。当智能终端中系统软件出现问题时,软件工程师针对问题修改完毕后,仅生成该软件的补丁包,并将补丁包根据匹配信息匹配在服务器端。当用户打开该系统软件后,其将从服务器端把补丁包下载到终端,并判断补丁包中的匹配信息和终端的具体设备信息是否相同,若相同,系统软件在下次用户打开应用时动态加载,从而完成对软件的修复。
本发明的技术方案如下:
一种Android智能终端系统软件热修复的方法,依次通过四个模块来完成,该四个模块包括Patch文件获取模块、Patch文件匹配模块、终端下载模块和动态加载模块,该方法具体步骤如下:
1)Patch文件获取模块:
该模块输入端是两个APK,包括原APK和更新后的APK,原APK即是需要修复的原版本系统软件,更新后的APK即是已修复完成的系统软件,一般已修复完成的系统软件版本号比原系统软件版本号高1,APK文件实际可看成一个zip文件,其包括res资源文件和class.dex文件,通过差分比较可以将有差别的文件部分保存到一个HashSet集合变量中,然后通过编译打包生成Patch文件,具体步骤为:
①将原APK和更新后的APK进行差分算法比较,将有差别的文件部分保存到一个集合变量中;
②通过编译并打包可生成Patch文件;
2)Patch文件匹配模块:
在服务器端将Patch文件进行匹配,匹配信息包括终端型号、终端系统版本号、终端网络区域、Android版本及内核版本,匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true,服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,具体步骤为:
①获取Patch文件所含系统应用的信息,包括应用名称、应用包名、应用签名;
②服务器端根据匹配信息进行Patch文件下发前的匹配,包括终端型号、终端系统版本号、终端网络区域、Android版本、内核版本匹配属性;
③匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true;
④服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,将Patch文件推送至智能终端;
3)终端下载模块:
当用户打开该系统应用时,首先判断终端当前连接的网络是否为本地网络,如果否,则自动配置本地网络,如果是,则不用配置本地网络;随后再判断此时终端处理器是否处于空闲时段,当终端处理器处于空闲时段时,终端从服务器获取匹配标识flag的值和Patch文件,并在后台自动下载,具体步骤为:
①判断当前终端连接的网络是否为本地预设网络,如果是,则直接转入步骤②;如果否,则自动配置本地预设网络,然后转入步骤②;
②判断处理器此时是否处于忙时阈值之下,如果是,则转入步骤③;如果否,则转入步骤②,此时说明处理器正进行多任务执行,不适宜再为处理器增加任务,这样可避免处理器崩溃;
③智能终端从服务器获取flag的值和Patch文件,并在后台自动下载;
4)动态加载模块:
Patch文件下载后,首先终端获取Patch文件中的匹配信息,将匹配信息和终端的具体设备信息进行校验,判断Patch文件中的匹配信息和终端的具体设备信息是否相同,如果前后信息相同则校验成功,若不同则说明此终端不在修复范围之内,则将Patch文件删除;校验成功后,待用户第二次启动该系统应用时,或该系统应用通过广播或服务被唤醒重新加载时,系统会先加载Patch文件中的class文件,而不再加载原APK中的class文件,完成软件修复,具体步骤为:
①终端获取Patch文件中的匹配信息和终端的具体设备信息;
②将步骤①中的匹配信息和具体设备信息进行对比,校验二者是否相同,若相同,则转到步骤③;若不同,则删掉该Patch文件,流程结束;
③待用户重启该系统软件或者该系统软件被BroadCast(广播)或者Service(服务)所唤醒重新加载,系统会加载Patch文件中的class文件而不去加载原APK中的class文件,软件完成修复,流程结束。
所述的APK是AndroidPackage的缩写,即Android安装包(APK)。
所述的Patch多指补丁的意思比如文件补丁、内存补丁等,是电脑命令程序的一种。
所述的zip文件是用zip计算机压缩算法进行压缩而产生的压缩文件。
所述的class文件是一种二进制流文件,它由java源文件编译后所产生。
本发明方法的有益效果为:
1,本发明无需通过生成OTA,即可实现对不同型号终端设备系统软件对应的修复,节约了大量成本;
2,本发明免除了OTA系统版本的下载与安装,在用户无感知情况下静默完成修复,在解决问题的同时又不影响用户使用体验。
附图说明
图1为本发明方法的实施例中的总流程图。
图2为本发明方法的实施例中Patch文件获取模块示意图。
图3为本发明方法的实施例中Patch文件匹配模块流程图。
图4为本发明方法的实施例中终端下载模块流程图。
图5为本发明方法的实施例中动态加载模块流程图。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步说明,但不限于此。
实施例:
一种Android智能终端系统软件热修复的方法,如图1-5所示,依次通过四个模块来完成,该四个模块包括Patch文件获取模块、Patch文件匹配模块、终端下载模块和动态加载模块,该方法具体步骤如下:
1)Patch文件获取模块:
该模块输入端是两个APK,包括原APK和更新后的APK,原APK即是需要修复的原版本系统软件,更新后的APK即是已修复完成的系统软件,一般已修复完成的系统软件版本号比原系统软件版本号高1,APK文件实际可看成一个zip文件,其包括res资源文件和class.dex文件,通过差分比较可以将有差别的文件部分保存到一个HashSet集合变量中,然后通过编译打包生成Patch文件,具体步骤为:
①将原APK和更新后的APK进行差分算法比较,将有差别的文件部分保存到一个集合变量中;
②通过编译并打包可生成Patch文件;
2)Patch文件匹配模块:
在服务器端将Patch文件进行匹配,匹配信息包括终端型号、终端系统版本号、终端网络区域,比如终端型号为H60-L02,终端系统版本号为H60-L02v100R001CHNC00B317,终端区域为山东济南;意思是终端型号为H60-L02且终端系统版本号为H60-L02v100R001CHNC00B317且终端网络区域为山东济南的终端才能收到此Patch文件。匹配信息不仅包括上述匹配属性还包括android版本、内核版本匹配属性,匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true,服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,具体步骤为:
①获取Patch所含系统应用的信息,包括应用名称、应用包名、应用签名;
②服务器端根据匹配信息进行Patch文件下发前的匹配,包括终端型号、终端系统版本号、终端网络区域、Android版本、内核版本匹配属性;
③匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true;
④服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,将Patch文件推送至智能终端;
3)终端下载模块:
当用户打开该系统应用时,首先判断终端当前连接的网络是否为本地网络,如果否,则自动配置本地网络,若是,则不用配置本地网络;随后再判断此时终端处理器是否处于空闲时段,当终端处理器处于空闲时段时,终端从服务器获取匹配标识flag的值和Patch文件,并在后台自动下载,具体步骤为:
①判断当前终端连接的网络是否为本地预设网络,如果是,则直接转入步骤②;如果否,则自动配置本地预设网络,然后转入步骤②;
②判断处理器此时是否处于忙时阈值之下,如果是,则转入步骤③;如果否,则转入步骤②,此时说明处理器正进行多任务执行,不适宜再为处理器增加任务,这样可避免处理器崩溃;
③智能终端从服务器获取flag的值和Patch文件,并在后台自动下载;
4)动态加载模块:
Patch文件下载后,首先终端获取Patch文件中的匹配信息,将匹配信息和终端的具体实际信息进行校验,判断Patch文件中的匹配信息和终端的具体实际设备信息是否相同,比如获取的Patch文件中的匹配信息是上述Patch匹配模块中的匹配信息,那么需要将终端的具体设备信息和此匹配信息进行比较:此终端型号是否为H60-L02,终端系统版本号是否为H60-L02v100R001CHNC00B317,终端区域是否为山东济南,但不仅局限于此匹配属性。如果前后信息都相同则校验成功,若不相同则说明此终端不在修复范围之内,则将Patch文件删除;校验成功后,待用户第二次启动该系统应用时,或者该系统应用通过BroadCast(广播)、Service(服务)被唤醒重新加载时,系统就会先加载Patch文件中的class文件,而不再加载原APK中的class文件,完成软件修复,具体步骤为:
①终端获取Patch文件中的匹配信息和终端的具体设备信息;
②将步骤①中的匹配信息和具体设备信息进行对比,校验二者是否相同,若相同,则转到步骤③;若不同,则删掉该Patch文件,流程结束;
③待用户重启该系统软件或者该系统软件被BroadCast(广播)或者Service(服务)所唤醒重新加载,系统会加载Patch文件中的class文件而不去加载原APK中的class文件,完成软件修复,流程结束。

Claims (1)

1.一种Android智能终端系统软件热修复的方法,依次通过四个模块来完成,该四个模块包括Patch文件获取模块、Patch文件匹配模块、终端下载模块和动态加载模块,该方法具体步骤如下:
1)Patch文件获取模块:
该模块输入端是两个APK,包括原APK和更新后的APK,原APK即是需要修复的原版本系统软件,更新后的APK即是已修复完成的系统软件,一般已修复完成的系统软件版本号比原系统软件版本号高1,APK文件实际可看成一个zip文件,其包括res资源文件和class.dex文件,通过差分比较可以将有差别的文件部分保存到一个HashSet集合变量中,然后通过编译打包生成Patch文件,具体步骤为:
①将原APK和更新后的APK进行差分算法比较,将有差别的文件部分保存到一个集合变量HashSet中;
②通过编译并打包可生成Patch文件;
2)Patch文件匹配模块:
在服务器端将Patch文件进行匹配,匹配信息包括终端型号、终端系统版本号、终端网络区域、Android版本及内核版本,匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true,服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,具体步骤为:
①获取Patch文件所含的系统应用信息,包括应用名称、应用包名、应用签名;
②服务器端根据匹配信息进行Patch文件下发前的匹配,包括终端型号、终端系统版本号、终端网络区域、Android版本、内核版本;
③匹配结果用flag表示,flag初始值为false,匹配成功后修改flag标识为true;
④服务器端将匹配信息注入到Patch文件中,然后进行Patch文件的下发,将Patch文件推送至智能终端;
3)终端下载模块:
当用户打开该系统应用时,首先判断终端当前连接网络是否为本地网络,如果否,则自动配置本地网络,如果是,则不用配置本地网络;随后再判断此时终端处理器是否处于空闲时段,当终端处理器处于空闲时段时,终端从服务器获取匹配标识flag的值和Patch文件,并在后台自动下载,具体步骤为:
①判断当前终端连接的网络是否为本地预设网络,如果是,则直接转入步骤②;如果否,则自动配置本地预设网络,然后转入步骤②;
②判断处理器此时是否处于忙时阈值之下,如果是,则转入步骤③;如果否,则转入步骤②,说明此时处理器正进行多任务执行,不适宜再为处理器增加任务,从而避免处理器崩溃;
③智能终端从服务器获取flag的值和Patch文件,并在后台自动下载;
4)动态加载模块:
Patch文件下载后,首先终端获取Patch文件中的匹配信息,将匹配信息和终端的具体设备信息进行校验,判断Patch文件中的匹配信息和终端的具体设备信息是否相同,如果前后信息相同则校验成功,若不同则说明此终端不在修复范围之内,则将Patch文件删除;校验成功后,待用户第二次启动该系统应用时,或该系统应用通过广播或服务被唤醒重新加载时,系统会先加载Patch文件中的class文件,而不再加载原APK中的class文件,完成软件修复,具体步骤为:
①终端获取Patch文件中的匹配信息和终端的具体设备信息;
②将步骤①中的匹配信息和具体设备信息进行对比,校验二者是否相同,若相同,则转到步骤③;若不同,则删除该Patch文件,流程结束;
③待用户重启该系统软件或者该系统软件被广播或服务唤醒重新加载时,系统会加载Patch文件中的class文件而不去加载原APK中的class文件,完成软件修复,流程结束。
CN201710129346.5A 2017-03-06 2017-03-06 一种Android智能终端系统软件热修复的方法 Pending CN107025119A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710129346.5A CN107025119A (zh) 2017-03-06 2017-03-06 一种Android智能终端系统软件热修复的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710129346.5A CN107025119A (zh) 2017-03-06 2017-03-06 一种Android智能终端系统软件热修复的方法

Publications (1)

Publication Number Publication Date
CN107025119A true CN107025119A (zh) 2017-08-08

Family

ID=59525586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710129346.5A Pending CN107025119A (zh) 2017-03-06 2017-03-06 一种Android智能终端系统软件热修复的方法

Country Status (1)

Country Link
CN (1) CN107025119A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109254797A (zh) * 2018-08-15 2019-01-22 Oppo广东移动通信有限公司 移动终端及其开机控制方法、存储介质
CN109614133A (zh) * 2018-12-11 2019-04-12 江苏电力信息技术有限公司 一种电力行业轻量级热发布移动应用的方法
CN110427198A (zh) * 2018-04-27 2019-11-08 中兴通讯股份有限公司 应用程序的热修复方法、装置及终端、存储介质
CN111385613A (zh) * 2018-12-29 2020-07-07 深圳Tcl数字技术有限公司 一种电视系统修复方法、存储介质及应用服务器
CN114020299A (zh) * 2021-11-16 2022-02-08 四川长虹电器股份有限公司 一种安卓设备系统文件的更新方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373399A (zh) * 2015-10-13 2016-03-02 广东欧珀移动通信有限公司 移动终端的系统升级方法和装置
CN106648724A (zh) * 2016-09-05 2017-05-10 Tcl集团股份有限公司 应用程序的热修复方法及终端

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373399A (zh) * 2015-10-13 2016-03-02 广东欧珀移动通信有限公司 移动终端的系统升级方法和装置
CN106648724A (zh) * 2016-09-05 2017-05-10 Tcl集团股份有限公司 应用程序的热修复方法及终端

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427198A (zh) * 2018-04-27 2019-11-08 中兴通讯股份有限公司 应用程序的热修复方法、装置及终端、存储介质
CN109254797A (zh) * 2018-08-15 2019-01-22 Oppo广东移动通信有限公司 移动终端及其开机控制方法、存储介质
CN109254797B (zh) * 2018-08-15 2022-01-14 Oppo广东移动通信有限公司 移动终端及其开机控制方法、存储介质
CN109614133A (zh) * 2018-12-11 2019-04-12 江苏电力信息技术有限公司 一种电力行业轻量级热发布移动应用的方法
CN111385613A (zh) * 2018-12-29 2020-07-07 深圳Tcl数字技术有限公司 一种电视系统修复方法、存储介质及应用服务器
CN111385613B (zh) * 2018-12-29 2022-07-08 深圳Tcl数字技术有限公司 一种电视系统修复方法、存储介质及应用服务器
CN114020299A (zh) * 2021-11-16 2022-02-08 四川长虹电器股份有限公司 一种安卓设备系统文件的更新方法

Similar Documents

Publication Publication Date Title
CN107025119A (zh) 一种Android智能终端系统软件热修复的方法
CN106484453B (zh) 一种实现系统升级的方法及装置
CN108037946B (zh) 一种应用程序热更新的方法、系统及服务器
WO2017166446A1 (zh) 漏洞修复方法和装置
CN107896244B (zh) 一种版本文件的分发方法、客户端及服务器
CN104252342A (zh) 一种可配置参数的嵌入式应用实现方法及装置
CN103064666A (zh) 一种多渠道软件发布方法和系统
CN105528225A (zh) 应用程序的加载方法及加载装置
CN108874437B (zh) 一种android应用程序的在线云更新方法
WO2020029967A1 (zh) 一种操作系统故障的修复方法和装置
CN107729045A (zh) 应用程序自动化版本发布方法及系统
CN107844306A (zh) 应用程序的修复方法、装置、存储介质及终端
CN106371875A (zh) 一种基于html5的手机应用更新机制
CN110297749B (zh) 一种测试新功能的方法及终端
CN107220169B (zh) 一种模拟服务器返回定制化数据的方法和设备
CN110209587B (zh) 安全芯片业务流程的测试方法及装置
CN105117340A (zh) 用于iOS浏览器应用质量评估的URL检测方法和装置
CN109710510B (zh) 代码提交方法、装置、设备及可读存储介质
WO2012139324A1 (zh) 一种处理业务应用的系统和方法
CN107729043B (zh) 增量升级包的校验方法、装置和计算机可读存储介质
CN107193582B (zh) 发布方法及系统
CN107528713A (zh) 一种数据转移sdk的升级方法及装置
CN109429260A (zh) 一种北向数据的校验方法及装置
CN106445601A (zh) 一种插件升级的方法及装置
CN114391136A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170808