分享

安卓手机应用总是在后台自动重启运行,大量消耗内存以及电量,有什么好的办法解决吗?

 elabman 2017-09-20

安卓系统在后台有大量的程序运行,即使通过内存清理软件清理后,过一会又有很多程序自动开始运行。由于安卓设计机制,当需要内存时,后台一些程序会自动关闭,释放内存。

可以采取以下方法限制后台程序:1.打开手机设置找到开发人员选项,点击进入。2.打开开发人员选项后,我们滑到最下方,找到后台进程限制,点击。3.选择自己需要的模式。这里有6个选项,可根据自己需要选择相应的模式,默认是标准限制,只在必要时关闭后台程序,建议选择“不得超过4个进程”,限制太少的话会关闭一些需要的程序,比如QQ。

设置后系统会自动选择重要的程序做后台,而很多垃圾软件进程被自动清除。另外对于一些集成应用不能卸载的可以在程序管理里停用的,可以结合一起使用。Android采取了一种有别于Linux的进程管理策略,有别于Linux的在进程活动停止后就结束该进程,Android把这些进程都保留在内存中,直到系统需要更多内存为止。这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度。

Android是依据一个名为LRU(last recently used 最近使用过的程序)列表,将程序进行排序,并结束最早的进程。其实安卓的内存管理机制是这样的,如下:

1.系统会对进程的重要性进行评估,并将重要性以“oom_adj”这个数值表示出来,赋予各个进程;(系统会根据“oom_adj”来判断需要结束哪些进程,一般来说,“oom_adj”的值越大,该进程被系统选中终止的可能就越高)

2.前台程序的“oom_adj”值为0,这意味着它不会被系统终止,一旦它不可访问后,会获得个更高的“oom_adj”,我们推测“oom_adj”的值是根据软件在LRU列表中的位置所决定的;3.Android不同于Linux,有一套自己独特的进程管理模块,这个模块有更强的可定制性,可根据“oom_adj”值的范围来决定进程管理策略,比如可以设定“当内存小于X时,结束“oom_adj”大于Y的进程”。这给了进程管理脚本的编写以更多的选择。

慎用!望能帮到你,如果可以的请到我的头条看看,谢谢!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多