我正在开发一个使用位置服务的应用程序。我需要使用 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/