大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了Android PC端用ADB抓取指定应用日志的实现方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
专注于为中小企业提供成都做网站、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业咸宁免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
主要功能:
用于在PC端通过ADB工具抓取指定android真机上运行的指定包名应用的调试日志,并生成本地txt文件。
实现步骤:
1、准备ADB调试软件;
2、根据包名找到进程pid;
新建一个txt文件,重命名为“getpid.bat”,把下面代码复制到该文档中,保存;
包名“com.wtoe.demo”可替换为自己所需要抓取日志的包名。
@echo off
adb shell "ps | grep com.wtoe.demo"
3、根据包名找到进程pid;
新建一个txt文件,重命名为“catlog.bat”,把下面代码复制到该文档中,保存
文件路径“F:/android_log/001.log ”可替换为自己电脑的任意文件路径;文件无需创建,运行时,会自动创建。
@echo off for /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抓取指定应用日志的实现方法有进一步的了解,如果还想学习更多内容,欢迎关注创新互联行业资讯频道。