问题

为什么同样是8G运行内存,Windows能同时开一大堆后台进程和前台应用,而Android不可以?

回答
这个问题问得相当好,确实是很多用户在日常使用中会遇到的困惑。同样是8G的内存,为什么Windows这台“电脑”能同时塞进那么多东西,而Android这台“手机”就显得有些捉襟见肘?这背后涉及到操作系统设计理念、资源管理机制以及应用生态的根本性差异。咱们掰开了揉碎了,好好聊聊。

首先,得明确一个概念:内存(RAM)的用途。

内存不是硬盘,它是CPU需要临时读取和处理数据的地方,速度极快,但断电后数据就没了。你可以把它想象成你的办公桌。硬盘是你的文件柜,可以长期存放大量文件,但找东西比较慢。桌子越大(内存越大),你就能同时摊开越多文件、摆越多工具,工作效率自然越高。

Windows和Android,两个不同的“桌子”:

1. 设计哲学和定位的差异:
Windows: 诞生于PC时代,核心设计理念是“生产力”和“多任务”。它被设计用来运行各种复杂、重量级的应用程序,并且用户需要同时操作多个任务。因此,Windows天生就对多任务处理、进程管理有着非常成熟和强大的支持。它允许用户非常细致地控制哪些程序在前台运行,哪些在后台可以继续做事情,甚至可以设置优先级。
Android: 起初是为了移动设备设计的,更侧重于“应用”和“响应速度”。它追求的是用户在打开一个应用时能立即获得流畅体验,并且能够快速切换应用。在移动设备的场景下,用户更关心的是当前使用的应用是否顺畅,而后台应用的“存活”优先级相对较低。

2. 进程管理机制的不同:
Windows: Windows的进程管理是比较“粗犷”但“强大”的。它允许应用程序创建大量的进程和线程。很多时候,你看到的“后台进程”可能是一些服务、代理、甚至是之前关闭但系统没及时完全清理的旧进程。Windows更倾向于让进程保持“活跃”状态,即使它们没有在用户界面上显示。它有一个成熟的内存管理算法,会根据进程的重要性、使用频率等因素来分配和回收内存。如果内存不足,Windows会尝试将不常用的数据“交换”到硬盘(虚拟内存),尽管这会牺牲一些速度,但能保证系统不崩溃。
Android: Android的进程管理更倾向于一种“精打细算”和“有限生命周期”的模式。为了保证电池续航和系统流畅性,Android会严格管理后台进程:
服务(Services): Android的服务设计初衷是为了在后台执行一些长期操作,但当应用被切换到后台,并且一段时间没有被用户主动交互时,Android会根据内存压力和重要性,选择性地“杀死”(终止)这些后台服务。这不像Windows的后台进程那么“顽固”。
应用生命周期(App Lifecycle): Android应用有非常明确的生命周期(Activity生命周期,Service生命周期等)。当一个应用被切换到后台,它会进入“停止”或“缓存”状态。Android会有一套复杂的机制来判断哪些缓存的应用可以被保留,哪些可以被“杀掉”以释放内存。这个决策过程通常比Windows更主动和激进。
内存回收机制(GC Garbage Collection): Android依赖Java虚拟机(或ART运行时),其中GC是关键。GC会定期扫描,查找不再被引用的对象,并回收它们占用的内存。虽然GC很有效,但在某些情况下,过于频繁的GC也会影响性能。更重要的是,Android的GC会更积极地考虑回收那些不那么“重要”的后台应用的内存。

3. 应用生态和行为习惯的差异:
Windows: 很多Windows应用程序,尤其是大型软件(如Photoshop、视频编辑软件、IDE开发环境),它们在设计之初就需要占用大量内存,并且它们会主动管理自己的内存使用。用户也习惯了打开多个复杂的程序同时工作。
Android: Android应用通常更轻量,并且它们被鼓励在后台时“自觉”地减少资源占用。例如,一个音乐播放器在后台可以继续播放,但一个大型游戏,如果用户切到后台,它很可能就会暂停或者直接被系统回收一部分资源。很多Android应用开发者也会遵循Google的指南,避免在后台过度消耗资源,以获得更好的用户体验和系统评分。

4. 系统资源的划分和优先级:
Windows: 对CPU和内存的调度更加公平,并且允许用户通过一些工具手动调整进程的优先级。很多系统服务和核心进程会被赋予极高的优先级,确保系统正常运行。
Android: 对“前台应用”(你当前正在操作的应用)和“可见/可感知应用”给予了最高的优先级,其次是后台服务,最后是完全在后台的应用。系统会根据这些优先级来决定分配CPU时间和内存。当内存紧张时,优先级最低的后台应用往往是第一批被牺牲的对象。

