Android是一种基于Linux的自由及开源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导
Android操作系统最初由Andy Rubin开发,主要支持手机,2005年8月由Google收购注资
App三种类型与区别:
1、原生应用程序 (可访问手机所有功能,可实现功能最齐全)
2、混合应用程序(既利用了原生APP的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用,混合比例不限)
3、 web版APP(web APP)( 本质就是浏览器功能的叠加,用普通web开发语言开发的,通过浏览器运行)
Android SDK 指的是Android专属的软件开发工具包。
UIAutomator :
UIAutomator是用来做UI测试的,也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期,比如登录界面分别输入正确和错误的用户名密码然后点击是否能登陆以及是否有错误提示等。
UIAutomartor是一个测试框架,适用于跨系统和已安装应用程序的跨应用程序功能UI性能 VT:
VT全称是Virtualization Technology,即是虚拟化技术,虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程,CPU的虚拟技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间运行而互不影响,从而显著提高计算机的工作效率
大白话: 开启VT可以使模拟器跑的更加顺畅
如果没有开启的话:
Android调试桥:
adb是一个通用命令行工具,其允许您与模拟器实例或连接的Android设 备进行通信,它可为各种设备操作提供便利,如安装和调试应用。 adb的工作原理:
启动一个adb客户端时,此客户端首先检查是否有已运行的adb服务器进程,如果没有,它将启动服务器进程,当服务器启动时,它与本 地TCP端口5037绑定,并侦听从adb客户端发送的命令-索引adb客户端均使用端口5037与adb服务器通信
启用adb调试前提必须要在通过usb连接的设备上使用adb,您必须在设备系统设置中启用USB debugging
adb常用命令:
adb version 查看adb版本
adb connect 127.0.0.1连接模拟器
进入adb shell后有两种状态显示:#代表有root权限,$代表没有root权限
远程给安卓端安装软件时可以通过先连接安卓然后再adb shell 然后再adb install 软件路径
例如有新版本了你覆盖安装就是adb install -r 路径
如果指定设备安装的话就是:adb -s 127.0.0.1:62001 install 路径
首先进入设备的/data/app目录找到app包名
:adb shell
cd /data/app
执行命令删除:
adb uninstall | -k 软件名 删除的时候保留文件
adb uninstall 软件名 删除不保留文件 pm list package | grep 'wandoujia' 找到之前装的那个软件
adb shell pm list package
adb push local(pc的路径) remote(设备的路径) 将文件从pc写入到设备
adb pull remote(设备的路径) local(pc的路径) 将文件从设备读取到pc
adb kill-server 关闭adb服务
adb start-server 开启adb服务
netstat -ano | findstr '5037'
在我们的app中这个package包是唯一的,就想你身份证号码一样,在我们做app自动化时,我们就需要知道他的package,我们知道了 package那么也就知道我们需要对哪个app做自动化。注意和apk文件包名不同。
Activity:
Android中,acticity是所有程序的根本,所有程序的流程都运行在activity之中,activity可以算是开发者遇到的频繁,也是android当中最基本的 模块之一,在android的程序中,activity一般代表手机屏幕的一幕,如果把手机比作一个浏览器,那么activity就相当于一个网页,在activity当中可 以添加一些Button、Checkbox等空间。
一般一个android应用是由多个activity组成的,这多个activity之间可以相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的activity, 例如按下一个Button按钮后,可能会跳转到其他的activity,与网页跳转稍微有点不一样的是,activity之间的跳转有可能返回值。
aapt dump badging xxx.apk
aapt dump badging xxx.apk | find 'launchable-activity' 能获取到整个包的信息
Activity:
FrameLayout是最简单的布局了,所有放在布局里的控件,都按照层次堆叠在屏幕的左上角,后加进来的控件覆盖前面的控件
LinearLayout:
LinearLayout按照垂直或者水平的顺序依次排列子元素,没一个子元素都位于前一个元素之后,如果是垂直排列,那么将是一个N行单列的 结构,每一行只会有一个元素,而不管这个元素的宽度为多少
RelativeLayout:
RelativeLayout相对布局允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常见的布局方式