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

Posted

技术标签:

【中文标题】有没有办法在 Android 应用程序中打印到控制台?【英文标题】:Is there a way to print to the console in an Android app? 【发布时间】:2011-03-07 08:34:27 【问题描述】:

我可以通过模拟器运行 android 应用程序并将字符串打印到我的计算机控制台吗?控制台是指您希望在普通 java 应用程序中看到 System.out.println() 的标准位置。因此,如果您从命令提示符运行 java 应用程序,那么您将在命令提示符中看到 println()s,或者如果您在 eclipse 中运行该程序,您将在底部的 Console 选项卡中看到它。

【问题讨论】:

LogCat 可通过 DDMS 透视图在 Eclipse 中使用。 【参考方案1】:

默认情况下,Android 系统将 stdout 和 stderr(System.out 和 System.err)输出发送到 /dev/null。在运行 Dalvik VM 的进程中,您可以让系统将输出的副本写入日志文件。在这种情况下,系统使用日志标签 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/

我认为这个问题已经在 *** 上得到解答 How to output LogCat to Console?

【讨论】:

【参考方案2】:

使用Log.d("YourTag", "YourOutput");

见http://developer.android.com/reference/android/util/Log.html

【讨论】:

日志的各种重要性有多种方法:Log.v()、Log.d()、Log.i() 等...还要注意 API 级别 8 (Android 2.2 Froyo ) 引入了全新的方法 Log.wtf() - 多么可怕的失败 ;) LOL 为了避免跟踪我喜欢的标签:Log.d(getClass().getSimpleName(), "YourOutput"); @rshdev 当然可以。我只是想给出一个代码示例,而不依赖于任何其他变量/代码等。因为它更多的是关于 Log 类本身。我什至会更进一步,使用 getClass.getName() 而不是 getSimpleName(),因为通常您也希望按包(您的应用程序)过滤,而不仅仅是一个类。使用 getName(),你可以两者兼得——这就是我使用 getName() 的原因。 +1 你的。

以上是关于有没有办法在 Android 应用程序中打印到控制台?的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat控制台总是打印日志问题的解决办法

有没有办法阻止Visual Studio将Thread启动和完成的语句打印到输出窗口?

从移动浏览器打印到蓝牙打印机

有没有办法在控制台日志中打印出js文件的行号

有没有办法在 react-native android 应用程序中控制应用程序图标快捷方式徽章计数?

print() 语句未在 Android Studio 中的颤动 iOS 应用程序中打印到控制台