【问题标题】:change process priority in android在android中更改进程优先级
【发布时间】:2012-03-06 02:17:57
【问题描述】:

如何在 Android 中更改进程优先级?我在 android 文档中找到了流程描述和优先级描述

process and thread description

process priorities

但我没有发现通过某种方法更改进程优先级。

ps:我只需要这个来测试应用程序的一些与进程优先级相关的特性,它不会在程序中使用。

我看到的唯一方法是尝试通过 importance 字段更改优先级,但我想这是个坏主意。

【问题讨论】:

  • 我认为您是正确的,您只能在线程上设置优先级,并且不能保证您设置的优先级将始终应用。 Android OS 根据需要确定。
  • 为什么你认为使用重要性字段是个坏主意?似乎设置与常数最相关的重要性字段将改变过程的优先级。此外,如果您想更精细地调整过去给定的恒定水平,您可以使用 Iru 字段。
  • 我认为这是一个坏主意,因为更改由系统设置的字段的值不是好的做法
  • 我不知道这是不是一般情况,但是您可能会在设置中的开发者选项下找到“显示CPU使用情况”。这不会告诉您您拥有什么进程优先级,但它会让您了解进程之间的关系。

标签: android process


【解决方案1】:

如何在 Android 中更改进程优先级?

你不能,除非在一个有根设备上,然后只是暂时的。进程优先级由操作系统管理。如果您的应用程序在前台,它将以前台优先级运行。如果您的应用不在前台,它将不会以前台优先级运行。

我需要这个来测试应用程序的一些与进程优先级相关的特性,它不会在程序中使用。

然后用一个在前台的进程和一个不在前台的进程进行测试。

我看到的唯一方法是尝试通过重要性字段更改优先级,但我想这是个坏主意。

更改该数字不太可能产生影响。 RunningAppProcessInfo 是一个输出结构,而不是用于更改通过该结构报告的任何内容的方法。

【讨论】:

  • 这不是问题的答案。
  • @GlennMaynard:已编辑。
【解决方案2】:

setpriority()getPriority() 在原生代码中存在,所以我们可以从原生代码中设置优先级。但是,我不确定它是由操作系统生效还是忽略它。

【讨论】:

    【解决方案3】:

    这仅适用于有根设备:

    使用终端,通过输入成为root

        su
    

    然后从top的输出中选择process-id

        top -n 1 -m 10
    

    在 PID 列中查看并调整您想要的进程(在本例中 PID 1825 为优先级 0)

        renice 0 1825
    

    就是这样。 请记住,此更改将被操作系统覆盖,一段时间后,当操作系统认为有必要给予进程更多优先级时。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2011-11-24
      相关资源
      最近更新 更多