12.UiAutomator 获取系统信息

一、Build构建信息

1.build类:

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

常量名

说明

BOARD底层板名称
BOOTLOADERBootloader版本号
BRAND品牌
CPU_ABICPU指令集
CPU_ABI2CPU第二指令集
DEVICE工业设计名称
DISPLAY显示给用户的构建ID字符串
FINGERPRINT构建的唯一标识符
HARDWARE硬件的名称 比如高通
HOST主机
IDID标签
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版本代号

常量名

说明

BASE2008-10:第一个版本的android
BASE_1_12009-02:第一个安卓更新,官方称为1.1
CUPCAKE2009-05:android1.5
CUR_DEVELOPMENT发展过程中构建的版本,但是未正式发布
DONUT2009-09:android1.6
ECLAIR2009-11:android2.0
ECLAIR_0_12009-12:android2.0.1
ECLAIR_MR12010-01:android2.1
FROYO2010-06:android2.2
GINGERBREAD2010-11:android2.3
GINGERBREAD_MR12011-02:android2.3.3
HONEYCOMB2011-02:android3.0
HONEYCOMB_MR12011-05:android3.1
HONEYCOMB_MR22011-06:android3.2
ICE_CREAM_SANDWICH2011-10:android4.0
ICE_CREAM_SANDWICH_MR12011-12android4.0.3
JELLY_BEAN2012-06:android4.1
JELLY_BEAN_MR1android4.2
JELLY_BEAN_MR2android4.3
KITKATandroid4.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言编写网页图形界面代码,「分享」C语言如何编写图形界面

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面。大家也都有回答,需要其他的库。MFC,GTK,QT。本人近期刚用GTK库加上纯C写成了第一个LINUX实用程序。现在与大…

python 读取word_教你怎么使用 Python 对 word文档 进行操作

使用Python对word文档进行操作一、安装Python-docxPython-docx是专门针对于word文档的一个模块,只能读取docx 不能读取doc文件。说白了,python就相当于windows操作系统,QQ就是跑在windows操作系统上的软件,QQ最大的作用是可以去聊…

[国嵌攻略][084][信号同步编程]

进程同步 一组并发进程进行相互合作、相互等待,使得各进程按一定的顺序执行的过程称为进程间的同步。 进程同步与进程互斥 进程同步问题的关键在于生产者不需要获取信号量,消费者不需要释放信号量,所以信号量的初值设置为0。但是进程互斥问题…

android 控件覆盖关系,安卓子控件抢占父控件点击事件或者焦点问题

开发中很常见的一个问题,项目中的lListview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有…

stm32cubemx adc_STM32CubeMX__Exp5_ADC1_2CH_DMA_TIM3_Trig__简明指导文件__jyb

用定时器TIM3触发DMA方式的双通道ADC定时采样:拷贝STM32CubeMX工程文件LED_Flash_PC12.ioc,修改为:Exp5_ADC1_2CH_DMA_TIM3_Trig.ioc(1)配置ADC1的通道和参数配置ADC通道参数(2)配置ADC1的DMA①通过点"Add"按钮,添加ADC…

JS 实现 jQuery的$(function(){});

1、浏览器渲染引擎的HTML解析流程 何谓“渲染”,其实就是浏览器把请求到的HTML内容显示出来的过程。渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成。下面是渲染引擎在取得内容之后的基本流程: 1,解析html以构…

linux ora-00031,kill session遇到ORA-00031錯誤

今天在處理一個表被鎖死的問題時,遇到ORA-00031: 這個階段作業將被標示為要終結的階段作業具體操作步驟如下:1. 先確認鎖定資源的session信息select OS_USER_NAME,s.MACHINE ,object_name as對象名稱,s.sid,s.serial#,p.spid as系統進程號from v$locked_…

html 分页_MySQL——优化嵌套查询和分页查询

Java识堂,一个高原创,高收藏,有干货的微信公众号,欢迎关注优化嵌套查询嵌套查询(子查询)可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。嵌套查询写起来简单,也…

从原理上搞定编码-- Base64编码

开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际 上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下Base64的相关内容,花几分钟时间就可以彻底理解它。文 章下边贴了一个Base64的编…

android 点击选择文件夹,Android----弹出框选择文件夹目录以及启用新Task打开文件_IT168文库.pdf...

