[发明专利]一种客户端应用程序局部更新方法及装置有效
申请号: | 201410561887.1 | 申请日: | 2014-10-21 |
公开(公告)号: | CN105589701B | 公开(公告)日: | 2019-03-08 |
发明(设计)人: | 胡文江 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙) 11363 | 代理人: | 逯长明;许伟群 |
地址: | 开曼群岛*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 客户端 应用程序 局部 更新 方法 装置 | ||
本申请实施例公开了一种客户端应用程序局部更新方法及装置。利用Android系统框架的特性和JNI机制,客户端应用程序从更新包获取用于Java目标方法后,将Java目标方法传递至本地层并保存,并将Java目标方法与JNI本地回调方法关联,当客户端应用程序在Dalvik虚拟机上运行,需要调用待替换的Java方法时,不再调用原始的待替换的Java方法,而是调用JNI本地回调方法,JNI本地回调方法根据客户端应用程序传入的参数调用所述Java目标方法,完成对客户端应用程序代码的局部更新。本申请提出的客户端应用程序代码局部更新方法,可以精准到Java类的Method级别。
技术领域
本发明涉及软件技术领域,尤其涉及一种客户端应用程序局部更新方法及装置。
背景技术
智能终端的普及不仅推动了移动互联网的发展,也带来了客户端应用程序的爆炸式增长。客户端应用程序是安装在智能终端上的应用程序,为用户提供上网、娱乐、商务和生活事件处理等功能。为了吸引用户,提高用户体验,客户端应用程序供应商不断开发新的客户端应用程序,或者对客户端应用程序不断添加新的功能。但在客户端应用程序的快速迭代开发中,经常会遇到由于测试不到位或者测试用例覆盖不全,导致客户端应用程序发布后才暴露出问题,或者后期服务端业务逻辑发生变更导致客户端应用程序的功能不可用,此时就不可避免地要对客户端应用程序进行更新。
客户端应用程序的更新一般分为两种:一种是全量更新,即重新发布一个完整的客户端应用程序版本,用户安装新的客户端应用程序来实现更新,但这种方式过程繁琐,更新周期长,适用于客户端应用程序改动很大的情况;另一种是局部更新,只对客户端应用程序的部分代码进行替换,这种方式过程简单,时间短,适用于客户端应用程序改动少的情况,这也是客户端应用程序最常出现的情况。
对基于Android系统(安卓)的智能终端而言,客户端应用程序使用java语言开发。最常用的局部更新技术便是使用Java的类动态加载技术,亦即使用Google公司提供的两个ClassLoader(类加载)类来实现类的加载替换,从而实现客户端应用程序的局部更新,这种方式虽然简单,但是只能做到类(Class)级别的替换。
发明内容
本申请提供一种客户端应用程序局部更新方法及装置,使得客户端应用程序的局部更新更为便利。
根据本申请实施例的第一方面,提供一种客户端应用程序局部更新方法,包括:
客户端应用程序将Java目标方法传递至本地层;
在本地层保存所述Java目标方法,将JNI本地回调方法与所述Java目标方法进行关联;
客户端应用程序在虚拟机上运行时,根据所述JNI本地回调方法调用所述Java目标方法。
可选的,所述的客户端应用程序局部更新方法,还包括:
客户端应用程序将待替换的Java方法传递至本地层;
在本地层保存所述待替换的Java方法,将JNI本地回调方法与所述待替换的Java方法进行关联;
客户端应用程序在虚拟机上运行时,当需要返回待替换的Java方法时,根据所述JNI本地回调方法调用所述待替换的Java方法。
可选的,客户端应用程序使用钩子方法将Java目标方法和待替换的Java方法传递至本地层。
可选的,所述的客户端应用程序局部更新方法,在客户端应用程序将Java目标方法传递至本地层之前,还包括:
当客户端应用程序查询到存在方法的更新时,从更新包中获取Java目标方法。
其中,根据所述JNI本地回调方法调用所述Java目标方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410561887.1/2.html,转载请声明来源钻瓜专利网。