Android PC端用ADB抓取指定应用日志实现步骤

 更新时间:2020年04月28日 10:56:17   作者:清晨有微风  
这篇文章主要介绍了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抓取指定应用日志实现步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android如何实现非本地图片的点击态

    Android如何实现非本地图片的点击态

    Android如何实现非本地图片的点击态,本文提供了详细的实现代码,需要了解的朋友可以参考下
    2012-12-12
  • Android  View自定义锁屏图案

    Android View自定义锁屏图案

    这篇文章主要为大家详细介绍了Android View自定义锁屏图案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 在android中使用缓存和脱机存储

    在android中使用缓存和脱机存储

    这篇文章主要介绍了在android中使用缓存和脱机存储,缓存可以加速你的应用程序,即使在网络不可用时,用户能够更加流畅地使用你的应用程序使用缓存是相当简单的,需要一个单一的代码行,下面来看看文章的详细内容
    2021-11-11
  • Android实现创建或升级数据库时执行语句

    Android实现创建或升级数据库时执行语句

    这篇文章主要介绍了Android实现创建或升级数据库时执行语句,是比较实用的功能,需要的朋友可以参考下
    2014-08-08
  • 解决Android使用Handler造成内存泄露问题

    解决Android使用Handler造成内存泄露问题

    内存泄露的危害就是会使虚拟机占用内存过高,导致OOM(内存溢出),程序出错。接下来通过本文给大家分享Android使用Handler造成内存泄露问题及解决方法,一起看看吧
    2017-08-08
  • Android中backgroundDimEnabled的作用

    Android中backgroundDimEnabled的作用

    这篇文章主要介绍了Android中backgroundDimEnabled的作用的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能

    Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能

    需要做一个仿淘宝客户端ViewPager滑动到最后一页,再拖动的时候跳到详情的功能,刚开始我也迷糊了,通过查阅相关资料发现有好多种实现方法,下面小编给大家分享实例代码,感兴趣的朋友一起看看吧
    2017-03-03
  • Android 实现云知声版离线语音合成

    Android 实现云知声版离线语音合成

    这篇文章主要介绍了Android 实现云知声版离线语音合成,目前云知声提供免费的离线TTS,功能也比较简单,合成的语音也比较生硬,如果对合成的语音要求不高的话可以考虑接入。具体合成需要的小伙伴可以参考下面文章内容
    2022-06-06
  • Kotlin协程的线程调度示例详解

    Kotlin协程的线程调度示例详解

    这篇文章主要为大家介绍了Kotlin协程的线程调度示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android线程池控制并发数多线程下载

    Android线程池控制并发数多线程下载

    这篇文章主要为大家详细介绍了Android线程池控制并发数多线程下载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论