App测试之App日志收集及adb常用命令

news2025/3/1 6:40:36

文章目录

  • 前言
  • 一、adb是什么
    • 1.APP测试收集手机日志常用的工具
    • 2.adb下载与安装
    • 3.ADT/SDK/ADB是什么
    • 4.adb连接真机
  • 二、adb常用命令
  • 三、android系统日志文件
    • 1.logcat日志文件
    • 2.logcat日志文件分析
  • 四、分析crash & ANR 日志
    • 1.发生crash如何分析
    • 2.发生ANR如何分析
  • 总结
    • 扩展(IOS app定位日志)

前言

adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb可以在Eclipse中通过DDMS来调试Android程序,说白了就是调试工具。

adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。

  • adb是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的android设备,它的主要功能有:
    • 运行设备的shell(命令行)
    • 管理模拟器或设备的端口映射
    • 计算机和设备之间上传/下载文件
    • 将本地apk软件安装至模拟器或android设备

ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑,,服务器端是android设备

一、adb是什么

1.APP测试收集手机日志常用的工具

  1. ADT

    收集开发人员使用最多的开发工具,也是可以实现从pc端获取手机端的文件

  2. SDK

    收集开发人员使用最多的开发工具,也是可以实现从pc端获取手机端的文件

  3. ADB

    测试人员最常用的工具,通过pc端收集手机端的文件

2.adb下载与安装

  • adb下载与安装:https://blog.csdn.net/weixin_44904239/article/details/134733985

3.ADT/SDK/ADB是什么

  • ADT

    ADT(Android development tools)——Android开发工具。在Eclipse上调用各种与android有关的插件,便要ADT。

  • SDK

    SDK(software development kit)——软件开发工具包。要用到各种android平台,好比android2.3等,便要有SDK

  • ADB

    ADB(Android debug bridge)——安卓调试桥。是用来连接安卓手机和PC端的桥梁,通过adb服务,在PC端命令行界面对手机或者模拟器进行全面的操作

    adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb可以在Eclipse中通过DDMS来调试Android程序,说白了就是调试工具。

    adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。

    • adb是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的android设备,它的主要功能有:
      • 运行设备的shell(命令行)
      • 管理模拟器或设备的端口映射
      • 计算机和设备之间上传/下载文件
      • 将本地apk软件安装至模拟器或android设备

    ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑,,服务器端是android设备

4.adb连接真机

  • 方法一:USB连接调试

    • 1.使用usb数据线连接好电脑

    • 2.手机打开调试模式,勾选usb调试模式(每个手机打开方式不一样,找不到可以通过百度查找)
      参考链接:https://support.oppo.com/cn/answer/?aid=SI2105995
      在这里插入图片描述

    • 3.电脑端打开命令提示符,输入adb devices 检测,能出现设备列表代表连接成功

      在这里插入图片描述

  • 方法二:Wifi连接调试

    Android设备与将运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi

    • 1.使用usb数据线连接好电脑

    • 2.打开命令提示符,运行adb devices,测试是否连接成功,能出现设备列表即可

      在这里插入图片描述

    • 3.运行adb tcpip 5555(另外设立一个端口,实现手机与电脑的连接),然后断开USB连接

      在这里插入图片描述

    • 4.通过手机状态信息,查看手机的IP地址(一般会在 设置-关于手机-状态信息 里面)
      在这里插入图片描述

    • 5.运行 adb connect 手机IP地址,若出现:connected to 手机IP地址:5555 说明连接成功

      adb connect 192.168.31.36	若出现:connected to 192.168.31.36:5555 说明连接成功
      

      在这里插入图片描述

    • 6.输入adb devices检测是否连接成功

      在这里插入图片描述

