共计 63089 个字符,预计需要花费 158 分钟才能阅读完成。
<section id=”nice” data-tool=”mdnice 编辑器 ” data-website=”https://www.mdnice.com” style=”font-size: 16px; padding: 0 10px; word-spacing: 0px; word-break: break-word; word-wrap: break-word; text-align: left; line-height: 1.25; color: #2b2b2b; font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light; letter-spacing: 2px; background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%); background-size: 20px 20px; background-position: center center;”><h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span> 保持原创输入,点击蓝字关注我吧 </span><span class=”suffix” style=”display: none;”></span></h3>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001190127.jpg” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 作者:清菡
博客:oschina、云 + 社区、知乎等各大平台都有。</p>
<h1 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 25px;”><span class=”prefix” style=”font-weight: bold; color: #40B8FA; display: none;”></span><span class=”content” style=”display: inline-block; font-weight: bold; color: #40B8FA;”> 目录 </span><span class=”suffix” style=”display: inline-block; font-weight: bold; color: #40B8FA;”></span></h1>
<ul data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 一、往期回顾 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 二、理解 adb 命令
<ul style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: square;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>1.adb 的应用和配置 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>2. 如果当初同时有 2 个设施呢,怎么指定装置到哪个设施上?</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>3.Android 8.0 adb shell dumpsys activity activities | findstr mFocusedActivity 获取以后的 activity 显示空的 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>4.logcat 日志文件 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>5.logcat 缓冲区 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>6.logcat 日志文件剖析 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>7.logcat 过滤器 </section></li></ul>
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 三、UiAutomator 框架
<ul style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: square;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>1.UI Automator 框架的次要特点 </section></li></ul>
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 四、遇到的坑
<ul style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: square;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>1. 遇到报错啥的,要学会找要害的信息,百度报错日志 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>2. 为什么设置 path?</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>3.UI Automator Viewer 报错 </section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>4. 安卓 sdk 的坑 </section></li></ul>
</section></li></ul>
<h2 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;”><span class=”prefix” style=”display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;”></span><span class=”content” style=”display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;”> 一、往期回顾 </span><span class=”suffix” style=”display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;”></span></h2>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 前 3 篇文章给大家解说了 Appium 环境装置,Appium 理念以及实现形式(四大点),第一个 app 自动化脚本。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 日志中很分明的通知了每一步该干什么,我做了什么,是如何来做这件事件的,两头我用到了什么(aapt、adb 等)。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 日志中能够看到:关上利用后,如果没有后续的操作,它会被动敞开以后的会话。不像 Web 自动化要你本人关它才会关。一分钟之内没有向它发送任何命令,它就会认为你不再须要和我通信了,完结本次会话。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001102601.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<h2 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;”><span class=”prefix” style=”display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;”></span><span class=”content” style=”display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;”> 二、理解 adb 命令 </span><span class=”suffix” style=”display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;”></span></h2>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 这个难度也不大,把握罕用的 adb 命令就能够了。要用 adb 命令要保障模拟器或者真机有一个是能让电脑辨认的。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 模拟器自身是 root 权限的,真机须要开启 usb 调试模式(不同的手机设置这里会有差别,可自行百度)。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb 是安卓才有的,ios 没有。</p>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>1.adb 的应用和配置 </span><span class=”suffix” style=”display: none;”></span></h3>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span> 指标 </span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>1、把握 adb 装置配置的形式。
2、把握 adb 应用办法及常见命令。</p>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>1.1 何为 adb?</span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb(Android Debug Bridge)是 android sdk 的一个工具,是个调试工具。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb 是用来连贯安卓手机和 PC 端的桥梁,要有 adb 作为二者之间的维系,能力让用户在电脑上对手机进行全面的操作。当然,usb 线作为两头工具。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>Android 的初衷是用 adb 这样的一个工具来帮助开发人员在开发 android 利用的过程中更快更好的调试 apk,因而 adb 具备装置卸载 apk、拷贝推送文件、查看设施硬件信息、查看应用程序占用资源、在设施执行 shell 命令等性能 </p>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>1.2adb 组成 </span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 客户端 client:<span>」</span> 运行在你的电脑上,你能够通过 shell 来调用起一个客户端。其余 Android 工具例如 ADT 插件、DDMS 都能够创立出一个客户端。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 服务器 server:<span>」</span> 运行在你电脑的后盾,负责管理 client 和 daemon 进行通信。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 守护过程 daemon:<span>」</span> 运行在模拟器或者 Android 设施的后盾。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 验证:<span>」</span> 关上 windows 命令行,输出 adb 命令。</p>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>1.3 真机 </span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 实在的 Android 设施(手机 / 平板电脑):</p>
<ul data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>1、须要确保你的手机曾经通过 USB 线连贯到电脑;
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>2、通过驱动软件,驱动精灵 / 驱动人生等,将你的 Android 手机驱动装置好;
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>3、进入到手机,找到设置 -> 对于手机 -> 点击五下版本号 -> 将对应的开发者选项关上(留神:因为手机型号不同,如小米,魅族,华为这些,可能打开方式略微有差别,如果不分明,自行百度怎么关上本人手机的开发者选项);
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>4、退出到上一级菜单,进入到开发者选项,找到 USB 调试模拟器将其关上;
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>5、还有最初一步,一般来说会进去一个容许调试的对话框,咱们也须要勾选上,不然 adb devices
命令检测不到设施。</section></li></ul>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>1.4 adb 常见命令 </span><span class=”suffix” style=”display: none;”></span></h4>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001180816.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>1.5 手机门路怎么来看呢?</span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 安卓手机内核是 Linux 零碎,须要晓得 Linux 零碎中的罕用操作,以及 Linux 零碎中的基本知识。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 需把握 Linux 零碎中的常用命令、文件夹的权限、门路表白、解压、根本的环境部署、tomcat、搭建数据库。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 如果想在手机上找到一个手机门路,就必须晓得它在外部的文件寄存。手机文件治理里有很多文件夹,每一层是做什么的,显示门路。首先进入手机外部零碎环境,也就是 Linux。用 adb shell
。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001112307.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 这样就曾经进入到另外一个环境了。这个时候曾经进入手机外部的一个零碎中去了。不同的模拟器进来,后面的名字是不太一样的。既然是 root 过去了,进来就是 root 权限。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 如果是真机,没有这种 root 的话,那就是账号进来的用户都是普通用户。是有权限能力管制的,不是所有的数据文件你都具备权限去拜访的。所以须要理解 Linux 零碎中对权限的设置与管制,批改用户权限。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>Linux 中的单斜杠是最开始的根目录,所有的文件都放在这个目录上面。通过 ls -l
能够看到上面有比拟多的文件:</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001113144.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 如果不是 root 账号,是一般账号个别进来的是以后的用户目录。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>sdcard(存储空间)在 Linux 零碎中就是一个文件夹来表白。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001113846.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>cd sdcard
基本上你的用户数据都会存储在这个目录下。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb pull 不能在 shell 命令下进行的。输出 exit
。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb pull /sdcard/shumei.txt D:xiazai
</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001115329.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001115339.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 所以先确认手机上的门路,从手机上拉取文件要晓得本人的文件在哪。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 命令:<span>」</span></p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb push C:Users18210Pictureslink.jpg /sdcard/
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>cd sdcard
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>ls -l
</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001120447.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001120504.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb logcat
有点像个服务,会刷一堆进去,如果要看残缺的日志,间接看必定是不不便看的。须要把它输入到本地。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 先 ctrl+c 退出。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>Linux 中将内容输入到本地文件是用 >
中文名叫做“重定向”。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb logcat > D:xiazaiadb_logcat.txt
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>>>
双箭头是会追加不会笼罩,>
单箭头是你下次再去输出的时候就间接把原来的笼罩了。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 按 ctrl+c 将日志进行输入后就能够看到:</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001122113.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 之所以输入日志是不便定位问题的,如果你看不懂日志里的谬误提醒,你能够将下载下来的日志发给开发。</p>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>2. 如果当初同时有 2 个设施呢,怎么指定装置到哪个设施上?</span><span class=”suffix” style=”display: none;”></span></h3>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 加上 -s
具体能够百度。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb install xxx.apk
为了获取 apk 的安装包所在地址,能够间接把 apk 拖到 cmd 的窗口获取,返回 success 就阐明装置胜利了!</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb uninstall com.tencent.mobileqq
利用包名(留神:不是利用名称)包名能够 adb shell pm list packages -3
获取用户包名。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb shell dumpsys activity | find "mFocusedActivity"
查看前台利用 activity 名 (安卓 8.0 以下用这个命令)</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>(找以后前台正在流动的 activity,<span>「</span> 也就是以后肉眼看到的这个利用的界面 <span>」</span>)每一个界面都有一个 activity 的名字。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 能够获取到以后正在流动的包名以及 activity 名称。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 但不代表就是入口页面的名称,入口是你启动 App 的时候进入的 activity。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 进入一个 app 之后可能默认在欢送页面,把欢送页面解决实现后就进入了首页。首页解决实现之后,就再进入别的页面。</p>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>3.Android 8.0 adb shell dumpsys activity activities | findstr mFocusedActivity 获取以后的 activity 显示空的 </span><span class=”suffix” style=”display: none;”></span></h3>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span> 靠谱链接:</span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>http://www.bubuko.com/infodet…</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 安卓 8.0 以下用命令adb shell dumpsys activity activities | findstr mFocusedActivity
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 安卓 8.0 以上用命令adb shell dumpsys activity activities | findstr mResumedActivity
</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001135739.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 做自动化的时候,有的时候须要通过 activity 的名称来判断以后是否在这个页面当中。所以须要用这条命令失去对应的名字写到用例当中。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb connect/disconnect
通过 wifi 进行近程连贯手机进行调试(前提是 adb 须要设置一下对应的端口之后,再去通过 wifi 连贯)</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb kill-server
终止 adb 服务 </p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb start-server
启动 adb 服务。通常在 adb 遇到问题时,与 adb kill-server
一起应用。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001140936.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb shell pm list packages
列出所有包名 </p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>-f 列出所有 apk 门路及包名
-s 列出零碎 apk 门路及包名
-3 列出用户 apk 门路及包名
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb shell pm list packages -3
</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001141720.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>App 自动化在安卓版本 6 以上就是用的 uiautomator2 作为驱动。所以它会把服务装到手机上。而后开启 uiautomator2 对应的 Bootstrap 进入监听状态,与咱们的 Appium 进行通信。</p>
<h5 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;”><span class=”prefix” style=”display: none;”></span><span class=”content”> 目录构造:</span><span class=”suffix” style=”display: none;”></span></h5>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb shell
进入 linux 命令行模式。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>system 分区
data 分区
sdcard 分区
</p>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>4.logcat 日志文件 </span><span class=”suffix” style=”display: none;”></span></h3>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>Android 日志零碎提供了记录和查看零碎调试信息的性能,日志都是从各种软件和一些零碎的缓冲区中记录下来的,缓冲区能够通过 logcat
命令来查看和应用。</p>
<h5 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;”><span class=”prefix” style=”display: none;”></span><span class=”content”>4.1 应用形式 </span><span class=”suffix” style=”display: none;”></span></h5>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>[adb] logcat [<option>] ... [<fiter-spec>]..
</p>
<h5 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;”><span class=”prefix” style=”display: none;”></span><span class=”content”>4.2 logcat 是以如下结尾的:</span><span class=”suffix” style=”display: none;”></span></h5>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001143048.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 开发者选项,有个选项叫做“日志记录器缓冲区大小”,默认是 256K,日志是循环写入环形缓冲区的。在通常状况下,写满时最旧的日志会被删除以给新输入的日志留内存空间。</p>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>5.logcat 缓冲区 </span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>Android log 输出量微小,特地是通信零碎的 log,因而,Android 把 log 输入到不同的缓冲区,目前定义了四个 log 缓冲区:</p>
<ul data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>Radio:输入通信零碎的 log
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>System:输入零碎组件的 log
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>Events:输入 event 模块的 log
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>Main:所有 Java 层的 log(不属于下面 3 层的 log)</section></li></ul>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 如想输入通信零碎的 log:adb logcat -b radio
</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001143156.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>6.logcat 日志文件剖析 </span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 输入的日志格局如下所示:</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001142839.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<h5 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;”><span class=”prefix” style=”display: none;”></span><span class=”content”>6.1 由六五局部组成:</span><span class=”suffix” style=”display: none;”></span></h5>
<ol data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: decimal; font-size: 15px; color: #595959;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 写下日志时的工夫,如上中 01-11 09:39:35.209。
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 优先级,在 Android 中,日志的优先级从低到高分以下几种:</section></li></ol>
<ul data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>V—Verbose(啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中应用,不可在公布产品中输入)
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>D—Debug(调试,用于调试的信息,能够在公布产品中敞开,比拟常见)
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>I—Info(信息,个别提示性的音讯)
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>W—Warning(正告)
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>E—Error(谬误,曾经呈现可影响运行的谬误,比方利用 crash 时输入的日志)</section></li></ul>
<ol start=”3″ data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: decimal; font-size: 15px; color: #595959;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 标签(tag),表明日志发起者和不便日志的过滤筛选,如上中 ActivityManager。
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>PID(过程 ID),如上中 491。
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 注释,本日志的主体内容。</section></li></ol>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span>7.logcat 过滤器 </span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>logcat 中信息太多,为了缩小不想要日志的输入,能够建设一个过滤器,过滤语法:</p>
<ul data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”>tag:priority (标签:优先级)
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 如:ActivityManager:W 示意过滤标签为 ActivityManager 优先级为 W 以下的日志。
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”> 如想过滤所有标签能够应用 号代替::E</section></li></ul>
<h2 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;”><span class=”prefix” style=”display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;”></span><span class=”content” style=”display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;”> 三、UiAutomator 框架 </span><span class=”suffix” style=”display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;”></span></h2>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>UI 自动化测试框架,安卓挪动端 app。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 要求:Android4.3 以上。</p>
<ul data-tool=”mdnice 编辑器 ” style=”margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;”>
<li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”><p style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 提供了一系列 API:执行 UI 测试在零碎或者第三方 app 下面。</p>
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”><p style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 容许在被测设施上执行操作,比方关上零碎设置菜单。</p>
</section></li><li><section style=”margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;”><p style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 适宜编写黑盒自动化测试。</p>
</section></li></ul>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>1.UI Automator 框架的次要特点 </span><span class=”suffix” style=”display: none;”></span></h3>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>1、元素定位:UI Automator Viewer. 扫描、剖析待测利用的 UI 组件的图像工具。
2、元素操作:Accessing device state. 在指标设施和 app 上的各种操作。
3、元素辨认:UI Automator APIs. 在多个应用程序中捕捉和操作 UI 组件。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 官网文档:<span>」</span></p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>https://developer.android.com…</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>UiAutomator 框架是 Java 实现的,所以作为 Python 的学习者理解它的外部实现就好了。须要把握 Java 的类和对象、语法,本人写 Java 版本的测试用例能力用它。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 用这个框架能够实现安卓 App 的自动化测试。它也有个元素定位的工具:</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>UI Automator Viewer</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001143738.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 这个工具是给 App 截图的。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>UI Automator Viewer 对一个 App 的首页进行定位就必须先进行截图。一个内部的工具想对模拟器或者真机上一个 APP 的页面进行截图须要权限。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 所以 UI Automator Viewer 可能在 App 上进行截图胜利的前提是 adb devices
命令可能辨认到这个设施,有权限下来操作才能够。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 这个工具关上后是空白的。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001151541.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 如果提醒远端设施不存在,可能是设施被他人占用了(运行 Appium 代码的同时关上了 UI Automator Viewer 进行截图),等到 Appium server 中将以后会话敞开了,退出了这个 App。保障截图的时候这个设施没有被任何其余货色占用能力失常应用。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001160108.jpg” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>UI Automator 只能辨认安卓原控件,图中源码都是它的控件。不能辨认 Web 网页,所以看不到 html 的元素表白、标签对这样的货色。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 这么多箭头还有这么多 0、1,看到了 FrameLayout、LinearLayout,这个货色就叫做 <span>「</span> 布局 <span>」</span>。这里属于开发常识,如果不懂布局也不影响做元素定位和做自动化测试。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001161859.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001162451.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 布局就是布局外面这么多的元素,横着放叠着放,还是放在框里。所以就是各种布局追加。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 布局外面能看到的就是它的元素。<span>」</span></p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 例如:控件的名字叫做 TextView(视图)。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001164018.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001164034.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 页面中每一个元素都有元素类型、属性。UI Automator Viewer 截图中的属性都是有的,值不肯定有。text 在 Web 自动化中是文本内容不叫做属性,然而在 App 中它也是属性。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 值是空的就证实以后这个属性(元素)是没有文本内容的。个别文本元素是有文本内容的。做 App 元素定位的时候能够通过文本内容来定位。<span>」</span></p>
<h2 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;”><span class=”prefix” style=”display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;”></span><span class=”content” style=”display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;”> 四、遇到的坑 </span><span class=”suffix” style=”display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;”></span></h2>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>1. 遇到报错啥的,要学会找要害的信息,百度报错日志。</span><span class=”suffix” style=”display: none;”></span></h3>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span> 例如这个报错:</span><span class=”suffix” style=”display: none;”></span></h4>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110211.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110228.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110241.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110252.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154128.jpg” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 就能够失常应用了。</p>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>2. 为什么设置 path?</span><span class=”suffix” style=”display: none;”></span></h3>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 比方在 cmd 中输出 adb, 它从你们配置的零碎环境变量目录上面去找,所以配置环境变量就配置到目录级别就能够了。</p>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>3.UI Automator Viewer 报错 </span><span class=”suffix” style=”display: none;”></span></h3>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>Unexpected error while obtaining UI hierarchy
java.lang.reflect.InvocationTargetException</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 起因是 ANDROID 8 以上 SDK 的兼容性问题。<span>」</span></p>
<h4 data-tool=”mdnice 编辑器 ” style=”margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”height: 16px; line-height: 16px; font-size: 16px;”><span style=”background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;”></span> 解决办法,靠谱链接:</span><span class=”suffix” style=”display: none;”></span></h4>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>https://blog.csdn.net/u010871…;depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.edu_weight</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 首先得在 D 盘新建一个 app.uix 和 app.png,再运行如下命令:</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb shell uiautomator dump /sdcard/app.uix
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb pull /sdcard/app.uix D:/app.uix
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb shell screencap -p /sdcard/app.png
</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”>adb pull /sdcard/app.png D:/app.png
</p>
<h3 data-tool=”mdnice 编辑器 ” style=”padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;”><span class=”prefix” style=”display: none;”></span><span class=”content” style=”border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;”><span style=”width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;”></span>4. 安卓 sdk 的坑 </span><span class=”suffix” style=”display: none;”></span></h3>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 我装置安卓 sdk,之前用镜像始终没问题,明天死活不行,应该是镜像不能用了。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 其实也能够间接下载,要害啊我没看懂报错(就是下载包那里一堆 x,而后还有英文报错 Google 啥的具体没看懂,图也忘了截图了,这个和镜像没关系,镜像的报错是在 log 里,这里不是,就是不能下载)。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 始终认为它提醒我要用镜像,百度进去也只有这种状况,而后呢,这个报错其实是通知我每个包品种都要点击承受证书,而后点击 install 就能够失常下载啦。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 之前文章中环境变量那样配置没有错。</p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”><span>「</span> 留神:当前下载啥先不配置镜像,间接下载试试能不能胜利。<span>」</span></p>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 安卓 sdk 包没下载全的状况下配置环境变量也没用的。所以不要认为本人的环境变量配错了,可能是包没下载全。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154321.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154331.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154339.png” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;”> 公众号 <span>「</span> 清菡软件测试 <span>」</span> 首发,更多原创文章:清菡软件测试 87+ 原创文章,欢送关注、交换,禁止第三方擅自转载。</p>
<figure data-tool=”mdnice 编辑器 ” style=”margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;”><img src=”https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001184322.jpg” alt style=”max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;”></figure>
<p id=”nice-suffix-juejin-container” class=”nice-suffix-juejin-container” data-tool=”mdnice 编辑器 ” style=”padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px; margin-top: 20px !important;”> 本文应用 mdnice 排版 </p></section>