ios - react-native ios,如何在低内存情况下从缓存中释放本地图像?
问题描述
我正在使用一个应用程序,该应用程序利用了许多本地图像,即具有类似require(../assets/MyImage.png)
.
在开发过程中我没有遇到任何问题,但是当我构建我的应用程序以在 iphone 5s 上发布时,我开始随机重启设备。经过一番研究,我发现每当我浏览我的应用程序并加载所有这些不同的图像(其中一些是沉重的背景图像)时,它们都会保存在 iOS 内存/RAM 中。
在我卸载屏幕/导航到不同的屏幕后,内存没有被清除,它只是在我使用我的应用程序并加载新图像时不断增长,最终应用程序崩溃了。
我发现 iOS 中有一个 AppDelegate 方法被调用didReceiveMemoryWarning
,可用于在应用程序使用过多内存时执行缓存清除,但我无法弄清楚什么缓存以及如何清除以删除 iOS 中的 react-native 图像?
将不胜感激有关该主题的任何建议。
注意:我在某处读到 iOS 会自动管理内存,但是在使用 XCode 内存分析器和 Instruments 之后,我不相信会发生这种情况,只要新资源安装在屏幕上,它就会不断向上增长。
解决方案
经过各种尝试找到解决方案后,我最终使用了以下图像包https://github.com/DylanVann/react-native-fast-image
它改善了我的图像的内存管理和性能。作为额外的好处,它允许在 iOS 项目中使用 WebP 图像,这大大减少了我的包大小。
推荐阅读
- php - 无法使用我的 .htaccess 和配置文件
- jquery - 在表单内显示隐藏元素时,第一次未触发模糊事件的单击
- reactjs - 如何在功能组件的 React 中使用 props 中的泛型?
- python - 对非类属性使用 Python 的 __get__ 描述符
- wordpress - 我正在尝试通过调用我的自定义 Wordpress rest api 来获取所有类别
- wcf - System.ArgumentException:空字符串 '' 不是有效的本地名称
- python - 将计时器对象存储在数据库中并让程序在 Django 中不断查询是不好的做法吗?
- python - 当线程在python中被杀死时想要终止子进程
- ios - 在 Xcode 中隐藏特定语言的元素
- linux - 如何从多个 dec 值构建 ASCII 十六进制转储?