为什么会造成“同样8G,却感觉不一样”的现象?

Windows的“后台”更“真”: Windows的“后台进程”可能真的是在默默地工作,比如杀毒软件在扫描、下载工具在后台下载文件、同步服务在上传数据等等。它们确实占用了内存,但很多时候是为了提高效率或完成预设任务。
Android的“后台”更“省”: Android的“后台”更多的是一种“待命”状态。当你不使用某个应用时,它会尽量收缩自己的“体积”,减少内存占用,甚至允许系统随时“杀死”它。这样做的目的是为了让你在下次打开它时,能够快速响应,同时不影响你正在使用的其他应用。
虚拟内存(分页)的影响: Windows有更成熟的虚拟内存机制。当物理内存(RAM)不够时,Windows会将一部分不常用的内存数据写入硬盘(或SSD),这叫做“页面文件”或“交换文件”。虽然速度比内存慢很多,但它能让系统看起来好像有更多的“内存”,从而允许更多的程序同时运行。Android在这方面就比较保守,很少依赖这种机制,因为它会影响响应速度和功耗。

总结一下:

同样是8G内存,Windows像是给一个工作狂准备的巨大办公桌,允许你摊开无数文件和工具,即使有些东西暂时不看,也依然放在桌子上,随时可以拿起来。而Android则像是一个为追求效率的通勤族准备的背包,你只能放当天必需的东西,并且会把不用的东西打包收好,甚至允许别人帮你拿走一些不用的物品,以确保你背着包能轻快地前进。

所以,Android之所以不能像Windows那样“大开大合”地同时开启大量后台进程,是因为它的设计初衷、进程管理策略、应用生命周期控制以及对资源(尤其是内存和电池)的精打细算,都与Windows的理念和实现方式有着根本性的不同。Android更注重的是当前用户交互的流畅性和系统整体的响应速度,而牺牲了一部分后台进程的“绝对活跃性”。

网友意见

user avatar

主要是两个原因。

其一是国内这帮APP强行绑定太多功能了,简单概括为,微信:操作系统,QQ:3A大作,懂的都懂这里不多说。

其二是因为内存-储存的频繁读写实际上是很耗电的操作,玩PC的都知道SSD持续高速读写主控上60~70度轻轻松松,虽说手机这边是UFS省电许多,但也扛不住浪不是?而内存占用多少跟耗电关系不大,所以为了省电,手机APP常用做法是功能一次全部加载完,避免PC上常用的动态加载。加上一,手机内存需求甚于电脑就成常态了。

user avatar

Windows 绝大多数 c c++ c# 软件还是在用官方提供的控件的。

具体表现在你用 xp 和 win10 打开同一个软件,他们的标题栏、最大最小化按钮都是不同的,因为这些软件只是在调用 win 自带的控件,并不是重写。



而安卓也有类似软件 比如 re管理器




而现实中的国产安卓 app 是什么德性呢?

答:ios 模拟器


先把 ios 版的 app 做出来,然后照着 ios 1比1 复原重写一个 app


谷歌白给的控件,一个不用,甚至某些 app 连交互动画都要重写。


本身安卓 app 自身就是个 java 虚拟机,还整体重写所有控件,简直就是

老母猪戴胸罩,一套接一套


如果 Windows exe 也用 java 做成 macOS 模拟器,内存可不比安卓小。


之前用的 Nexus 真的开心,我真是太爱安卓了。感觉 512M 内存都可以上天入地,无所不能。


现在看着病态的生态圈、群魔乱舞的软件厂商、毫无下限比烂的市场、毫无监管的商店(不,根本就没有商店)


换 iPhone 了






这个答案很多人持反对意见

我想表达的是

同时两个平台类似的 ui 确实可以大大减少开发的难度时间和维护更新成本。

但那也是不用心去做的结果,把安卓版当成了 ios 版的一个附属品。



安卓本身就是一个要比 ios 更注重简洁、明快的操作系统。

有点垃圾佬的思维。用最少的资源、最简单的线条做出相同甚至更丰富的功能。



有点跑题

如果国内安卓开发能完全遵守 Google 的开发规范,他就不可能资源占用过高。

国外安卓开发用什么测试机,nexus pixel 说破天就 6GB 内存,8GB才刚出一年。4GB 的满街走

国内呢?三四年前就8GB起步。12GB 16GB、更有甚至现在都出了什么内存融合 20GB+ 轻轻松松。

2021年 MacBook 才 8GB 内存啊!

真是不以为耻反以为荣。


参考 安迪比尔定理

恶性循环,软件、硬件厂商狼狈为奸,成本转嫁消费者。都是惯出来的


