在上一篇博文中,讲到这一篇会介绍Genymotion的安装方式。大家都知道,Genymotion是一个模拟器,获取会质疑了,直接连接真机就好了,为何还要配置模拟器?我也是用真机实践后,才选择安装的模拟器。原因是:sdk自带的uiautomatorviewer工具,不支持android8.0及以上的版本。社会在进步,移动设备更是高速发展,现在使用的手机很多都已高于这个版本。网络上有相对的解决办法,解决办法在文末给出,但我还是觉得麻烦,所以自己还是选择安装模拟器。

Genymotion配置

在下载genymotion时,需要有官网账号,才可以下载,所以可以先注册个账号,自行注册。

Genymotion下载

Genymotion安装

安装过程那就更简单了,打开下载的安装文件,一路next,直至安装成功,自动会安装Oracle VM VirtualBox,该软件是一款虚拟机,支持的平台很广泛。在genymotion中,可以使用该软件配置网络、系统等。

Genymotion添加手机系统

双击已安装好的genymotion,进入到启动页,如下:

配置SDK

SDK是上一篇博文介绍配置的,还没安装好的,可参见上一篇博文,配置如下:

SDK的地址,就是SDK的实际安装地址,建议不要包含中文路径。

配置好了SDK后,就可以下载各种型号的手机系统了,如下所示,新版的genymotion页面,比老版本好看多了

安装手机系统并启用

如何安装手机系统?选择自己需要的手机型号,点击右侧按钮处,点击install即可,如下:

静候,等待下载完,下载速度,看大家的网速了,大小也就一两百兆左右。

下载完成之后,如何使用?点击右侧的start按钮即可,如下:

start相当于就是我们日常使用手机的时候,开机操作,系统启动成功之后,出现如下界面:

说明genymotion模拟器就安装好了,简单几步操作,安装还是很简单的。

查看连接设备

在查看设备之前,需要启用开发者模式,相当于,我们真机在传输数据时,也是需要开启开发者模式,并通过usb数据线连接电脑,完成数据的传输,是一个道理。

模拟器如何开启开发者模式?一看图就明白,如下图所示:

进入到关于手机页面,连续点击版本号七次,即可开启开发者模式,记住,一定是七次,不能少。

开启了开发者模式之后,USB调试也需要开启,跟真机操作一样的,如下图:

手机已经处于开发者模式,并允许调试了,那如何查看设备连接是否正常了?这就需要引用adb命令了,adb命令在安装sdk的时候,就会自动安装。今天不深入分享adb命令的使用,只做简单介绍。查看设备连接的命令是:

adb devices

输入该命令后,出现如下图所示,则说明有设备连接的

到这,genymotion模拟器就配置成功了,是不是非常的简单。

脚本制作

app安装

针对自家产品开发脚本,那自然是需要在模拟器中安装一个自家的app的,那如何安装呢,小小一个命令即可完成,命令如下:

adb install C:\Users\leo\Desktop\k.apk

adb依然是之前所提到的adb命令;install顾名思义,安装的意思;后面的路径则是apk包存放的位置。执行上述命令后,出现如下图所示,则说明app安装成功:

app卸载

刚描述了app的安装,那卸载又是如何操作呢?有些朋友可能会想到命令adb uninstall C:\Users\leo\Desktop\k.apk么?命令是这个,但却不是接路径了,需要对应app的包名。

包名如何获取,在模拟器中打开你将要卸载的app,输入命令:

adb shell dumpsys window w |findstr \/ |findstr name=

即可获得对应app的包名了,卸载app的命令则是:

adb uninstall com.XXX.XXX

执行该命令后,模拟器中对应的app则会被卸载。

元素定位

元素定位,跟UI自动化的定位差不多,也无非就是id、name、xpath那些,主要是看自己如何使用,能够简单却又准确无误的定位到元素。

元素定位,我们借助sdk中自带的工具:uiautomatorviewer.bat,工具路径在:D:\android-sdk-windows\tools文件夹下,具体路径看个人安装sdk的路径,我只是个举例。

先在模拟器中打开对应的app,再打开uiautomatorviewer.bat工具,在工具中则会看到app对应的界面,如下所示:

