一、Build构建信息

1.build类:

Build类提供了硬件厂商、编号、序列号、SDK版本等重要信息。
类名:android.os.Build

常量名

说明

BOARD 底层板名称
BOOTLOADER Bootloader版本号
BRAND 品牌
CPU_ABI CPU指令集
CPU_ABI2 CPU第二指令集
DEVICE 工业设计名称
DISPLAY 显示给用户的构建ID字符串
FINGERPRINT 构建的唯一标识符
HARDWARE 硬件的名称 比如高通
HOST 主机
ID ID标签
MANUFACTURER 产品生产商
MODEL 手机型号
PRODUCT 产品名称
RADIO 无线电固件版本号
SERIAL 硬件序列号(如果可用)
TAGS 逗号分隔标签描述构建,如”调试”
TIME 出场时间
TYPE 构建类型
USER 构建用户名称

2.Build.VERSION类

Build.VERSION类提供了开发代号、内部版本、SDK版本等信息
类名:android.os.Build.VEISION

常量名

说明

CODENAME 当前的开发代号
INCREMENTAL 使用的内部值表示这个构建底层的源代码控制
RELEASE 用户可见版本字符串
SDK_INT 用户可见的SDK版本的框架

3.Build.VERSION_CODES类

android.os.Build.VERSION_CODES枚举当前已知的SDK版本代号

常量名

说明

BASE 2008-10:第一个版本的android
BASE_1_1 2009-02:第一个安卓更新,官方称为1.1
CUPCAKE 2009-05:android1.5
CUR_DEVELOPMENT 发展过程中构建的版本,但是未正式发布
DONUT 2009-09:android1.6
ECLAIR 2009-11:android2.0
ECLAIR_0_1 2009-12:android2.0.1
ECLAIR_MR1 2010-01:android2.1
FROYO 2010-06:android2.2
GINGERBREAD 2010-11:android2.3
GINGERBREAD_MR1 2011-02:android2.3.3
HONEYCOMB 2011-02:android3.0
HONEYCOMB_MR1 2011-05:android3.1
HONEYCOMB_MR2 2011-06:android3.2
ICE_CREAM_SANDWICH 2011-10:android4.0
ICE_CREAM_SANDWICH_MR1 2011-12android4.0.3
JELLY_BEAN 2012-06:android4.1
JELLY_BEAN_MR1 android4.2
JELLY_BEAN_MR2 android4.3
KITKAT android4.4

4.实例演示:

public void testDemo1(){
//Build类
System.out.println("Build:"+Build.BOARD);
System.out.println("Build:"+Build.BOOTLOADER);
System.out.println("Build:"+Build.CPU_ABI);
System.out.println("Build:"+Build.CPU_ABI2);
System.out.println("Build:"+Build.DEVICE);
System.out.println("Build:"+Build.DISPLAY);
System.out.println("Build:"+Build.FINGERPRINT);
System.out.println("Build:"+Build.HARDWARE);
System.out.println("Build:"+Build.HOST);
System.out.println("Build:"+Build.ID);
System.out.println("Build:"+Build.MANUFACTURER);
System.out.println("Build:"+Build.MODEL);
System.out.println("Build:"+Build.PRODUCT);
System.out.println("Build:"+Build.RADIO);
System.out.println("Build:"+Build.SERIAL);
System.out.println("Build:"+Build.TAGS);
System.out.println("Build:"+Build.TIME);
System.out.println("Build:"+Build.TYPE);
System.out.println("Build:"+Build.USER);
System.out.println("Build:"+Build.BOARD);
//Build.VERSION类
System.out.println("Build.VERSION:"+Build.VERSION.CODENAME);
System.out.println("Build.VERSION:"+Build.VERSION.INCREMENTAL);
System.out.println("Build.VERSION:"+Build.VERSION.RELEASE);
System.out.println("Build.VERSION:"+Build.VERSION.SDK_INT);
//Build.VERSION_CODES类
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.BASE);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.BASE_1_1);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.CUPCAKE);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.CUR_DEVELOPMENT);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.ECLAIR);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.ECLAIR_0_1);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.ECLAIR_MR1);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.FROYO);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.GINGERBREAD);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.GINGERBREAD_MR1);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.HONEYCOMB);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.HONEYCOMB_MR1);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.HONEYCOMB_MR2);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.ICE_CREAM_SANDWICH);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.JELLY_BEAN);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.JELLY_BEAN_MR1);
System.out.println("Build.VERSION_CODES:"+Build.VERSION_CODES.JELLY_BEAN_MR2);
}

2)通过判定手机SDK级别来使用API

