得到android的系统信息
2010-12-23 18:58
260 查看
参考自eoeApps。
在使用eoeApps时,发现它显示的一些系统属性像和用命令行中敲出来的一样,好奇心大起。反编译之,遂得。
关键点为使用ProcessBuilder来执行命令。
另,系统属性的详细信息见:http://blog.csdn.net/jerryutscn/archive/2010/04/24/5519423.aspx
view plaincopy to clipboardprint?
package lab.sodino.textimage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.widget.TextView;
public class TextImgAct extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txt = (TextView) findViewById(R.id.txt);
txt.setBackgroundColor(0xffffffff);
txt.setTextColor(0xff0000ff);
// txt.setText(getSystemProperty());//显示系统属性
// txt.setText(getMemoryInfo(this));//显示内存信息
// txt.setText(getVersionInfo());//显示系统版本信息
// txt.setText(getCPUInfo());//显示CPU信息
// txt.setText(getDiskInfo());//显示盘符信息
// txt.setText(getDmesgInfo());//显示dmesg信息
// txt.setText(getNetConfigInfo());//显示网络设置信息
// txt.setText(getNetStatusInfo());//显示网络状态信息
// txt.setText(getMountInfo());//显示Mount信息
txt.setText(getTelStatus(this));//显示电话网络信息
}
/**
* System Property文件为:<br/>
* 1./default.prop <br/>
* 2./system/build.prop <br/>
* 3./system/default.prop <br/>
* 4./data/local.prop <br/>
* 属性信息按照上面的顺序被加载。后加载的属性会覆盖前面的属性值(注:当属性名称相同的时候)。当上面加载完成后,最后加载的是驻留属性,保存在/data
* /property文件中。<br/>
* 详见:http://blog.csdn.net/jerryutscn/archive/2010/04/24/5519423.aspx
*/
public static String getSystemProperty() {
StringBuffer strBuf = new StringBuffer();
strBuf.append("java.vendor.url="
+ System.getProperty("java.vendor.url") + "/n");
strBuf.append("java.class.path="
+ System.getProperty("java.class.path") + "/n");
strBuf.append("user.home=" + System.getProperty("user.home") + "/n");
strBuf.append("java.class.version="
+ System.getProperty("java.class.version") + "/n");
strBuf.append("os.version=" + System.getProperty("os.version") + "/n");
strBuf
.append("java.vendor=" + System.getProperty("java.vendor")
+ "/n");
strBuf.append("user.dir=" + System.getProperty("user.dir") + "/n");
strBuf.append("user.timezone=" + System.getProperty("user.timezone")
+ "/n");
strBuf.append("path.separator=" + System.getProperty("path.separator")
+ "/n");
strBuf.append("os.name=" + System.getProperty("os.name") + "/n");
strBuf.append("os.arch=" + System.getProperty("os.arch") + "/n");
strBuf.append("line.separator=" + System.getProperty("line.separator")
+ "/n");
strBuf.append("file.separator=" + System.getProperty("file.separator")
+ "/n");
strBuf.append("user.name=" + System.getProperty("user.name") + "/n");
strBuf.append("java.version=" + System.getProperty("java.version")
+ "/n");
strBuf.append("java.home=" + System.getProperty("java.home") + "/n");
return strBuf.toString();
}
//直接复制的反编译结果,未整理。
public static String getDisplayMetrics(Context context) {
DisplayMetrics displaymetrics1 = context.getApplicationContext()
.getResources().getDisplayMetrics();
int i = displaymetrics1.widthPixels;
int j = displaymetrics1.heightPixels;
float f = displaymetrics1.density;
float f1 = displaymetrics1.xdpi;
float f2 = displaymetrics1.ydpi;
String s = String.valueOf("");
StringBuilder stringbuilder = (new StringBuilder(s))
.append("The absolute width:");
String s1 = String.valueOf(i);
String s2 = String.valueOf(stringbuilder.append(s1).append("pixels/n")
.toString());
StringBuilder stringbuilder1 = (new StringBuilder(s2))
.append("The absolute heightin:");
String s3 = String.valueOf(j);
String s4 = String.valueOf(stringbuilder1.append(s3).append("pixels/n")
.toString());
StringBuilder stringbuilder2 = (new StringBuilder(s4))
.append("The logical density of the display.:");
String s5 = String.valueOf(f);
String s6 = String.valueOf(stringbuilder2.append(s5).append("/n")
.toString());
StringBuilder stringbuilder3 = (new StringBuilder(s6))
.append("X dimension :");
String s7 = String.valueOf(f1);
String s8 = String.valueOf(stringbuilder3.append(s7).append(
"pixels per inch/n").toString());
StringBuilder stringbuilder4 = (new StringBuilder(s8))
.append("Y dimension :");
String s9 = String.valueOf(f2);
return stringbuilder4.append(s9).append("pixels per inch/n").toString();
}
public static String getVersionInfo() {
String[] args = { "/system/bin/cat", "/proc/version" };
return exec(args);
}
public static String getCPUInfo() {
String[] args = { "/system/bin/cat", "/proc/cpuinfo" };
return exec(args);
}
public static String getDiskInfo() {
String[] args = { "/system/bin/df" };
return exec(args);
}
public static String getDmesgInfo() {
String[] args = { "/system/bin/dmesg" };
return exec(args);
}
public static String getNetConfigInfo() {
String[] args = { "/system/bin/netcfg" };
return exec(args);
}
public static String getNetStatusInfo() {
String[] args = { "/system/bin/netstat" };
return exec(args);
}
public static String getMountInfo() {
String[] args = { "/system/bin/mount" };
return exec(args);
}
public static String getMemoryInfo(Context context) {
StringBuffer strBuf = new StringBuffer();
ActivityManager actMgr = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
android.app.ActivityManager.MemoryInfo memoryinfo = new android.app.ActivityManager.MemoryInfo();
actMgr.getMemoryInfo(memoryinfo);
strBuf.append("/nTotal Available Memory :");
long l = memoryinfo.availMem >> 10;
strBuf.append(l).append("k");
strBuf.append("/nTotal Available Memory :");
long l1 = memoryinfo.availMem >> 20;
strBuf.append(l1).append("M");
strBuf.append("/nIn low memory situation:");
boolean flag = memoryinfo.lowMemory;
strBuf.append(flag);
String[] args = { "/system/bin/cat", "/proc/meminfo" };
strBuf.append(exec(args));
return strBuf.toString();
}
public static String exec(String[] args) {
String result = "";
ProcessBuilder processBuilder = new ProcessBuilder(args);
Process process = null;
InputStream is = null;
try {
process = processBuilder.start();
is = process.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int read = -1;
while ((read = is.read()) != -1) {
baos.write(read);
}
byte[] data = baos.toByteArray();
result = new String(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (process != null) {
process.destroy();
}
}
return result;
}
//直接复制的反编译结果,未整理。
public static String getTelStatus(Context context) {
TelephonyManager telephonymanager = (TelephonyManager) context
.getSystemService("phone");
String s = String.valueOf("");
StringBuilder stringbuilder = (new StringBuilder(s))
.append("DeviceId(IMEI) = ");
String s1 = telephonymanager.getDeviceId();
String s2 = String.valueOf(stringbuilder.append(s1).append("/n")
.toString());
StringBuilder stringbuilder1 = (new StringBuilder(s2))
.append("DeviceSoftwareVersion = ");
String s3 = telephonymanager.getDeviceSoftwareVersion();
String s4 = String.valueOf(stringbuilder1.append(s3).append("/n")
.toString());
StringBuilder stringbuilder2 = (new StringBuilder(s4))
.append("Line1Number = ");
String s5 = telephonymanager.getLine1Number();
String s6 = String.valueOf(stringbuilder2.append(s5).append("/n")
.toString());
StringBuilder stringbuilder3 = (new StringBuilder(s6))
.append("NetworkCountryIso = ");
String s7 = telephonymanager.getNetworkCountryIso();
String s8 = String.valueOf(stringbuilder3.append(s7).append("/n")
.toString());
StringBuilder stringbuilder4 = (new StringBuilder(s8))
.append("NetworkOperator = ");
String s9 = telephonymanager.getNetworkOperator();
String s10 = String.valueOf(stringbuilder4.append(s9).append("/n")
.toString());
StringBuilder stringbuilder5 = (new StringBuilder(s10))
.append("NetworkOperatorName = ");
String s11 = telephonymanager.getNetworkOperatorName();
String s12 = String.valueOf(stringbuilder5.append(s11).append("/n")
.toString());
StringBuilder stringbuilder6 = (new StringBuilder(s12))
.append("NetworkType = ");
int i = telephonymanager.getNetworkType();
String s13 = String.valueOf(stringbuilder6.append(i).append("/n")
.toString());
StringBuilder stringbuilder7 = (new StringBuilder(s13))
.append("PhoneType = ");
int j = telephonymanager.getPhoneType();
String s14 = String.valueOf(stringbuilder7.append(j).append("/n")
.toString());
StringBuilder stringbuilder8 = (new StringBuilder(s14))
.append("SimCountryIso = ");
String s15 = telephonymanager.getSimCountryIso();
String s16 = String.valueOf(stringbuilder8.append(s15).append("/n")
.toString());
StringBuilder stringbuilder9 = (new StringBuilder(s16))
.append("SimOperator = ");
String s17 = telephonymanager.getSimOperator();
String s18 = String.valueOf(stringbuilder9.append(s17).append("/n")
.toString());
StringBuilder stringbuilder10 = (new StringBuilder(s18))
.append("SimOperatorName = ");
String s19 = telephonymanager.getSimOperatorName();
String s20 = String.valueOf(stringbuilder10.append(s19).append("/n")
.toString());
StringBuilder stringbuilder11 = (new StringBuilder(s20))
.append("SimSerialNumber = ");
String s21 = telephonymanager.getSimSerialNumber();
String s22 = String.valueOf(stringbuilder11.append(s21).append("/n")
.toString());
StringBuilder stringbuilder12 = (new StringBuilder(s22))
.append("SimState = ");
int k = telephonymanager.getSimState();
String s23 = String.valueOf(stringbuilder12.append(k).append("/n")
.toString());
StringBuilder stringbuilder13 = (new StringBuilder(s23))
.append("SubscriberId(IMSI) = ");
String s24 = telephonymanager.getSubscriberId();
String s25 = String.valueOf(stringbuilder13.append(s24).append("/n")
.toString());
StringBuilder stringbuilder14 = (new StringBuilder(s25))
.append("VoiceMailNumber = ");
String s26 = telephonymanager.getVoiceMailNumber();
String s27 = stringbuilder14.append(s26).append("/n").toString();
int l = context.getResources().getConfiguration().mcc;
int i1 = context.getResources().getConfiguration().mnc;
String s28 = String.valueOf(s27);
StringBuilder stringbuilder15 = (new StringBuilder(s28))
.append("IMSI MCC (Mobile Country Code):");
String s29 = String.valueOf(l);
String s30 = String.valueOf(stringbuilder15.append(s29).append("/n")
.toString());
StringBuilder stringbuilder16 = (new StringBuilder(s30))
.append("IMSI MNC (Mobile Network Code):");
String s31 = String.valueOf(i1);
return stringbuilder16.append(s31).append("/n").toString();
}
}
在使用eoeApps时,发现它显示的一些系统属性像和用命令行中敲出来的一样,好奇心大起。反编译之,遂得。
关键点为使用ProcessBuilder来执行命令。
另,系统属性的详细信息见:http://blog.csdn.net/jerryutscn/archive/2010/04/24/5519423.aspx
view plaincopy to clipboardprint?
package lab.sodino.textimage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.widget.TextView;
public class TextImgAct extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txt = (TextView) findViewById(R.id.txt);
txt.setBackgroundColor(0xffffffff);
txt.setTextColor(0xff0000ff);
// txt.setText(getSystemProperty());//显示系统属性
// txt.setText(getMemoryInfo(this));//显示内存信息
// txt.setText(getVersionInfo());//显示系统版本信息
// txt.setText(getCPUInfo());//显示CPU信息
// txt.setText(getDiskInfo());//显示盘符信息
// txt.setText(getDmesgInfo());//显示dmesg信息
// txt.setText(getNetConfigInfo());//显示网络设置信息
// txt.setText(getNetStatusInfo());//显示网络状态信息
// txt.setText(getMountInfo());//显示Mount信息
txt.setText(getTelStatus(this));//显示电话网络信息
}
/**
* System Property文件为:<br/>
* 1./default.prop <br/>
* 2./system/build.prop <br/>
* 3./system/default.prop <br/>
* 4./data/local.prop <br/>
* 属性信息按照上面的顺序被加载。后加载的属性会覆盖前面的属性值(注:当属性名称相同的时候)。当上面加载完成后,最后加载的是驻留属性,保存在/data
* /property文件中。<br/>
* 详见:http://blog.csdn.net/jerryutscn/archive/2010/04/24/5519423.aspx
*/
public static String getSystemProperty() {
StringBuffer strBuf = new StringBuffer();
strBuf.append("java.vendor.url="
+ System.getProperty("java.vendor.url") + "/n");
strBuf.append("java.class.path="
+ System.getProperty("java.class.path") + "/n");
strBuf.append("user.home=" + System.getProperty("user.home") + "/n");
strBuf.append("java.class.version="
+ System.getProperty("java.class.version") + "/n");
strBuf.append("os.version=" + System.getProperty("os.version") + "/n");
strBuf
.append("java.vendor=" + System.getProperty("java.vendor")
+ "/n");
strBuf.append("user.dir=" + System.getProperty("user.dir") + "/n");
strBuf.append("user.timezone=" + System.getProperty("user.timezone")
+ "/n");
strBuf.append("path.separator=" + System.getProperty("path.separator")
+ "/n");
strBuf.append("os.name=" + System.getProperty("os.name") + "/n");
strBuf.append("os.arch=" + System.getProperty("os.arch") + "/n");
strBuf.append("line.separator=" + System.getProperty("line.separator")
+ "/n");
strBuf.append("file.separator=" + System.getProperty("file.separator")
+ "/n");
strBuf.append("user.name=" + System.getProperty("user.name") + "/n");
strBuf.append("java.version=" + System.getProperty("java.version")
+ "/n");
strBuf.append("java.home=" + System.getProperty("java.home") + "/n");
return strBuf.toString();
}
//直接复制的反编译结果,未整理。
public static String getDisplayMetrics(Context context) {
DisplayMetrics displaymetrics1 = context.getApplicationContext()
.getResources().getDisplayMetrics();
int i = displaymetrics1.widthPixels;
int j = displaymetrics1.heightPixels;
float f = displaymetrics1.density;
float f1 = displaymetrics1.xdpi;
float f2 = displaymetrics1.ydpi;
String s = String.valueOf("");
StringBuilder stringbuilder = (new StringBuilder(s))
.append("The absolute width:");
String s1 = String.valueOf(i);
String s2 = String.valueOf(stringbuilder.append(s1).append("pixels/n")
.toString());
StringBuilder stringbuilder1 = (new StringBuilder(s2))
.append("The absolute heightin:");
String s3 = String.valueOf(j);
String s4 = String.valueOf(stringbuilder1.append(s3).append("pixels/n")
.toString());
StringBuilder stringbuilder2 = (new StringBuilder(s4))
.append("The logical density of the display.:");
String s5 = String.valueOf(f);
String s6 = String.valueOf(stringbuilder2.append(s5).append("/n")
.toString());
StringBuilder stringbuilder3 = (new StringBuilder(s6))
.append("X dimension :");
String s7 = String.valueOf(f1);
String s8 = String.valueOf(stringbuilder3.append(s7).append(
"pixels per inch/n").toString());
StringBuilder stringbuilder4 = (new StringBuilder(s8))
.append("Y dimension :");
String s9 = String.valueOf(f2);
return stringbuilder4.append(s9).append("pixels per inch/n").toString();
}
public static String getVersionInfo() {
String[] args = { "/system/bin/cat", "/proc/version" };
return exec(args);
}
public static String getCPUInfo() {
String[] args = { "/system/bin/cat", "/proc/cpuinfo" };
return exec(args);
}
public static String getDiskInfo() {
String[] args = { "/system/bin/df" };
return exec(args);
}
public static String getDmesgInfo() {
String[] args = { "/system/bin/dmesg" };
return exec(args);
}
public static String getNetConfigInfo() {
String[] args = { "/system/bin/netcfg" };
return exec(args);
}
public static String getNetStatusInfo() {
String[] args = { "/system/bin/netstat" };
return exec(args);
}
public static String getMountInfo() {
String[] args = { "/system/bin/mount" };
return exec(args);
}
public static String getMemoryInfo(Context context) {
StringBuffer strBuf = new StringBuffer();
ActivityManager actMgr = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
android.app.ActivityManager.MemoryInfo memoryinfo = new android.app.ActivityManager.MemoryInfo();
actMgr.getMemoryInfo(memoryinfo);
strBuf.append("/nTotal Available Memory :");
long l = memoryinfo.availMem >> 10;
strBuf.append(l).append("k");
strBuf.append("/nTotal Available Memory :");
long l1 = memoryinfo.availMem >> 20;
strBuf.append(l1).append("M");
strBuf.append("/nIn low memory situation:");
boolean flag = memoryinfo.lowMemory;
strBuf.append(flag);
String[] args = { "/system/bin/cat", "/proc/meminfo" };
strBuf.append(exec(args));
return strBuf.toString();
}
public static String exec(String[] args) {
String result = "";
ProcessBuilder processBuilder = new ProcessBuilder(args);
Process process = null;
InputStream is = null;
try {
process = processBuilder.start();
is = process.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int read = -1;
while ((read = is.read()) != -1) {
baos.write(read);
}
byte[] data = baos.toByteArray();
result = new String(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (process != null) {
process.destroy();
}
}
return result;
}
//直接复制的反编译结果,未整理。
public static String getTelStatus(Context context) {
TelephonyManager telephonymanager = (TelephonyManager) context
.getSystemService("phone");
String s = String.valueOf("");
StringBuilder stringbuilder = (new StringBuilder(s))
.append("DeviceId(IMEI) = ");
String s1 = telephonymanager.getDeviceId();
String s2 = String.valueOf(stringbuilder.append(s1).append("/n")
.toString());
StringBuilder stringbuilder1 = (new StringBuilder(s2))
.append("DeviceSoftwareVersion = ");
String s3 = telephonymanager.getDeviceSoftwareVersion();
String s4 = String.valueOf(stringbuilder1.append(s3).append("/n")
.toString());
StringBuilder stringbuilder2 = (new StringBuilder(s4))
.append("Line1Number = ");
String s5 = telephonymanager.getLine1Number();
String s6 = String.valueOf(stringbuilder2.append(s5).append("/n")
.toString());
StringBuilder stringbuilder3 = (new StringBuilder(s6))
.append("NetworkCountryIso = ");
String s7 = telephonymanager.getNetworkCountryIso();
String s8 = String.valueOf(stringbuilder3.append(s7).append("/n")
.toString());
StringBuilder stringbuilder4 = (new StringBuilder(s8))
.append("NetworkOperator = ");
String s9 = telephonymanager.getNetworkOperator();
String s10 = String.valueOf(stringbuilder4.append(s9).append("/n")
.toString());
StringBuilder stringbuilder5 = (new StringBuilder(s10))
.append("NetworkOperatorName = ");
String s11 = telephonymanager.getNetworkOperatorName();
String s12 = String.valueOf(stringbuilder5.append(s11).append("/n")
.toString());
StringBuilder stringbuilder6 = (new StringBuilder(s12))
.append("NetworkType = ");
int i = telephonymanager.getNetworkType();
String s13 = String.valueOf(stringbuilder6.append(i).append("/n")
.toString());
StringBuilder stringbuilder7 = (new StringBuilder(s13))
.append("PhoneType = ");
int j = telephonymanager.getPhoneType();
String s14 = String.valueOf(stringbuilder7.append(j).append("/n")
.toString());
StringBuilder stringbuilder8 = (new StringBuilder(s14))
.append("SimCountryIso = ");
String s15 = telephonymanager.getSimCountryIso();
String s16 = String.valueOf(stringbuilder8.append(s15).append("/n")
.toString());
StringBuilder stringbuilder9 = (new StringBuilder(s16))
.append("SimOperator = ");
String s17 = telephonymanager.getSimOperator();
String s18 = String.valueOf(stringbuilder9.append(s17).append("/n")
.toString());
StringBuilder stringbuilder10 = (new StringBuilder(s18))
.append("SimOperatorName = ");
String s19 = telephonymanager.getSimOperatorName();
String s20 = String.valueOf(stringbuilder10.append(s19).append("/n")
.toString());
StringBuilder stringbuilder11 = (new StringBuilder(s20))
.append("SimSerialNumber = ");
String s21 = telephonymanager.getSimSerialNumber();
String s22 = String.valueOf(stringbuilder11.append(s21).append("/n")
.toString());
StringBuilder stringbuilder12 = (new StringBuilder(s22))
.append("SimState = ");
int k = telephonymanager.getSimState();
String s23 = String.valueOf(stringbuilder12.append(k).append("/n")
.toString());
StringBuilder stringbuilder13 = (new StringBuilder(s23))
.append("SubscriberId(IMSI) = ");
String s24 = telephonymanager.getSubscriberId();
String s25 = String.valueOf(stringbuilder13.append(s24).append("/n")
.toString());
StringBuilder stringbuilder14 = (new StringBuilder(s25))
.append("VoiceMailNumber = ");
String s26 = telephonymanager.getVoiceMailNumber();
String s27 = stringbuilder14.append(s26).append("/n").toString();
int l = context.getResources().getConfiguration().mcc;
int i1 = context.getResources().getConfiguration().mnc;
String s28 = String.valueOf(s27);
StringBuilder stringbuilder15 = (new StringBuilder(s28))
.append("IMSI MCC (Mobile Country Code):");
String s29 = String.valueOf(l);
String s30 = String.valueOf(stringbuilder15.append(s29).append("/n")
.toString());
StringBuilder stringbuilder16 = (new StringBuilder(s30))
.append("IMSI MNC (Mobile Network Code):");
String s31 = String.valueOf(i1);
return stringbuilder16.append(s31).append("/n").toString();
}
}
相关文章推荐
- Android抓取系统日志,并从中得到其他应用的日志信息
- Android系统proc下查看cpuinfo的参数信息
- 可以得到当前系统信息的脚本sysinfo.vbs
- android getprop指令获得系统信息
- 【原创】枚举Android系统的进程、任务和服务的信息
- Android获取系统cpu信息,内存,版本,电量等信息
- 调用Android系统“应用程序信息(Application Info)”界面
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- Android开发之系统信息——获取Android手机中SD卡内存信息
- 我的第一个Android项目--------机房管理与学生信息系统的Android端开发
- Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法
- android 获取手机系统信息
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- android通过apk包得到apk包信息
- Android获取手机型号,系统版本,App版本号等信息
- android开发 打开系统设置信息页面
- Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法
- 得到文件系统的 管理信息
- Android系统的进程,任务,服务的信息
- Android:StatFs类 获取系统/sdcard存储空间信息