`
月下独酌
  • 浏览: 127325 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Process Command 执行命令行

阅读更多
	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 命令行与powershell电子书PDF版(第一卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    taskutils:使用Process运行管道命令的类的命令行应用程序示例

    taskutils 使用Process运行管道命令的类的命令行应用程序示例。用法例如,请参见main.swift: // Create example command line interface commands that needs to be run chained / pipedlet psefCommand = ...

    精通windows server 2008 命令行与powershell电子书PDF版(第三卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    精通windows server 2008 命令行与powershell 电子书PDF版(第四卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    精通windows server 2008 命令行与powershell 电子书PDF单文件完整版

    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...

    Java调用Linux命令

    (注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例), 该实例可用于控制进程或取得进程的相关信息. 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO...

    shell-words-根据UNIX shell的解析规则处理命令行-Rust开发

    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

    CEF中文使用说明书(教程版)

    命令行参数(Command Line Arguments) 应用程序布局(Application Layout) 应用程序结构(Application Structure) Windows操作系统(Windows) Linux操作系统(Linux) Mac X平台(Mac OS X) 单一执行体(Single ...

    ProcessRunner:从Swift执行子进程和系统命令

    通过Swift脚本或命令行工具轻松执行系统命令。 特征 :check_mark_button: 使用参数轻松执行子进程 :check_mark_button: 使用参数轻松执行shell命令 :check_mark_button: 实时捕获输出或流到stdout / stderr :...

    精通windows server 2008 命令行与powershell电子书PDF版(第二卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    annotated-command:从带注释的命令类方法创建Symfony Console命令

    利用此技术的现存命令行工具包括:该库提供了从提供的类中定义的所有公共方法生成Symfony \ Component \ Console \ Command \ Command的例程。 注意如果您正在寻找一种非常快速的方式来编写基于Symfony Console的...

    npm-run:运行本地安装的节点模块可执行文件

    从命令行在node_modules中运行可执行文件 使用npm-run可以确保您在命令行和package.json脚本中使用了相同版本的软件包。 npm生命周期脚本可用的任何可执行文件都可用于npm-run 。 用法 &gt; npm install mocha # mocha...

    node-exec-sync:重要的

    现在,节点v0.12内置了相同的功能: ://nodejs.org/api/child_process.html#child_process_child_process_exec_execsync_command_options执行同步同步执行shell命令。 将此用于迁移脚本,cli程序,而不用于常规...

    CliWrap:用于运行命令行进程的库

    CliWrap是用于以功能方式与命令行可执行文件进行交互的库。 它为启动外部流程,重定向输入和输出,等待完成以及处理取消提供了方便的模型。 它的核心是基于非常强大的管道模型,使您可以轻松创建复杂的执行设置。 ...

    arg:简单的参数解析

    Arg不执行任何验证/要求检查-我们将其留给应用程序处理。 选项未使用的所有参数(通常称为“额外”参数)都添加到result._ ,后者始终是一个数组(即使没有传递额外的参数,在这种情况下也会返回一个空数组)。 ...

    Sysinternals 实用程序全集 (完整版 49.2M)

    PsTools 套件包括几款命令行实用工具,可列出正在远程或本地计算机上运行的进程、以远程方式运行进程、重新启动计算机、转储事件日志以及执行其他任务。 RootkitRevealer 扫描系统以找出基于 Rootkit 的恶意软件 ...

    HP服务器监控.docx

    Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。 top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 &lt;空格&gt;:立刻刷新。 P:...

    shournal:您的shell的(文件)日志

    短暂的 Shell的(文件)日志 注意:有关更正式的介绍,请阅读上使用Bashing的方法。 到底有什么好处呢)?...除了以人类可读的格式(或JSON)在命令行上输出之外,您还可以将命令历史记录(的一部分)导出(部分)到

    入门学习Linux常用必会60个命令实例详解doc/txt

    -c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。 -F:在重启计算机时强迫fsck。 -time:设定关机前的...

Global site tag (gtag.js) - Google Analytics