有没有一种方法在Android应用程序中打印到控制台?

28

我是否可以通过模拟器运行Android应用程序并将其打印字符串到我的计算机控制台?这里所说的控制台是指在正常的Java应用程序中期望看到System.out.println()输出的标准位置。因此,如果您从命令提示符中运行Java应用程序,则会在命令提示符中看到println()输出;如果您在Eclipse中运行该程序,则会在底部的“Console”选项卡中看到它。


2
在Eclipse中,您可以通过DDMS透视图来使用LogCat。 - CommonsWare
2个回答

36

11
不同的日志级别有不同的方法:Log.v()、Log.d()、Log.i()等等... 请注意,API Level 8(Android 2.2 Froyo)引入了全新的方法Log.wtf() - What a Terrible Failure ;) LOL - Gawcio
2
为避免需要跟踪一个我喜欢的标签,我会使用以下代码: Log.d(getClass().getSimpleName(), "YourOutput"); - rshdev
2
@rshdev 当然可以。我只是想给出一个没有任何其他变量/代码依赖的代码示例,因为它更多关于Log类本身。我甚至会进一步使用getClass.getName()而不是getSimpleName(),因为通常你也想按包(你的应用程序)过滤,而不仅仅是一个类。使用getName(),你可以同时做到这两点 - 这就是为什么我使用getName()的原因。+1 你的。 - Mathias Conradt

15
默认情况下,Android系统将stdout和stderr(System.out和System.err)输出发送到/dev/null。在运行Dalvik VM的进程中,您可以让系统将输出的副本写入日志文件。在这种情况下,系统使用log标记stdout和stderr将消息写入日志,优先级均为I。
要以这种方式路由输出,您需要停止正在运行的模拟器/设备实例,然后使用shell命令setprop启用输出重定向。以下是操作步骤:
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start

系统会保留此设置,直到您终止模拟器/设备实例。要将该设置用作模拟器/设备实例上的默认设置,可以在设备上添加一个条目到 /data/local.prop 中。
您可以在 Android Debug Bridge document 中找到更多信息。
您还可以创建自己的类来打印到控制台 http://tech.chitgoks.com/2008/03/17/android-showing-systemout-messages-to-console/
我认为这个问题已经在 StackOverflow 上得到了解答 How to output LogCat to Console?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接