public void testDemo2() throws UiObjectNotFoundException{
//获取SDK版本号
int sdk=Build.VERSION.SDK_INT;
//进行判断
if (sdk>=18){
//改一下键盘输入默认时间
Configurator.getInstance().setKeyInjectionDelay(100);
}
//用例操作
UiObject editText=new UiObject(new UiSelector().className(EditText.class.getName()));
editText.setText("10086");
}

二、Environment环境变量

Environment类提供了一些常用的Android环境变量的访问和获取:
典型的文件目录,如:root目录、data目录、外部SD卡目录等

SD卡状态检测,帮助了解外部存储设备的状态信息

API

说明

getDataDiretory() 获取数据目录
getDownloadCacheDirectory() 获取下载缓存目录
getExternalStorageDirectory() 获取外部存储目录
getExternalStoragePublicDirectory(String type) 获取特定类型的目录
getExternalStorageState() 获取外部存储状态
getRootDirectory() 获取Root目录
getStorageState(File path) 返回给定目录的存储状态
isExternalStorageEmulated() 检查是否有外部存储设备模拟
isExternalStorageRemovable() 检查外部存储设备是否可以移除
  • 示例:
public void testDemo1(){
//输出指定目录
System.out.println("------指定目录------");
System.out.println(Environment.getDataDirectory());//数据目录
System.out.println(Environment.getDownloadCacheDirectory());//下载缓存目录
System.out.println(Environment.getExternalStorageDirectory());//外部存储目录
System.out.println(Environment.getRootDirectory());//Root目录
//输出特定目录
System.out.println("------特定目录------");
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_NOTIFICATIONS));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PODCASTS));
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_RINGTONES));
//列出下载目录下的文件
System.out.println("------下载目录下的文件------");
File downloadFile=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File[] file=downloadFile.listFiles();
for(File f:file){
System.out.println(f.getAbsolutePath());
}
}

三、getprop命令获取系统属性

1.系统属性

除了build类可提取系统属性外,使用命令getprop可以列出所有的系统属性,除了原生系统定义外,厂商定义的属性也会全部列出。

存放系统属性的文件位置如下:

/defalt.prop
/system/build.prop
/data/property 下的4个prop文件
  • 获取的系统属性非常多,对其进行简单分类
    1)dalvik.vm→ 虚拟机内存分配情况

    2)dhcp → 局域网参数信息

    3)gsm → GSM信息

    4)init → 守护进程信息

    5)net → 网络信息

    6)persist → 系统常驻

    7)ro → 一些系统只读属性

    8)wifi → wifi相关信息

    8)其他厂商自定义的属性

2.常用属性举例说明

系统属性 KEY
硬件平台 ro.board.platform
SN号 ro.boot.serialno
系统android版本号 ro.build.version.release
SDK级别 ro.build.bersion.sdk
手机当前运营商信息 gsm.operator.alpha
系统版本 ro.build.version.inscremental
手机制造商信息 ro.product.manufacturer
手机型号 ro.product.model
手机名子 ro.product.name
系统语言 ro.product.local.language
  • 实例:
public class buildTestcase extends UiAutomatorTestCase{
//快速调试
public static void main(String [] args){
new UiAutomatorHelper("test","Jian.demo.buildTestcase","testDemo1","2");
}
//用例
public void testDemo1(){
//调用设定的方法,传入key输出键值
System.out.println("硬件平台:"+getProp("ro.board.platform"));
System.out.println("SN号:"+getProp("ro.boot.serialno"));
System.out.println("系统android版本号:"+getProp("ro.build.version.release"));
System.out.println("SDK级别:"+getProp("ro.build.bersion.sdk"));
System.out.println("手机当前运营商信息:"+getProp("gsm.operator.alpha"));
System.out.println("系统版本:"+getProp("ro.build.version.inscremental"));
System.out.println("手机制造商信息:"+getProp("ro.product.manufacturer"));
System.out.println("手机型号:"+getProp("ro.product.model"));
System.out.println("手机名子:"+getProp("ro.product.name"));
System.out.println("系统语言:"+getProp("ro.product.local.language")); }
//解析系统属性的方法
public String getProp(String key){
try{
//命令窗口输入命令
Process p=Runtime.getRuntime().exec("getprop");
//从命令中提取的输入流
InputStream in=p.getInputStream();
InputStreamReader reader=new InputStreamReader(in);
BufferedReader buff=new BufferedReader(reader);
//逐行读取并输出
String line="";
while((line=buff.readLine())!=null){
if(line.contains("["+key+"]")){
String[] s=line.split("\\[");
//调试用的
// for(String ss:s){
// System.out.println("**:"+ss);
// }
//返回值
return s[2].replaceAll("\\].*", "");
}
}
}catch(IOException e){
e.printStackTrace();
}
//如果没取到就返回这个
return "未找到对应KEY";
}
}

