点击上方关注 “终端研发部”
设为“星标”,和你一起掌握更多数据库知识
Android手机是越用越卡。你要考虑到很多程序是有占用内存的bug的,呆着不动就会疯狂吃内存,并且在后台还费电
除此之外APP占用运存大小,也是随着智能手机成长的,以目前比较常用的APP为例,可以从表格看出,它们占用的运存是几百兆不等。
因为各种APP的功能越来越多,体积越来越大,每个APP都想竭尽所能压榨手机的算力,获取到手机中更多的资料和权限。
我想是出于这个目的:
真实内存满了以后就开始使用硬盘作为内存,此时系统提示内存不足请用户关闭后台程序以释放内存,如果用户不管则继续把程序填充到硬盘上,以避免系统崩溃
第二,他不干涉第三方应用的内存,第三方占用的内存由应用自己释放到闲置内存,系统只控制系统进程的内存回收
安卓的后台设置比较复杂,有的默认设置就是“后台智能管理”,即放在后台过几分钟就自动杀了。还有app能单独设置后台情况,总之设置就是比较混乱。但是后台只要你内存够,设置对了,基本是不会杀的
手机中有个特殊设定“自动管理”,一旦开启就使得华为手机会根据场景进行自动识别,会将一些不必要的应用关闭或是禁止开启,这样很容易让我们无法第一时间接收到信息,即人们常说的“杀后台”。但这样的方式还是有办法解决的
你以为16G运存是星辰大海?App开发者们早已把它当作“军备竞赛”的战场。如今的微信启动就吃掉1.2G内存,淘宝能占800M,更别提《原神》这种直接开启“内存黑洞模式”的选手。
当你在后台同时挂着微信、抖音、B站和三个文档编辑器时,16G内存就像早高峰的北京地铁——物理空间再大也架不住全员肉身贴贴。
更魔幻的是,某些App为了保命,会偷偷用1像素悬浮窗伪装成“前台应用”,或是启动时顺带唤醒全家桶App,活像在内存里搞传销拉人头
所以留着利大于弊!
不然的话就会出现一个问题:
后台 App 暂停线程,每隔一会儿用小核唤醒下服务,
耗性能越多,下次唤醒时间更久,倒逼开发者省资源,
这样如何解决?
问题的点不在“内存满了之后技术实现上为什么要杀后台”这里,这件事情也可以是个产品取舍,不用深入到技术细节。说到都16G的这个语境下,可以在“现在手机厂商的杀后台策略在内存空的时候也会激进的杀”已经“现在的app占用了过多内存“
以三星为例,Urbandroid Team 称,三星的部分机型在升级到基于 Android 9 的 One UI 后「杀后台」现象变得尤为严重,自适应电池(Adaptive Battery)机制相比原生 Android 变得尤为激进,3 天内没有启动过的应用甚至无法从后台再次启动。
从4.4版本上来看,基本上每个版本都有人说Android不卡了不杀后台之类的话,但这个问题到现在都没解决掉。
不过是Android这边硬件跟上来了,而不是他系统跟上来了,杀后台就杀吧,总不至于十几个后台全给我杀了,也无非是重载慢一点,再严重一些也不过是onSaveInstanceState保存不了后台状态,重开就是了。
剩余4GB左右,也会出现后台被系统“杀”了,这是为什么呢?其实这个前面所说的后台因内存不足而被系统结束不同,内存充足但同样被系统“杀”后台的情况,其实只能说是“开屏”
不管如何,最简单的使用统一推送国内都搞不起来,所有app都巴不得留在你后台,这也是苹果和国外谷歌的一大优势。
总结一句话:
内存越大,App越浪,系统越慌。或许唯一解药,是等待那个传说中能终结乱象的“统一推送联盟”早日修成正果,或者...直接投奔苹果阵营前先默念三遍“库克大法好”?