[发明专利]应用的功能扩展方法、装置、终端设备和存储介质有效
申请号: | 201711329401.1 | 申请日: | 2017-12-13 |
公开(公告)号: | CN109918059B | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 秦静超 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 功能 扩展 方法 装置 终端设备 存储 介质 | ||
1.一种应用的功能扩展方法,其特征在于,包括:
在应用运行过程中,建立存储在第一地址的目标方法和存储在第二地址的替换方法;
交换所述目标方法和替换方法的存储地址,并建立存储在第二地址的目标方法和存储在第一地址的替换方法之间的对应关系;
执行所述第一地址的替换方法,并依据所述替换方法回调第二地址的目标方法,执行所述目标方法;
其中,交换所述目标方法和替换方法的存储地址,包括:
创建存储目标方法的第三地址,将所述第一地址的目标方法复制到所述第三地址,将所述第二地址的替换方法复制到所述第一地址,将所述第三地址的目标方法复制到所述第二地址,删除所述第三地址中的目标方法。
2.根据权利要求1所述的方法,其特征在于,所述创建存储目标方法的第三地址,将所述第一地址的目标方法复制到所述第三地址,将所述第二地址的替换方法复制到所述第一地址,将所述第三地址的目标方法复制到所述第二地址,包括:
通过接口查询目标方法,确定存储所述目标方法的第一地址;
通过接口查询替换方法,确定存储所述替换方法的第二地址;
向内存申请地址空间,确定所述地址空间对应的第三地址;
复制所述目标方法,并将复制的目标方法存储到所述第三地址的地址空间中;
将第二地址的替换方法复制到第一地址,将第三地址的目标方法复制到第二地址。
3.根据权利要求1所述的方法,其特征在于,所述建立存储在第二地址的目标方法和存储在第一地址的替换方法之间的对应关系,包括:
将所述存储替换方法的第一地址作为查询键,将所述存储目标方法的第二地址作为查询值,建立所述查询键和查询值的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述执行所述第一地址的替换方法,并依据所述替换方法回调第二地址的目标方法,执行所述目标方法,包括:
从所述第一地址中获取替换方法,执行所述替换方法;
基于所述替换方法的第一地址和所述对应关系,通过接口回调存储在第二地址的目标方法;
执行所述目标方法。
5.根据权利要求4所述的方法,其特征在于,所述基于替换方法的第一地址和所述对应关系,通过接口回调存储在第二地址的目标方法,包括:
通过调用接口,确定所述替换方法所在的第一地址;
以所述第一地址为查询键查询所述对应关系,确定依据所述第一地址对应的第二地址;
通过接口回调存储在第二地址中的目标方法。
6.根据权利要求1-5任一所述的方法,其特征在于,还包括:
创建切入点,所述切入点用于指示替换方法和目标方法的执行。
7.根据权利要求1-5任一所述的方法,其特征在于,还包括:
编写待执行方法并添加接口调用信息,生成相应的替换方法。
8.根据权利要求1-5任一所述的方法,其特征在于,所述接口包括:Java本地接口JNI。
9.一种应用的功能扩展装置,其特征在于,包括:
建立模块,用于在应用运行过程中,建立存储在第一地址的目标方法和存储在第二地址的替换方法;
处理模块,用于交换所述目标方法和替换方法的存储地址,并建立存储在第二地址的目标方法和存储在第一地址的替换方法之间的对应关系;
执行模块,用于执行所述第一地址的替换方法,并依据所述替换方法回调第二地址的目标方法,执行所述目标方法;
其中,所述处理模块,包括:
交换子模块,用于创建存储目标方法的第三地址,将所述第一地址的目标方法复制到所述第三地址,将所述第二地址的替换方法复制到所述第一地址,将所述第三地址的目标方法复制到所述第二地址,删除所述第三地址中的目标方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711329401.1/1.html,转载请声明来源钻瓜专利网。