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/");
}
分享到:
相关推荐
在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行命令行操作。 1. **使用Runtime.exec()** `Runtime.getRuntime().exec(command)` 是最基础的方法,用于执行指定的系统命令。`command`参数是一个字符...
- `CreateNoWindow`: 当设为 `true` 时,启动的进程将没有用户界面窗口,这对于执行命令行操作非常有用。 示例代码如下: ```csharp p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "/c " + ...
在这个例子中,`btnExecute_Click`是按钮点击事件处理程序,它获取用户在文本框`txtCommand`中输入的命令,调用`ExecuteCommand`方法执行命令,并将结果显示在`txtResult`文本框中。 在实际应用中,可能还需要处理...
在Java编程中,调用命令行是常见的任务之一,它允许开发者执行系统级别的操作,如运行外部程序、管理系统资源或进行文件操作。本篇将详细讲解如何在Java中调用命令行,以及相关的知识点。 首先,Java通过`Runtime`...
总的来说,C#调用CMD命令行并获取返回数据是通过`System.Diagnostics.Process`类来实现的,这使得我们可以方便地执行各种系统级操作,增强了C#程序的功能。在实际开发中,这个技巧常用于系统集成、自动化测试、文件...
命令行界面(CLI,Command Line Interface)是计算机系统中最基础的交互方式,它允许用户通过输入指令来执行任务。在C#中,我们可以使用`System.Diagnostics.Process`类来启动和控制进程,包括在命令行中执行程序。...
首先,我们需要了解CMD(Command Prompt)是Windows操作系统中的一个基础组件,它允许用户通过命令行接口执行各种系统级操作,如文件管理、系统诊断和程序执行等。在C#中调用CMD命令通常涉及使用`System.Diagnostics...
在Windows环境中,命令行接口(CLI)通常指的是“命令提示符”(Command Prompt)或更新的“Windows PowerShell”,它们允许用户通过文本指令来执行各种系统管理任务,而无需图形用户界面。本文将深入探讨这些工具...
CMD,全称Command Prompt,是Windows操作系统中的命令行接口,用户可以通过输入命令来执行系统操作,例如创建、删除文件,查看目录结构,以及运行各种系统和自定义的可执行程序。 这个程序的核心功能是调用操作系统...
它可能包含方法如`ExecuteCommand`,接受一个命令字符串,然后利用上述的API或`Shell`函数执行命令,并将输出保存在类的属性或返回给调用者。 6. **代码结构**:`控制台.vbp`是项目文件,它定义了工程的基本信息和...
1. **安全性**:直接执行命令行可能会带来安全风险,尤其是在处理用户输入时。 2. **异常处理**:应增加适当的错误处理机制,以应对命令执行失败的情况。 3. **资源释放**:使用完毕后应及时关闭进程,避免资源泄露...
一旦有了`Runtime`实例,我们就可以使用它的`exec`方法来执行命令行指令。 在标题提到的场景中,我们需要多次调用Linux命令或shell脚本。`Runtime.exec(String command)`方法用于执行单个命令,而如果需要执行包含...
- `execute(cmdLine)`执行命令行并返回退出值。 ### 总结 以上三种方法各有优劣。`Runtime.exec()`简单但功能有限;`ProcessBuilder`提供了更多灵活性;而`commons-exec`则更适合复杂的进程管理场景。根据实际需求...
- 添加`/c`表示命令行将执行后续命令并在完成后立即关闭。 - 最后添加Tomcat的`startup.bat`路径。 2. **启动进程**: - 使用`ProcessBuilder`类来构建进程,将命令列表传递给它。 - 调用`start()`方法启动进程...
你可以通过mongo命令行工具直接执行JavaScript脚本: ```bash mongo mydb --quiet ``` `mydb`是你要连接的数据库,`script.js`是包含JavaScript命令的文件。 2. MongoDB命令行: 在MongoDB shell中,可以直接输入...
命令行接口是计算机系统中一种直接与操作系统交互的方式,通过输入文本指令执行任务。对于开发者而言,CLI提供了一种高效、灵活且可扩展的方式来执行任务,特别是对于自动化和脚本编写。在前端开发中,CLI工具可以...
命令行参数是在启动进程时传递给可执行文件的一系列字符串。它们通常用于定制程序的行为,比如设置配置选项或指定输入文件。例如,当我们运行 "notepad.exe file.txt","file.txt" 就是一个命令行参数,告诉记事本...
在Windows操作系统中,我们可以使用命令行工具CMD(Command Prompt)来执行各种系统命令。对于快速关机,最常用的命令是`shutdown`。这个命令可以用于计划或立即关闭、重新启动、注销或者休眠计算机。在C#中,我们...
通过这样的方式,我们可以构建出一个能够异步执行命令行操作并实时处理结果的QT应用程序。这不仅提高了程序的响应性,也避免了阻塞主线程的问题。 总结来说,QT异步命令行操作是通过`QProcess`类和信号槽机制来实现...
在C#编程中,创建一个简单的cmd命令输出窗口可以让我们以图形化的方式显示命令行操作的结果,这对于开发桌面应用程序或者需要交互式执行系统命令的场景非常有用。下面将详细介绍如何利用C#来实现这一功能。 首先,...