Android Tutorial - Hardware : System Information
Get Disk information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; // disk info public static String fetch_disk_info() { String result = null; CMDExecute cmdexe = new CMDExecute(); try { String[] args = { "/system/bin/df" }; result = cmdexe.run(args, "/system/bin/"); } catch (IOException ex) { ex.printStackTrace(); } return result; } }
Get Net stat information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; // netstat info public static String fetch_netstat_info() { String result = null; CMDExecute cmdexe = new CMDExecute(); try { String[] args = { "/system/bin/netstat" }; result = cmdexe.run(args, "/system/bin/"); } catch (IOException ex) { ex.printStackTrace(); } return result; } }
Get dmesg information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; public static String fetch_dmesg_info() { Log.i("fetch_dmesg_info", "start...."); String result = null; CMDExecute cmdexe = new CMDExecute(); try { String[] args = { "/system/bin/dmesg" }; result = cmdexe.run(args, "/system/bin/"); } catch (IOException ex) { Log.i("fetch_dmesg_info", "ex=" + ex.toString()); } return result; } }
Get Process information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; public static String fetch_process_info() { Log.i("fetch_process_info", "start...."); String result = null; CMDExecute cmdexe = new CMDExecute(); try { String[] args = { "/system/bin/top", "-n", "1" }; result = cmdexe.run(args, "/system/bin/"); } catch (IOException ex) { Log.i("fetch_process_info", "ex=" + ex.toString()); } return result; } }
Get net conf information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; public static String fetch_netcfg_info() { Log.i("fetch_process_info", "start...."); String result = null; CMDExecute cmdexe = new CMDExecute(); try { String[] args = { "/system/bin/netcfg" }; result = cmdexe.run(args, "/system/bin/"); } catch (IOException ex) { Log.i("fetch_process_info", "ex=" + ex.toString()); } return result; } }
Get mount information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; public static String fetch_mount_info() { Log.i("fetch_process_info", "start...."); String result = null; CMDExecute cmdexe = new CMDExecute(); try { String[] args = { "/system/bin/mount" }; result = cmdexe.run(args, "/system/bin/"); } catch (IOException ex) { Log.i("fetch_process_info", "ex=" + ex.toString()); } return result; } }
Get telephone information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; public static String fetch_tel_status(Context cx) { String result = null; TelephonyManager tm = (TelephonyManager) cx .getSystemService(Context.TELEPHONY_SERVICE);// String str = ""; str += "DeviceId(IMEI) = " + tm.getDeviceId() + "\n"; str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion() + "\n"; str += "Line1Number = " + tm.getLine1Number() + "\n"; str += "NetworkCountryIso = " + tm.getNetworkCountryIso() + "\n"; str += "NetworkOperator = " + tm.getNetworkOperator() + "\n"; str += "NetworkOperatorName = " + tm.getNetworkOperatorName() + "\n"; str += "NetworkType = " + tm.getNetworkType() + "\n"; str += "PhoneType = " + tm.getPhoneType() + "\n"; str += "SimCountryIso = " + tm.getSimCountryIso() + "\n"; str += "SimOperator = " + tm.getSimOperator() + "\n"; str += "SimOperatorName = " + tm.getSimOperatorName() + "\n"; str += "SimSerialNumber = " + tm.getSimSerialNumber() + "\n"; str += "SimState = " + tm.getSimState() + "\n"; str += "SubscriberId(IMSI) = " + tm.getSubscriberId() + "\n"; str += "VoiceMailNumber = " + tm.getVoiceMailNumber() + "\n"; int mcc = cx.getResources().getConfiguration().mcc; int mnc = cx.getResources().getConfiguration().mnc; str += "IMSI MCC (Mobile Country Code):" + String.valueOf(mcc) + "\n"; str += "IMSI MNC (Mobile Network Code):" + String.valueOf(mnc) + "\n"; result = str; return result; } }
Get system information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; public static String getSystemProperty() { buffer = new StringBuffer(); initProperty("java.vendor.url", "java.vendor.url"); initProperty("java.class.path", "java.class.path"); initProperty("user.home", "user.home"); initProperty("java.class.version", "java.class.version"); initProperty("os.version", "os.version"); initProperty("java.vendor", "java.vendor"); initProperty("user.dir", "user.dir"); initProperty("user.timezone", "user.timezone"); initProperty("path.separator", "path.separator"); initProperty(" os.name", " os.name"); initProperty("os.arch", "os.arch"); initProperty("line.separator", "line.separator"); initProperty("file.separator", "file.separator"); initProperty("user.name", "user.name"); initProperty("java.version", "java.version"); initProperty("java.home", "java.home"); return buffer.toString(); } private static String initProperty(String description, String propertyStr) { if (buffer == null) { buffer = new StringBuffer(); } buffer.append(description).append(":"); buffer.append(System.getProperty(propertyStr)).append("\n"); return buffer.toString(); } }
Get running task information
package app.test; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; import android.util.Log; class CMDExecute { public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); // set working directory if (workdirectory != null) builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); InputStream in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { System.out.println(new String(re)); result = result + new String(re); } in.close(); } catch (Exception ex) { ex.printStackTrace(); } return result; } } public class Main { private static StringBuffer buffer; public static String getRunningTasksInfo(Context context) { StringBuffer sInfo = new StringBuffer(); final ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = activityManager.getRunningTasks(100); Iterator<RunningTaskInfo> l = tasks.iterator(); while (l.hasNext()) { RunningTaskInfo ti = (RunningTaskInfo) l.next(); sInfo.append("id: ").append(ti.id); sInfo.append("\nbaseActivity: ").append( ti.baseActivity.flattenToString()); sInfo.append("\nnumActivities: ").append(ti.numActivities); sInfo.append("\nnumRunning: ").append(ti.numRunning); sInfo.append("\ndescription: ").append(ti.description); sInfo.append("\n\n"); } return sInfo.toString(); } }