从上图可看出,左侧面板就是app对应的界面,右侧则是元素的层级显示,鼠标点击对应的元素,右侧就会展示对应的详情路径,便可实现元素的定位。该工具类似于火狐浏览器中的firebug工具一样,是便于进行元素提取,进行元素定位的。

代码示例

写到这,我已按耐不住的想上一段自己曾几何时的一段线性代码,很普通的一段线性代码。实现一个简单的登录操作,如下:

没有断言,没有特殊逻辑,不喜勿喷,基于python刚入门写的。做为新入门的朋友来说,可以参考一下,如果没有参考价值,那忽略即可。

importseleniumimporttimefrom appium importwebdriver

desired_caps={'platformName': 'Android','platformVersion': '4.4.4','deviceName': 'S5','appPackage': '', #包名

'appActivity': '', #app入口

'udid': '192.168.66.101:5555', #genymotion设备

'noReset': 'true','unicodeKeyboard': 'True','resetKeyboard': 'True',

}print('selenium version =', selenium.__version__)

driver= webdriver.Remote('http://192.168.1.103:4723/wd/hub', desired_caps)print("服务启动成功")

time.sleep(3)

account= driver.find_element_by_id('id/rel_content')

account.find_element_by_id('id/edit_acount')

driver.press_keycode(61)print("换行操作")if driver.find_element_by_id('id/img_clear_acount'):

clr_account= driver.find_element_by_id('id/img_clear_acount').click()print("账号清除成功")

account.send_keys('10086')print("账号输入完毕")

time.sleep(2)

driver.press_keycode(61)print("换行操作")

password= driver.find_element_by_id('id/rel_content')

password.find_element_by_id('id/edit_pass')

password.send_keys('123456')print("密码输入完毕")

driver.find_element_by_xpath('//android.widget.TextView[@text="登 录"]').click()print("点击登录按钮")print('登录成功')

time.sleep(5)

driver.quit()

代码写到这,想要运行,还需要基于appium的配合,才能够运行起来。上述代码及appium的操作,下篇博文将继续分享。

问题总结

在博文一开始时,就讲到遇到的一个问题,现在来说下解决方式。

在使用真机连接,进行元素定位时,出现如下报错:unexpected error while obtaining UI hierarchy

询问度娘发现,该问题原因是:android 8.0导致的问题,需要更新 uiautomatorviewer 源码才能解决。个人还不会更新源码,所以继续度娘,发现了一个解决办法,如下:

1.在D盘根目录下创建app.png文本文件

2.在E盘根目录下创建app.uix文本文件

3.执行以下adb命名:

adb shell uiautomator dump /sdcard/app.uix

adb pull /sdcard/app.uix E:/app.uix

adb shell screencap -p /sdcard/app.png

adb pull /sdcard/app.png D:/app.png

4.运行uiautomatorviewer.bat,导入文件

5.再次连接手机问题得到了解决

执行adb命令如下所示:

运行uiautomatorviewer.bat,导入文件,如下所示:

使用如上步骤,即可实现元素定位了,之前我说过,我不太喜欢用这种方式,是因为,每切换一个页面,则需要重复上述步骤,觉得麻烦,所以就借助模拟器来进行元素定位了,这只是我个人喜好罢了。命令一行一行的执行,很繁琐,不过可以写个bat文件脚本,一键执行即可。

希望对有需要的朋友有所帮助,文中有描述不对的地方,欢迎批评指正。

本文仅代表作者观点,系作者@温一壶清酒发表。

欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文章出处:http://www.cnblogs.com/hong-fithing/

