appium的通信过程
appium的通信过程:
1、发送http请示到appium server
2、appium server收到之后,创建session
3、获取已连接的设备,并找对应的安卓版本号4、获取io.appium.settings的状态,获取它的版本,以确保是当前匹配最新的版本。settings_apk-debug.apk获取io.appium.uiautomator2.server的状态,获取它的版本,以确保是当前匹配最新的版本。io.appium.uiautomator2.server.test5、启动手机上的uiautomator.server的服务,然后设置将本地appium server收到的指令都从本地8200端口,转发到设备的6790端口6、跟手机创建会话。7、打开app8、如果60s内,appium server没有收到客户端的http请求,主动关闭与客户端的会话,与手机端的会话。然后关闭app关于uiautomator:
https://www.cnblogs.com/yyoba/p/9675071.html
adb常用命令操作
adb介绍:1.adb(Android Debug Bridge)是android sdk 的一个工具2.adb是用来连接安卓手机和PC端的桥梁,要有adb作为二者之间的维系,才能够使用户在电脑上对手机进行全民的操作3.Android的初衷是用adb这样的一个工具哎协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk,拷贝推送文件,查看设备硬件信息,查看应用占用资源,在设备执行shell命令等功能adb组成:1.客户端client:运行在你电脑上,你可以通一个shell来调起一个客户端,其他Android工具例如ADT插件,DDMS都可以创建出一个客户端2.服务端server:运行在你的电脑的后台,负责client和daemon进行通信3.守护进程daemon:运行在模拟器或者Android设备的后台4.验证:打开windows命令行。输入adb命令adb的常用命令:1.adb启停,默认端口是50371.1 adb kill-server:结束adb服务进程1.2 adb start-server:开始adb服务进程2.adb --help:查看帮助手册3.adb reboot:重启安卓设备4.adb devices:检测连接到电脑的安卓设备,这个是我门经常用到的检测命令5.adb dump badging 本地apk全路径:获得apk包的包名package和入口activity例如:包名package: name='com.lemon.lemonban'入口activity:launchable-activity: name='com.lemon.lemonban.activity.WelcomeActivity'6.adb pull:从手机中拉取信息到电脑上格式为:adb <手机路径><本机路径> 注意:手机路径是左斜杠/ 电脑路径是右斜杠\ (不能直接导电脑根目录,得指定一个已经存在的文件夹) 注意:需要退出shell,在执行7.adb push:从本地推送信息道手机上去格式为:adb <电脑路径><手机路径> 注意:电脑路径是右斜杠\ 手机路径是左斜杠/ 注意:需要退出shell,在执行7.1 创建文件夹:mkdir xxx8.adb shell:就是进入shell模式,相当于执行远程命令ll,ls,cd命令都可以用,进入到linux命令环境当中,退出shell模式:直接输入 exit9.adb install apk包:安装这个apk包在设备上出现success就代表ok了10.adb unintall 应用包名:卸载这个已在设备上的apk包,注意:这里是需要获取应用包名,需要退出shell到主命令行才能执行例如:adb unistall com.tencent.mobileqq 11.adb install xxx.apk :为了获取apk的安装包的所在位置,可以直接把apk拖到cmd的窗口获取,返回success就说明安装成功了!12.查看获取当前打开的页面的:1.adb shell dumpsys activity | find "mFocusededActivity" ---查看前台应用的Activity名这个命令在安卓7版本以前都可以用,超过就不可以用2.adb shell dumpsys activity | find "mResumedActivity"3.adb shell dumpsys activity activities | findstr mResumedActivity13.adb connect/disconnect 通过wifi进行远程连接手机进行调试14.adb logcat:打印log日志信息14.1 基于windows平台的操作:adb logcat | find14.2 linux平台的操作可以把find改成grep: adb logcat | grep14.3 结束logcat:可以用ctr+c快捷键结束, 这个是通过手工的快捷键操作完成14.4 adb logcat -help:可以查看其它功能命令:adb logcat -helpC:\Users\admin-198\Desktop$ adb logcat -helpUnrecognized Option hUsage: logcat [options] [filterspecs]options include:**选项**:-- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;-- "-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;-- "-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;-- "-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;-- "-v"选项 : 设置日志的输出格式, 注意只能设置一项;-- "-c"选项 : 清空所有的日志缓存信息;-- "-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;-- "-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;-- "-g"选项 : 查看日志缓冲区信息;-- "-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;-- "-B"选项 : 以二进制形式输出日志;**过滤项格式** : <tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;-- V : Verbose (明细);-- D : Debug (调试);-- I : Info (信息);-- W : Warn (警告);-- E : Error (错误);-- F : Fatal (严重错误);-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);'*' by itself means '*:D' and <tag> by itself means <tag>:V.If no '*' filterspec or -s on command line, all filter defaults to '*:V'.eg: '*:S <tag>' prints only <tag>, '<tag>:S' suppresses all <tag> log messages.If not specified on the command line, filterspec is set from ANDROID_LOG_TAGS.If not specified with -v on command line, format is set from ANDROID_PRINTF_LOGor defaults to "threadtime"学习:https://testerhome.com/topics/2565