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

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交