二、adb常用命令

  • 查看帮助手册

    adb --help
    
  • 查看连接设备(检测连接到电脑的设备)

    adb devices
    

    在这里插入图片描述

  • 根据IP地址连接对应设备

    adb connect 要连接设备的IP地址
    

    在这里插入图片描述

  • 登陆设备shell(进入到 linux命令环境了,相当于执行远程命令)

    adb shell	#使用exit命令退出
    

    在这里插入图片描述

  • 从手机中拉取信息放到本地电脑上

    adb pull 手机文件路径 电脑端路径
    

    例子

    #将手机/sdcard/Android/data目录下的Test.txt文件拉取到电脑端的D盘根目录下
    adb pull /sdcard/Android/data/Test.txt D:\
    

    在这里插入图片描述

  • 从本地推送信息到手机上去

    adb push 电脑端文件路径 手机端路径
    

    例子

    adb push D:\Test1.txt /sdcard/Android/data/
    

    在这里插入图片描述

    • 打印log信息
    adb logcat -v time > pc端日志文件路径
    

    例子

    adb logcat -v time > D:\log.txt
    

    在这里插入图片描述

  • 查看前台应用包名

    #Android 7.0及以下查看前台包应用包名
    adb shell dumpsys activity | find "mFocusedActivity"
    
    #Android 8.0以上 dumpsys activity 的信息已经有变化,用此命令进行查看包名
    adb shell dumpsys activity | find "mResumedActivity"
    

    例子

    在这里插入图片描述

三、android系统日志文件

1.logcat日志文件

  • android日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用

  • 使用方式

    • adb logcat [<option>] … [<fiter-spec>]…
  • 开发者选项,有个选项叫做 “日志记录器缓冲区大小” 默认是256K,日志是循环写入环形缓冲区的。在通常情况下,写满时最旧的们志会被删除以给新输出的日志留内存空间——真机设置,模拟器一般没有

    在这里插入图片描述

    在这里插入图片描述

2.logcat日志文件分析

  • 输出的日志格式如下所示:

    在这里插入图片描述

  • 由五部分组成:

    • 1.写下日志时的时间,如图中 12-02 23:02:31.289。

    • 2.优先级,在Android中,日志的优先级从低到高分以下几种:

      • V——Verbose(最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在发布产品中输出)
      • D——Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)
      • I——Info(信息,一般提示性的消息)
      • W——Warning(警告))
      • E——Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
    • 3.标签(tag),标明日志发起者和方便日志的过滤筛选,如图中MiuiNetworkPolicy,类和模块

    • 4.PID(进程ID),如图中1591

    • 5.正文:本日志的主体内容

四、分析crash & ANR 日志

1.发生crash如何分析

在这里插入图片描述

  • 发生crash,adb logcat获取日志分析:
    • 1.搜索exception关键字,根据时间,包名定位
    • 2.搜索fatal / caused by关键字
    • 3.搜索force finish

找到对应的日志,贴到bug里,发给开发! ! !

2.发生ANR如何分析

在这里插入图片描述

何为ANR

ANR全名Application Not Responding,也就是应用无响应,当操作在一段时间内系统无法处理时,系统层面会弹出如图所示那样的ANR对话框

  • 用户在主线程长时间被阻塞时提供处理交互,提高用户体验

  • Android系统一种自身检测机制

  • 系统发生ANR时,会通过三种方式记录信息:

    • 1.Logcat日志(通过Logcat日志进行分析)
      • 日志格式
        • ActivityManager:ANR in [进程名] ([部件名])
        • ActivityManager:PID:[应用进程ID]
        • ActivityManager:Reason:[原因提示] [Process CPU state]
        • 通过搜索anr关键字,若无具体java报错信息,继续另一种方法获取日志
        • 通过logcat日志文件搜索ANR查看的日志信息,只能辅助定位问题。无法具体知道因为什么原因导致的
    • 2.Trace文件(通过Trace文件进行分析)
      • 文件路径:/data/anr/
      • Dump stack trace信息
      • Dump 的进程包括:当前应用进程,父进程,主进程,persistent进程,以及CPU占用率排在前几位的(最多5个)进程
      • ps:只能记录最后一次发生的anr的信息
    • 3.DropBox服务
      • 通过dropbox可以收集系统一段时间内的异常信息(包括ANR、crash)
      • /data/system/dropbox是dropbox指定的文件存放位置

