2010-06-23 88 views
25

我可以通過模擬器運行Android應用程序,並將它打印到我的電腦控制檯上?通過控制檯,我的意思是您希望在普通Java應用程序中看到System.out.println()的標準位置。因此,如果您從命令提示符運行java應用程序,那麼您將在命令提示符中看到println(),或者如果您在eclipse中運行該程序,則會在底部的控制檯選項卡中看到它。有沒有辦法在Android應用程序中打印到控制檯?

+2

爲什麼不使用logcat的? – 2010-06-23 14:23:00

+1

+1只需使用LogCat – 2010-06-23 14:28:06

+2

通過DDMS的角度,Eclipse中可以使用LogCat。 – CommonsWare 2010-06-23 14:48:15

回答

33

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

看到http://developer.android.com/reference/android/util/Log.html

+11

日誌的各種重要性有多種方法:Log.v(),Log.d(),Log.i()等... 請注意,API Level 8(Android 2.2 Froyo)引入了全新的方法Log .wtf() - 什麼是可怕的失敗;)LOL – Gawcio 2010-06-23 14:42:11

+2

爲了避免跟蹤我喜歡的標籤: Log.d(getClass()。getSimpleName(),「YourOutput」); – rshdev 2012-11-30 19:05:38

+2

@rshdev當然可以。我只是想給出一個代碼示例,而不依賴任何其他變量/代碼等等​​,因爲它更多的是關於Log類本身。我甚至會更進一步並使用getClass.getName()而不是getSimpleName(),因爲通常你想要通過包(你的應用程序)進行過濾,而不僅僅是一個類。使用getName(),你可以做到這兩點 - 這就是爲什麼我使用getName()代替。 +1你的。 – 2012-12-03 07:01:47

13

缺省情況下,Android系統發送輸出和錯誤(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?

相關問題