1

运行环境:
设备信息:HUAWEI MatePad Pro
机器型号:MRR-W29
系统版本:HarmonyOS 2.0.0

问题:使用 AndroidStudio 运行我们的应用程序,它在 1GB 内存可用之前就崩溃了。

系统内存不足图

崩溃日志信息:

Could not allocate memory: System out of memory!
Trying to allocate: 25310B with 16 alignment. MemoryLabel: DynamicArray
Allocation happened at: Line:75 in 

Memory overview
[ ALLOC_DEFAULT ] used: 600916429B | peak: 944389110B | reserved: 607460466B 
[ ALLOC_TEMP_JOB ] used: 0B | peak: 0B | reserved: 3145728B 
[ ALLOC_TEMP_BACKGROUND_JOB ] used: 0B | peak: 0B | reserved: 1048576B 
[ ALLOC_GAMEOBJECT ] used: 5812624B | peak: 5863041B | reserved: 6525010B 
[ ALLOC_GFX ] used: 23019376B | peak: 24012532B | reserved: 23072348B 
[ ALLOC_TEMP_THREAD ] used: 33012B | peak: 0B | reserved: 3047424B 

Androidmanifest.xml Application: android:largeHeap="true" HarmonyOS系统如何突破App内存限制,或者有其他解决方案,以及解决问题的思路?提前感谢您的任何指导或帮助。

4

1 回答 1

0

在 Android 上,内存分配并不像“有内存,所以应用程序可以全部占用”那么简单。许多算法正在评估您的应用程序行为,如果它没有充分理由占用大量内存,或者它快速分配内存 - 往往会发生内存不足异常。据我所知,从应用程序的角度来看,这并不是真正的确定性。系统端的内存分配基本上是实现细节,因此它可能因提供者而异。没有标准的行为如何在这里处理应用程序(据我所知,我在这里可能错了)。

使用android:largeHeap="true"基本上表明您应该查看您的应用程序内存使用情况。您是否正在做一些真正需要超过 1GB 内存的事情?看起来超级腥。即使在桌面应用程序上,它也会引发很多标志

于 2021-08-26T13:52:38.560 回答