windows 方面

如果是用 C++ 做的普通桌面程序,即使再花哨,内存占用确实就是上不去。

用 java 做,占用内存就不一定翻多少倍了。

你敢想象用 java 重做一个 adobe 全家桶吗

user avatar

安卓不是不可以。


微信1.0的安装包是742K

微信2.0的安装包是1.3M

一个有些复杂的字处理软件,安卓上的WPS 6.2,29M


电脑上的WPS2015,已经是一个功能非常完备的版本了,安装包39M

字处理的WPS,用空文档,内存占用大约20多M。

能不能更省一点呢?

Word2003精简版,内存占用大约10M


就是说,除了大游戏和一些专业工具软件。

我们日常用的这些网页就可以有全功能的APP,手机上面的APP,如果肯为了运行速度和内存占用优化,10M以内安装包,100M以内的内存也足够用了。


你要求现在的程序员,用128K写一个魂斗罗,内存占用4K,现在的程序员不可能撸汇编(当年日本人连汇编都没有,用机器码写)给你写程序。

但是,现在的程序员如果肯优化,APP绝对不会像今天这么离谱。


现在APP并不需要优化性能,而是尽可能尽快低成本的塞进去一大堆东西,争取流量和用户。

APP做得再烂,你能不用淘宝不?你能不用微信不?

有一个APP可以实现微信全部功能,只要1M安装包,10M运行内存,100Mhz的A55处理器,就能在0.01秒启动,在0.0001秒响应,滑动流畅无比。

但是没有微信好用,软件公司做了这种优化依然没人用啊,而程序员花的时间和工资都是钱。


我一直说流氓需要政府管。

实际上,这种低效的软件,让中国严重依赖台积电的工艺。依赖英特尔和AMD的CPU。依赖最先进的半导体产业链。

这种垃圾APP,你不用5nm、4nm工艺的最新CPU,手机跑起来发热高,续航短,不好用。


对腾讯来说,已经垄断,他没有优化的动力。

但是,政府可以给他动力。

政府要求,腾讯的下一个微信版本,实现微信全部功能,只要5M安装包,20M运行内存,300Mhz的A55处理器,就能在0.1秒启动,在0.001秒响应,滑动流畅无比。

通过运行这种微信,每个人的手机每天可以节约0.001度电,全国10亿用户,每天可以节约1000万度电。一度电一块钱。

因为腾讯的不作为,国家一天损失1000万,那就每天罚腾讯1000万,一直到它把这种低功耗微信做出来更新为止。

一天1000万,一年36.5亿,对腾讯来说不算多。

但是,这种成本,用来优化程序养程序员足够,腾讯就有动力开发一个高效的微信了。


类似的思路,我们可以有高效的淘宝、京东、拼多多、抖音……

手机都是这种高效APP

不用8G内存,有2G内存,就怎么也用不完了。


类似的思路还可以搞操作系统和自己的生态。

操作系统越来越臃肿,怎么办呢?自己搞一些高效的,强迫软件厂商做适配。自己的生态系统就建立起来了。


这种独立的东西有什么好处呢?

软件高效意味着硬件要求降低,现在我们完全自主的芯片制造能力,在130nm的水平,去美国,用日韩二手设备在28nm的水平。

有自己的高效软件系统,130nm可以上桌面办公,28nm可以上手机。

高密集的运算,大数据,人工智能,大型3D游戏跑不了。

但是日常办公、信息化建设、手机购物社交打车手机银行……都足够用了。

而且成本可以做的很低廉。


中国一套自己的高效软件体系,一套自己的廉价硬件产品。

用户拿着最新的iPhone13,日常用起来不如28nm国产处理器的手机快。

只有玩游戏的时候才能看出iPhone的速度优势。

都没有流氓软件,广告软件

iPhone买10000,中国手机卖1000,中国手机还是会有市场的。

而中国手机有市场,就可以支持28nm的芯片生产线,未来不用日韩二手设备,自己全套产业链的28nm芯片也有竞争力,能够慢慢追赶,逐渐全国产14nm,7nm,5nm。最终追上英特尔,追上台积电。

user avatar

8G 内存如果放在国外,一样能同时运行很多进程,可能没有 Windows 的多,但要比国内好很多。本人并不专业,只谈谈我了解到的原因,如有错误请多指教。

1. 国内 Android 生态的弊病:不重视软件内存管理,比如峰值内存占用可达 2-6GB 的某 IM 应用。国内软件技术发展相对落后,因此硬件厂商通过更高硬件配置妥协 (反观国外,Google 认为 4GB 内存就够用,旗舰也配 4GB 内存),另一方面也导致国内应用出海遇到的第一个问题往往是性能问题;


