Android 系统CPU,RAM,ROM,SDCard,MAC等信息查询的方法如下:
首先在AndroidManifest.xml中引入
<!-- 在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- WIFI权限 --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
设备信息查询类DeviceQuery.java
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.ListActivity;import android.content.Context;import android.os.Bundle;import android.os.Environment;import android.os.StatFs;import android.os.SystemClock;import android.widget.SimpleAdapter;import android.util.DisplayMetrics;import android.app.ActivityManager;import android.net.wifi.WifiManager;import android.net.wifi.WifiInfo;public class DeviceQuery extends ListActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);SimpleAdapter adapter = new SimpleAdapter(this, getData(),R.layout.device_query, new String[] { "title", "info" },new int[] { R.id.title, R.id.info });setListAdapter(adapter);//}private List<Map<String, Object>> getData() {List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();Map<String, Object> map;// SD卡容量if (ExistSDCard()) {map = new HashMap<String, Object>();map.put("title", "SDCard");map.put("info", "总大小:" + formatSize(getTotalSDSize()) + " 可用空间:"+ formatSize(getAvailSDSize()));list.add(map);}// CPU型号与频率String[] cpuInfo = getCpuInfo();map = new HashMap<String, Object>();map.put("title", "CPU");map.put("info", "型号:" + cpuInfo[0] + " 频率:" + cpuInfo[1] + "MHz");list.add(map);// RAM 大小map = new HashMap<String, Object>();map.put("title", "RAM");map.put("info", "总大小:" + formatSize(getTotalRAMSize()) + " 可用空间:"+ formatSize(getAvailRAMSize()));list.add(map);// ROM 大小map = new HashMap<String, Object>();map.put("title", "ROM");map.put("info", "总大小:" + formatSize(getTotalROMSize()) + " 可用空间:"+ formatSize(getAvailROMSize()));list.add(map);// MAC 地址map = new HashMap<String, Object>();map.put("title", "MAC");map.put("info", getMacAddress());list.add(map);// 设备型号map = new HashMap<String, Object>();map.put("title", "设备型号");map.put("info", android.os.Build.MODEL);list.add(map);// 系统版本map = new HashMap<String, Object>();map.put("title", "系统版本");map.put("info", "Android " + android.os.Build.VERSION.RELEASE);list.add(map);// 开机时长map = new HashMap<String, Object>();map.put("title", "开机时长");map.put("info", getElapsedTime());list.add(map);// 屏幕分辨率DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);int width = dm.widthPixels; // 当前分辨率 宽度int height = dm.heightPixels; // 当前分辨率高度map = new HashMap<String, Object>();map.put("title", "屏幕分辨率");map.put("info", width + "X" + height);list.add(map);return list;}// SD卡 可用空间public long getAvailSDSize() {// 取得SD卡文件路径File path = Environment.getExternalStorageDirectory();StatFs sf = new StatFs(path.getPath());// 获取单个数据块的大小(Byte)long blockSize = sf.getBlockSize();// 空闲的数据块的数量long availBlocks = sf.getAvailableBlocks();// 返回SD卡空闲大小return availBlocks * blockSize; // Byte}// SD卡总大小public long getTotalSDSize() {// 取得SD卡文件路径File path = Environment.getExternalStorageDirectory();StatFs sf = new StatFs(path.getPath());// 获取单个数据块的大小(Byte)long blockSize = sf.getBlockSize();// 获取所有数据块数long totalBlocks = sf.getBlockCount();// 返回SD卡大小return totalBlocks * blockSize; // Byte}// 获得CPU信息public String[] getCpuInfo() {String str1 = "/proc/cpuinfo";String str2 = "";String[] cpuInfo = { "", "" }; // 1-cpu型号 //2-cpu频率String[] arrayOfString;try {FileReader fr = new FileReader(str1);BufferedReader localBufferedReader = new BufferedReader(fr, 8192);str2 = localBufferedReader.readLine();arrayOfString = str2.split("\\s+");for (int i = 2; i < arrayOfString.length; i++) {cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " ";}str2 = localBufferedReader.readLine();arrayOfString = str2.split("\\s+");cpuInfo[1] += arrayOfString[2];localBufferedReader.close();} catch (IOException e) {}// Log.i(TAG, "cpuinfo:" + cpuInfo[0] + " " + cpuInfo[1]);return cpuInfo;}// RAM 总大小public long getTotalRAMSize() {String str1 = "/proc/meminfo";// 系统内存信息文件String str2;String[] arrayOfString;long totalSize = 0;try {FileReader localFileReader = new FileReader(str1);BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192);str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小arrayOfString = str2.split("\\s+");// 获得系统总内存,单位是KB,乘以1024转换为BytetotalSize = Integer.valueOf(arrayOfString[1]).intValue() * 1024;localBufferedReader.close();} catch (IOException e) {}return totalSize;}// RAM 可用空间public long getAvailRAMSize() {ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();am.getMemoryInfo(memInfo);return memInfo.availMem;}// ROM总大小public long getTotalROMSize() {File path = Environment.getDataDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSize();long totalBlocks = stat.getBlockCount();return totalBlocks * blockSize; // Byte}// ROM可用空间public long getAvailROMSize() {File path = Environment.getDataDirectory();StatFs stat = new StatFs(path.getPath());long blockSize = stat.getBlockSize();long availableBlocks = stat.getAvailableBlocks();return availableBlocks * blockSize; // Byte}// MAC地址public String getMacAddress() {String macStr = "";WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();if (wifiInfo.getMacAddress() != null) {macStr = wifiInfo.getMacAddress();// MAC地址} else {macStr = "null";}return macStr;}// 取得开机时长public String getElapsedTime() {long ut = SystemClock.elapsedRealtime() / 1000;if (ut == 0) {ut = 1;}int m = (int) ((ut / 60) % 60);int h = (int) ((ut / 3600));return h + " " + "小时 " + m + " " + "分钟";}// 判断存储卡是否存在public boolean ExistSDCard() {if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {return true;} elsereturn false;}// 格式化数据public String formatSize(long size) {String suffix = "B";// Bytefloat fSize = 0;if (size >= 1024) {suffix = "KB";fSize = size / 1024;if (fSize >= 1024) {suffix = "MB";fSize /= 1024;}if (fSize >= 1024) {suffix = "GB";fSize /= 1024;}} else {fSize = size;}java.text.DecimalFormat df = new java.text.DecimalFormat("#0.00");StringBuilder resultBuffer = new StringBuilder(df.format(fSize));if (suffix != null)resultBuffer.append(suffix);return resultBuffer.toString();}}
列表项配置文件device_query.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent">    <TextView            android:id="@+id/title" android:layout_width="wrap_content"android:layout_height="wrap_content" android:textColor="#FFFFFF"android:textSize="28sp"android:layout_marginLeft="10dip"/>    <TextView             android:id="@+id/info" android:layout_width="wrap_content"android:layout_height="wrap_content" android:textSize="18sp"android:textColor="#C6CBD0" android:layout_marginLeft="10dip"/></LinearLayout>

环境:XP3+Eclipse+Android2.2+JDK6.0





更多相关文章

  1. android Sqlite数据库事务处理*.sql 语句集文件
  2. 《二》Android(安卓)数据库 SQlite SQLiteOpenHelper
  3. (4.1.22.2)Android之取消ViewPage+Fragment的预加载 2015
  4. Android(安卓)Intent传递数据
  5. Android(安卓)设置亮度
  6. Android(安卓)BaseFragment封装
  7. android sdk api的层次结构
  8. android 数据库升级(保留原先数据)
  9. 3D相册图片滑动+倾斜+放大+倒影处理

随机推荐

  1. android - AsyncTask的使用
  2. android中AVD的使用
  3. mysql5.6及以下版本如何查询数据库里的js
  4. 解决Mysql5.7中文乱码的问题
  5. 详解MySQL主从复制实战 - 基于GTID的复制
  6. Centos 6.5下安装MySQL 5.6教程
  7. Linux下mysql的root密码修改方法
  8. MySQL利用profile分析慢sql详解(group lef
  9. MySQL数据库事务隔离级别详解
  10. Mac下mysql 5.7.13 安装配置方法图文教程