android模拟器 uidump,Genymotion模拟器的安装及脚本制作相关推荐

  1. 如何在 Android Studio 使用 Genymotion 模拟器

    如何在 Android Studio 使用 Genymotion 模拟器 如何使用 Genymotion 模拟器?许久不用,习惯了真机开发,现在找找资源重新用下 堪称最快的模拟器--Genymotio ...

  2. Android模拟神器Genymotion eclipse插件安装问题出解决

    Android模拟神器Genymotion eclipse插件安装问题出解决 参考文章: (1)Android模拟神器Genymotion eclipse插件安装问题出解决 (2)https://ww ...

  3. Eclipse搭建android环境及Genymotion模拟器安装问题解决方法

    最近实验室新买了台式电脑,又要重新搭建android环境了,话说自从google被封了之后eclipse搭建android真是不容易了,虽然现在官方推荐使用studio了,但是还是不太习惯studio ...

  4. CPU为AMD的电脑如何配置 Android Studio以及Genymotion模拟器

    前言:对于使用AMD处理器的同学,Android Studio真的很不友好,不支持inter 虚拟架构,配置了一天真的太伤了,所以写一篇博客帮助大家避雷. 详见后文! 刚刚了解到,目前的Android ...

  5. android studio 安装genymotion模拟器教程

    一.注册\登录 打开Genymotion官网,https://www.genymotion.com/ ,首先点击右上角的Sign in进行登录操作.如何登录就不细讲了,下面讲一下如何注册(备注:注册按 ...

  6. android模拟器 uidump,解决Genymotion模拟器不能安装apk

    一.Genymontion不能安装apk的原因 Genymotion是一款基于x86架构的Android模拟器,而大部分应用是arm架构.所以两者不兼容. 对于x86的真机,X86处理器已经能够基本兼 ...

  7. 第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模拟器...

    [正文] 都说了放假不休息,奏是这么任性!!! [开发环境] 物理机版本:Win7旗舰版(64位) Android Studio版本:1.1正式版 一.新建工程: 1.新建一个Project: 打开A ...

  8. Android Studio 安装和配置genymotion模拟器过程中所遇到的问题

    Android Studio 到官网上安装相应的版本就可以了,没有什么问题. genymotion是需要在虚拟机的前提下才能使用的,在安装的时候会有带虚拟机的安装版本和不带虚拟机的安装版本,可自行选择 ...

  9. Android开发最强模拟器Genymotion的安装及使用教程。附注释图详解

    前沿 呵呵,笔者第一次在公开的博客网站写心得,想让自己的Android开发生涯留下点足迹,并且为自己做点笔记,如果该文章能帮到广大的Android小白朋友最好了(其实我也是一小白,(●'◡'●)),好 ...

  10. 开发日记-20190905 关键词 Linux (Ubuntu) 下的Android模拟器:Genymotion

    参考于: Ubuntu下,访问不了Google,怎么安装Vysor插件? ubuntu 16.04下android调试工具 Vysor 安装及使用注意 Ubuntu下genymotion模拟器的安装与 ...

最新文章

  1. 【imx6】/dev中fb和video的对应关系
  2. 谈谈主机和存储连接的多路径技术
  3. ELK实时日志分析平台环境部署--完整记录
  4. 【BUG记录】百度人脸识别采集黑屏
  5. 数据结构(六)查找---多路查找树(2-3-4树)
  6. 2019至今TIOBE编程语言排行榜Top 20,Python完胜C++了吗?
  7. 联想面试智力题,听说前面三道题必考(有部份解答)
  8. 关于Google Storage的东西
  9. IDA远程调试Android
  10. pcl之编译VTK时CMAKE中找不到Qt5X11Extras
  11. Drool学习记录(一) 概念、Helloworld
  12. C语言每日一练——第88天:汉诺塔问题(河内塔)
  13. antDesign Drawer
  14. 大数据毕设选题 - 京东消费数据分析与可视化(python 大数据 机器学习)
  15. java png生成webp图片_jpg、png格式的图片转换成webp后颜色失真的问题
  16. PMP证书怎么续证?PDU要怎么获得?超过有效期证书就作废了吗?
  17. 福州大学数学计算机学院,福州大学数学与计算机科学学院导师介绍:廖祥文
  18. 前端开发中的骚操作~~~~~
  19. OpenBLAS学习一:源码架构解析GEMM分析
  20. 吐血整理:小白学python编程基础(1)

热门文章

  1. 秩为1的矩阵的幂规律
  2. 新媒体运营这条路好走吗
  3. linux如何查看数据库账号密码,linux下mysql如何查询用户的密码
  4. 地理分析 | 批量分析留言文字中包含的地址信息
  5. Linux源码研究-内核开发-内核编码风格
  6. SEO技巧:新网站关键词优化怎么优化到百度首页【思维篇】
  7. 历经16年猪八戒网如何成功实现双活流量架构
  8. java pdf 表格_java 创建一个表格pdf
  9. authorization server client resource 使用1
  10. Linux | Linux使用互斥锁及条件变量替代信号量