【MonkeyRunner】用python编写脚本查看设备信息

原以为是个简单的操作,在实践的时候发现了一些问题。

python脚本 test.py:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection()
a = device.getProperty("build.device")
print(a)

在cmd中运行脚本

>>>monkeyrunner  tset.py

这样会报错

LookupError: unknown encoding 'ms936'

在网上查阅一番后,原因是编码格式不同,查到的解决方案为:

在cmd中先输入chcp 437然后再运行脚本

上面这种方法亲测可用,但是本人觉得这个需要提前在cmd中输入的方法很难受,于是提出另一种解决方法:

在Python 中获取设备信息的时候转换成string类型,就可以正常输出了

修改test.py 的第三行如下:

a = str(device.getProperty("build.device"))

然后再运行就可以输出设备名称了。

通过MonkeyDevice.getProperty()方法可以查看很多设备信息

  • build.board 设备系统板的的代码名称

  • build.brand 操作系统的提供商

  • build.device 设备设计名称

  • build.fingerprint 设备唯一标识符

  • build.ID 设备编号

  • build.model 设备的用户可见名称

  • build.product 整体产品名称

  • build.CPU_ABI 代码指令集

  • build.manufacturer 制造商

  • build.version.incremental 内部代码

  • build.version.release 此版本用户可见名称

  • build.version.sdk 此版本用户可见SDk版本

  • build.version.codename 开发代号

  • display.width 设备显示宽度

  • display.height 设备显示高度

  • display.density 显示逻辑密度

  • am.current.package 正在运行的包的名称

  • am.current.action 正在进行的活动

  • am.current.comp.class 启动当前活动的组件的类名

  • am.current.comp.package 启动当前多动的组件的包名

  • am.current.data 当前活动的Intent中包含的数据

  • am.current.categories 当前活动的Intent指定的类别

  • clock.realtime 设备重启后的毫秒数,包括睡眠时间

  • clock.uptime 设备重启后的毫秒数,不包含睡眠时间

  • clock.millis 自1970年1月1日起到当前的毫秒数

【MonkeyRunner】[技术博客]用python编写脚本查看设备信息的更多相关文章

  1. [转]有哪些值得关注的技术博客(Java篇)

    有哪些值得关注的技术博客(Java篇)   大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1. ...

  2. 一文搞定scrapy爬取众多知名技术博客文章保存到本地数据库,包含:cnblog、csdn、51cto、itpub、jobbole、oschina等

    本文旨在通过爬取一系列博客网站技术文章的实践,介绍一下scrapy这个python语言中强大的整站爬虫框架的使用.各位童鞋可不要用来干坏事哦,这些技术博客平台也是为了让我们大家更方便的交流.学习.提高 ...

  3. [技术博客] Android 自动化测试

    [技术博客] Android 自动化测试 安卓自动化测试工具与平台的搭建 类似于网页端自动化,安卓测试的自动化也主要是针对控件的自动化.其原理就是通过python(其他语言) 的脚本来代替我们手动完成 ...

  4. [技术博客]nginx 部署 apt 源

    [技术博客] nginx 部署 apt 源 出于各种各样的原因, 有时需要自己配置apt源, 比如发布自己编写的debian软件包, 内网中只有一台电脑可以访问外网,或者在本地配置自己的apt源.我们 ...

  5. 【软工】[技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE

    [技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE 官方文档与重要参考资料 官方demo 官方API调用样例 Playground 官方API Doc,但其搜索框不支持模 ...

  6. [技术博客] BeautifulSoup4分析网页

    [技术博客] BeautifulSoup4分析网页 使用BeautifulSoup4进行网页文本分析 前言 进行网络爬虫时我们需要从网页源代码中提取自己所需要的信息,分析整理后存入数据库中. 在pyt ...

  7. [技术博客] 敏捷软工——JavaScript踩坑记

    [技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是Java ...

  8. 【转】【技术博客】Spark性能优化指南——高级篇

    http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...

  9. IT技术博客收藏

    1. coolshell.cn 特点: 每篇都是精品 2. 云风 特点: 3. 阮一峰的博客 特点:高精深 3. offbye涛声依旧-全端技术博客 特点: android的开发技术比较多,非常值得一 ...

随机推荐

  1. spark内存管理器--MemoryManager源码解析

    MemoryManager内存管理器 内存管理器可以说是spark内核中最重要的基础模块之一,shuffle时的排序,rdd缓存,展开内存,广播变量,Task运行结果的存储等等,凡是需要使用内存的地方 ...

  2. 链表(Linked List)

    链表(Linked List) 一.介绍 链表是有序的列表,它在内存中存储方式(物理存储)如下: 小结: (1)链表是以节点的方式来存储,是链式存储. (2)每个节点包含 data 域:存储数据:ne ...

  3. JavaScript 获取页面元素

    一.根据 id 获取元素 语法格式: document.getElementById(id); Demo: var main = document.getElementById('main'); co ...

  4. 使用kubeadm安装Kubernetes 1.15.3 并开启 ipvs

    一.安装前准备 机器列表 主机名 IP node-1(master) 1.1.1.101 node-2(node) 1.1.1.102 node-3(node) 1.1.1.103 设置时区 cp / ...

  5. HTML-Parser

    背景:需求需要把 html 字符串转成 DOM 对象树或者 js 对象树,然后进行一些处理/操作.htmlparser 这个库还行,但是对 attribute 上一些特殊属性值转换不行,同时看了看`开 ...

  6. send fd 无法传

    string success = "1"; string urlstr = "http://localhost:8080/getfilecontent?filename= ...

  7. 项目Beta冲刺(团队)——博客集合

    项目Beta冲刺(团队)--博客集合 格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺(团队) 团队名称:为了交项目干杯 作业目标:集中记录所有Beta敏捷冲刺日志的集 ...

  8. PyQt5中的窗口显示控制

    setWindowState(state) #设置窗口状态 Qt.WindowNoState 无状态-正常状态 Qt.WindowMinimized 最小化 Qt.WindowMaximized 最大 ...

  9. keil编译器从ac5迁移到ac6

    今天在安富莱的论坛上ac6的使用方法,所以,就小试牛刀玩了玩,终于ok了.使用keil5.25+stm32+hal库,5.23开始才支持ac6,因此keil版本不能太低. 可以参考:https://b ...

  10. 关于maven导入工程pom文件报错问题及解决

    pom文件头报错 1.导入maven文件,经常遇到表头出错问题.报错:Failure to transfer org.apache.maven.shared:maven-filtering:pom:1 ...