Androidはシステム情報と解像度メモリ情報を取得
android.os.Build.VERSION.SDK_INT;代わりにos.Build.VERSION.SDK、intタイプを返します
android.os.Build.VERSION.RELEASE;Android 2のようなユーザーが見えるバージョンです.2
android.os.Build.VERSION.SDK;SDKバージョン対応システムバージョンが8に戻ると、Android 2に対応する.2
android.os.Build.MODEL;携帯タイプHTC Desire
Androidの現在使用可能なメモリサイズの取得
システムの合計メモリを取得
CPU最大周波数取得(単位KHZ)
CPU最小周波数取得(単位KHZ)
CPU現在周波数(単位KHZ)のリアルタイム取得
プログラムバージョン情報
解像度
方法1と方法2は大部分の装置の解像度を取るのは問題ないが、ある装置の解像度は3番目の方法のようにi 9000(密度1.5)のように対応する密度を乗じる必要があるが、motoXT 720密度1.5であるが、密度を乗じる必要はない.Androidシステムがオープンしたためか、携帯電話メーカーによって製造基準が統一されておらず、携帯電話の画面を規定している.
この文は小数点以下の1位を四捨五入して整頓することを表す.
getWindowManager().getDefaultDisplay().getMetrics(dm)
Initialize a DisplayMetrics object from this display's data.
getResources().getDisplayMetrics()
Return the current display metrics that are in effect for this resource object. The returned object should be treated as read-only.
リソースに関連する
単位換算
density DPI
1 160 1dp = 1dip = 1px
1.5 240 1dp = 1dip = 1.5px
120 dpi対応リソースのres/XXX-ldpi
160 dpi対応リソースのres/XXX-mdpi
240 dpi対応リソースのres/XXX-hdpi
320 dpi対応リソースのres/XXX-xhdpi Android 2.2 API Level 8からの分類
対応する割合3:4:6:8
1インチ=2.54 cm
1フィート=0.3048 m
android.os.Build.VERSION.RELEASE;Android 2のようなユーザーが見えるバージョンです.2
android.os.Build.VERSION.SDK;SDKバージョン対応システムバージョンが8に戻ると、Android 2に対応する.2
android.os.Build.MODEL;携帯タイプHTC Desire
Androidの現在使用可能なメモリサイズの取得
private String getAvailMemory()
{
// android
ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo mi=new MemoryInfo();
am.getMemoryInfo(mi);
//mi.avaiMem;
return Formatter.formatFileSize(getBaseContext(), mi.availMem);
//
}
システムの合計メモリを取得
private String getTotalMemory()
{
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
localBufferedReader.close();
}catch(IOException e){
}
return Formatter.formatFileSize(getBaseContext(), initial_memory);
//Byte KB MB
}
CPU最大周波数取得(単位KHZ)
// CPU ( KHZ)
// "/system/bin/cat"
// "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"
public String getMaxCpuFreq() {
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();
}
CPU最小周波数取得(単位KHZ)
public String getMinCpuFreq() {
String result = "";
ProcessBuilder cmd;
try {
String[] args = { "/system/bin/cat",
"/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_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();
}
CPU現在周波数(単位KHZ)のリアルタイム取得
public String getCurCpuFreq() {
String result = "N/A";
try {
FileReader fr = new FileReader(
"/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
BufferedReader br = new BufferedReader(fr);
String text = br.readLine();
result = text.trim();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
プログラムバージョン情報
try {
PackageManager pm = getPackageManager();
PackageInfo pinfo = pm.getPackageInfo(String ,PackageManager.GET_CONFIGURATIONS);
String versionCode = pinfo.versionName;
}
catch (NameNotFoundException e)
{
e.printStackTrace(System.err);
}
解像度
// ( 1)
int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // ( , :480px)
int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); // ( , :800p)
// ( 2)
DisplayMetrics dm = new DisplayMetrics();
dm = getResources().getDisplayMetrics();
float density = dm.density; // ( :0.75/1.0/1.5/2.0)
int densityDPI = dm.densityDpi; // ( :120/160/240/320)
float xdpi = dm.xdpi;
float ydpi = dm.ydpi;
Log.e(TAG + " DisplayMetrics", "xdpi=" + xdpi + "; ydpi=" + ydpi);
Log.e(TAG + " DisplayMetrics", "density=" + density + "; densityDPI=" + densityDPI);
screenWidth = dm.widthPixels; // ( , :480px)
screenHeight = dm.heightPixels; // ( , :800px)
// ( 3)
dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
density = dm.density; // ( :0.75/1.0/1.5/2.0)
densityDPI = dm.densityDpi; // ( :120/160/240/320)
xdpi = dm.xdpi;
ydpi = dm.ydpi;
int screenWidthDip = dm.widthPixels; // (dip, :320dip)
int screenHeightDip = dm.heightPixels; // (dip, :533dip)
screenWidth = (int)(dm.widthPixels * density + 0.5f); // (px, :480px)
screenHeight = (int)(dm.heightPixels * density + 0.5f); // (px, :800px)
方法1と方法2は大部分の装置の解像度を取るのは問題ないが、ある装置の解像度は3番目の方法のようにi 9000(密度1.5)のように対応する密度を乗じる必要があるが、motoXT 720密度1.5であるが、密度を乗じる必要はない.Androidシステムがオープンしたためか、携帯電話メーカーによって製造基準が統一されておらず、携帯電話の画面を規定している.
screenWidth = (int)(dm.widthPixels * density + 0.5f);
この文は小数点以下の1位を四捨五入して整頓することを表す.
getWindowManager().getDefaultDisplay().getMetrics(dm)
Initialize a DisplayMetrics object from this display's data.
getResources().getDisplayMetrics()
Return the current display metrics that are in effect for this resource object. The returned object should be treated as read-only.
リソースに関連する
単位換算
density DPI
1 160 1dp = 1dip = 1px
1.5 240 1dp = 1dip = 1.5px
120 dpi対応リソースのres/XXX-ldpi
160 dpi対応リソースのres/XXX-mdpi
240 dpi対応リソースのres/XXX-hdpi
320 dpi対応リソースのres/XXX-xhdpi Android 2.2 API Level 8からの分類
対応する割合3:4:6:8
1インチ=2.54 cm
1フィート=0.3048 m