获取硬件信息

来源:互联网 发布:plc通讯地址 mac 编辑:程序博客网 时间:2024/06/06 04:11

 通过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;}}






原创粉丝点击