Logo cn.androidermagazine.com
Logo cn.androidermagazine.com

微调minfree设置(改进android的多任务处理)

目录:

Anonim

大家好! 杰瑞回到你可以在你的Android手机上做的另一个巧妙的技巧。 这个有助于保持平稳运行,并让我们对Android的内部任务杀手进行一些用户控制。 像大多数影响Android低级操作的东西一样,这个需要root,但是对于那些不觉得需要root(并打破保修!)的人来说,这是一个很好的阅读,因为你可能会有更好的理解在幕后发生了什么。 在浏览器上打开几个额外的标签,准备好手机(甚至可能是USB线),然后按照休息时间进行操作。

哦,还有一个警告:这是非常低级的东西。 这并不难,但它的作用有点先进。 不要说我们没有警告你。

你会一次又一次地听到Android在Linux内核上运行。 这样做的最大好处是Linux是稳定的,开源的,非常可攻击的。 这意味着其中许多好处也会延续到Android。 能够调整低记忆杀手就是其中之一。 这是我个人经历的事情,无论是艰难的方式还是简单的方式。 虽然这有利于Android的各种风格,但运行HTC Sense的手机将显示出最大的改进。

低内存杀手是如何工作的

手机启动时,启动映像(init.rc)中的文件会设置系统参数。 这个文件完成了诸如框架文件的路径,设置网络以及设置程序被释放到空闲RAM的限制之类的事情。 现在,一个超级Android极客可能会在init.rc文件中挖掘并完全自定义低内存杀手,但是你不必这样做才能获得好的结果。 init.rc设置了六个不同的“级别”的开放应用程序。 我们来看看它们:

  • FOREGROUND_APP :这是当前在屏幕上运行的应用程序
  • VISIBLE_APP :这是一个打开的应用程序,它在后台运行,因为它仍在执行某些操作
  • SECONDARY_SERVER :这是一个过程(一个应用程序需要的服务),它是活着的,准备就绪,以防需要做某事
  • HIDDEN_APP :这又是一个进程,它处于空闲状态(但仍处于活动状态),以防一个活着且正在运行的应用程序需要它

在大多数情况下,我们绝不想调整这些应用程序和流程何时被终止。 它们是我们使用的程序需要正常运行的东西。 对于更大胆和更高级的用户,可以更改HIDDEN_APP设置的设置,尽管有大量的试验和错误。 还有两个设置,这些是我们今天最感兴趣的设置:

  • CONTENT_PROVIDER :这是为系统提供数据(内容)的应用程序。 HTC Facebook同步? 这是一个CONTENT_PROVIDER 。 Android Market或Fring也是如此。 如果它们还活着,它们可以刷新并按设定的间隔提供它们应该的内容。 如果你杀了他们,他们当然不能。
  • EMPTY_APP :我称之为“幽灵”。 它们是您已打开的应用程序,但已完成。 Android使用独特的处理内存管理方式。 当一个活动结束时,Android不会将其删除,而是将应用程序保留在内存中,以便再次打开它们是一个更快的过程。 这些“鬼”应用程序不使用电池或CPU时间,它们只是填充否则将为空的RAM。 当其他应用程序或进程需要此内存时,RAM将被刷新并可用于新应用程序。 为了满足那些讨厌的人(比如我自己),Android通过保留最近使用的应用程序列表来实现这一点,列表中最旧的应用程序具有最低优先级 - 如果其他地方需要RAM,它们将首先被杀死。 这是处理'ghost'过程的完美方式,因此无需触摸此部分;)

EMTY_APP级别是我们可以玩Robin Hood并获得一些UI性能的地方。 我们从富人(我们使用的应用程序使用的RAM)抢劫并给穷人(我们的免费RAM池)。 这样 我们 决定Android何时关闭旧的未使用的应用程序,而不是让系统为我们决定。 这样的事情就是我们扎根的原因。

我们如何操纵这一切?

记得早些时候我说你不必深入挖掘神秘的启动文件来改变这些设置? 那么你会喜欢这个。 您可以使用Market中的应用程序更改内容! 有几个工作,但我更喜欢 MinFreeManager, 因为它是轻量级的,并不像其他人那样共享任何个人信息。 让我们来看看如何设置这个坏男孩。

第一步 - 删除您运行的任何任务管理器。 它们只会干扰我们今天所做的事情。 如果你不这样做,我们都会指点笑,而我们的手机运行顺畅:)

