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工具后可以定位控件:
遇到的问题:终端输入monitor启动时报以下错误:
unexpected error while parsing input: invalid ui automator hierarchy file
关闭monitor后,删除monitor-workspace文件
rm -rf ~/.android/monitor-workspace