得到android的系统信息

参考自eoeApps。

在使用eoeApps时,发现它显示的一些系统属性像和用命令行中敲出来的一样,好奇心大起。反编译之,遂得。

关键点为使用ProcessBuilder来执行命令。

另,系统属性的详细信息见:http://blog.csdn.net/jerryutscn/archive/2010/04/24/5519423.aspx

 

  1. package lab.sodino.textimage;   
  2. import java.io.ByteArrayOutputStream;   
  3. import java.io.IOException;   
  4. import java.io.InputStream;   
  5. import android.app.Activity;   
  6. import android.app.ActivityManager;   
  7. import android.content.Context;   
  8. import android.os.Bundle;   
  9. import android.telephony.TelephonyManager;   
  10. import android.util.DisplayMetrics;   
  11. import android.widget.TextView;   
  12. public class TextImgAct extends Activity {   
  13.     /** Called when the activity is first created. */  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {   
  16.         super.onCreate(savedInstanceState);   
  17.         setContentView(R.layout.main);   
  18.         TextView txt = (TextView) findViewById(R.id.txt);   
  19.         txt.setBackgroundColor(0xffffffff);   
  20.         txt.setTextColor(0xff0000ff);   
  21.         // txt.setText(getSystemProperty());//显示系统属性   
  22.         // txt.setText(getMemoryInfo(this));//显示内存信息   
  23.         // txt.setText(getVersionInfo());//显示系统版本信息   
  24.         // txt.setText(getCPUInfo());//显示CPU信息   
  25.         // txt.setText(getDiskInfo());//显示盘符信息   
  26.         // txt.setText(getDmesgInfo());//显示dmesg信息   
  27.         // txt.setText(getNetConfigInfo());//显示网络设置信息   
  28.         // txt.setText(getNetStatusInfo());//显示网络状态信息   
  29.         // txt.setText(getMountInfo());//显示Mount信息   
  30.         txt.setText(getTelStatus(this));//显示电话网络信息   
  31.     }   
  32.     /**  
  33.      * System Property文件为:<br/>  
  34.      * 1./default.prop <br/>  
  35.      * 2./system/build.prop <br/>  
  36.      * 3./system/default.prop <br/>  
  37.      * 4./data/local.prop <br/>  
  38.      * 属性信息按照上面的顺序被加载。后加载的属性会覆盖前面的属性值(注:当属性名称相同的时候)。当上面加载完成后,最后加载的是驻留属性,保存在/data  
  39.      * /property文件中。<br/>  
  40.      * 详见:http://blog.csdn.net/jerryutscn/archive/2010/04/24/5519423.aspx  
  41.      */  
  42.     public static String getSystemProperty() {   
  43.         StringBuffer strBuf = new StringBuffer();   
  44.         strBuf.append("java.vendor.url="  
  45.                 + System.getProperty("java.vendor.url") + "/n");   
  46.         strBuf.append("java.class.path="  
  47.                 + System.getProperty("java.class.path") + "/n");   
  48.         strBuf.append("user.home=" + System.getProperty("user.home") + "/n");   
  49.         strBuf.append("java.class.version="  
  50.                 + System.getProperty("java.class.version") + "/n");   
  51.         strBuf.append("os.version=" + System.getProperty("os.version") + "/n");   
  52.         strBuf   
  53.                 .append("java.vendor=" + System.getProperty("java.vendor")   
  54.                         + "/n");   
  55.         strBuf.append("user.dir=" + System.getProperty("user.dir") + "/n");   
  56.         strBuf.append("user.timezone=" + System.getProperty("user.timezone")   
  57.                 + "/n");   
  58.         strBuf.append("path.separator=" + System.getProperty("path.separator")   
  59.                 + "/n");   
  60.         strBuf.append("os.name=" + System.getProperty("os.name") + "/n");   
  61.         strBuf.append("os.arch=" + System.getProperty("os.arch") + "/n");   
  62.         strBuf.append("line.separator=" + System.getProperty("line.separator")   
  63.                 + "/n");   
  64.         strBuf.append("file.separator=" + System.getProperty("file.separator")   
  65.                 + "/n");   
  66.         strBuf.append("user.name=" + System.getProperty("user.name") + "/n");   
  67.         strBuf.append("java.version=" + System.getProperty("java.version")   
  68.                 + "/n");   
  69.         strBuf.append("java.home=" + System.getProperty("java.home") + "/n");   
  70.         return strBuf.toString();   
  71.     }   
  72.     //直接复制的反编译结果,未整理。   
  73.     public static String getDisplayMetrics(Context context) {   
  74.         DisplayMetrics displaymetrics1 = context.getApplicationContext()   
  75.                 .getResources().getDisplayMetrics();   
  76.         int i = displaymetrics1.widthPixels;   
  77.         int j = displaymetrics1.heightPixels;   
  78.         float f = displaymetrics1.density;   
  79.         float f1 = displaymetrics1.xdpi;   
  80.         float f2 = displaymetrics1.ydpi;   
  81.         String s = String.valueOf("");   
  82.         StringBuilder stringbuilder = (new StringBuilder(s))   
  83.                 .append("The absolute width:");   
  84.         String s1 = String.valueOf(i);   
  85.         String s2 = String.valueOf(stringbuilder.append(s1).append("pixels/n")   
  86.                 .toString());   
  87.         StringBuilder stringbuilder1 = (new StringBuilder(s2))   
  88.                 .append("The absolute heightin:");   
  89.         String s3 = String.valueOf(j);   
  90.         String s4 = String.valueOf(stringbuilder1.append(s3).append("pixels/n")   
  91.                 .toString());   
  92.         StringBuilder stringbuilder2 = (new StringBuilder(s4))   
  93.                 .append("The logical density of the display.:");   
  94.         String s5 = String.valueOf(f);   
  95.         String s6 = String.valueOf(stringbuilder2.append(s5).append("/n")   
  96.                 .toString());   
  97.         StringBuilder stringbuilder3 = (new StringBuilder(s6))   
  98.                 .append("X dimension :");   
  99.         String s7 = String.valueOf(f1);   
  100.         String s8 = String.valueOf(stringbuilder3.append(s7).append(   
  101.                 "pixels per inch/n").toString());   
  102.         StringBuilder stringbuilder4 = (new StringBuilder(s8))   
  103.                 .append("Y dimension :");   
  104.         String s9 = String.valueOf(f2);   
  105.         return stringbuilder4.append(s9).append("pixels per inch/n").toString();   
  106.     }   
  107.     public static String getVersionInfo() {   
  108.         String[] args = { "/system/bin/cat""/proc/version" };   
  109.         return exec(args);   
  110.     }   
  111.     public static String getCPUInfo() {   
  112.         String[] args = { "/system/bin/cat""/proc/cpuinfo" };   
  113.         return exec(args);   
  114.     }   
  115.     public static String getDiskInfo() {   
  116.         String[] args = { "/system/bin/df" };   
  117.         return exec(args);   
  118.     }   
  119.     public static String getDmesgInfo() {   
  120.         String[] args = { "/system/bin/dmesg" };   
  121.         return exec(args);   
  122.     }   
  123.     public static String getNetConfigInfo() {   
  124.         String[] args = { "/system/bin/netcfg" };   
  125.         return exec(args);   
  126.     }   
  127.     public static String getNetStatusInfo() {   
  128.         String[] args = { "/system/bin/netstat" };   
  129.         return exec(args);   
  130.     }   
  131.     public static String getMountInfo() {   
  132.         String[] args = { "/system/bin/mount" };   
  133.         return exec(args);   
  134.     }   
  135.     public static String getMemoryInfo(Context context) {   
  136.         StringBuffer strBuf = new StringBuffer();   
  137.         ActivityManager actMgr = (ActivityManager) context   
  138.                 .getSystemService(Context.ACTIVITY_SERVICE);   
  139.         android.app.ActivityManager.MemoryInfo memoryinfo = new android.app.ActivityManager.MemoryInfo();   
  140.         actMgr.getMemoryInfo(memoryinfo);   
  141.         strBuf.append("/nTotal Available Memory :");   
  142.         long l = memoryinfo.availMem >> 10;   
  143.         strBuf.append(l).append("k");   
  144.         strBuf.append("/nTotal Available Memory :");   
  145.         long l1 = memoryinfo.availMem >> 20;   
  146.         strBuf.append(l1).append("M");   
  147.         strBuf.append("/nIn low memory situation:");   
  148.         boolean flag = memoryinfo.lowMemory;   
  149.         strBuf.append(flag);   
  150.         String[] args = { "/system/bin/cat""/proc/meminfo" };   
  151.         strBuf.append(exec(args));   
  152.         return strBuf.toString();   
  153.     }   
  154.     public static String exec(String[] args) {   
  155.         String result = "";   
  156.         ProcessBuilder processBuilder = new ProcessBuilder(args);   
  157.         Process process = null;   
  158.         InputStream is = null;   
  159.         try {   
  160.             process = processBuilder.start();   
  161.             is = process.getInputStream();   
  162.             ByteArrayOutputStream baos = new ByteArrayOutputStream();   
  163.             int read = -1;   
  164.             while ((read = is.read()) != -1) {   
  165.                 baos.write(read);   
  166.             }   
  167.             byte[] data = baos.toByteArray();   
  168.             result = new String(data);   
  169.         } catch (IOException e) {   
  170.             e.printStackTrace();   
  171.         } finally {   
  172.             if (is != null) {   
  173.                 try {   
  174.                     is.close();   
  175.                 } catch (IOException e) {   
  176.                     e.printStackTrace();   
  177.                 }   
  178.             }   
  179.             if (process != null) {   
  180.                 process.destroy();   
  181.             }   
  182.         }   
  183.         return result;   
  184.     }   
  185.     //直接复制的反编译结果,未整理。   
  186.     public static String getTelStatus(Context context) {   
  187.         TelephonyManager telephonymanager = (TelephonyManager) context   
  188.                 .getSystemService("phone");   
  189.         String s = String.valueOf("");   
  190.         StringBuilder stringbuilder = (new StringBuilder(s))   
  191.                 .append("DeviceId(IMEI) = ");   
  192.         String s1 = telephonymanager.getDeviceId();   
  193.         String s2 = String.valueOf(stringbuilder.append(s1).append("/n")   
  194.                 .toString());   
  195.         StringBuilder stringbuilder1 = (new StringBuilder(s2))   
  196.                 .append("DeviceSoftwareVersion = ");   
  197.         String s3 = telephonymanager.getDeviceSoftwareVersion();   
  198.         String s4 = String.valueOf(stringbuilder1.append(s3).append("/n")   
  199.                 .toString());   
  200.         StringBuilder stringbuilder2 = (new StringBuilder(s4))   
  201.                 .append("Line1Number = ");   
  202.         String s5 = telephonymanager.getLine1Number();   
  203.         String s6 = String.valueOf(stringbuilder2.append(s5).append("/n")   
  204.                 .toString());   
  205.         StringBuilder stringbuilder3 = (new StringBuilder(s6))   
  206.                 .append("NetworkCountryIso = ");   
  207.         String s7 = telephonymanager.getNetworkCountryIso();   
  208.         String s8 = String.valueOf(stringbuilder3.append(s7).append("/n")   
  209.                 .toString());   
  210.         StringBuilder stringbuilder4 = (new StringBuilder(s8))   
  211.                 .append("NetworkOperator = ");   
  212.         String s9 = telephonymanager.getNetworkOperator();   
  213.         String s10 = String.valueOf(stringbuilder4.append(s9).append("/n")   
  214.                 .toString());   
  215.         StringBuilder stringbuilder5 = (new StringBuilder(s10))   
  216.                 .append("NetworkOperatorName = ");   
  217.         String s11 = telephonymanager.getNetworkOperatorName();   
  218.         String s12 = String.valueOf(stringbuilder5.append(s11).append("/n")   
  219.                 .toString());   
  220.         StringBuilder stringbuilder6 = (new StringBuilder(s12))   
  221.                 .append("NetworkType = ");   
  222.         int i = telephonymanager.getNetworkType();   
  223.         String s13 = String.valueOf(stringbuilder6.append(i).append("/n")   
  224.                 .toString());   
  225.         StringBuilder stringbuilder7 = (new StringBuilder(s13))   
  226.                 .append("PhoneType = ");   
  227.         int j = telephonymanager.getPhoneType();   
  228.         String s14 = String.valueOf(stringbuilder7.append(j).append("/n")   
  229.                 .toString());   
  230.         StringBuilder stringbuilder8 = (new StringBuilder(s14))   
  231.                 .append("SimCountryIso = ");   
  232.         String s15 = telephonymanager.getSimCountryIso();   
  233.         String s16 = String.valueOf(stringbuilder8.append(s15).append("/n")   
  234.                 .toString());   
  235.         StringBuilder stringbuilder9 = (new StringBuilder(s16))   
  236.                 .append("SimOperator = ");   
  237.         String s17 = telephonymanager.getSimOperator();   
  238.         String s18 = String.valueOf(stringbuilder9.append(s17).append("/n")   
  239.                 .toString());   
  240.         StringBuilder stringbuilder10 = (new StringBuilder(s18))   
  241.                 .append("SimOperatorName = ");   
  242.         String s19 = telephonymanager.getSimOperatorName();   
  243.         String s20 = String.valueOf(stringbuilder10.append(s19).append("/n")   
  244.                 .toString());   
  245.         StringBuilder stringbuilder11 = (new StringBuilder(s20))   
  246.                 .append("SimSerialNumber = ");   
  247.         String s21 = telephonymanager.getSimSerialNumber();   
  248.         String s22 = String.valueOf(stringbuilder11.append(s21).append("/n")   
  249.                 .toString());   
  250.         StringBuilder stringbuilder12 = (new StringBuilder(s22))   
  251.                 .append("SimState = ");   
  252.         int k = telephonymanager.getSimState();   
  253.         String s23 = String.valueOf(stringbuilder12.append(k).append("/n")   
  254.                 .toString());   
  255.         StringBuilder stringbuilder13 = (new StringBuilder(s23))   
  256.                 .append("SubscriberId(IMSI) = ");   
  257.         String s24 = telephonymanager.getSubscriberId();   
  258.         String s25 = String.valueOf(stringbuilder13.append(s24).append("/n")   
  259.                 .toString());   
  260.         StringBuilder stringbuilder14 = (new StringBuilder(s25))   
  261.                 .append("VoiceMailNumber = ");   
  262.         String s26 = telephonymanager.getVoiceMailNumber();   
  263.         String s27 = stringbuilder14.append(s26).append("/n").toString();   
  264.         int l = context.getResources().getConfiguration().mcc;   
  265.         int i1 = context.getResources().getConfiguration().mnc;   
  266.         String s28 = String.valueOf(s27);   
  267.         StringBuilder stringbuilder15 = (new StringBuilder(s28))   
  268.                 .append("IMSI MCC (Mobile Country Code):");   
  269.         String s29 = String.valueOf(l);   
  270.         String s30 = String.valueOf(stringbuilder15.append(s29).append("/n")   
  271.                 .toString());   
  272.         StringBuilder stringbuilder16 = (new StringBuilder(s30))   
  273.                 .append("IMSI MNC (Mobile Network Code):");   
  274.         String s31 = String.valueOf(i1);   
  275.         return stringbuilder16.append(s31).append("/n").toString();   
  276.     }   
  277. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值