我正在使用的应用程序可以对许多本地图像进行最终处理,例如具有require(../assets/MyImage.png)
之类的来源的图像。
在开发过程中,我没有遇到任何问题,但是,当我构建要在iPhone 5s上发布的应用程序时,我开始随机重启设备。经过一番研究,我发现每当浏览应用程序并加载所有这些不同的图像(其中一些是较重的背景图像)时,它们都会保存在iOS内存/ RAM中。
卸载屏幕/导航到其他屏幕后,内存并未清除,在我使用我的应用程序并加载新图像并最终导致应用程序崩溃时,它一直在增长。
我发现iOS中有一个名为didReceiveMemoryWarning
的AppDelegate方法,当应用程序使用过多内存时,该方法可用于执行缓存清除,但是我无法弄清楚什么缓存以及如何清除缓存删除iOS中的本机图像?
非常感谢您对该主题的任何建议。
注意:我读过某个地方,iOS会自动管理内存,但是在使用XCode内存探查器和Instruments之后,我不相信这种情况的发生,只要在屏幕上安装新资源,它就会持续增长。 / p>
答案 0 :(得分:1)
在尝试寻找解决方案的各种尝试之后,我最终使用了以下图像包https://github.com/DylanVann/react-native-fast-image
它改善了内存管理和图像性能。作为额外的好处,它允许在iOS项目中使用WebP图像,从而大大减少了我的捆绑包大小。