# adb_logcat **Repository Path**: iamd-stuck/adb_logcat ## Basic Information - **Project Name**: adb_logcat - **Description**: adb_logcat:一个专注于Android设备日志收集与分析的开源工具,支持实时监控、过滤和导出,帮助开发者高效调试应用。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-01 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### > 验证a=126062,曝光 首页无焦点搜索词 ## 目的 - 减轻测试人员学习,配置成本 - 替代传统的命令行操作,提高抓包效率 工具特性 ---- 1. ​**自动设置ADB环境**​: * 启动时自动检查并下载适合当前操作系统的ADB * 自动解压ADB工具包 * 无需用户安装任何SDK或配置环境变量 2. ​**用户友好的界面**​: * 设备选择和刷新功能 * 关键字过滤日志 * 日志级别选择 * 标签过滤选项 * 开始/停止控制 * 清空和保存日志功能 3. ​**高级过滤功能**​: * 支持日志级别筛选(从Verbose到Silent) * 支持关键字过滤(不区分大小写) * 支持标签过滤(按日志标签筛选) 4. ​**多线程处理**​: * 日志获取在后台线程进行,不影响UI响应 * 实时显示过滤后的日志内容 使用说明 ---- 1. ​**首次运行**​: * 程序会自动下载ADB工具包(约10-20MB) * 只需连接Android设备到电脑并开启USB调试 2. ​**基本操作**​: * 从设备列表中选择连接的设备(或点击刷新) * 在关键字输入框中输入要过滤的字符串 * 选择日志级别(默认为显示所有日志) * 点击"开始抓包"按钮开始记录日志 * 使用"停止抓包"按钮停止记录 * 点击"保存日志"将结果保存到文件 3. ​**高级过滤**​: * 在"标签"字段选择特定的日志标签(如"ActivityManager") * 结合关键字和日志级别进行精细过滤 打包 -------- 要将此脚本转换为单个可执行文件(Windows的.exe、macOS的.app或Linux的可执行文件),可以使用PyInstaller: ```python pip install pyinstaller pyinstaller --onefile --windowed --name ADB_Logcat_Tool your_script_name.py 例如: pyinstaller --onefile --windowed --name ADB_Logcat_Tool "C:\Users\zijialu\Desktop\adb_logcat\logcat.py" ``` ## 捕获特定日志的配置指南 假设要捕获包含`a=17&b=注册&r=手机号码&fs=成功`的日志 ### 推荐配置方案 方案一:使用完整字符串作为关键字(推荐) 1. ​**关键字(可选)​**​ 输入框中输入:`a=17&b=注册&r=手机号码&fs=成功` 2. ​**日志级别**​ 选择:`V (全部)`(确保不会遗漏任何级别的日志) 3. ​**标签(可选)​**​ 留空(除非您知道这些日志来自特定标签) 4. ​**多个关键字**​ 留空 5. ​**使用正则表达式**​ 不勾选(除非您需要更复杂的匹配) 方案二:使用多个关键字(如果完整字符串可能被分割) 1. ​**多个关键字(以分号隔开)​**​ 输入框中输入:`a=17;注册;手机号码;成功` 2. ​**日志级别**​ 选择:`V (全部)` 3. ​**标签(可选)​**​ 留空 4. ​**使用正则表达式**​ 不勾选 方案三:使用正则表达式(更灵活) 1. ​**关键字(可选)​**​ 输入框中输入正则表达式:`a=17.*注册.*手机号码.*成功` 2. ​**日志级别**​ 选择:`V (全部)` 3. ​**标签(可选)​**​ 留空 4. ​**使用正则表达式**​ 勾选 ### 详细配置步骤 1. ​**设备选择**​: * 确保您的Android设备已通过USB连接到电脑并开启USB调试 * 在"设备选择"下拉菜单中选择您的设备 * 如果设备未显示,点击"刷新设备列表" 2. ​**日志过滤配置**​: * 在"关键字(可选)"输入框中输入:`a=17&b=注册&r=手机号码&fs=成功` * 在"日志级别"下拉菜单中选择:`V (全部)` * "标签(可选)"留空(除非您知道这些日志来自特定标签) * "多个关键字"留空 * "使用正则表达式"不勾选 3. ​**开始抓包**​: * 点击"开始抓包"按钮开始捕获日志 * 工具会自动过滤并显示包含指定关键字的日志行 4. ​**查看结果**​: * 在"日志输出"区域查看匹配的日志 * 日志会自动滚动显示最新内容 5. ​**保存日志**​: * 点击"保存日志"按钮将捕获的日志保存到文件 * 选择保存位置和文件名(建议使用.log扩展名) ### 高级配置建议 1. ​**如果日志量太大**​: * 尝试在"标签(可选)"中输入可能的标签(如`System.out`或`MyAppTag`) * 使用更具体的正则表达式:`a=17.*注册.*手机号码.*成功` 2. ​**如果找不到匹配项**​: * 尝试只使用部分关键字:`注册&手机号码` * 检查日志级别是否设置为`V (全部)` * 确认设备是否正确连接并授权调试 3. ​**如果日志中包含特殊字符**​: * 使用正则表达式转义特殊字符:`a=17\&b=注册\&r=手机号码\&fs=成功` * 勾选"使用正则表达式" ### 注意事项 1. ​**URL编码问题**​: * 如果日志中的参数是URL编码的,可能需要使用编码后的版本 * 例如:"注册"可能被编码为"%E6%B3%A8%E5%86%8C" * 在这种情况下,使用:`a=17&b=%E6%B3%A8%E5%86%8C&r=手机号码&fs=成功` 2. ​**日志格式变化**​: * 如果日志中参数顺序可能变化,使用正则表达式:`(?=.*a=17)(?=.*b=注册)(?=.*r=手机号码)(?=.*fs=成功)` 3. ​**性能考虑**​: * 对于非常长的关键字,使用正则表达式可能更高效 * 如果日志量很大,考虑添加标签过滤减少处理量 ## 工具标签功能详解 标签(Tag)功能是Logcat抓包工具中一个强大的过滤机制,允许您根据日志的来源组件进行精确过滤。 ### 标签功能的作用 标签是Android日志系统中用于标识日志来源的标识符 ```python "ActivityManager", # 活动管理器,系统组件 "System.out", # 标准输出,通常是Java的System.out.println "AndroidRuntime", # Android运行时相关日志 "art", # Android Runtime(ART)虚拟机日志 "dalvikvm", # Dalvik虚拟机日志(老版本Android) "ViewRootImpl", # 界面根视图相关日志 "WindowManager", # 窗口管理器相关日志 "InputMethodManager", # 输入法管理器相关日志 "WifiManager", # WiFi管理器相关日志 "BluetoothAdapter" # 蓝牙适配器相关日志 ``` 使用标签过滤可以: 1. 大幅减少无关日志干扰 2. 聚焦特定模块或组件的日志 3. 提高日志分析的效率 4. 避免错过关键日志 ### 在工具中使用标签功能 基本使用步骤 1. ​**定位标签输入框**​: * 在"日志过滤"部分的"标签(可选)"输入框 2. ​**输入标签名称**​: * 输入您要过滤的标签名称(区分大小写) * 例如:`AndroidRuntime`(捕获崩溃日志) 3. ​**开始抓包**​: * 点击"开始抓包"按钮 * 工具将只显示指定标签的日志 高级使用技巧 1. 多标签过滤 * 使用竖线 `|` 分隔多个标签: 复制 ActivityManager|WindowManager * 这将显示ActivityManager或WindowManager的日志 2. 标签通配符 * 使用星号 `*` 进行模糊匹配: MyApp* * 匹配所有以"MyApp"开头的标签 3. 标签级别过滤 * 在标签后添加日志级别: MyApp:E # 只显示MyApp的错误日志 * 级别代码:V(Verbose), D(Debug), I(Info), W(Warn), E(Error), F(Fatal) 4. 排除特定标签 * 使用减号 `-` 排除标签: * -System.out * 显示所有标签的日志,但排除System.out ### 实际应用场景 场景1:捕获特定应用的崩溃日志 * ​**标签输入**​:`AndroidRuntime` * ​**日志级别**​:`E (错误)` * ​**关键字**​:`MyApp`(您的应用包名) * 这将只显示您的应用崩溃时的错误日志 场景2:监控系统活动 * ​**标签输入**​:`ActivityManager` * ​**日志级别**​:`I (信息)` * ​**关键字**​:`startActivity` * 监控所有活动启动事件 场景3:调试网络请求 * ​**标签输入**​:`okhttp*` 或 `Volley` * ​**日志级别**​:`D (调试)` * ​**关键字**​:`/api/login` * 捕获特定API的网络请求日志 场景4:分析UI渲染性能 * ​**标签输入**​:`Choreographer|RenderThread` * ​**日志级别**​:`V (全部)` * ​**关键字**​:`doFrame` * 分析UI帧渲染性能 --- ## 备注 2025-07-11: * 增加了无ADB用户友好的下载提示弹窗; * 解压的ADB.exe不存放在临时区,避免关闭应用程序后adb被清除 2025-09-01: - 标签过滤,日志级别过滤仍有BUG - 待做:日志文字颜色区分