前言
最近做專案用到了apk的行程優先級部分,需要知道某個具體的app在系統行程中的優先級
所以就根據自己整理的和參考一些網上這方面的知識來做一下總結
查看Android應用apk的 行程優先級
第一步:獲取想要查看行程的PID
一個設備在運行的時候肯定會有很多行程
因為設備一旦啟動就會先運行許多系統應用,這是系統運行的必要條件
所以我們先通過命令來找到我們想要查詢的某個行程
查看所有當前所有行程命令:adb shell ps

| 列名 | 含義 |
|---|---|
| USER | 所屬用戶 |
| PID Process ID | 行程 ID |
| PPID Process Parent ID | 父行程 ID |
| VSIZE Virtual Size | 行程的虛擬記憶體大小 |
| RSS Resident Set Size | 實際駐留”在記憶體中”的記憶體大小 |
| WCHAN | 休眠行程在內核中的地址 |
| NAME | 行程名 |
在命令指示符輸入這行命令之后會出現一堆行程,這些就是當前設備正在運行的行程了
如果覺得行程實在是太多了,不是很好找到自己需要的那個行程
可以使用命令來篩選一下,這樣可以看起來更美觀 而且更容易找到我們想要的那個行程!
- 在Windows上篩選某個行程:
adb shell ps|findstr baidu - 在手機上篩選某個行程:
adb shell ps baidu 或者 adb shell ps|findstr -i baidu - android或者linux中的shell命令是grep:
adb shell ps|grepbaidu
然后我們根據行程ID,也就是PID找到我們需要查找的某個行程
比如我要查找的行程就是下面圖中這個

第二步:根據行程的PID查看行程優先級
在第一步中我們找到了想要查找的行程的PID
那我們就根據這PID來查看他的優先級
查看某個行程的優先級命令:先進行adb shell,然后cat proc/對應的行程PID/oom_adj
比如我這里的PID是27652,那我的操作如下:cat proc/27652/oom_adj
這個數字11就是我這個行程當前的優先級

但是這里要注意,如果這個行程當前是在前臺正在運行,那么他的這個數值會顯示為0

oom_adj 解釋

那這樣就可以查到我們所需要的行程優先級了!
這個優先級一般在寫代碼的時候可以自己設定
如果后期因為優先級問題導致出現資源分配不均勻等等
導致 應用卡死 或者 掉幀 之類的話就需要重新進行合理的一個優先級設定了!
Android中行程的優先級與垃圾回識訓制相關,優先級越低被垃圾回收的機會越大,
當記憶體不足的時候,總是低優先級的行程被最先回收
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/298815.html
標籤:其他
