[发明专利]用于辅助位图对象内存分配的方法及装置有效
申请号: | 201910527016.0 | 申请日: | 2019-06-18 |
公开(公告)号: | CN110362311B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 王佐 | 申请(专利权)人: | 创新先进技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30;G06F12/02;G06F9/50 |
代理公司: | 北京永新同创知识产权代理有限公司 11376 | 代理人: | 林锦辉 |
地址: | 英属开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 辅助 位图 对象 内存 分配 方法 装置 | ||
1.一种用于辅助位图对象内存分配的方法,包括:
获取位图对象在应用程序Java层中的数据结构中的第一地址字段的位置信息,所述位图对象在应用程序原生层的数据结构中的第二地址字段的位置信息和第三地址字段的位置信息以及在所述应用程序Java层的内存空间中创建的第一字节型数组对象的数组对象信息,所述数组对象信息包括内存大小和数据结构信息,所述第一字节型数组对象用于存储所述位图对象的像素数据,所述第一地址字段和所述第二地址字段用于存储所述位图对象所使用的字节型数组对象的虚拟地址,以及所述第三地址字段用于存储全局引用指向的字节型数组对象的虚拟地址;
基于所述第一字节型数组对象的数组对象信息,在所述应用程序原生层的内存空间中创建第二字节型数组对象,所述第二字节型数组对象具有与所述第一字节型数组对象相同的内存大小和数据结构;以及
使用所述第二字节型数组对象的虚拟地址覆盖所述第一地址字段、所述第二地址字段和所述第三地址字段处存储的虚拟地址,
其中,在所述第二字节型数组对象创建之前,所述位图对象使用所述第一字节型数组对象,所述第一地址字段和所述第二地址字段用于存储所述第一字节型数组对象的虚拟地址;
在使用所述第二字节型数组对象的虚拟地址进行覆盖之后,所述位图对象使用所述第二字节型数组对象,所述第一地址字段和所述第二地址字段用于存储所述第二字节型数组对象的虚拟地址。
2.如权利要求1所述的方法,其中,所述第一地址字段的位置信息、所述第二地址字段的位置信息和所述第三地址字段的位置信息使用相对于各自的数据结构的起始位置的偏移量来表示。
3.如权利要求1所述的方法,还包括:
在所述第一地址字段、所述第二地址字段和所述第三地址字段处存储的虚拟地址被覆盖后,经由应用程序虚拟机执行针对所述第一字节型数组对象的回收操作。
4.如权利要求1所述的方法,还包括:
在所述第一地址字段、所述第二地址字段和所述第三地址字段处存储的虚拟地址被覆盖后,在所述位图对象被使用时,由应用程序虚拟机使用所述第三地址字段处存储的虚拟地址来创建全局引用。
5.如权利要求1所述的方法,还包括:
在应用程序虚拟机执行针对所述第二字节型数组对象的虚拟地址的对象地址检查时,使得所述应用程序虚拟机跳过所述对象地址检查。
6.如权利要求5所述的方法,其中,使得所述应用程序虚拟机跳过所述对象地址检查包括:
利用二进制代码注入机制来使得所述应用程序虚拟机跳过所述对象地址检查。
7.如权利要求1所述的方法,还包括:
在应用程序虚拟机执行针对所述第二字节型数组对象的回收操作时,使得所述应用程序虚拟机按照预置的数组对象回收逻辑执行回收操作。
8.如权利要求7所述的方法,其中,使得所述应用程序虚拟机使用设定的数组对象回收逻辑来执行针对所述第二字节型数组对象的回收操作包括:
利用二进制代码注入机制来使得所述应用程序虚拟机按照预置的数组对象回收逻辑执行回收操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于创新先进技术有限公司,未经创新先进技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910527016.0/1.html,转载请声明来源钻瓜专利网。