App测试之App日志收集及adb常用命令
文章目录
- 前言
- 一、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测试收集手机日志常用的工具
-
ADT
收集开发人员使用最多的开发工具,也是可以实现从pc端获取手机端的文件
-
SDK
收集开发人员使用最多的开发工具,也是可以实现从pc端获取手机端的文件
-
ADB
测试人员最常用的工具,通过pc端收集手机端的文件
2.adb下载与安装
- adb下载与安装:https://blog.csdn.net/weixin_44904239/article/details/134733985
3.ADT/SDK/ADB是什么
-
ADTADT(Android development tools)——Android开发工具。在Eclipse上调用各种与android有关的插件,便要ADT。
-
SDKSDK(software development kit)——软件开发工具包。要用到各种android平台,好比android2.3等,便要有SDK
-
ADBADB(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设备
- adb是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的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查看的日志信息,只能辅助定位问题。无法具体知道因为什么原因导致的
- ActivityManager:ANR in [
- 日志格式
- 2.Trace文件(通过Trace文件进行分析)
- 文件路径:/data/anr/
- Dump stack trace信息
- Dump 的进程包括:当前应用进程,父进程,主进程,persistent进程,以及CPU占用率排在前几位的(最多5个)进程
- ps:只能记录最后一次发生的anr的信息
- 3.DropBox服务
- 通过dropbox可以收集系统一段时间内的异常信息(包括ANR、crash)
- /data/system/dropbox是dropbox指定的文件存放位置
- 1.Logcat日志(通过Logcat日志进行分析)
总结
以上都是基于Android实现的
扩展(IOS app定位日志)
- MacOS电脑:xcode工具 —— 一出现问题,把手机直接给ios开发
- Windows:iTunes、iTools
- 使用工具将日志同步到电脑,然后贴到bug你给开发!
相关文章:
App测试之App日志收集及adb常用命令
文章目录 前言一、adb是什么1.APP测试收集手机日志常用的工具2.adb下载与安装3.ADT/SDK/ADB是什么4.adb连接真机 二、adb常用命令三、android系统日志文件1.logcat日志文件2.logcat日志文件分析 四、分析crash & ANR 日志1.发生crash如何分析2.发生ANR如何分析 总结扩展&am…...
【Java面试——并发基础、并发关键字】
3.1 并发基础 Java 并发 - 理论基础Java 并发 - 线程基础 多线程的出现是要解决什么问题的? 本质什么? CPU、内存、I/O 设备的速度是有极大差异的,为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序都…...
如何使用 Java 在Excel中创建下拉列表
下拉列表(下拉框)可以确保用户仅从预先给定的选项中进行选择,这样不仅能减少数据输入错误,还能节省时间提高效率。在MS Excel中,我们可以通过 “数据验证” 提供的选项来创建下拉列表,但如果要在Java程序中…...
Python安装步骤介绍
本文将介绍Python安装的详细步骤如下: 下载 python安装 python配置环境变量(安装时勾选配置环境变量的则无需此步骤) 一、python下载 官网:Download Python | Python.org 根据电脑位数下载所需的版本 二、Python安装 1.打开安…...
学习80min快速了解大型语言模型(ChatGPT使用)笔记
学习李宏毅:80min快速了解大型语言模型(ChatGPT使用)笔记 链接:https://www.youtube.com/watch?vwG8-IUtqu-s 1、创建一个属于自己的GPT 目前,GPT4具备一个功能,Create a GPT。利用这个功能可以创建一个…...
SQL错题集1
1.找出选修课程成绩最差的选课记录 注: 聚合函数只能用在group by和()括号中 找最值可用排序order bylimit 1 2. 查询选修成绩 合格的课程 超过2门的 学生编号 3.删除姓名为"LiMing"的学生信息 注: 删除一整行信息&…...
uniapp运行到安卓基座app/img标签不显示
img是html中的标签,他也是一个单标签 image属于服务器控件,是个双标签 问题:uniapp运行到app安卓基座后图片无法显示 原因:自己使用了img标签,而且输入路径无提示,img标签导致图片不显示 解决ÿ…...
vscode非常好用的扩展插件
1、Code Spell Checker: 帮助我们检查单词是否拼写错误,检查规则遵循驼峰拼写法。 2、Color Highlight:高亮显示颜色值 3、Svg Preview: 实时预览svg图片(修改width、height、fill等值来实时查看效果) 4、…...
一文弄懂BFS【广度优先搜索(Breadth-First Search)】
BFS,全名为广度优先搜索(Breadth-First Search),是一种用于图或树的遍历或搜索的算法。它的主要思想是由节点自身开始向它的邻居节点新进展开搜索,因此也常被形象地称为“层序遍历”。 BFS 基本思想 BFS 工作原理是,从开始节点开…...
深度学习记录--logistic回归函数的计算图
计算图用于logistic回归函数 先回顾一下单一样本的logistic回归损失函数的公式,公式如下: 将logistic函数用计算图表示出来(以两个基础量为例),计算图如下: 前向传播已经完成,接下来完成后向传播 运用链式法则依次求…...
Java基本数据类型详解
✨个人主页:全栈程序猿的CSDN博客 💨系列专栏:Java从入门到精通 ✌座右铭:编码如诗,Bug似流星,持续追求优雅的代码,解决问题如同星辰般自如 Java是一种强类型语言,数据类型在程序中起…...
第十五届蓝桥杯模拟赛(第二期)
大家好,我是晴天学长,本次分享,制作不易,本次题解只用于学习用途,如果有考试需要的小伙伴请考完试再来看题解进行学习,需要的小伙伴可以点赞关注评论一波哦!后续会继续更新第三期的。Ǵ…...
命令模式-C++实现
命令模式是一种行为型设计模式,它将请求封装成一个对象,从而能使你可以用不同的请求对客户端进行参数化。该模式允许请求的发送者和接收者进行解耦,发送者不需要知道接收者的信息,只需要通过命令对象来与它进行交互。 命令模式有…...
3dMax拼图生成工具Puzzle2D使用教程
Puzzle2D for 3dsMax拼图生成工具使用教程 Puzzle2D简介: 2D拼图随机生成器(英文:Puzzle2D) ,是一款由#沐风课堂#用MAXScript脚本语言开发的3dsMax建模小工具,可以随机创建2D可编辑样条线拼图图形。可批量…...
git报错invalid object xxx和unable to read tree xxxxxx
电脑出问题了,导致git仓库像是被损坏了一样,执行git status就会报错unable to read ree,无法正常提交代码至仓库,原因是本地代码仓库.git文件损坏了,无法找到正确的提交历史和路径。 找到了一个解决办法: …...
会泽一村民上山放羊吸烟引发森林火灾,AI科技急需关注
2023年4月,会泽县古城街道厂沟村委会望香台山林中发生了一场由疏忽引发的森林火灾。张某某在放羊时未完全熄灭烟头,导致7.33公顷的林地和草地被焚毁,直接经济损失高达29.097万元。这一事件再次凸显了日常生活中的安全隐患。 在这一背景下&…...
docker-compose部署zabbix+grafana
1.引言 1.1目的 zabbixgrafana实现图形化监控 2.部署环境 服务器ip服务版本192.168.5.137zabbix-server6.0.21192.168.5.137grafana10.2.2192.168.5.152zabbix-client6.0.21 3.部署zabbix-server 3.1 创建zabbix目录 mkdir zabbix3.2 编写docker-compose文件 cd zabbix…...
ios 逆向分分析,某业帮逆向算法(二)
接上讲 上次hook 发现自己的数据有点问题。才发现是自己的编辑器识别出问题了。 上篇sub_1029B6898函数hook数据如下: [iOS Device::作业帮 ]-> arg2: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 00000000 37 32 65 64 38 31 32 38…...
openCv颜色矩
颜色矩(Color Moments)是一种常用的图像特征描述方法,用于表示图像中颜色的分布和统计特征。它是基于图像的颜色直方图而计算得到的。 颜色矩通常包括三个维度:平均值、方差和偏度。具体来说: 平均值(Mean…...
〖大前端 - 基础入门三大核心之JS篇㊹〗- DOM事件委托
说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
