一、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";}
}

转载于:https://www.cnblogs.com/JianXu/p/5225287.html

12.UiAutomator 获取系统信息相关推荐

  1. 跨平台 获取系统信息的python库 http://support.hyperic.com/disp

    跨平台 获取系统信息的python库 http://support.hyperic.com/disp - 张沈鹏,在路上... - ITeye技术网站 跨平台 获取系统信息的python库 http: ...

  2. Kettle使用_8 存储过程结合获取系统信息

    Kettle使用_8 存储过程结合获取系统信息 需求: 通过传递给kettle位置参数的方式执行存储过程.其中存储过程的需求是往tb_user(字段user_id, name)里插入一条记录(覆盖式, ...

  3. Kettle使用_3变量替换之获取系统信息与命名参数

    需求:SQL里定义动态的变量并能替换变量的值后将数据导入到文本文件中 解决方法:通过获取系统信息组件和SQL替换变量的参数来完成该功能 注: 可结合如下链接一起阅读: Kettle使用_29 转换里使 ...

  4. ansible获取linux信息,ansible 获取系统信息的一些范例,ansible系统信息

    ansible 获取系统信息的一些范例,ansible系统信息 主机名:echo `ansible 193.168.120.101 -m setup -a "filter=ansible_h ...

  5. Golang实践录:获取系统信息

    本文介绍获取系统信息的方法,另外给出根据不同系统编译的方法. 问题提出 由于多年来接触了不同系统的兼容工程,对使用宏区分不同的代码一直有一种莫名的感觉.像 Linux 内核中就有很多这样的代码,cor ...

  6. Java 获取系统信息

    Java 获取系统信息可以用以下方法: public class testsysteminfo {public static void main(String[] args) {// TODO Aut ...

  7. java获取系统信息:java的信息、操作系统的信息、用户的信息、虚拟机的信息、系统设置的信息。

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java获取系统信息:java的信息.操作系统的信息.用户的信息.虚拟机的信息.系统设置的信息. package com.lp.app.windo ...

  8. 小程序开发API之获取系统信息wx.getSystemInfo()、wx.getSystemInfoSync()

    wx.getSystemInfo() 获取系统信息 函数参数: 返回值: 例如: 写法一 index.js /*brand 设备品牌 model 设备型号pixelRatio 设备像素比screenW ...

  9. uniapp微信小程序怎样获取宽高?获取系统信息?微信小程序 获取用户手机屏幕高度与宽度信息等

    第一种方案(推荐) "vw" = "view width" "vh" = "view height" 使用 CSS3 引 ...

最新文章

  1. 机器学习中的优化方法小结
  2. Luhn(卢恩)算法,检测信用卡号的合法性
  3. Linq之Expression高级篇(常用表达式类型)
  4. 获取Table选中行数据(Table篇二)
  5. 修改sga后oracle打不开的解决方法
  6. java 权限url权限_SpringBootSecurity学习(11)网页版登录之URL动态权限
  7. 在ASP.NET中防止注入攻击[翻译]
  8. php的 静态变量,PHP之static静态变量详解
  9. pytorch梯度的计算过程
  10. Coinbase报告:DeFi协议总锁仓价值已超250亿美元,同比增长2500%
  11. 利用Bootstrap Paginator插件和KnockoutJS完成分页功能
  12. 扁平化设计(Flat Design)
  13. leetcode 717. 1比特与2比特字符(python)
  14. FineUI学习笔记1
  15. 腾讯云 linux pptpd 搭建 和遇到的部分问题解决
  16. UE4开发三:创建游戏模式、角色、控制器
  17. WPF 设置属性“System.Windows.FrameworkElement.Style”时引发了异常
  18. HttpClient在多线程环境下踩坑总结
  19. 计算机保研面试基础知识,华科计算机保研复试机试题目
  20. 【商迪3D】详谈3d物联网工业数字可视化三维仿真技术解决方案

热门文章

  1. c 实现走迷宫流程图_c语言迷宫问题程序功能介绍.设计思路.数据结构设计及用法说明程序结构(流程图).各模块的功能及程序说明....
  2. php验证旧密码,PHP最佳实践之过滤、验证、转义和密码
  3. c向文件中插入数据_如何把数据写入顺序文件中,VBA代码中Write#语句的利用
  4. java调用 restapi 乱码_Java HttpURLConnection模拟请求Rest接口解决中文乱码问题
  5. 华为开启管理员模式_又一年的心动模式开启,华为nova8系列8号色撩人肺腑
  6. Oracle 数据怎么实时同步到 MySQL | 亲测干货分享建议收藏
  7. postgre管理员 无法访问表_postgresql – 授予用户对所有表的访问权限
  8. python3线程池爬虫_python3爬虫中多线程的优势总结
  9. cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...
  10. java中isolate时间_Java HikariDataSource.setIdleTimeout方法代码示例