详细科普:Windows 10 的后台机制

zcxsythenew UID.911687
2016-07-17 发表

本帖最后由 zcxsythenew 于 2016-7-17 19:51 编辑

反对此答案:***链接停止解析***
理由:某些内容解释不清楚。

现代文阅读(9分)

专业名词(此部分在 MSDN 官网上使用英文,本贴转为以下中文)
1. 终止(Not Running)
2. 运行(Running)
3. 挂起(Suspended)

三角关系
1—>2 单向
2<—>3 双向
3—>1 单向


启动和激活
对于开发者,这两个是不一样的。对于普通用户来说,启动和激活几乎就是一回事,一起来说。

预启动
对于常用的应用,Windows 10 会在后台主动启动它们,并在启动不久之后进入挂起状态。(***链接停止解析***)
在用户调用该应用时,它通过从挂起状态切换到运行状态而得到恢复,这比冷启动应用的速度要快得多

普通启动和激活(省略)

挂起和恢复(***链接停止解析***)

当用户将一个应用移动到后台时,Windows 将等待几秒,以查看用户是否打算立即返回该应用,以便在用户有此打算时快速切换。 如果用户在此时间段内没有切换回,Windows 将挂起该应用。

当你的应用被挂起后,系统会尝试将你的应用及其数据保留在内存中。 但是,如果系统没有资源将你的应用保存在内存里,则将终止你的应用。 应用不会收到它们被终止的通知,所以你保存应用数据的唯一机会是在挂起期间。当应用确定它在终止后被激活时,它应该加载它在挂起期间保存的应用程序数据,以使应用处于与其挂起之前相同的状态。

通常,你的应用应该在处理暂停事件时立即保存其状态并释放其资源和文件句柄,并且此代码最多只需 1 秒便可完成工作。 如果应用未在数秒内从暂停事件中返回,则 Windows 假设应用已停止响应并终止该应用。


1. 以下选项中与原文不符的是( )(3 分)
A. Windows 10系统在应用的运行方面分为:挂起(Suspending),终止(未运行Not Running),运行(Running)。
B. 挂起时,如果系统缺少足够的资源,就会终止应用。
C. 从挂起到运行比从终止到运行快得多。
D. 当用户离开一个应用时,它不会被立即挂起。

2. 以下选项中与原文不符的是( )(3 分)
A. 理论上只需 1 秒即可完成暂停事件的处理。
B. 当用户离开一个应用几秒后,系统会把应用状态以文件形式保存在内存中,待用户回到应用时系统会重新读取文件,这就是所谓的正在恢复。
C. Windows 10 可以流畅地快速切换回刚刚离开的应用。
D. 应用可能在挂起期间从内存中被清除而不收到通知。

3. 根据本文,可以推断以下选项中与原文不符的是( )(3 分)
A. 智机社区(***链接停止解析*** )、网易云音乐等在后台挂久了,再次恢复时不能回到上次的页面,可能是没有处理好暂停事件的原因。
B. 如果一个应用在开启时清除动态磁贴,则应该在相关的启动代码中进行某些判断。
C. Windows 的某些应用可以自动启动。
D. iOS 使用更加智能化的后台机制,iOS 在平时会主动收集用户习惯,而 Windows 不能。

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
LolitaconX UID.1209120
2016-07-17 回复

一个也不会做:)

Lonely§Dusk UID.443175
2016-07-17 使用 Lumia 1520 回复

开发者说的不会骗大家的

AEA UID.998129
2016-07-17 回复

路过支持下楼主~{:6_234:}

zcxsythenew UID.911687
2016-07-17 回复

Quote***链接停止解析***
一个也不会做:)


答案:电脑版网页查看点评。

kentshaw UID.964879
2016-07-17 使用 Lumia 1520 回复

确实 网易云优化的不够好 谢谢科普了

yanchao891012 UID.726627
2016-07-17 使用 Lumia 930 回复

支持楼主

tingtongku UID.992431
2016-07-17 回复

这个不错,但我觉得很多时候后台程序并不是保存在内存中,而是保存在了虚拟内存中,不然1G内存设备恢复时哪来这么多正在恢复呢?

tingtongku UID.992431
2016-07-17 回复

BAB?
感觉一题不对啊

zcxsythenew UID.911687
2016-07-17 回复

Quote***链接停止解析***
这个不错,但我觉得很多时候后台程序并不是保存在内存中,而是保存在了虚拟内存中,不然1G内存设备恢复时哪 ...


(1~3) GB 内存不用,非要用 256 MB 的虚拟内存,微软为何如此折腾自己?真的是虚拟内存的原因?

zcxsythenew UID.911687
2016-07-17 回复