Android弹弹 出出框框 选选择择 文文件件 夹夹 目目录录 以以及及 启启用用新新 的的T ask打打 开开文文件件首首先先看看效效果果 图图第第一一个个 Act iv it y很很简简单单就就 一一个个按按钮钮 But t o n 加加一一个个 T ext View见见 main.xm l[[ cc -- ss hh aa rr pp ]…

docker mysql总是退出_Docker提升测试效率之路

现如今,Docker已经成为了很多公司部署应用、服务的首选方案。依靠容器技术,我们能在不同的体系结构之上轻松部署几乎任何种类的应用。作为测试一方,我们应与时俱进,将Docker容器技术应用到测试工作中。为了让小伙伴们可以快速上手…

2016030206 - mysql常用命令

参考地址如下: http://www.cnblogs.com/linjiqin/archive/2013/03/01/2939384.html http://www.cnblogs.com/zhangzhu/archive/2013/07/04/3172486.html 用户登陆 mysql> mysql -u 用户名 -p 密码;  例子: mysql>mysql -u root -p; 输…

32位mysql安装包_软件测试基础——Linux系统搭建MySQL数据库

一、mysql下载1. 下载:官方网址:https://dev.mysql.com/downloads/mysql/2. 选择相应的版本,由于cenos是基于红帽的,所以Select Operating System选择Red Hat...。我所用的镜像为cenos7所以Red Hat....linux7,一定要选相应的版本&…

android webview 获取 title,【报Bug】app webview 安卓机 title显示问题

// #ifdef APP-PLUSvar that this;that.statusBarHeight uni.getSystemInfoSync().statusBarHeight;var w plus.webview.create(this.weburl, id, {// top: uni.getSystemInfoSync().statusBarHeight 44 ,//放置在titleNView下方。如果还想在webview上方加个地址栏的什么的…

easyphp环境配置

apache的配置文件httpd.conf // apache/conf //修改http.conf这个文件的编辑权限 <Directory /> Options All AllowOverride All Order deny,allow Allow from all </Directory> LoadModule php5_module "E:/PROGRA~1/EASYPH~1.9/php/php539x141026161807/ph…

android wifi 组播,在Android上显示实时UDP或RTP流(多播)

我已经尝试从播放器(Daroon播放器&#xff0c;PlayStore)读取它&#xff0c;它运行良好&#xff0c;所以我认为我的愚蠢问题不是由于广播 .我看到可以通过不同的方式向用户显示视频内容&#xff1a;在ACTION_VIEW中使用新的Intent&#xff0c;Android会选择可以查看内容的应用程…

python gevent模块 下载_Python中的多任务,并行,并发,多线程,多进程,协程区别...

多任务CPU承担了所有的计算任务。一个CPU在一个时间切片里只能运行一个程序。当我们想同时运行多于一个程序的时候&#xff0c;就是多任务&#xff0c;例如同时运行微信&#xff0c;QQ&#xff0c;浏览器等等。多任务的目的是提升程序的执行效率&#xff0c;更充分利用CPU的资源…

uniapp点击通知android,分享uniapp使用原生Android推送消息(内推)以及点击通知监听数据...

前言由于用uniapp官方的plus.push.createMessage()在Android平台下推送通知无法显示推送时间&#xff0c;需要调用原生Android推送通知。在社区综合了各大神的代码&#xff0c;具体如下&#xff1a;推送推送事件&#xff1a;/*** android原生通知发送* param content 通知内容*…

电脑安装python后开不了机_ubuntu 安装python3.6后,terminal终端打不开问题

由于Ubuntu16.04&#xff0c;自带Python2.7和Python3.5 当我安装完Python3.6.5后,terminal终端打不开了, jekayjekay-pc:~$ gnome-terminal Traceback (most recent call last): File "/usr/bin/gnome-terminal", line 9, in from gi.repository import GLib, Gio F…

DIY小能手|别买电动滑板车了,咱做一台吧

!! http://www.shoudian.org/thread-316111-1-1.html http://www.jiequer.com/html/news/xinpin/2014/1218/223.html http://bbs.mydigit.cn/read.php?tid930053转载于:https://www.cnblogs.com/carl2380/p/5239022.html