第二步 - 下载并安装MinFreeManager

第三步 - 打开应用程序。 按后退按钮摆脱键盘(我们将讨论编辑您稍微看到的数字),然后按菜单>预设。

选择“激进”。 安装和运行这样的应用程序没有任何意义,没有运行它的全部潜力。 如果在一两天之后您认为在这些设置下运行时遇到问题,您可以尝试“温和”或手动调整数字。 接下来点击“应用”来设置参数。 如果你想在每次重启时应用设置,菜单>>在启动时应用将照顾你。 对于大多数人来说,就是这样。 享受大约75-100 MB的免费RAM。

如果您想自己调整数字,每个条目都是可用RAM的级别,每个特定类别中的应用程序和进程将开始被杀死。 以下是Android的默认设置。

请注意,在RAM空闲量达到32 MB之前,不会从RAM中擦除任何内容。 ( 如果你站在我的肥皂盒上的时候听过我的话,你知道在我看来SenseUI只用不到~40 MB的空闲RAM就不行了 )在32 MB或更低的空闲时,系统会开始杀死'幽灵'。 我们可以按照列表的方式工作,看看如果我们可以降低到14 MB或更低的空闲时间,系统可以(并且将会)杀死您在前台运行的应用程序。

如果您决定使用这些数字,请务必使用前四位数字。 对这些进行修改可能会使事情变得非常不稳定,而且非常难看。 内容提供商(上面再次阅读)不那么敏感,但设置得太高会使Facebook同步这样的事情变得更加棘手。 空应用部分是免费的。 将此设置为小于96 MB(IMO)的任何设置都会失败使用此类应用程序的目的。 调整一下,花几个小时来安顿下来,并决定是否需要更多调整。

LowMemKiller极客版

因为Android在Linux内核上运行,这意味着参数存储为纯文本文件。 这些都可以即时编辑 - 这正是像MinFreeManager这样的应用程序正在做的事情。 如果您不想使用第三方应用程序进行这些更改,则可以轻松地从命令行更改值。 启动您最喜爱的终端客户端并跟进。

要检查MinFree设置的当前参数:

cat / sys / module / lowmemorykiller / parameters / minfree

这将返回一串数字,如下所示:

1536, 2048, 4096, 5120, 5632, 6144

这些数字是页面。 对于Android,页面等于4 kb。 因此在上面的示例中, EMPTY_APP设置(列表中的最后一个 - 6144)是24 MB。 6144页= 24576 kb = 24 MB。 公式是:

因此,25000的设置将等于~97MB( 告诉你它是极客版! )。

有一个好的起点,以及如何更改数字的示例,请尝试以下方法:

echo“1536, 2048, 4096, 5120, 15360, 23040”> / sys / module / lowmemorykiller / parameters / minfree

这样就设置好了,每当空闲RAM降到90MB以下时,'ghosts'会被按顺序排除,如果RAM降到60MB以下, CONTENT_PROVIDERS就会被杀掉。 其他所有内容都不受内核的干扰。

想想这一点 - 不再担心保持时钟和gmail等活动以及任务杀手白名单,因为我们指定可以杀死什么类型的应用程序和进程以释放内存。

一旦有了一组适合您的数字,就可以轻松简化重启时应用它的过程。 是的,这些更改会在每次重新启动时消失,因为它们存储在虚拟磁盘(Ramdisk)中,该磁盘在手机关闭时会消失。 您需要一个文本编辑器,它可以以Unix可读的格式保存文件。 微软没有做任何事情。 我总是向需要编辑Unix文件的Windows用户推荐Notepad ++。 抓住它,然后安装它。

打开一个空白文件并将以下内容粘贴到其中:

echo“1536, 2048, 4096, 5120, 15360, 23040”> / sys / module / lowmemorykiller / parameters / minfree

当然,将默认设置更改为所需的设置。 将文件另存为freeram,不带扩展名。

将手机连接到计算机并将freeram文件推送到/ system / bin。 然后在命令行提示符下:

cd / system / bin

chmod 744 freeram

出口

出口

现在重新启动手机,一旦加载,打开终端并输入:

freeram

出口

设置您的参数而不是默认的Android参数。 你需要在每次重启时都这样做,或者将它编辑到init.rc文件中,这个文件太过于令人讨厌。 我们有一个论坛。:)

无论你喜欢简单的方式,还是喜欢更硬派的方式,试一试。 它很容易恢复,并且100%免费。

直到下一次,

杰瑞