获取硬件信息

 通过shell命令获取硬件信息,如硬盘使用,内存,cpu等

ShellProcessor pro = new ShellProcessor();
StringBuilder sbu = new StringBuilder();

final String[] diskCmd = {"/system/bin/df"};
String disk = pro.execute(diskCmd);
sbu.append("硬盘信息=========\n").append(disk).append("\n").append(parseDiskinfo(disk).toString()).append("\n");
						
final String[] cpuCmd = {"/system/bin/cat","/proc/cpuinfo"};
String cpu = pro.execute(cpuCmd);
sbu.append("CPU信息=========\n").append(cpu).append("\n");
			
final String[] memCmd = {"/system/bin/cat","/proc/meminfo"};
String memory = pro.execute(memCmd);
sbu.append("内存信息=========\n").append(memory).append("\n");
			
final String[] versionCmd = {"/system/bin/cat","/proc/version"};
String version = pro.execute(versionCmd);
sbu.append("OS版本===========\n").append(version).append("\n");
tv.setText(sbu.toString());

另外,在/proc/下还有其他很多有用的命令。 

 

ShellProcessor类:

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.util.Log;

/**
 * 执行Shell脚本
 * @author QiShuang
 *
 */
public final class ShellProcessor {
	
	private ShellProcessor(){}

	/**
	 * 执行Shell脚本
	 * @param cmd String...
	 * @return
	 */
	public static String execute(String  cmd){
		String result = null;
		Process process = null;
		try {
			ProcessBuilder builder = new ProcessBuilder(cmd);
			process = builder.start();
			//操作输入流
			InputStream in = process.getInputStream();
			ByteArrayOutputStream out = new ByteArrayOutputStream();
			FileHandler.FileRWHandle.transIOStream(in, out);
			result = new String(out.toByteArray());
			//输出错误信息(如果有)
			InputStream errIn = process.getErrorStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(errIn));
			String line = "";
			while ((line = br.readLine()) != null) {
				System.err.println("shell exe error: " + line);
			}
			process.waitFor();
			in.close();
			out.close();
			br.close();
		} catch (Exception e) {
			Log.e(ShellProcessor.class.getName(), "执行shell脚本出错:"+e.toString());
		} finally{
			if(process!=null)
				process.destroy();
		}
		return result;
	}
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值