12.UiAutomator 获取系统信息的更多相关文章

  1. psutil——获取系统信息的Python第三方模块

    本文摘自廖雪峰大神个人网站:https://www.liaoxuefeng.com/wiki/1016959663602400/1183565811281984 用Python来编写脚本简化日常的运维 ...

  2. python获取系统信息psutil

    python获取系统信息psutil:psutil获取系统cpu使用率的方法是cpu_percent(),其有两个参数,分别是interval和percpu,interval指定的是计算cpu使用率的 ...

  3. 【UG二次开发】获取系统信息UF_ask_system_info

    获取系统信息可以使用这个函数UF_ask_system_info 下面是例子: 1 extern DllExport void ufsta(char *param, int *returnCode, ...

  4. php获取系统信息的方法

    php获取系统信息的方法. 用 getenv函数进行处理: <?php $root = getenv('DOCUMENT_ROOT'); ////服务器文档根目录 $port = getenv( ...

  5. 灵活使用getconf命令来获取系统信息

    http://blog.chinaunix.net/uid-23105261-id-109513.html 灵活使用getconf命令来获取系统信息 我们时常需要查询系统相关的信息,比如页面大小,整数 ...

  6. win10 UWP 获取系统信息

    获取系统信息 Windows.System.Profile.AnalyticsVersionInfo analyticsVersion = Windows.System.Profile.Analyti ...

  7. Java如何获取系统信息(包括操作系统、jvm、cpu、内存、硬盘、网络、io等)

    1 下载安装sigar-1.6.4.zip 使用java自带的包获取系统数据,容易找不到包,尤其是内存信息不够准确,所以选择使用sigar获取系统信息. 下载地址:http://sourceforge ...

  8. JAVA获取系统信息以及系统时间

    在做测试的时候,经常需要获取系统信息,并且用获取到的系统时间给生成的报告取名字. 以下代码实在TestNG展示的,没有Test NG的话需要些一个main方法. import java.net.Ine ...

  9. 主机性能监控之wmi 获取系统信息及内存性能信息

    标 题: 主机性能监控之wmi 获取系统信息及内存性能信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990240.html 欢迎转帖 请保持文本完整 ...

随机推荐

  1. 【RL系列】On-Policy与Off-Policy

    强化学习大致上可分为两类,一类是Markov Decision Learning,另一类是与之相对的Model Free Learning 分为这两类是站在问题描述的角度上考虑的.同样在解决方案上存在 ...

  2. Node2vec 代码分析

    Node2vec 代码从Github上clone到本地,主要是main.py和node2vec.py两个文件. 下面把我的读代码注释放到上面来, import numpy as np import n ...

  3. ionic 开发实例

    ionic 开发实例 一.ionic初始化项目 1:安装ionic npm install -g ionic 2:初始化项目框架 我们可以用命令创建一个应用程序,可以使用我们的一个现成的应用程序模板, ...

  4. 03慕课网《进击Node.js基础(一)》API-URL网址解析

    url url.parse(url,query,host);解析域名 url必须,地址字符串 query可选 host 可选:在不清楚协议时正确解析 querystring 字符串和对象之间互相解析 ...

  5. Python:文件操作总结1——文件基本操作

    一.文件的操作流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 二.文件的打开与关闭 A.文件的打开——open函数 语法:open(file[,mode[, ...

  6. tomcat启动时,报java.io.EOFException

    在启动Tomcat的时候突然报出IO异常,具体异常如下图 在网上找了解决方法,测试了好几种,都不行,到最后看了一个博客解决了,在此记录一下. 百度了下,网上都是说去Tomcat目录下:将tomcat5 ...

  7. HDU 5655 CA Loves Stick 水题

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5656 CA Loves Stick Accepts: 381   Submissions: 3204 ...

  8. Scrum 项目准备4.0

    4.0----------------------------------------------- 1.准备看板. 形式参考图4. 2.任务认领,并把认领人标注在看板上的任务标签上. 先由个人主动领 ...

  9. 第七次JAVA语言笔记

  10. JS高级 2

    递归:函数自己调用自己 在JavaScript中唯一能产生作用域的东西是 函数!js中只有函数可以创建作用域 词法作用域,也叫做静态作用域 //就是在代码写好的那一刻,变量和函数的作用域就已经确定了, ...