总结

以上都是基于Android实现的

扩展(IOS app定位日志)

  • MacOS电脑:xcode工具 —— 一出现问题,把手机直接给ios开发
  • Windows:iTunes、iTools
  • 使用工具将日志同步到电脑,然后贴到bug你给开发!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1279965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

队列顺序存储(详解)

队列是一种常见的数据结构&#xff0c;它是一种先进先出&#xff08;First-In-First-Out, FIFO&#xff09;的线性表。在队列中&#xff0c;数据元素按照插入的顺序排列&#xff0c;最先插入的元素在队列的前面&#xff0c;最后插入的元素在队列的后面。类比生活中排队购物的情…

登录界面(flex布局练习)

练习&#xff1a;登录界面在我们网页制作的过程中经常遇见&#xff0c;所以请你编写一个界面联系一下&#xff0c;这个可以增加一些动画或者是其他的效果&#xff0c;当然越帅越好。请使用flex或者其他布局练习 例如&#xff1a; 代码 <!DOCTYPE html> <html lang…

如何做好小红书?9条小红书运营起号心得(必读)

关于小红书运营细节和方法&#xff0c;总结了以下9条起号心得&#xff0c;希望给近期新手们一些经验借鉴。 一、出现一条爆文后的策略当账号新发的一篇笔记流量起飞了&#xff0c;不要急于发布新内容。先让爆文的流量消耗殆尽&#xff0c;等流量开始减少时再发布新笔记。同时&…

2022CVPR(PoseC3D):Revisiting Skeleton-based Action Recognition

Revisiting Skeleton-based Action Recognition 摘要1、引言2、相关工作3、框架3.1. 姿势提取的良好实践3.2.从2D姿势到3D热图体积3.3.基于骨架的动作识别的3D-CNN 4、实验4.2.姿势提取4.3. 3D热图体积的预处理4.4.与GCN的比较4.5. RGBPose-SlowFast4.6.与最先进的比较 5、结论…

C语言-联合和枚举

------------------------------------ --------------- ------ 最慢的步伐不是跬步&#xff0c;而是徘徊&#xff1b; 最快的脚步不是冲刺&#xff0c;而是坚持。 今天来到我们的联合和枚举类型的讲解&#xff1a; 目录 联合体类型 联合体类型的声明 联合体类型的特点 …

Effective Java解读

Effective Java 第一章 引言第二章 创建和销毁对象第1条&#xff1a;用静态工厂方法代替构造器第2条&#xff1a;遇到多个构造器参数时要考虑使用构建器第3条&#xff1a;用私有构造器或者枚举类型强化Singletion属性第4条&#xff1a;通过私有构造器强化不可实例化的能力第5条…

计算机网络的分类

目录 一、按照传输介质进行分类 1、有线网络 2、无线网络 二、按照使用者进行分类 1、公用网 (public network) 2、专用网(private network) 三、按照网络规模和作用范围进行分类 1、PAN 个人局域网 2、LAN 局域网 3、MAN 城域网 4、 WAN 广域网 5、Internet 因特…

canvas基础:fillStyle 和strokeStyle示例

canvas实例应用100 专栏提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。 canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重要的帮助。 文章目录 上色…

工具类整理

常用工具类 在java的庞大体系中&#xff0c;其实有很多不错的小工具&#xff0c;也就是我们平常说的&#xff1a;轮子。 CollectionUtils 目前比较主流的是spring的org.springframework.util包下的CollectionUtils工具类。和apache的org.apache.commons.collections包下的Co…

SmartSoftHelp8,应用程序优化,稳定性优化,性能优化,并发承载优化工具

