如何在移动设备上获取可靠的内存信息?

马修·P。

我目前正在开发可在iOS和Android上运行的应用程序。该应用程序的核心是用C ++编写的,并随着时间的推移分配越来越多的内存。问题是我希望同时能够使用尽可能多的内存并确保应用程序的稳定性。

当然,要做到这一点,我需要知道我仍然可以使用多少内存。这样,如果过一会儿我将需要更多的资源,我可以停止分配,而不会被操作系统杀死或崩溃。

问题是,在阅读并尝试了不同的解决方案后,我的感觉是您动态获取的信息不够可靠。例如,在iOS上:

[NSProcessInfo processInfo].physicalMemory

这是我读过的似乎不可靠的典型示例/答案之一。似乎您无法动态获取足够的信息以确保您仍然有足够的内存,因为如果操作系统使用过多的内存并在此之前发送警告,则操作系统有时会终止您的应用程序。但这也会杀死其他应用程序,因此,当我收到第一个应用程序时停止运行似乎不是最佳解决方案。

看了很多文章后,我对这个话题有些困惑。有没有一种方法可以动态可靠地知道我的应用在iOS / Android上还剩下多少内存?还是这些操作系统的内存管理太不可预测了?

谢谢您的帮助 !

达米安

从设计上讲,操作系统禁止您用尽设备上的所有物理内存。而且,操作系统和运行于其上的其他应用程序的要求意味着您的应用程序可以舒适使用的内存量会随着时间而变化。

因此,询问剩下多少可用内存并不明智。您应该将应用程序设计为使用尽可能少的内存,然后进行优化,直到使用的内存少于此。

  • 积极地将内容缓存到磁盘。
  • 收听操作系统提供的有关内存不足的通知。
  • 设计应用程序的方式可以使您可以从全新启动中恢复其最后的UI状态:应用程序启动和任务切换以相同的方式呈现给用户,他们不需要也不需要知道它们之间的区别。

如果您确实使用越来越多的内存,则操作系统将尝试终止其他应用程序以为您的应用程序腾出空间。这意味着,再见Facebook,再见Twitter,再见邮件,再见联系人。您的用户注意到,他们选择不那么频繁地启动您的应用程序,或者因此而不太满意地对其进行审核。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在移动设备上启用长按

如何在bash上没有sudo命令的情况下获取内存信息

如何在移动设备上的JavaScript中获取整个文档的高度?

如何在真实移动设备上检查代码(移动调试)

如何在移动设备上的滑块上禁用图像映射

如何在 Wordpress 上禁用移动设备上的元素?

如何在QNX上获取进程内存

如何从移动设备上的移动设备获取console.log输出?

如何在抖动中获取设备的总内存大小?

如何在golang的容器中获取磁盘设备信息?

如何在Flutter中获取设备用户代理信息

如何在codenameone中获取移动信息?

如何在我的设备上保存/加载信息?

如何在移动设备上使用CSS截断文本

如何在移动设备上强制缩小或最小宽度?

如何在移动设备上对齐徽标和菜单图标

如何在移动设备上使用setTimeout播放音频?

如何在移动设备上强制桌面视图-Bootstrap?

如何在移动设备上的CanvasJS图表中启用滚动?

如何在移动设备上居中左对齐文本

如何在移动设备上实现按钮平滑的背景过渡?

如何在移动设备上显示不同的图像样式

如何在移动设备上拆分标题行

如何在移动设备上触发Mousedown / Mouseup触发?

在Corona中,如何在移动设备上缓存图像

如何在移动设备上显示Blogger评论表单?

如何在移动设备上制作CSS网格堆栈?

如何在移动设备上缩小标题?

如何在移动设备上显示全角网站