博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于手机,不得不提的事情
阅读量:6038 次
发布时间:2019-06-20

本文共 738 字,大约阅读时间需要 2 分钟。

hot3.png

苹果给每个应用程序设置20M的内存警告量,30M的闪退量,游戏会略微放款10~20M,需要向系统申请。

这一条说明除了系统本身占用内存以外,任何程序几乎都不可能占用超过50M内存。←实际上,不是单个程序存在50M的内存使用上限,而是单线程使用上限是50M,同一个程序可以加载多个线程,同一个程序可以使用多个线程。剩下的我就不细说了。
关于后台,他是如下解释的:
苹果设计本身就没有后台,当你把程序最小化的时候程序就暂停了一切活动。如果应用想继续运行一部分功能的话,必须向系统申请运行时长,或者调用系统功能,比如音乐播放。由此跟安卓需要大内存来支持后台运行的区别就显而易见了,因为安卓是在Linux上跑的Java虚拟机,他的内存管理机制是申请之后就一直在那放着,等一个Runtime周期结束之后会自动收回不必要的内存。

关于大型软件退回到主页以后再次进入不是最小化,而是直接重启的原因,我本来认为是内存溢出导致程序崩溃,在闪退以后释放内存并重新加载导致的程序重启,不过我朋友不同意此观点,解释如下:

“大型游戏崩溃是因为绝大部分程序员是从Java转过来的,在进入背景的时候,有一个application Did Backgroung这么一个方法,他们会在这里进行想要的内存申请工作,以便达到他们期待的后台运行的目的,但是在applicationDidBecameActive的时候却没有把握好页面加载的时机,一次性把全部资源加载进内存导致超出系统允许范围,就崩溃了。”这句话结合本文第三段来看,确实很好的解释了为什么有的游戏会崩溃,尤其是多平台游戏,而苹果独占游戏几乎没有闪退的原因。

 

 

转载于:https://my.oschina.net/tidyboy/blog/489010

你可能感兴趣的文章
移动互联网,入口生死战
查看>>
nginx面试常问题目
查看>>
制作ubuntu系统u盘镜像,以及安装
查看>>
JAVA多线程深度解析
查看>>
Kafka High Level Consumer 会丢失消息
查看>>
时间轴
查看>>
java 获取系统当前时间的方法
查看>>
Ubuntu 10.04升级git 到1.7.2或更高的可行方法
查看>>
Spring Security4实战与原理分析视频课程( 扩展+自定义)
查看>>
消息队列服务器 memcacheq的搭建
查看>>
VMware Horizon View 7.5 虚拟桌面实施咨询与购买--软件硬件解决方案
查看>>
RabbitMQ如何保证队列里的消息99.99%被消费?
查看>>
第一周博客作业
查看>>
thinkpython2
查看>>
String、StringBuffer和StringBuilder的区别
查看>>
oracle recyclebin与flashback drop
查看>>
svmlight使用说明
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>