» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 有没有高手从技术角度解释下ios的后台机制?

引用:
原帖由 zhouli520 于 2012-9-10 15:00 发表
不过这机制的弊病还是有的,对于特定软件来说,比如需要用到下载的软件,就无法在你切出去的时候继续下载了以及一些其他的需要可持续性任务处理的软件
iOS4也提供了任务完成的后台机制,app在退出时可以向系统申请说我有未完成的任务,那么系统会允许让这个app的未完成任务运行到结束。但原则上说这个机制是用于给一些较大型的app在退出后完成更多的收尾工作而设计的,在iOS4之前,每个app在用户按home键退出后只有5秒的时间来保存当前的工作,5秒后就被系统强制终止了。


TOP

引用:
原帖由 beterhans 于 2012-9-10 15:34 发表
posted by wap, platform: iPhone

iOS 除了系统自带的app 有特权 其他没有 除非越狱
后台下载其实有
itunes
app store 这种必须有后台下载

有些杂志也有后台下载不过要去 settings 里开启
报刊杂志的后台下载是iOS5开始提供的系统级特权,这类app可以在有wifi连接的前提下自动后台更新,让用户一起床就发现机器上多了新的杂志:D

其它独立开发的杂志app就没这个特权了



TOP

引用:
原帖由 wpang 于 2012-9-10 15:50 发表
posted by wap, platform: iPhone

管后台的API里有个好像叫Task Completion吧,可以用来干这个的,不过只能十分钟,十分钟以后再点进去一次就再十分钟。
一些剪贴板应用都靠这个真后台的,不过因为只能十分钟所以都 ...
好象是十五分钟吧,这个api本身就不是用来让app常驻后台的,那些app算是巧用。


TOP

posted by wap, platform: iPhone
引用:
原帖由 @小文  于 2012-9-10 15:59 发表
好象是十五分钟吧,这个api本身就不是用来让app常驻后台的,那些app算是巧用。
600秒~一般都拿它下载上传用的~

TOP

引用:
原帖由 hypergiant 于 2012-9-10 15:05 发表

PS:猴机没那个技术,还真做不出来苹果的"多任务",把电脑的多任务惯性思维整到手机上了,电脑可以24小时插电,手机怎么办?难道装个和电池?
http: ...
这东西纯看设计者的考虑。本身并不是什么外星技术。

TOP

posted by wap, platform: iPhone

iphone按home后即时存档的速度很快,所以再次切换原先的app给你一种多任务的错觉。这也就解释了ipod内存少一半,也可以流畅运行大部分app的事实。

TOP

posted by wap, platform: iOS

@夏斯沃勒 mark

TOP

posted by wap, platform: iPhone
引用:
原帖由 @zhouli520  于 2012-9-10 15:00 发表
不过这机制的弊病还是有的,对于特定软件来说,比如需要用到下载的软件,就无法在你切出去的时候继续下载了以及一些其他的需要可持续性任务处理的软件
但是很奇怪,同步推是可以在后台下载的。点完下载出去看网页,过一会就下好了

TOP

无语了,你们android内存回收机制都没搞清,一个个还说的像真的一样。

android谁跟你说越用越卡的?4.X会根据内存阀值自动关闭闲置进程,非当前运行程序都是以后台服务形式存在,所需CPU资源非常少。如QQ后台运行本身程序耗电仅只占很少部分,大多数电力都是被3G数据通信消耗。

我oneX都连续开机2个月了,一样非常流畅跟新启动没什么区别。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @u571  于 2012-9-11 09:04 发表
无语了,你们android内存回收机制都没搞清,一个个还说的像真的一样。

android谁跟你说越用越卡的?4.X会根据内存阀值自动关闭闲置进程,非当前运行程序都是以后台服务形式存在,所需CPU资源非常少。如QQ后台运行 ...
你忘了 有种东西叫国产软件 他们可不受规矩

TOP

引用:
原帖由 beterhans 于 2012-9-11 09:08 发表
posted by wap, platform: iPhone

你忘了 有种东西叫国产软件 他们可不受规矩
三棒和HTC的4.0系统会实时监控后台运行情况,占着茅坑不拉屎的进程过一段时间会自动杀掉

TOP

安卓为什么要那么大内存都不流畅,苹果那么点内存却如此流畅。其实这是源于两种系统内存管理机制的差异造成的。