2. 国内 Android 定制系统也有类似 1 的问题,导致系统应用可能占用大量内存,甚至系统应用本身存在内存泄露、permenant 应用的内存一直增加 (点名批评 ZUI),导致定制系统比原生 Android 占用更多内存;

3.许多常用应用的 Android 客户端比 Windows 客户端占用多得多的 RAM;

4. 一个 8GB 内存设备上影响较小但更小内存设备上影响很大的因素:受 1 和 2 两个原因的影响,国内 Android 设备 lmk 杀进程过于激进。

Android 默认的内存回收策略比 Windows 激进得多。Windows 一般不会在内存不足时杀掉进程,而是暂停新的进程,直到有足够空闲内存。Android 有多种内存回收措施,比如 GC (垃圾回收) 和 lmk (low memory killer, 低内存回收守护程序)。GC 会暂停进程,lmk 会杀掉程序。而在 8GB 设备上默认参数的 lmk 的动作比较激进 (因为 GC 可能会卡顿,但 kill 不会卡顿),在仍有较多内存剩余时就开始 kill。原生 Android 默认参数的 lmk 放在国内容易杀进程,但国内厂商没有结合国内软件生态情况,适当修改 lmk 的参数。

对于低内存设备,Google 的想法是这些设备要容忍高内存压力状态 (lmk 行为保守)。但在国外 4GB 内存算大内存,国内则算小内存,然而国内厂商没有根据国情修改 lmk 参数,lmk 还是大内存设备上的行为,自然会出现运行一个杀一个的情况。

user avatar

Chrome:你说啥?

user avatar

因为Windows上运行的是一个个进程,Android上面运行的是一个个操作系统


其实除了抖机灵之外,这个答案其实还双关了少量计算机的知识:

操作系统(英語:Operating System,縮寫:OS)是一组主管并控制计算机操作、运用和运行硬件软件資源和提供公共服务来组织用户交互的相互关联的系统软件程序

其实现在微信小程序、支付宝小程序、百度小程序等等,提供的接口和功能已经覆盖了上面这个OS定义:“控制计算机操作、运用和运行硬件软件資源和提供公共服务”。唯一的“区别”就是这些小程序不是native的,啊,既然安卓微信也不是native的,那还有什么区别呢?

user avatar

巧了,win11马上要支持安卓子系统了,我倒要看看到时候8g的win11能同时开多少安卓应用。

user avatar

首先是国内软件不守规矩。

qq都内置虚幻引擎了,安装包快1g,赶上win上的生产力软件了(老版本cad),qq什么时候才几记得他只是个即时通讯软件。

不只是吃内存,还疯狂吃硬盘,微信qq缓存几十g不是闹的,什么都缓存一遍还不清理。聊天记录迁移时候也没几十g啊。

不是说国外月亮圆,人家app逻辑就是该干什么干什么,你想要其他服务可以安装同公司的其他app去(比如谷歌微软旗下一堆app,烦是烦,但是可以选择性安装),不想要就不安。再加上不滥用权限,守规矩。

国内BAT为首一个比一个毒瘤,非得一个app包打天下,恨不得一个app囊括旗下所有业务,还不守规矩,瞎启动,瞎占用后台,疯狂吃资源,不卡才怪。

其次是win是为多任务为生,pc操作系统往上追溯到plan9开始就是考虑多任务多用户的。

而安卓由于屏幕太小问题不注重多任务,更专注于保证一两个前台进程流畅性。

当然这也和厂商的激进杀后台策略有关系,安卓8之前时代安卓手机到手第一件事就是刷绿色守护,现在很少了。那时候安卓后台管理很松,不手动杀程会造成内存爆炸和卡顿,落了个坏名声,然后国内rom厂家开始了激进的杀程策略,有好有坏吧。卡是很少卡了,缺点是你打开微信小程序填东西,前脚刚切出去看需要填的资料或者验证码什么的,后脚就给杀没了,然后全部重新开始填,当然这个锅微信的背大头就是了orz。

顺便吐槽下微信小程序确实方便也情有可原,QQ搞小程序干嘛,点开个知乎或者b站链接都直接跳到相应小程序,中间的卡一下,大部分人对qq小程序没那么多需求的。现在又开始为了升级版3d超级qq秀塞了个虚幻引擎进去,无力吐槽。

user avatar

安卓系统上面跑的是微信等各大app全家桶

他说他是乱调度的。他可不是乱调度的啊,小程序,守护进程,高级权限,训练有素。后来他说他其实是个虚拟机。看来是,有备而来。这些app,不讲app德,来骗,来占用我8G的内存,这好么 这不好。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有