当前位置: 首页 > news >正文

每天一个安卓测试开发小知识之 (六)---常用的adb 命令第四期

每天一个安卓测试开发小知识之 (六)---常用的adb 命令第四期

本期继续介绍adb命令

  • root adb
  • 查看app进程id
  • adb服务端重启
  • 获取当前界面的xml
  • adb命令输入text

1. root adb

root的作用是什么 如何进入root 如何退出 什么下才可以root

1.1 adb root 命令的作用

重启 adbd 守护进程(adbd daemon,运行在手机中的进程),使其以 root 权限运行,相当于root状态比非root状态的权限要高,可执行的adb 命令要多

  • 普通模式:当你在设备上执行 adb shell 时,你进入的是一个受限的 shell 环境,拥有的是普通用户(通常是 shell)的权限,无法访问系统关键文件和执行特权命令。
  • root 模式:执行 adb root 后,adbd 进程本身获得了 root 权限。之后你再执行 adb shell,将会直接获得一个 # 符号的 root shell,拥有系统的最高权限。

1.2 什么情况下才可以进入root

adb root 命令并非在所有设备上都有效。它的成功执行完全取决于设备的ro.debuggable 这个系统属性。

  • ro.debuggable 属性的获取 可以通过之前介绍的 adb shell getprop 查看( 可查看之前文章)
    在这里插入图片描述
    ro.debuggable 属性的值等于1时才可以执行adb root命令获取到root权限
    当手机是root版本 或者userdebug版本的时候ro.debuggable属性值才是1, 一般手机都是user的,所以不能进入root
  • root版本 或者userdebug版本必须刷指定的系统才能实现
  • user版本的手机可以通过工具取得了root权限,这里不具体介绍

1.3 进入root

adb root
在这里插入图片描述
当已经是root状态时 执行adb root
在这里插入图片描述

1.4 退出root

adb unroot在这里插入图片描述
当已经是非root状态时,执行 adb unroot
在这里插入图片描述

2. 查看app进程id

很多情况下,需要获取app的进程id来kil进程或者用来查看进程

adb shell pidof 包名 例如 获取com.android.settings 的进程id,包名的获取可参考包名获取
在这里插入图片描述
可以通过 pidkill进程,因为adb不是root所以不能kill掉设置这个进程
在这里插入图片描述
可以通过pid过滤对应app的日志
在这里插入图片描述

3. adb服务端重启

在执行自动化测试中 adb命令会出现卡死的情况,或者第一次执行adb命令需要启动adb server

  • 启动adb server adb start-server
  • kill adb server adb kill-server
    在这里插入图片描述
    有时候需要查看adb server的日志 确认测试中是不是手机离线导致的问题
  • linux 或者 mac 系统中 日志保存在 /tmp/adb.***.log
  • windows保存在 c盘,用户目录下 文件名 adb_log,可以直接在C盘下搜索

4. 获取当前界面的xml

有时候我们在做UI自动化时,有些控件找不到时,需要dump下当前页面的xml,来辅助判断

adb shell uiautomator dump   /data/local/tmp/text.xml

/data/local/tmp/text.xml 是手机中保存xml文件的文件路径,保存完后,可通过adb pull命令将文件拉到主机中,adb pull命令

5. 输入text

有时候UI界面的元素不好定位,比如输入短信验证码的情况下,难以实现输入文字,就可以考虑通过adb shell命令输入文字

adb shell input text 123

123 是要输入的文字,但是要执行 input text 命令需要打开开发者-USB调试(安全设置),打开开发者模式可参考开发者设置
以小米手机为例,
在这里插入图片描述
例如我们将光标放在设置的搜索框中,然后执行 adb shell input text 123
在这里插入图片描述
在这里插入图片描述
本期的分享就到这里,每天进步一点点!!

http://www.sczhlp.com/news/125680/

相关文章:

  • SAP-ABAP中STOP,EXIT,CHECK,RETURN,CONTINUE,LEAVE,REJECT的区别
  • 龙岩市城乡建设局网站进不去免费制作手机网页
  • 百度商桥代码怎么添加到网站手机购物网站建设
  • 天津 公司网站建设镇海网站建设
  • 有关网站开发的知识wordpress主题安装怎么更换内容
  • mvc中手把手做网站黑龙江省城乡和住房建设厅网站
  • word超链接网站怎么做seo 优化思路
  • 企业网站开发框架网站开发网上接单
  • 做纸棋的网站南平市建设局网站
  • 江苏茂盛建设有限公司网站搜索引擎是如何判断网站的结构
  • 如何注册属于自己的网站永久免费企业网站建设
  • 视频融合平台EasyCVR国标GB28181视频诊断功能详解与实践
  • Refit Consul
  • 哈尔滨设计网站建设常州的做网站的公司排名
  • 大学网站建设多少钱专做废旧电子电路板配件回收的网站
  • 网页设计 站点网站建设技术方面
  • 织梦网站广告代码如何写免费空间推荐
  • 网站设计规划范文深圳专业网站建设服务
  • 做企业网站需要做什么品牌建设公司排名
  • 武冈网站建设哪家好专业餐饮vi设计公司
  • 本地网站asp iiswordpress判断自定义页面
  • 故障处理:Oracle 19.20未知BUG导致oraagent进程内存泄漏的案例处理
  • 麒麟服务器操作系统查询可用的内核版本以及安装和降级命令
  • esp32 stm32 ros2 三者区别
  • 20250406_信安一把梭_测试篇
  • 快速微信网站开发长沙企业网站建设团队
  • 建筑工程网站建站方案怎么创建小程序卖东西
  • 做cpa一定要有网站关于室内设计的网站有哪些
  • 陕西省建设厅网站ca验证失败做英文网站 赚美元
  • 标准型网站---北京网站建设网页设计网站名称