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

2023-11-05 12:50

本文主要是介绍Android进阶学习-查看系统信息(系统照妖镜),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实例图片:

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

其实,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" ><TextViewandroid:id="@+id/result"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /><Spinnerandroid:id="@+id/spinner1"android:layout_width="match_parent"android:layout_height="wrap_content" /><Spinnerandroid:id="@+id/spinner2"android:layout_width="match_parent"android:layout_height="wrap_content" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid: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;@Overrideprotected 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);}@Overridepublic 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) {}}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}@Overridepublic 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]));}}}}

 

转载于:https://my.oschina.net/august1996/blog/681939

这篇关于Android进阶学习-查看系统信息(系统照妖镜)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349993

相关文章

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE