首页»版块 历史内容 历史内容 历史分类 安卓运存机制,不是越大就越流畅

安卓运存机制,不是越大就越流畅

[复制帖子标题和链接]

68808

   发表于 2017-11-7 18:45:02 属地未知 来自:浏览器
首先,看一段摘自网络的文章:(来源于网络 幽灵刽子手LMK ,如有版权请联系我删除)android基于Linux内核,很多系统也都基于Linux内核。但是android的特别之处除了开发上的特点以外,还有一个就是程序在运行时的行为和以往我接触到的程序运行机制有很大不同。在传统PC机或者其他一些手机上,用户对应用程序有绝对的掌控权,在应用程序的系统菜单上选择“退出”或者“关闭”之类的选项会直接杀死进程,而在android系统中不是这样的。在android中,应用程序的生命周期并不是由应用程序自身直接控制的,而是由系统,当系统需要释放内存来运行新进程或者保证某些后台进程和前端进程顺利执行的时候才会释放相应应用程序的资源,这个释放过程有一个重要性的层次。
android中进程的层次如下(重要性由高到低):

1、前端进程。顾名思义,前端进程就是目前显示在屏幕上和用户交互的进程,在系统中前端进程数量很少,而这种进程是对用户体验的影响最大,只有系统的内存稀少到不足以维持和用户的基本交互时才会销毁前端进程。因此这种进程重要性是最高的。

2、可见进程。可见进程也拥有一个可视化的界面,只是目前不是最上层界面(最上层界面在前端进程里面),可见进程一般调用了OnPause(),可见进程比前端进程重要性低,但是在交互方面影响还是很大,因为用户可能随时切换过去,所以系统不会轻易销毁它。

3、服务进程。一个服务进程就是一个Service,它调用了startService,就是UNIX中说的守护进程,对用户不可见,但是保证了一些重要的事件被监听或者维持着某些状态,比如网络数据传输、后台音乐播放,这类进程在内存不足且为了保证前端交互的顺利进行的时候被销毁。

4、后台进程。这里叫后台进程可能会和一般意义上的后台进程混淆,要说明的是,android里的后台进程是调用了OnStop()的,可以理解成用户暂时没有和这个进程交互的愿望,所以这里后台进程有点“待销毁”的意思。

5、空进程。这是一种系统缓存机制,其实就是个进程的外壳,当有新进程创建的时候,这个空进程可以加快进程创建速度,当系统内存不足的时候,首先销毁空进程。-------------------------------------------------此处分割线---------------------------------------------------------

好吧,我觉得大多数都看不懂,其实我也看不懂。{:8_228:}举个栗子:一部手机,2G运存,开机剩余1G。第二部手机,除了运存大小不同,其他硬件、软件完全一致,4G运存,开机剩余不是3G,而是2G,为什么???。这是事实。如果手中有两款差不多配置,内存差异大的,可以尝试。因为安卓运行的机制在那里摆着,末位淘汰机制,安卓系统会优化运行的程序,按优先级排列,这个在开发者选项中会有部分选项相关,一旦不够用,就会把优先级最低的,最后面的清理掉,安卓的想法是通过这种管理方式,提升程序的响应速度。所以,很多时候不要纠结于开机到底剩余多少。使用中卡顿,原因会有很多:硬件方面:CPU或内存芯片并不是高性能的,还有一种情况:CPU支持的最大分辨率和屏幕的分辨率不匹配,也会造成系统卡顿等问题。使用过程:长久使用之后,元器件的老化,以及安卓的碎片化的存储方式(虽然每次新版都说解决这个问题,但目前貌似8.0了还是没有彻底解决),使得反复卸载安装软件,以及缓存各种文件后,无法干净的清理垃圾文件,拖慢速度。系统优化问题:安卓原生系统,大多数人都会觉得很轻快,性能也可以,但界面不够友好,这就需要各个厂商定制自己的UI,以及优化系统,这个过程,每个厂商技术开发部门能力差异,就会有系统性能差异。后期还会因为使用者对系统熟练度不同,个人优化过程不佳,也会造成同一部手机,两个人使用出了两个效果。软件问题:可能最常见的就是大型软件卡顿或反应慢加载慢,以及软件兼容性问题,很多人和IOS比较软件开启速度,这个其实是不公平的,因为IOS在软件上架时候就对其有严格要求,比如开启后要若干秒中内相应。而安卓软件,要求就非常的少。那为什么我们还需要越来越大的运存?而曾经1G的就够用,而现在却完全不够,还卡的要命?不要忽略了软件升级换代,举个栗子:{:8_199:}2012年,我们刷一个安卓系统固件,大概100MB左右。而5年之后的现在,少说也要1GB的固件包。2012年,一个QQ软件不过几MB,而现在目前最新版的,安装包就有44MB,解压安装之后,大概站400MB左右内存。而淘宝,仅仅一个购物软件,解压安装之后,只要稍微使用几天,就达到600+MB。随着软件越做越大,功能越做越多(其实核心功能依旧那些),需求也越来越高,后台运存占用也越来越高,尤其去年到现在,推广风,广告风,后台互相唤醒风越刮越严重,无论什么软件,都在开启时显示3-10秒的开屏广告,还有各种后台消息推送,稍不注意,点一个选项就开始下载其他无关软件等,甚至有的软件除了本质的功能没升级,每次版本更新都会加入更多的无关功能,有那么一款软件让我看着就心疼,上图(因版本过多,仅部分展示软件大小。 安卓运存机制,不是越大就越流畅
所以,单纯比较手机性能时,同样是4G内存,但一部卡,另外一部不卡,原因会有很多,但基本不会因为一部剩余2G就非常流畅,另外一部剩余1G就卡顿。优化运存问题技巧:绝对不是把所有自启动软件关掉是最佳优化,很多软件如果不自启动,就会因为开机后没有运行,后台无法接收信息。还有很多程序是否允许后台运行的设置,比如音乐播放器、导航、微信等很多软件,如果不允许后台运行,那么软件在切换后台后,会被立即(稍后)清理掉。很多人依赖于自动管理,人是省事了,但机器总会出现若干软件小问题,所以:能手动或有动手自己设置的能力,尽量个性化按需求优化。延伸说一下电池电量管理:有的品牌手机是带有电量管理的,这个和运存管理很像,可以控制软件随意使用电量,还是限制使用电量,比如导航软件,为了不被后台终结,建议让他随意使用,本身就是耗电软件,如果限制了,很快就会被终止而无法导航等问题。写这么多,无非希望很多人了解学习一些,不要纠结一些伪命题。顺便也给那些毫无技术的伪技术哥 们补脑一下。除安卓运存机制内容为摘抄,余下为本人原创码字出来的,有错误的观点或言论请联系我,加以改正。如果需要复制,请注明转载来自yeafine,谢谢。

评论8
   发表于 2017-11-8 14:29 属地未知 来自:ALP-AL00
需要补充明确一下,因为改帖子还需要审核,直接自己回复自己说了:需要明确一个问题,比如目前3g和4g运存都够用了,那即使使用的6g运存,对系统的流畅度也不会有提升,如果有,那可能是因为其他硬件也对应提升了。如果考虑到目前软件发展趋势,坚持到明年,手机还要求流畅,最低要保证4g运存,而有的人可能考虑到用两年再换,最好还是6g吧。
不科学的统计和预测:软件两年,占用内存和运存就得翻番,而现在的安卓软件占用系统资源,已经可以堪比电脑了。旗舰机的配置,也在赶超曾经的上网本配置。
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表