您的位置:首页 > 移动开发 > Android开发

Android进阶学习-查看系统信息(系统照妖镜)

2016-05-26 00:00 651 查看
实例图片:



现在好多系统防护软件都自带一个查看系统信息的功能,一堆繁琐的信息究竟是怎么获得的呢?

其实,Android系统提供了两种方法来给我们获取系统信息:

①android.os.Build //包含了 系统编译时的大量设备 配置信息

②SystemProperty //包含了许多系统配置属性值和参数

那么问题来了,怎么用?对于android.os.Build来说,系统信息以常量的形式存在,所以我们可以直接获取,下面是 常用常量的解析:

Build.BOARD // 主板
Build.BRAND // android系统定制商
Build.CPU_ABI // cpu指令集
Build.DEVICE // 设备参数
Build.DISPLAY // 显示屏参数
Build.FINGERPRINT // 硬件名称
Build.HOST
Build.ID // 修订版本列表
Build.MANUFACTURER // 硬件制造商
Build.MODEL // 版本
Build.PRODUCT // 手机制造商
Build.TAGS // 描述build的标签
Build.TIME
Build.TYPE // builder类型
Build.USER

接下来就是SystemProperty的用法啦,也很简单,通过键值对来获取:

System.getProperty("java.version");

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />

<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/btn1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="SystemProperty" />
</LinearLayout>

</LinearLayout>

Activity代码:

package com.example.customview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class SystemActivity extends Activity implements OnItemSelectedListener, OnClickListener {
Spinner					spinner1;
Spinner					spinner2;
TextView				result;

String[]				mDatas1	= new String[] { android.os.Build.BOARD, android.os.Build.BOOTLOADER,
android.os.Build.BRAND, android.os.Build.CPU_ABI, android.os.Build.CPU_ABI2, android.os.Build.DEVICE,
android.os.Build.DISPLAY, android.os.Build.FINGERPRINT, android.os.Build.HARDWARE, android.os.Build.HOST,
android.os.Build.ID, android.os.Build.MANUFACTURER, android.os.Build.MODEL, android.os.Build.PRODUCT,
android.os.Build.RADIO, android.os.Build.SERIAL, android.os.Build.TAGS, android.os.Build.TYPE,
android.os.Build.USER, };

String[]				mDatas2	= new String[] { "java.version", "java.vendor", "java.vendor.url", "java.home",
"java.vm.specification.version", "java.vm.specification.vendor", "java.vm.specification.name",
"java.vm.version", "java.vm.vendor", "java.vm.name", "java.specification.version",
"java.specification.vendor", "java.specification.name", "java.class.version", "java.class.path",
"java.library.path", "java.io.tmpdir", "java.compiler", "java.ext.dirs", "os.name", "os.arch", "os.version",
"file.separator", "path.separator", "line.separator", "user.name", "user.home", "user.dir", };
ArrayAdapter<String>	mAdapter1;
ArrayAdapter<String>	mAdapter2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_system);
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner2 = (Spinner) findViewById(R.id.spinner2);
result = (TextView) findViewById(R.id.result);
findViewById(R.id.btn1).setOnClickListener(this);
mAdapter1 = new ArrayAdapter<String>(SystemActivity.this, android.R.layout.simple_dropdown_item_1line, mDatas1);
mAdapter2 = new ArrayAdapter<String>(SystemActivity.this, android.R.layout.simple_dropdown_item_1line, mDatas2);
spinner1.setAdapter(mAdapter1);
spinner2.setAdapter(mAdapter2);
spinner1.setOnItemSelectedListener(this);
spinner2.setOnItemSelectedListener(this);
}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if (arg0.getId() == R.id.spinner2) {
result.setText(System.getProperty(mDatas2[arg2]));
} else if (arg0.getId() == R.id.spinner2) {

}
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {

}

@Override
public void onClick(View v) {
if (v.getId() == R.id.btn1) {
result.setText("");
for (int i = 0; i < mDatas2.length; i++) {
result.setText(result.getText().toString() + "\n" + mDatas2[i] + ":" + System.getProperty(mDatas2[i]));
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息