winform 应用全局捕获异常 WPF 应用全局捕获异常 asp.net web 应用全局捕获异常 MVC web 应用全局捕获异常 netcore 应用全局捕获异常 一级缓存&#xff1a;html、cs&#xff0c;js 网页前端缓存设置 二级缓存&#xff1a;asp.net 客户端缓存设置 二级缓存&#xff…

测试Centos上用Gunicorn启动的Django-Web服务在Django源文件有改变的情况下能否自动重载最新源码下的web服务

01-先上传最新的源码文件 参考博文 https://blog.csdn.net/wenhao_ir/article/details/134762966 进行 02-先在Django直接开web服务下修改源码测试 这是没有问题的&#xff0c;会自己重置。 03-开启gunicorn服务 cd /djangoproject/mmdj01/ gunicorn -c /djangoproject/mm…

【Android】MMKV实现本地持久化

引入 (测试操作机器是华为Mate 20 Pro 128G&#xff0c;Android 10&#xff0c;每组重复1k次&#xff0c;时间单位是ms) 可以看出MMKV的耗时比其他耗时少的离谱。再看多进程下的性能&#xff1a; 不必多说。再看和DataStore的对比&#xff1a; 简介 根据MMKV官方文档所言 MM…

【数电笔记】20-有约束的逻辑函数化简

目录 说明&#xff1a; 约束项和约束条件 1. 引例 1.1 引例中的约束项 1.2 引例中的约束条件 利用约束项 / 约束条件化简逻辑函数 1. 例1 2. 例2 3. 例3 4. 例4 说明&#xff1a; 笔记配套视频来源&#xff1a;B站&#xff1b;本系列笔记并未记录所有章节&#xff0…

宝塔+docker+jenkins部署vue项目----笔记版

宝塔dockerjenkins部署vue项目&#xff08;保姆级教程&#xff09;https://blog.csdn.net/weixin_47284756/article/details/129339940 基于上述教程&#xff0c;不同的地方。 1.我使用的是gitee&#xff0c;所以需要在jenkins中安装gitee插件 配置gitee&#xff0c;其他默认配…

基于51单片机的十字路口交通灯_5s黄灯倒计时闪烁

基于51单片机十字路口交通灯_5s黄灯闪烁 &#xff08;程序仿真仿真视频&#xff09; 仿真&#xff1a;proteus 7.8 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;J006 功能要求 交通灯运行状态&#xff1a; &#xff08;1&…

Shell循环:whileuntil

一、特点&#xff1a;循环次数[一定]是固定的 二、while语句结构 while 条件测试 do 循环体 done 当条件测试成立&#xff08;条件测试为真&#xff09;&#xff0c;执行循环体 演示&#xff1a; 需求&#xff1a;每秒显示一个数字&#xff0c;一…

webpack如何处理浏览器的样式兼容问题postcss

一、准备工作 css/index.css添加样式 .word {color: red;user-select: none; } 为了兼容不同的浏览器我们需要添加前缀比如&#xff1a; -webkit-user-select: none; 这个工作可以通过postcss的插件postcss-preset-env处理 二、安装依赖 pnpm i -D postcss postcss-loader…

淘宝店铺所有商品数据接口(淘宝 API 接口)

要获取淘宝店铺所有商品数据&#xff0c;您可以使用淘宝开放平台提供的 API 接口。具体步骤如下&#xff1a; 在淘宝开放平台注册并登录&#xff0c;创建一个应用&#xff0c;获取到所需的 App Key 和 App Secret 等信息。 使用获取到的 App Key 和 App Secret 进行签名和认证…

『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建OA系统

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器&#xff08;Elastic Compute Cloud&#xff09;是亚马…

Python Rich:让终端显示更具视觉效果

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python开发中&#xff0c;命令行界面&#xff08;CLI&#xff09;经常被用于交互和数据展示。虽然命令行界面通常被视为简单、枯燥的文本显示区域&#xff0c;但通过Python的Rich库&#xff0c;我们可以为命令…