[发明专利]加载和运行应用程序的方法、装置及相关产品在审
申请号: | 202010294919.1 | 申请日: | 2020-04-15 |
公开(公告)号: | CN113535137A | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 何忠政;黄海涛;程帅;史晓华;胡健 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F8/71 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加载 运行 应用程序 方法 装置 相关 产品 | ||
1.一种加载和运行应用程序的方法,应用于终端设备,其特征在于,所述方法包括:
加载所述应用程序的类时,根据所述类及所述类的祖先类的实例成员的信息计算得到所述类对应的对象大小,其中,所述实例成员的信息包括实例成员的存量布局信息和增量布局信息;
根据所述对象大小创建所述类对应的对象。
2.根据权利要求1所述的方法,其特征在于,在所述对象的对象布局中,从所述对象的基地址开始按照如下顺序连续排布:先是按照继承链从祖先类依次到所述类的存量布局,然后是按照继承链从所述类依次到所述祖先类的增量布局。
3.根据权利要求1或2所述的方法,其特征在于,加载所述应用程序的类还包括:
根据所述增量布局信息计算得到所述对象的增量布局中每个类的反向偏移量,所述类的反向偏移量用于表示在所述增量布局中每个类的起始地址相对于所述对象的结束地址的偏移量。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述对象的基地址、所述对象大小、所述增量成员所属的类的反向偏移量以及所述增量成员的第一偏移量计算所述增量成员的地址,以访问所述增量成员;
其中,所述增量成员的第一偏移量是指所述增量成员的地址相对于所述增量成员所属类的增量布局的起始地址的偏移量。
5.根据权利要求4所述的方法,其特征在于,所述对象的基地址为低地址端,在所述类的增量布局内部,增量成员按照增加的时间顺序从高地址到低地排布,
所述根据所述对象的基地址、所述对象大小、所述增量成员所属的类的反向偏移量以及所述增量成员的第一偏移量计算所述增量成员的地址,包括:
根据以下公式计算增量成员的地址,
add=obj+OBs-offset1-offset2;
其中,add表示增量成员的地址,obj表示所述基地址,OBs表示所述对象大小,offset1表示所述第一偏移量,offset2表示所述增量成员所属的类的反向偏移量。
6.根据权利要求4所述的方法,其特征在于,所述对象的基地址为低地址端,在所述类的增量布局内部,增量成员按照增加的时间顺序从低地址到高地排布,
所述根据所述对象的基地址、所述对象大小、所述增量成员所属的类的反向偏移量以及所述增量成员的第一偏移量计算所述增量成员的地址,包括:
根据以下公式计算增量成员的地址,
add=obj+OBs-offset2+offset1;
其中,add表示增量成员的起始地址,obj表示所述基地址,OBs表示所述对象大小,offset1表示所述第一偏移量,offset2表示所述增量成员所属类的反向偏移量。
7.根据权利要求1-4任意一项所述的方法,其特征在于,所述加载应用程序的类还包括:
根据增量成员的第一偏移量和所述增量成员所属类的反向偏移量计算所述增量成员的第二偏移量,并将所述增量成员的第二偏移量保存至偏移量表,
其中,所述增量成员的第一偏移量是指所述增量成员的地址相对于所述增量成员所属类的增量布局的起始地址的偏移量。
8.根据权利要求7所述的方法,其特征在于,根据所述对象的基地址、所述对象大小、所述增量成员所属类的反向偏移量以及所述增量成员的第一偏移量计算所述增量成员的地址,包括:
从所述偏移量表中获取所述增量成员的第二偏移量;
根据以下公式计算所述增量成员的地址:
add=obj+OBs-offset3;
其中,add表示增量成员的起始地址,obj表示对象的基地址,OBs表示所述对象大小,offset3表示所述增量成员的第二偏移量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010294919.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于电子钱包的汇款方法、系统和电子设备
- 下一篇:生产监控方法和装置