1、Android页面七大布局:布局是一个可用于放置多个控件的容器

通过容器的布局属性来管理子控件的位置关系,布局过程是把界面所有的控件,摆放在正确的位置上。

LinearLayout:线性布局:横向/纵向布局,用的最多的一种方式;

RelativeLayout相对布局:控件的位置是相对父容器或兄弟控件的

FrameLayout帧布局:用的较多,用在最底层,Layout上面摆控件;

AbsoluteLayout绝对布局:不推荐,不能适应不同屏幕大小,兼容性不好;

TableLayout表格布局:以表格形式

GridLayout网格布局:

ConstraintLayout约束布局:新出的布局结构

2、Android四大组件:

(1)Activity:每一个页面是一个activity,和用户交互的可视化界面;每一个页面有布局结构。Activity之间通过Intent进行通信;

一个Activity实质上有四种状态:
a.运行中(Running/Active):  这时Activity位于栈顶,是可见的,并且可以用户交互。
b.暂停(Paused):  当Activity失去焦点,不能跟用户交互了,但依然可见,就处于暂停状态。当一个新的非全屏的Activity或者一个透明的Activity放置在栈顶,Activity就处于暂停状态;这个时候Activity的各种数据还被保持着;只有在系统内存在极低的状态下,系统才会自动的去销毁Activity。
c.停止(Stoped):  当一个Activity被另一个Activity完全覆盖,或者点击HOME键退入了后台,这时候Activity处于停止状态。这里有些是跟暂停状态相似的:这个时候Activity的各种数据还被保持着;当系统的别的地方需要用到内容时,系统会自动的去销毁Activity。
d.销毁(Detroyed):  当我们点击返回键或者系统在内存不够用的情况下就会把Activity从栈里移除销毁,被系统回收,这时候,Activity处于销毁状态。

(2)Service:实现程序后台运行的解决方案;app在后台运行时提供服务,没有界面,只在后台运行;

(3)Broadcast Receiver:内容提供者,提供程序所需要的数据;以文件/数据库/网络形式提供;

实现数据共享;支持多个应用中存储和读取数据,相当于数据库

(4)Content Provider:广播接收器,监听外部事件的到来(比如来电),以一个页面或者弹框消息提示;

广播是一种广泛运用的在应用程序之间传输信息的机制而广播接收器是对发送出来的广播进行过滤接受并响应的一类组件

3、Android常用的控件:

TextView 文本控件

EditText 可编辑文本控件

Button 按钮

ImageButton 图片按钮

ImageView 图片控件

ToggleButton  开关按钮

CheckBox 复选框控件

RadioButton 单选框控件

4、元素定位-定位控件

dom Document Object Model,即文档对象模型。最早用于html和js的交互。用于表示界面控件的层级,界面的结构化描述。允许脚本控制web页面,窗口和文档。

常见的格式有html/xml。核心元素为节点和属性。

xpath:xml路径语言,用于xml中的节点定位

app source类似于dom,表示app层级,代表了界面里所有的控件树的结构;

常用的有以下三种定位方式:

(1)id定位

driver.find_element_by_id(resource_id属性)

driver.find_element(MobileBy.ID,"resource_id")

(2)accessibility_id定位

driver.find_element_by_accessibility_id(content_dces属性)

driver.find_element(MobileBy.ACCESSIBILITY_ID,"content_dces属性")

(3)xpath 定位

举例://*[@resource_id='as' and @text='内容'] 

driver.find_element_by_xpath(xpath属性值)

5、定位工具

(1)appium-desktop提供的inspector工具

(2)android monitor打开ADM工具(仅支持Android)--Android SDK提供的工具--推荐使用,sdk路径下的工具,轻量方便

终端中输入-monitor打开

遇到的问题:输入命令后,打开monitor是白屏---原因jdk版本高不兼容,下载144版本即可。

下载路径:下载安装后配置环境变量

https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

如下图,打开ADM工具后可以定位控件:

Android 控件getLayoutParams android 控件位置_控件

遇到的问题:终端输入monitor启动时报以下错误:

unexpected error while parsing input: invalid ui automator hierarchy file

关闭monitor后,删除monitor-workspace文件

rm -rf ~/.android/monitor-workspace