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的用法啦,也很简单,通过键值对来获取:
布局文件:
Activity代码:
现在好多系统防护软件都自带一个查看系统信息的功能,一堆繁琐的信息究竟是怎么获得的呢?
其实,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])); } } } }
相关文章推荐
- DOM2非标准但却支持很好的几个属性小结
- Ruby简洁学习笔记(二):类继承、属性、类变量
- 举例讲解C#中自动实现的属性
- Delphi控件ListView的属性及使用方法详解
- C#实现获取不同对象中名称相同属性的方法
- PowerShell中Get-Date对象的常用属性和方法介绍
- Windows Powershell属性:描述对象是什么
- 详解C#中的属性和属性的使用
- 轻松学习C#的属性
- DIV+CSS经常用到的属性、参数及说明
- CSS 关于网页图片的属性
- C#实现ProperTyGrid自定义属性的方法
- C#属性(Attribute)用法实例解析
- C#使用shell32获取文件属性的方法
- JavaScript对象、属性、事件手册集合方便查询
- JavaScript原生对象之Number对象的属性和方法详解
- jQuery Attributes(属性)的使用(二、类篇)
- JavaScript常用对象的方法和属性小结
- 详解 javascript中offsetleft属性的用法
- Javascript获取CSS伪元素属性的实现代码