本帖最后由 zcxsythenew 于 2016-7-17 19:59 编辑

Quote***链接停止解析***
BAB?
感觉一题不对啊


今天19:51之前1题有些错误,现在已经被修正了。
PS 恭喜你,你认为没有问题的两个题全错……

tingtongku UID.992431
2016-07-17 回复

BDD

tingtongku UID.992431
2016-07-17 回复

Quotezcxsythenew 发表于 2016-7-17 19:57
今天19:51之前1题有些错误,现在已经被修正了。
PS 恭喜你,你认为没有问题的两个题全错…… ...


好像有两个答案被修改了?另外iOS后台的运行机制我也不清楚,所以只好乱挑一个咯,不过这次改对了吧

zcxsythenew UID.911687
2016-07-17 回复

本帖最后由 zcxsythenew 于 2016-7-17 23:20 编辑

Quote***链接停止解析***
好像有两个答案被修改了?另外iOS后台的运行机制我也不清楚,所以只好乱挑一个咯,不过这次改对了吧 ...


1—3 ABD || 1. A. Suspending —> Suspended || 2. B. 正在恢复不仅仅是系统的原因,可能是应用被终止后由应用执行终止后恢复的操作。 || 3. D. Windows 可以收集用户习惯,参考预启动部分。

tingtongku UID.992431
2016-07-17 回复

Quotezcxsythenew 发表于 2016-7-17 19:56
(1~3) GB 内存不用,非要用 256 MB 的虚拟内存,微软为何如此折腾自己?真的是虚拟内存的原因? ...


并不清楚,不过目前体验还是很好的
那这样说来虚拟内存又有什么作用呢?
因为之前用925时拿Process Viewer看过后台进程,全是放在U盘(虚拟内存挂载的盘符里)

somnus2053 UID.448427
2016-07-17 回复

Quotetingtongku 发表于 2016-7-17 20:06
并不清楚,不过目前体验还是很好的
那这样说来虚拟内存又有什么作用呢?
因为之前用925时拿Process Viewe ...


百度一下桌面系统的虚拟内存作用你就了解。手机跟电脑一样,内存够大的时候可以不需要虚拟内存。925才1g内存,减去系统占用与保留部分,剩下不多的给APP用,所以把虚拟内存改大才可以在后台保留更多的APP,不然前面的APP就会挂起了。虚拟内存虽然读取速度没有RAM快,但系统也会当做内存来用,所以后台很多APP的时候前面的APP是不会被挂起。

忘水草 UID.2837260
2016-07-17 使用 Lumia 638 回复

感谢楼主科普。
有个问题想请教下:我发现有些UWP应用有时候在启动的时候会卡在欢迎画面等半天都进不去应用里面,必须终止应用再重新启动才恢复正常。这个肯定不是个例,不少UWP都有这个问题,PC端和手机端都会出现,PC端出现次数相对频繁。

看了楼主的科普,我猜测是不是跟UWP的预启动机制有关?因为我发现出现这种情况的App貌似都比较常用。会不会是系统在后台预启动该应用的时候用户刚好启动应用,导致出错?

小白一枚,求解惑。

tingtongku UID.992431
2016-07-17 回复

Quotesomnus2053 发表于 2016-7-17 21:18
百度一下桌面系统的虚拟内存作用你就了解。手机跟电脑一样,内存够大的时候可以不需要虚拟内存。925才1g ...


这些我倒是知道但我想表达的是,之前我观察到的现象是没有程序挂起后放在内存里

laughskydragon UID.483703
2016-07-17 使用 Lumia 1520 回复

这个才是正确答案,有些开发者没有正确理解,反而骂系统**,实在不该

zcxsythenew UID.911687
2016-07-17 回复

Quote忘水草 发表于 2016-7-17 21:21
感谢楼主科普。
有个问题想请教下:我发现有些UWP应用有时候在启动的时候会卡在欢迎画面等半天都进不去应用 ...


通常是 Window.Current.Activate() 代码没有正常运行导致的。如果开发者一点都不知道预启动,那么这个代码就会在启动时(不管是不是预启动)默认执行。而预启动时间应该是很短的,用户踩中概率比较低。

试过几次 Windows 10 应用秒开,比如智机社区,应该是预启动的功劳。而智机社区没有处理好暂停事件,料想也不会处理预启动。所以我认为这应该与预启动无关。原因我不清楚……

zcxsythenew UID.911687
2016-07-17 回复

Quotekklove66 发表于 2016-7-17 22:36
反对,windows可以搜集用户习惯,自动优化app


反对个啥,这是一道选择题……你选对了……

zhdl889 UID.993974
2016-07-17 使用 Lumia 650 回复

感谢出题。。。只得了三分啊啊呜呜呜T_T

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报