android執行shell命令
一、方法
/**
* 執行乙個shell命令,並返回字串值
* * @param cmd
* 命令名稱&引數組成的陣列(例如:)
* @param workdirectory
* 命令執行路徑(例如:"system/bin/")
* @return 執行結果組成的字串
* @throws ioexception
*/ public static synchronized string run(string cmd, string workdirectory)
throws ioexception
} // 關閉輸入流
if (in != null)
} catch (exception ex)
return result.tostring();
}二、用途
執行linux下的top、ps等命令,這些命令你也通過adb可以執行檢視效果。
1)top命令如下:
adb shell
$ top -h
top -h
usage: top [-m max_procs] [-n iterations] [-d delay] [-s sort_column] [-t] [-h]
-m num maximum number of processes to display. // 最多顯示多少個程序
-n num updates to show before exiting. // 重新整理次數
-d num seconds to wait between updates. // 重新整理間隔時間(預設5秒)
-s col column to sort by // 按哪列排序
-t show threads instead of processes. // 顯示執行緒資訊而不是程序
-h display this help screen. // 顯示幫助文件
$ top -n 1
top -n 1
就不把執行效果放上來了,總之結果表述如下:
user 35%, system 13%, iow 0%, irq 0% // cpu佔用率
user 109 + nice 0 + sys 40 + idle 156 + iow 0 + irq 0 + sirq 1 = 306 // cpu使用情況
pid cpu% s #thr vss rss pcy uid name // 程序屬性
xx xx% x xx xx xx xx xx xx
cpu佔用率:
user 使用者程序
system 系統程序
iow io等待時間
irq 硬中斷時間
cpu使用情況(指乙個最小時間片內所佔時間,單位jiffies。或者指所佔程序數):
user 處於使用者態的執行時間,不包含優先值為負程序
nice 優先值為負的程序所占用的cpu時間
sys 處於核心態的執行時間
idle 除io等待時間以外的其它等待時間
iow io等待時間
irq 硬中斷時間
sirq 軟中斷時間
程序屬性:
pid 程序在系統中的id
cpu% 當前瞬時所以使用cpu佔用率
s 程序的狀態,其中s表示休眠,r表示正在執行,z表示僵死狀態,n表示該程序優先值是負數。
#thr 程式當前所用的執行緒數
vss virtual set size 虛擬耗用記憶體(包含共享庫占用的記憶體)
rss resident set size 實際使用物理記憶體(包含共享庫占用的記憶體)
pcy ooxx,不知道什麼東東
uid 執行當前程序的使用者id
name 程式名稱android.process.media
// ps:記憶體占用大小有如下規律:vss >= rss >= pss >= uss
// pss proportional set size 實際使用的物理記憶體(比例分配共享庫占用的記憶體)
// uss unique set size 程序獨自占用的物理記憶體(不包含共享庫占用的記憶體)
在附件android系統->android top.txt檔案內,自個總結的。
2)執行**
// top命令
public static final string top = ;
// 現在執行top -n 1,我們只需要第二行(用第二行求得cpu佔用率,精確資料)
// 第一行:user 35%, system 13%, iow 0%, irq 0% // cpu佔用率
// 第二行:user 109 + nice 0 + sys 40 + idle 156 + iow 0 + irq 0 + sirq 1 = 306
// // cpu使用情況
public static synchronized string run(string cmd)
} while (true);
if (is != null)
} catch (ioexception e)
return line;
} // 獲取指定應用的top命令獲取的資訊
// pid cpu% s #thr vss rss pcy uid name // 程序屬性
// 如果當前應用不在執行則返回null
public static synchronized string run(string cmd, string pkgname)
} while (true);
if (is != null)
} catch (ioexception e)
return line;
}三、後記
這次相關的僅有的那個工程好像不能放上來了==。
資料夾內容如下:
ps:現在有個可以看的小工程了,請移至《
android vnc server new》!
附件:
Android執行shell命令
android執行shell命令 一 方法 執行乙個shell命令,並返回字串值 param cmd 命令名稱 引數組成的陣列 例如 param workdirectory 命令執行路徑 例如 system bin return 執行結果組成的字串 throws ioexception public...
Android執行shell命令
android執行shell命令 一 方法 執行乙個shell命令,並返回字串值 param cmd 命令名稱 引數組成的陣列 例如 param workdirectory 命令執行路徑 例如 system bin return 執行結果組成的字串 throws ioexception public...
Android開機執行shell指令碼
往往需要在android啟動過程中去對系統做一些設定,如修改某些資料夾的屬主和檔案的許可權,可在init.rc中增加service執行shell指令碼,從而可在shell指令碼中完成大部分操作。1 在system bin 下建立乙個shell指令碼init.mbx.sh,以修改mtd許可權為例,內容...