android - 离线调试 Android 应用程序

标签 android debugging

我正在开发一个使用位置服务的应用程序。我需要使用 Log.d() 调试应用程序,但这需要设备一直连接到计算机。而这对我来说是不可能的。我将在旅途中测试该应用程序大约两个小时。那时我无法将它连接到 PC。

有没有什么办法可以保存手机的登录信息,以后再取回就可以看到LOG数据了。

最佳答案

引入您自己的 Logger 类,它是 android.util.Log 类的包装器,它将输出重定向到文件和控制台:

public class Logger {

    public static PrintWriter printWriter = null;

    private static void init() {
        ...
        // Check if external media is writable
        ...

        if (printWriter == null) {
            try {
                File dir = new File(Environment.getExternalStorageDirectory() + LOG_DIR);
                dir.mkdirs();
                printWriter = new PrintWriter(new FileWriter(new File(dir, LOG_FILE), true));
            }
            catch (IOException e) {
                Log.e(Logger.class.getName(), "initExternal() -> IOException", e);
            }
        }
    }

    private static synchronized int log(int priority, String tag, String msg) {
        int res = Log.println(priority, tag, msg);

        init(); // May be called just once, depending on your requirements

        printWriter.print(tag + "   ");
        printWriter.print(msg + "\r\n");
        printWriter.flush();
        return res;
    }


    // Duplicates of standard android.util.Log methods:
    public static int v(String tag, String msg) {
        return log(Log.VERBOSE, tag, msg);
    }
    public static int v(String tag, String msg, Throwable tr) {
        return log(Log.VERBOSE, tag, msg + '\n' + Log.getStackTraceString(tr));
    }
    public static int d(String tag, String msg) {
        return log(Log.DEBUG, tag, msg);
    }
    public static int d(String tag, String msg, Throwable tr) {
        return log(Log.DEBUG, tag, msg + '\n' + Log.getStackTraceString(tr));
    }

    ...

}

关于android - 离线调试 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101962/

相关文章:

android - 在 BlackBerry 开发中,我在哪里可以找到类似 ".apk"的内容?

java - Android 检查 arraylist 中的字符串是否相等

android - 调试需要服务器 URL 的应用程序

debugging - 如何完全转储/打印变量以在 Flutter 中进行控制台?

c++ - 如何使用 Visual Studio 调试适用于 Raspberry Pi 的 Linux TUI 应用程序

android - Firebase 云消息传递授权错误

java - 如何通过 Intents 传递 List<CustomObject>

android - AAPT:错误:在调试 list 中找到未知元素 <uses-feature>

javascript - 如何调试 JavaScript 对象问题?

debugging - 编译gdb以进行远程调试