1. 程式人生 > 程式設計 >Android PC端用ADB抓取指定應用日誌實現步驟

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目錄中

Android PC端用ADB抓取指定應用日誌實現步驟

5、將android手機用資料線連線電腦,手機開啟開發者除錯模式(若未開啟開發者模式,一般可以進入系統-關於手機-全部引數 等介面,連續點選版本7次左右可開啟)

6、點選執行“cmd.exe”,先執行命令“adb devices”,檢視是否有真機連線上電腦adb。

7、雙擊執行 “catlog.bat”即可(不要關閉命令視窗,關閉視窗即停止抓取日誌)。

8、檢視日誌檔案。可能存在中文字元亂碼的問題,更改編碼格式就可以了。

補充知識:android studio帶檔案和行輸出的logcat

實現的效果

Android PC端用ADB抓取指定應用日誌實現步驟

因之前寫的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抓取指定應用日誌實現步驟就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。