Android PC端用ADB抓取指定应用日志实现步骤
主要功能:
用于在PC端通过ADB工具抓取指定android真机上运行的指定包名应用的调试日志,并生成本地txt文件。
实现步骤:
1、准备ADB调试软件;
2、根据包名找到进程pid;
新建一个txt文件,重命名为“getpid.bat”,把下面代码复制到该文档中,保存;
包名“com.wtoe.demo”可替换为自己所需要抓取日志的包名。
@echo offadb shell 'ps | grep com.wtoe.demo'
3、根据包名找到进程pid;
新建一个txt文件,重命名为“catlog.bat”,把下面代码复制到该文档中,保存
文件路径“F:/android_log/001.log ”可替换为自己电脑的任意文件路径;文件无需创建,运行时,会自动创建。
@echo offfor /f 'tokens=2 delims= ' %%i in (’getpid.bat’) do adb logcat | find '%%i' > F:/android_log/001.log pause
#如果该包名有多个进程pid(守护进程等),都会打印到日志中。
4、将脚本文件“getpid.bat”、“catlog.bat”剪切到adb目录中
5、将android手机用数据线连接电脑,手机打开开发者调试模式(若未开启开发者模式,一般可以进入系统-关于手机-全部参数 等界面,连续点击版本7次左右可开启)
6、点击运行“cmd.exe”,先运行命令“adb devices”,查看是否有真机连接上电脑adb。
7、双击运行 “catlog.bat”即可(不要关闭命令窗口,关闭窗口即停止抓取日志)。
8、查看日志文件。可能存在中文字符乱码的问题,更改编码格式就可以了。
补充知识:android studio带文件和行输出的logcat
实现的效果
因之前写的C/C++打印都是带上文件名和行数的,自学到android 的logcat,发现错误时候会直接鼠标点击跳转到相应的代码处,遂自己封装下一个函数,能够打印文件,行数并且支持直接的鼠标跳转,很方便调试。deep参数可以自定义深度,比如 1 代表上一个方法的调用处,但是有时候可能有问题,不带深度的打印目前没有发现问题。
package m.hajistark.main;import android.util.Log;/** * Created by hajistark on 2019/2/18. */public class LogPrint { private static String TAG = 'conlog '; public static String Line() { StackTraceElement ste = new Throwable().getStackTrace()[2]; return '(' + ste.getFileName() + ':' + ste.getLineNumber() + ') '; } public static String Line(int deep) { StackTraceElement ste = new Throwable().getStackTrace()[2 + deep]; return '(' + ste.getFileName() + ':' + ste.getLineNumber() + ') '; } public static void i(String Str) { Log.i(TAG + Line(), Str); } public static void w(String Str) { Log.w(TAG + Line(), Str); } public static void d(String Str) { Log.d(TAG + Line(), Str); } public static void d(String Str, int deep) { Log.d(TAG + Line(deep + 1), Str); } public static void e(String Str) { Log.e(TAG + Line(), Str); } public static void e(String Str, int deep) { Log.e(TAG + Line(deep + 1), Str); } public static void c(Exception e) { e.printStackTrace(); }}
以上这篇Android PC端用ADB抓取指定应用日志实现步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持好吧啦网。
相关文章:
1. JavaScript中交换值的10种方法总结2. 使用java实现云端资源共享小程序的代码3. Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤4. ajax异步实现文件分片上传实例代码5. 在.NET Core 中使用 FluentValidation 进行规则验证的方法6. 在Vue中创建可重用的 Transition的方法7. react axios 跨域访问一个或多个域名问题8. PHP实现简单日历类编写9. java中下拉框select和单选按钮的回显操作10. springboot访问template下的html页面的实现配置
