【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种内存空间分配方法及装置。
技术介绍
目前,安卓(Android)应用程序在运行中是基于Java语言层进行数据存储的,在该语言层进行数据存储时会有一定的内存限制,一般限制大小为16MB或24MB。当应用程序涉及到多媒体资源的资源处理时,会消耗大量的内存资源,很容易超过该内存限制,引发应用程序可用内存耗尽(OutOfMemory,OOM),导致程序异常退出。现有的解决方案一般采用缓存、压缩图像、降低图像质量等手段来减少内存占用。这些减少内存占用的方式都是基于对应用程序输出的待存储数据进行处理来实现的,无法从本质上提高应用程序的可用内存。
技术实现思路
本专利技术实施例提供一种内存空间分配方法及装置,用以突破应用程序的内存限制,提高应用程序的可用内存。本专利技术实施例提供一种内存空间分配方法,该方法应用于安装有安卓Android操作系统的终端,包括:在运行应用的过程中,生成第一编程语言层的待存储数据;所述第一编程语言层为Java层;在确定所述应用当前在第一编程语言层能够利用的内存占比低于设定阈值后,为所述待存储数据分配基于第二编程语言层的内存空间;所述第二编程语言层为Native层;在所述第二编程语言层,将所述待存储数据写入分配的所述内存空间。可选地,在所述第二编程语言层,将所述待存储数据写入分配的所述内存空间之后,还包括:在所述第二 ...
【技术保护点】
一种内存空间分配方法,其特征在于,该方法应用于安装有安卓Android操作系统的终端,包括:在运行应用的过程中,生成第一编程语言层的待存储数据;所述第一编程语言层为Java层;在确定所述应用当前在第一编程语言层能够利用的内存占比低于设定阈值后,为所述待存储数据分配基于第二编程语言层的内存空间;所述第二编程语言层为Native层;在所述第二编程语言层,将所述待存储数据写入分配的所述内存空间。
【技术特征摘要】
1.一种内存空间分配方法,其特征在于,该方法应用于安装有安卓Android
操作系统的终端,包括:
在运行应用的过程中,生成第一编程语言层的待存储数据;所述第一编程
语言层为Java层;
在确定所述应用当前在第一编程语言层能够利用的内存占比低于设定阈
值后,为所述待存储数据分配基于第二编程语言层的内存空间;所述第二编程
语言层为Native层;
在所述第二编程语言层,将所述待存储数据写入分配的所述内存空间。
2.如权利要求1所述的方法,其特征在于,在所述第二编程语言层,将
所述待存储数据写入分配的所述内存空间之后,还包括:
在所述第二编程语言层,将分配的所述内存空间转换为字符串形式的句柄
反馈到第一编程语言层,并保存该句柄与所述内存空间的对应关系;
在所述第一编程语言层,当需要从内存中读取所述待存储数据时,将包括
所述句柄的内存访问指令指示给所述第二编程语言层;
在所述第二编程语言层,根据保存的句柄与内存空间的对应关系,将所述
句柄对应的内存空间中的数据反馈到所述第一编程语言层。
3.如权利要求2所述的方法,其特征在于,将所述句柄对应的内存空间
中的数据反馈到所述第一编程语言层之后,还包括:
在所述第一编程语言层,将包括所述句柄的内存释放指令指示给所述第二
编程语言层;
在所述第二编程语言层,根据保存的句柄与内存空间的对应关系,删除所
述句柄对应的内存空间中的数据。
4.如权利要求2或3所述的方法,其特征在于,在所述第二编程语言层,
将所述待存储数据写入分配的所述内存空间,包括:
在所述第二编程语言层,将所述待存储数据进行序列化处理后后写入分配
\t的所述内存空间;
在所述第二编程语言层,根据保存的句柄与内存空间的对应关系,将所述
句柄对应的内存空间中的数据反馈到所述第一编程语言层,包括:
在所述第二编程语言层,根据保存的句柄与内存空间的对应关系,将所述
句柄对应的内存空间中的数据进行反序列化处理后反馈到所述第一编程语言
层。
5.如权利要求1所述的方法,其特征在于,在确定所述应用当前在第一
编程语言层能够利用的内存占比低于设定阈值后,为所述待存储数据分配基于
第二编程语言层的内存空间,包括:
在确定所述应用当前在第一编程语言层能够利用的内存占比低于设定阈
值后,通...
【专利技术属性】
技术研发人员:严欣,
申请(专利权)人:中国移动通信集团公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。