- Chen
-
问这个问题,应该是Android手机的玩家吧,而且你对Android的内存机制也不了解,简单来说,Android中的内存就是给你用的,不用还不正常,根本不用担心内存怎么只剩下几百M呢。
像我们这些在Windows陪伴下成长起来的玩家,“内存不足”经常遇到,但是Android有着与Windows完全不一样的内存管理机制,Windows上的那一套,对Android并没用。
Android中可用内存是个没意义的数字
Windows中一旦程序被关闭,分配的内存也就释放出来,然而在Android中运行过的应用绝大多数是从前台转入到后台,并保留在内存中并不会也不需要主动释放,这样下次再运行该应用时,可以更快的启动。
无论手机的物理内存有多大,Android都能将其充分利用,将需要用到的数据从硬盘读入到内存,以提高数据访问性能,也就是说, 在Android系统中,可用内存越小,表明其调用的数据就越多,访问的命中率就越高,系统也就越快 。
你可能会问,当打开的应用越来越多,占用的内存总会爆满的,那怎么办呢?
Android有着优秀的内存回收机制
Android使用了一个名为Low Memory Killer(LMK)的机制来管理内存,当内存出现不足时,LMK就开始挥舞屠刀杀掉一些进程以获得新的内存空间。
Android有一套独特的进程管理,它会以oom_adj来表示进程的重要性,oom_adj的值越小,则重要性越高,oom_adj的值越大,该进程被系统选中杀掉的可能性越高。
Android默认的进程管理策略
为了更好的评估进程的重要性,Android将进程分为六类,如下所述:
前台进程:oom_adj=0,指正在当前屏幕上显示的进程和一些系统进程,一旦你回到主界面 或切换到其它程序,当前进程变为隐藏进程,前台进程是不会杀掉的;
可见进程:oom_adj=1,可见进程虽然不在前台,但依然可见,如widget、输入法等,这部分进程也非常重要,基本上不可能被杀掉;
次要服务:oom_adj=2,目前正在运行的一些服务,如下载、播放音乐,它们虽然属于次要服务,但与系统息息相关,一般也不会被杀掉;
隐藏进程:oom_adj=7,这个很容易理解,当应用从前台转入到后台后,也就成为隐藏进程了,通常一键清理内存就是清掉这些隐藏进程;
内容提供者:oom_adj=14,没有程序实体,只提供内容供别的程序去用的,比如日历供应节点,显然这类进程最有可能被先杀掉;
空进程:oom_adj=15,有些程序在程序退出后,依然会在进程中驻留一个空进程,这个进程里没有任何数据在运行,作用往往是提高该程序下次的启动速度或者记录程序的一些 历史 信息,这类进程无疑是要最先被杀掉的。
Android的内存管理机制非常适合嵌入式系统,能充分发挥出硬件的潜力,当内存越大,它的优势就越明显。
Android手机需要清内存吗?不需要
那么Android手机到底要不要清内存?结论是:不需要!其实这个结论也适用iPhone手机。
手机内存分为两部分,运行内存和存储内存。买手机时,一个型号的手机有很多套餐可以选择,比如6+64GB、4+128GB,前面的4GB,6GB就是运行内存,后者则是存储内存。
占用手机运行内存的主要是手机运行程序时被软件占用的内存,安卓手机的系统会把手机里说有的软件都放在后台运行之中,因为这样开启软件的时候会节约等待启动的时间,除非用户自己去设置关闭开机自动启动软件。
可运行内存一共就那么多,虽然现在新款手机的运行内存不断加大但随着软件的不断更新升级,占用的手机内存也会越来越大,这都是成正比的。为了清理软件占用的内存,安卓手机都会配备“一键清理”的功能去清理运行内存,这样可以使因为占用运行内存过多而变卡顿的手机流畅起来。
而占用存储内存的东西就有很多了,比如软件的数据缓存、微信qq的聊天记录、相册里的照片、下载的音乐视频、短信垃圾、手机随着系统升级,本身系统所占的内存也会越来越大,这些都会占用手机的存储内存。
其中最占用存储内存的就当属照片和微信了。那么该怎么看微信到底占用了多少内存呢?
点开微信中的[我]-[设置]-[通用]-[清理微信存储空间],等待几秒钟后就会显示占了多少内存了,如果你不经常清理,那这个数字一定会让你大吃一惊。然后点击下方的[管理微信聊天数据]清楚就好了。
一般如果是安卓手机的话,如果手机内存较小,很容易出现内存不够用的情况。安卓系统、应用厂商的服务、手机应用等都会占用大量的内存,由于国内手机厂商深度定制的安卓系统,普遍存在全家桶,大量的服务和应用存在自启和连环唤醒情况,大量消耗用户内存,造成手机内存占用过高,严重影响了用户的使用体验。而反观国外很多采用原生安卓系统的手机,虽然内存并不大,但内存的占用率却极低,实际的应用体验却更优秀。所以国内手机厂商的全家桶,是造成手机内存占用率较高的主要原因。一般可以通过手机助手清理内存,禁止应用自启,卸载无用应用等方法解决手机内存占用较多的问题。
由于目前手机的硬件利润较低,很多国内手机厂商都是通过预装应用的方式,提升手机的利润。所以国产手机普遍存在以全家桶的方式,打包预装各种应用和服务,通常会在手机中进行自启,或者连环唤醒,占用了大量的手机内存,严重影响了手机用户的体验。
如果手机的内存占用过高,可以借助手机卫士等工具对手机的内存进行清理,对于不常用的手机应用进行卸载,提升手机的运行效率。另外也可以通过禁止手机应用的自启,来提升手机内存的使用效率,但对于手机存在应用连唤醒的情况,是无效的。所以手机卫士或管家,只能暂时解决手机内存占用过高的问题,无法从根本上解决问题。
目前的cm等第三方原生安卓系统,一般都不夹带国产手机厂商的全家桶,系统十分纯净,一般对于手机内存的占用都比较小。一般如果条件允许的话,可以刷第三方的原生安卓系统,提升手机内存的使用效率。
华为荣耀畅玩4,搭载的骁龙410芯片,仅配置了1g内存,可以说硬件配置十分渣,运行华为自带emui系统,内存占用极高,基本卡都没办法使用。但刷cm13系统后,竟然满血复活,运行普通应用十分流畅,完全可以当做备用机使用。这也充分说明,很多国产手机在硬件配置方面没有太大瓶颈,主要是国产手机系统的全家桶,占用大量内存,拖慢了整机的速度。
对于手机内存占用过大的问题,主要是由于安装和启动的手机应用较多,特别是很多国产手机的全家桶,占用和消耗了大量的手机内存,影响了手机的使用效率。一般可以通过手机卫士等工具,清理内存,禁止应用自启等方法解决手机内存占用过大的问题。如果想从根本上解决这个问题,更多的还是依靠手机厂商摒弃全家桶,推出类似cm的第三方原生安卓系统。如果条件许可的话,用户也可以刷cm等比较纯净的第三方安卓系统。
手机内存分为运行内存(RAM,简称运存)和存储内存(ROMZ)两种。运行内存比较少,手机一般4G和6G居多。存储内存较大,一般16G—512G,其中64G和128G居多。比如一款手机为“6+64G”的内存,就代表着6G的运行内存和64G的存储内存。
运行内存是为手机运行的程序服务的,换句话说,就是储存运行中的程序的这部分内存。手机不像电脑,当你退出一个程序后,这个程序不会直接关闭,而是在后台继续运行。就比如当你在下载一部电影的时候,你返回桌面或者打开其他软件,这部电影还在继续下载。
只有2G运存的安卓机相信不少人都用过,只要后台运行的程序一多,分分钟给你卡到原地爆炸。而反观只有1G运存的苹果却从来不会出现这种情况,这是因为两者的系统运行机制不同。苹果的ios系统对于后台运行的软件有很好的优化,系统只会分少量的资源给后台运行的应用。这样即保证了后台应用的运行,也不会耽误新程序的加载速度。而安卓系统就不同了,对于后台运行的程序没有限制,所以后台一多,马上变卡。
不过现在的安卓系统新增了一个叫Low Memory Killer(LMK)的后台程序管理机制。每当运行内存不足时,LMK都会自动关闭最不重要的后台程序来为新程序腾出运行内存和系统空间。所以现在的安卓机只要你不是开太多程序,4—6G的运行内存不会被占满。
存储内存相信大家更熟悉了,就是用来储存数据的内存。手机中每个文件、软件、图片、视频都需要占用存储内存。而且,随着手机的使用,系统中的垃圾文件会越来越多,更新的软件越来越大,导致内存不够用。在这个一个QQ、微信动辄几个G的时代,32G的手机内存是不够用了。笔者建议大家最好买64G以上的手机,并且定期恢复出厂设置。
关闭一些没必要自动运行的软件,浏览器可以选择无图模式,音乐播放器可以关闭歌手图片显示,视频播放器要时刻的清理缓存,还有软件安装后自动删除安装包, 游戏 停止运行后,手动清理全盘缓存,QQ压缩包,文件管理器中可以找到,格式zip,如果你知道文件夹是哪个软件所有,觉得清理掉不会影响使用,就清理了,你会发现手机内存又多了至少2GB,不信你就试试吧
手机占用内存最大的就是系统和软件,系统方面你可以通过刷机来改变大小,可以在手官网(或者其他大神资源)找一个自己机型的精减刷机包, 软件方面你可以在安智市场里面下载 历史 版本,较小的软件包可以减轻手机内存压力,另外你还可以root手机,root后可以禁止软件自启,阻止软件相互唤醒,删除不需要的系统软件,一星期左右可以关机一次,彻底释放内存。
其实手机内存不外乎两种,一是各种APP的缓存,现代人基本离不开社交软件,随便几个APP的缓存加起来可能都已经超过1G了,这就需要经常清理软件缓存,可以借助360等其他的手机管家,一键清理很方便。
还有就是手机里面的照片,这块比APP缓存还要厉害,我的手机曾经几度内存不足都是因为照片太多了~~现在是专门下载了天翼云盘去保存照片,再者就是各种软件,如果不是必须用经常用的软件其实也可以清理掉,这些功夫做完之后内存应该会有一个很大的改变。
你说的是ram还是flash,如果是ram,程序就是尽可能的使用内存提高运行性能(这个天经地义),lOS会自行清后台进程,安卓不会,但有方法设置,可以逐个关闭不重要应用的后台运行,还可以点6下版本号打开开发者选项(安卓通用方式),在里面找到限定后台进程数量(一般1到4个,不限),选择限定个数即可,但不是什么手机都有这选项
如果你说的是flash,卸载微信吧。。。。。。
设置一下后台最多只同时打开三个或四个应用软件,其实安卓没有必要那么在乎还剩下多少内存,你会发现六个g和四个g内存占用率都是差不多的。都剩下不了多少内存。系统会根据使用习惯把常用软件从rom调入ram中供用户随时快速打来。