2013-03-01 49 views
3

我在我的應用程序中執行Logcat服務。Android Logcat在模擬器中正常工作,在實際設備中不好用

commandLine = "logcat -v time -b main" 
process = Runtime.getRuntime().exec(commandLine); 

當它在任何AVD上運行時,它捕獲系統中運行的任何進程的所有日誌消息。
當我通過複製apk並以正常方式安裝應用程序在真實設備(ASUS TF201)中運行它時,它只捕獲來自我自己的應用程序的日誌消息。

該應用運行良好,沒有崩潰,所有活動都能正常工作,即使是啓動和停止logcat的活動。 AVD運行和設備運行之間的唯一區別就是缺少的信息。我知道缺少消息,因爲除了我的應用程序以外,我還運行了一個LogCat,並且aLogCat確實能夠捕獲所有消息。

我錯過了什麼?

回答

1

這應該始終是預期的行爲,並正確地固定在果凍豆。每個應用程序只能訪問與自己的進程相關的logcat信息。

在你的情況下,你需要以root身份運行該命令來訪問不屬於你的應用程序的logcat消息。

- 參考 -

SO Question

Discussion

Android issue

aLogCat User comments

希望這滿足你的好奇心。

+0

你如何解釋aLogCat確實能夠捕獲所有消息? :::這聽起來不對,因爲logcat用於調試,沒有人能向你保證,你的應用程序中的問題只是你自己的應用程序的結果:::它更有意義的是,logcat顯示了一切,讓你調試正常。無需根植您的設備,這很愚蠢。 – ilomambo 2013-03-01 19:49:38

+0

@ilomambo那麼你有權接受你的意見,但是自由訪問logcat是一個主要的安全漏洞,無意中造成了很大的損失。 – PravinCG 2013-03-01 19:52:29

+0

因此,如果我收到「內存不足」異常,我只能在自己的應用程序中查找原因? :::另外,你的斷言肯定是不正確的,正如我所說的,應用程序aLogCat可以免費下載,而且開放源代碼,在Jelly Bean中捕獲所有消息,你是否在意解釋? – ilomambo 2013-03-01 20:11:35

相關問題