获取安卓手机软硬件信息


import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.regex.Pattern;

import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Environment;
import android.os.StatFs;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;

/********************************************************
*日期:  2016年2月14日
*文件名: HK_PhoneInfo_Util.java
*类名:  SmartVideoPhoneZChou01
*作者:  Sun_skin
*标记:  无
*作用:  TODO
********************************************************/
public class HK_PhoneInfo_Util {
 private static String TAG = "HK_PhoneInfo_Util";

 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getCpuName
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: String
 *标记:  无
 *作用:  获取CPU型号
 ********************************************************/
 public static String getCpuName()
 {
  try
  {
   FileReader fr = new FileReader("/proc/cpuinfo");
      BufferedReader br = new BufferedReader(fr);
      String text = br.readLine();
      String[] array = text.split(":\\s+",2);
      for(int i = 0; i < array.length; i++)
      {
      }
      return array[1];
  }catch(FileNotFoundException e){
      e.printStackTrace();
  }catch (IOException e){
   e.printStackTrace();
  }
  return null;
 }
 
 
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getNumCores
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: int
 *标记:  无
 *作用:  获取CPU核心数
 ********************************************************/
 public static int getNumCores()
 {
     //Private Class to display only CPU devices in the directory listing
     class CpuFilter implements FileFilter
     {
         @Override
         public boolean accept(File pathname) {
             //Check if filename is "cpu", followed by a single digit number
             if(Pattern.matches("cpu[0-9]", pathname.getName())) {
                 return true;
             }
             return false;
         }     
     }

     try {
         //Get directory containing CPU info
         File dir = new File("/sys/devices/system/cpu/");
         //Filter to only list the devices we care about
         File[] files = dir.listFiles(new CpuFilter());
         Log.d(TAG, "CPU Count: "+files.length);
         //Return the number of cores (virtual CPU devices)
         return files.length;
     } catch(Exception e) {
         //Print exception
         Log.d(TAG, "CPU Count: Failed.");
         e.printStackTrace();
         //Default to return 1 core
         return 1;
     }
 }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getMinCpuFreq
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: String
 *标记:  无
 *作用:  无获取CPU最大频率
 ********************************************************/
 public static String getMinCpuFreq()
 {
  String result = ""; 
        ProcessBuilder cmd; 
        try { 
                String[] args = { "/system/bin/cat", 
                                "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" }; 
                cmd = new ProcessBuilder(args); 
                Process process = cmd.start(); 
                InputStream in = process.getInputStream(); 
                byte[] re = new byte[24]; 
                while (in.read(re) != -1)
                { 
                        result = result + new String(re); 
                } 
                in.close(); 
        } catch (IOException ex) { 
                ex.printStackTrace(); 
                result = "N/A"; 
        } 
        return result.trim(); 
 }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getRamMemory
 *作者:  Sun_Skin
 *输入参数: @param context
 *输入参数: @return
 *返回值: long
 *标记:  无
 *作用:  RAM内存大小
 ********************************************************/
 public static  long getRamMemory(Context context)
 {
        String str1 = "/proc/meminfo";// 系统内存信息文件
        String str2;
        String[] arrayOfString;
        long initial_memory = 0;

        try
        {
            FileReader localFileReader = new FileReader(str1);
            BufferedReader localBufferedReader = new BufferedReader(
            localFileReader, 8192);
            str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小

            arrayOfString = str2.split("\\s+");
            for (String num : arrayOfString) {
                Log.i(str2, num + "\t");
            }

            initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte
            localBufferedReader.close();

        } catch (IOException e) {
        }
        //return Formatter.formatFileSize(context, initial_memory);// Byte转换为KB或者MB,内存大小规格化
        System.out.println("总运存--->>>"+initial_memory/(1024*1024));
        return initial_memory/(1024*1024);
    }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getTotalInternalMemorySize
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: long
 *标记:  无
 *作用:  ROM大小
 ********************************************************/
 public static long getTotalInternalMemorySize()
 {   
        File path = Environment.getDataDirectory();   
        StatFs stat = new StatFs(path.getPath());   
        long blockSize = stat.getBlockSize();   
        long totalBlocks = stat.getBlockCount();   
        return totalBlocks * blockSize;   
    } 
 
 
 public static  String getScreenResolution(Activity context)
 {
     DisplayMetrics dm = new DisplayMetrics();
     context.getWindowManager().getDefaultDisplay().getMetrics(dm);
     String strOpt = dm.widthPixels + " * " + dm.heightPixels;
     return strOpt;
 }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getPhoneModel
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: String
 *标记:  无
 *作用:  获取手机型号
 ********************************************************/
 public static String getPhoneModel()
 {
  return android.os.Build.MODEL;
 }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getManufacturer
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: String
 *标记:  无
 *作用:  获取手机厂商
 ********************************************************/
 public static String getManufacturer()
 {
  return android.os.Build.MANUFACTURER;
 }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getSdkVersion
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: int
 *标记:  无
 *作用:  SDK版本
 ********************************************************/
 public static int getSdkVersion()
 {
  return android.os.Build.VERSION.SDK_INT;
 }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getOsVersion
 *作者:  Sun_Skin
 *输入参数: @return
 *返回值: String
 *标记:  无
 *作用:  系统版本
 ********************************************************/
 public static String getOsVersion()
 {
  return android.os.Build.VERSION.RELEASE;
 }
 
 
 /*******************************************************
 *日期:  2016年2月14日
 *文件名: HK_PhoneInfo_Util.java
 *函数名: getAppVersionName
 *作者:  Sun_Skin
 *输入参数: @param context
 *输入参数: @return
 *返回值: String
 *标记:  无
 *作用:  获取软件版本号
 ********************************************************/
 public static  String getAppVersionName(Context context)
 {
  String versionName = "";
  try {
  PackageManager packageManager = context.getPackageManager();
  PackageInfo packageInfo = packageManager.getPackageInfo("cn.testgethandsetinfo", 0);
  versionName = packageInfo.versionName;
  if (TextUtils.isEmpty(versionName))
  {
   return "";
  }
  } catch (Exception e) {
   e.printStackTrace();
  }
  return versionName;
 }
 
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值