我来说一下安卓的内存管理机制吧。安卓设计之初CPU性能、ROM读写性能低等问题,作为一个开放性系统,为了匹配市场上更多的硬件,采用了内存预读的方式解决CPU性能不足的问题。具体做法就是根据用户行为将可能会用的软件尽量预读进内存里面,当切换到已经预读的程序时,CPU就无需加载软件直接开始运算软件。当运行需要内存的时候,将会释放掉挂起的进程、部分预读的程序以提供足够的运行空间。

这就是为什么安卓用户的内存永远都塞得满满的原因。如果你用高端机可能感觉不到,但是如果你用512M或者更低的内存的时候这种机制你就会感觉很明显。比如你在玩了大型软件后退会桌面,你会发现桌面的插件在重新启动。没错,你桌面的插件被释放了。重新启动的速度很抓狂吧,那是因为CPU太慢了。安卓用户不是内存不够,而是CPU太慢,如果你的CPU足够快,那么就是256M的内存也能爽到飞起,当然你的手机是不会用i7或者至强处理器的。

至于这个机制为什么会导致运行大型程序会卡,平时使用也卡。
第一,我没有读过预读内存的逻辑,不负责地估计是:当你链接网络时,系统认为你会使用互联网相关的程序,然后加载所有带有互联网接入权限的软件……OK,在国内,基本上90%的程序都会有。
第二,运行所需的内存,是刚好分够给你的,比如你的程序需要50M,就给你分51M,运行所需内存突然要求增加,CPU就要重新释放和申请新的内存,这是一个不小的开销。
第三,系统释放的进程,可能正是你需要的,就像你运行大型软件,然后随时切回桌面。系统不认为桌面插件是不可释放的,然后咔嚓了,切回桌面的时候就得重新载入。

推送机制
谷歌和苹果一样,都是有服务器推送的,不同的是谷歌404了,安卓剩下3种推送机制,IBM的平台,推,拉。常用的是拉取,程序定时查询数据,然后软件给系统下拉栏推信息,这是一种伪推送方式。需要耗电耗流量驻留内存吃CPU。

安卓机制那么垃圾还是苹果的黑科技?
思路不一样。苹果挂起就是挂起,不会后台,极个别程序除外。安卓是可以多进程后台的,如果你的windows不准多进程后台你肯定会疯掉,winxp出过一个标准版,限制5进程的。结果它死了。苹果则是圈定你就只能单进程了,以确保资源有限的情况下程序流畅。

哪种好?
各有优劣。现在机能有限的情况下ios从用户体验上占优。但可以看到苹果在硬件性能提升的情况下逐步放开多进程。安卓则是在硬件逐步提高后用户体验也随之提高。现在用三儿子是很舒心的。以后手机将取代电脑成为个人信息中心,单进程永远只是个过渡方案且无法适应未来的需要。

对于安卓用户的建议
看了很多tg安卓用户,发现都有杀进程的习惯。我只能说停手吧。因为你在杀,有空闲内存系统就会往里填,这是一个死循环,你的电池就这样循环没了。不要保留windows的内存洁癖习惯。如果为了确保大型软件流畅适当的杀一下就比较合理。
另一个就是不要装乱七八糟的软件,不用就卸载,免得被加载。
本帖最近评分记录
  • 三无 激骚 +1 精品文章 2012-9-11 18:46

TOP

引用:
原帖由 c月光咖啡 于 2012-9-11 09:42 发表
哪种好?
各有优劣。现在机能有限的情况下ios从用户体验上占优。但可以看到苹果在硬件性能提升的情况下逐步放开多进程。安卓则是在硬件逐步提高后用户体验也随之提高。现在用三儿子是很舒心的。以后手机将取代电脑成为个人信息中心,单进程永远只是个过渡方案且无法适应未来的需要。
这就是为什么苹果每年要随着iPhone的升级而升级iOS,时代在变,硬件在变,系统跟着变就ok了。方案永远是在进化中的,不存在什么过渡方案,只存在当前而言最合适的方案。

TOP

引用:
原帖由 小文 于 2012-9-11 09:55 发表

这就是为什么苹果每年要随着iPhone的升级而升级iOS,时代在变,硬件在变,系统跟着变就ok了。方案永远是在进化中的,不存在什么过渡方案,只存在当前而言最合适的方案。
“最”适合又被苹果代表了
本帖最近评分记录

TOP

qq也不能后台的,那个是apns推送,开放给第三方

TOP

发新话题
     
官方公众号及微博