[发明专利]应用启动方法及装置、计算机存储介质及设备有效
申请号: | 201710780649.3 | 申请日: | 2017-09-01 |
公开(公告)号: | CN109426546B | 公开(公告)日: | 2022-10-25 |
发明(设计)人: | 闫石;石延龙 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 华进联合专利商标代理有限公司 44224 | 代理人: | 何平;邓云鹏 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 启动 方法 装置 计算机 存储 介质 设备 | ||
1.一种应用启动方法,其特征在于,应用于终端,包括以下步骤:
获取应用启动指令;
查找所述应用启动指令所对应的虚拟机实例的地址;
按所述虚拟机实例的地址,查找所述虚拟机实例中指向预设固定值的预设字段的地址;
根据所述预设字段的地址,以及预设字段与类验证模式字段的相对位置关系,确定所述类验证模式字段的地址;
将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值;
调用类加载函数,通过所述类加载函数并根据所述类验证模式字段的地址所指向的值,加载所述应用启动指令所对应的类。
2.根据权利要求1所述的应用启动方法,其特征在于,所述按所述虚拟机实例的地址,查找所述虚拟机实例中指向预设固定值的预设字段的地址的步骤包括:
初始化临时指针,所述临时指针指向所述虚拟机实例的地址;
将所述临时指针加1;
读取所述临时指针指向的地址所指向的值;
当所述临时指针指向的地址所指向的值与所述预设固定值不同时,返回所述将所述临时指针增加1的步骤;
当所述临时指针指向的地址所指向的值与所述预设固定值相同时,将所述临时指针指向的地址作为所述预设字段的地址。
3.根据权利要求2所述的应用启动方法,其特征在于,所述将所述临时指针加1的步骤之后还包括:记录所述临时指针增加的次数;
当所述临时指针指向的地址所指向的值与所述预设固定值不相同,且所述增加的次数小于预设次数时,返回所述将所述临时指针增加1的步骤;
当所述临时指针指向的地址所指向的值与所述预设固定值不相同,且所述增加的次数达到所述预设次数时,停止对所述预设字段的地址的查找。
4.根据权利要求1所述的应用启动方法,其特征在于,所述将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值的步骤包括:
当所述类验证模式字段的地址所指向的值为默认值时,将所述类验证模式字段的地址所指向的值修改为所述用于在加载类时跳过类验证的值;所述默认值在所述虚拟机实例启动时配置且用于触发类验证。
5.根据权利要求1所述的应用启动方法,其特征在于,所述查找所述应用启动指令所对应的虚拟机实例的地址的步骤包括:
调用文件打开函数打开虚拟机核心动态库,获得所述虚拟机核心动态库的句柄;
调用地址获取函数并根据所述虚拟机核心动态库的句柄,在所述虚拟机核心动态库中,查找所述应用启动指令所对应的虚拟机实例的地址。
6.根据权利要求1-5中任意一项所述的应用启动方法,其特征在于,所述查找所述应用启动指令所对应的虚拟机实例的地址的步骤之前,还包括步骤:
响应所述应用启动指令,获取虚拟机版本号;
当所述虚拟机版本号对应为Dalvik虚拟机时,进入所述查找所述应用启动指令所对应的虚拟机实例的地址的步骤。
7.一种应用启动装置,其特征在于,应用于终端,包括:
指令获取模块,用于获取应用启动指令;
第一地址查找模块,用于查找所述应用启动指令所对应的虚拟机实例的地址;
预设查找模块,用于按所述虚拟机实例的地址,查找所述虚拟机实例中指向预设固定值的预设字段的地址;
地址确定模块,用于根据所述预设字段的地址,以及预设字段与类验证模式字段的相对位置关系,确定所述类验证模式字段的地址;
修改模块,用于将所述类验证模式字段的地址所指向的值,修改为用于在加载类时跳过类验证的值;
加载模块,用于调用类加载函数,通过所述类加载函数并根据所述类验证模式字段的地址所指向的值,加载所述应用启动指令所对应的类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710780649.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据通信方法及装置
- 下一篇:一种虚拟机的热迁移方法、装置和系统