2012-02-14 190 views
5

如何在Android中更改進程優先級?我發現過程的描述,它的優先事項的描述Android的文檔在android中更改進程優先級

process and thread description

process priorities

但我已經發現通過某種方法改變進程的優先級沒有。

ps:我需要這個來測試一下與進程優先級相關的應用程序的某些功能,它不會在程序中使用。

我看到的唯一方法是試圖通過重要性字段來改變優先級,但這是一個壞主意,我猜。

+0

我認爲你是正確的,你可以只設置線程優先級,但不能保證你的設置優先級總是被應用。 Android OS根據需要確定。 – kosa 2012-02-14 17:41:43

+0

爲什麼你認爲使用重要性領域是一個壞主意?似乎設置與哪個常數最相關的重要性領域將改變該過程的優先級。此外,如果您想更好地調整過去的恆定水平,可以使用Iru字段。 – ocross 2012-02-14 17:51:34

+0

我認爲這是一個壞主意,因爲更改由系統設置的字段的值並不是良好的做法 – user881259 2012-02-14 18:24:11

回答

6

如何在Android中更改進程優先級?

一般來說,你沒有。進程優先級由OS管理。如果您的應用程序處於前臺,它將以前臺優先級運行。如果您的應用程序不在前臺,它將不會以前臺優先級運行。

我需要這個來測試一下與進程優先級相關的應用程序的某些功能,它不會在程序中使用。

然後測試一個在前景中的過程,而不是在前景中的過程。

我看到的唯一方法是嘗試通過重要性字段來改變優先級,但是我猜想它是一個糟糕的主意。

更改該號碼不太可能產生影響。 RunningAppProcessInfo是一種輸出結構,而不是通過該結構更改任何報告的手段。在本機代碼

1

setpriority()可getPriority()存在,所以可以是我們可以從本地代碼設定優先級。但是,我不確定它是通過操作系統生效還是忽略它。

0

此功能僅在根設備的工作原理:

使用的終端,成爲根通過輸入

su 

然後從頂部

top -n 1 -m 10 

外表輸出選擇進程號在列PID中,並通過

0將進程(在此示例中爲PID 1825至優先級0)renice

就是這樣。 請記住,在操作系統認爲有必要給予進程更多優先級之後,操作系統會覆蓋此更改。