private String cmdExecute(String[] args, String workdirectory){
ProcessBuilder cmd;
String result = "";
try {
cmd = new ProcessBuilder(args);
cmd.directory(new File(workdirectory));
cmd.redirectErrorStream(true);
Process process = cmd.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
int length = -1;
while ((length = in.read(re)) != -1) {
result = result + new String(re, 0, length);
}
in.close();
} catch (IOException ex) {
Log.i("cmdExecute",""+ex.getMessage());
}
return result;
}
/**
* command /proc/self/net/dev
* string format "%6s %13s %15s %14s %16s"
*/
public synchronized String getMobileDataUsage(){
final String formater = "%6s %13s %15s %14s %16s";
String reslut = "";
reslut += String.format(formater,
(Object[])new String[]{
"type",
"receive-bytes",
"receive-packets",
"transmit-bytes",
"transmit-packets"})
+"\n";
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("/proc/self/net/dev"), 500);
String line;
br.readLine();
br.readLine();
while ((line = br.readLine()) != null) {
String[] data = null;
if (line != null || line.length() > 7 )
data = line.substring(7).trim().split("\\s+");
String[] res = new String[]{};
if (data!=null && data.length >10)
res = new String[]{line.substring(0,6),data[0],data[1],data[8],data[9]};
reslut += String.format(formater, (Object[])res) + "\n";
}
} catch (IOException e) {
} finally {
try {
if (br != null)
br.close();
} catch (IOException e) {
}
}
return reslut;
}
/**
* command top -n 1
*/
public synchronized String displayCpuUtilization(){
return cmdExecute(new String[]{"top", "-n", "1"},"/system/bin/");
}
/**
* get memory info form ActivityManager service
*
*/
public synchronized String displayMemoryUtilization(){
//return cmdExecute(new String[]{"/system/xbin/procrank"},"/system/bin/");
ActivityManager am =(ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> list = am.getRunningAppProcesses();
Formatter titleformatter = new Formatter();
String title = titleformatter.format("%5s%9s%9s %s",
"PID","Pss","Uss","cmdline").toString();
String info = "";
for (RunningAppProcessInfo runningAppProcessInfo : list) {
if (runningAppProcessInfo == null)
continue;
int[] pids = {runningAppProcessInfo.pid};
android.os.Debug.MemoryInfo[] mee = am.getProcessMemoryInfo(pids);
Formatter formatter = new Formatter();
String s = formatter.format("%5s%8sK%8sK %s",
runningAppProcessInfo.pid,
mee[0].getTotalPss(),//PSS
mee[0].getTotalPrivateDirty(),//USS
//mee[0].getTotalSharedDirty(),
runningAppProcessInfo.processName).toString();
info = info + s + "\n";
//Log.i("xx",s);
}
return title+"\n" +info;
}
/**
* command /system/bin/df
*/
public synchronized String displayFlashUtilization(){
return cmdExecute(new String[]{"/system/bin/df"},"/system/bin/");
}
分享到:
相关推荐
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
taskutils 使用Process运行管道命令的类的命令行应用程序示例。用法例如,请参见main.swift: // Create example command line interface commands that needs to be run chained / pipedlet psefCommand = ...
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
10.1.3 for——执行特定命令 438 10.1.4 goto——批处理定向 440 10.1.5 If——批处理条件 440 10.1.6 echo——回显 442 10.1.7 rem——注释 443 10.1.8 pause——暂停 443 10.1.9 start——运行 444 10.1.10 choice...
(注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例), 该实例可用于控制进程或取得进程的相关信息. 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO...
shell-words根据Unix shell的解析规则处理...使用std :: process :: Command; fn main(){let cc = var(“ CC”)。unwrap_or_else(| _ |“ cc” .to_owned()); 让cflags = var(“ CFLAGS”)。unwrap_or_else
命令行参数(Command Line Arguments) 应用程序布局(Application Layout) 应用程序结构(Application Structure) Windows操作系统(Windows) Linux操作系统(Linux) Mac X平台(Mac OS X) 单一执行体(Single ...
通过Swift脚本或命令行工具轻松执行系统命令。 特征 :check_mark_button: 使用参数轻松执行子进程 :check_mark_button: 使用参数轻松执行shell命令 :check_mark_button: 实时捕获输出或流到stdout / stderr :...
Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...
利用此技术的现存命令行工具包括:该库提供了从提供的类中定义的所有公共方法生成Symfony \ Component \ Console \ Command \ Command的例程。 注意如果您正在寻找一种非常快速的方式来编写基于Symfony Console的...
从命令行在node_modules中运行可执行文件 使用npm-run可以确保您在命令行和package.json脚本中使用了相同版本的软件包。 npm生命周期脚本可用的任何可执行文件都可用于npm-run 。 用法 > npm install mocha # mocha...
现在,节点v0.12内置了相同的功能: ://nodejs.org/api/child_process.html#child_process_child_process_exec_execsync_command_options执行同步同步执行shell命令。 将此用于迁移脚本,cli程序,而不用于常规...
CliWrap是用于以功能方式与命令行可执行文件进行交互的库。 它为启动外部流程,重定向输入和输出,等待完成以及处理取消提供了方便的模型。 它的核心是基于非常强大的管道模型,使您可以轻松创建复杂的执行设置。 ...
Arg不执行任何验证/要求检查-我们将其留给应用程序处理。 选项未使用的所有参数(通常称为“额外”参数)都添加到result._ ,后者始终是一个数组(即使没有传递额外的参数,在这种情况下也会返回一个空数组)。 ...
PsTools 套件包括几款命令行实用工具,可列出正在远程或本地计算机上运行的进程、以远程方式运行进程、重新启动计算机、转储事件日志以及执行其他任务。 RootkitRevealer 扫描系统以找出基于 Rootkit 的恶意软件 ...
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。 top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 <空格>:立刻刷新。 P:...
短暂的 Shell的(文件)日志 注意:有关更正式的介绍,请阅读上使用Bashing的方法。 到底有什么好处呢)?...除了以人类可读的格式(或JSON)在命令行上输出之外,您还可以将命令历史记录(的一部分)导出(部分)到
-c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。 -F:在重启计算机时强迫fsck。 -time:设定关机前的...