2013-03-01 2 views
3

Я выполняю Logcat из службы в своем приложении.Android Logcat отлично работает в эмуляторах, а не в реальном устройстве

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

Когда он запускается на любом AVD, он захватывает все сообщения журнала из любого процесса, запущенного в системе.
Когда я запустил его на реальном устройстве (ASUS TF201), скопировав apk и установив приложение обычным способом, он только улавливает сообщения журнала из моего собственного приложения.

Приложение работает нормально, никаких сбоев, все действия работают нормально, даже активность, которая запускает и останавливает logcat. Единственное различие между запуском в AVD и прогоном в устройстве - это недостающие сообщения. Я знаю, что есть недостающие сообщения, потому что я запускаю aLogCat помимо моего приложения, и aLogCat делает все сообщения.

Что мне не хватает?

ответ

1

Это всегда должно быть предполагаемое поведение и правильно установлено в Jelly Bean. Каждое приложение должно иметь доступ только к информации о logcat, относящейся к ее собственному процессу.

В вашем случае вам нужно запустить команду как пользователь root для доступа к сообщениям logcat, не принадлежащим вашему приложению.

- Рекомендации -

SO Question

Discussion

Android issue

aLogCat User comments

Надеется, что это удовлетворяет ваше любопытство.

+0

Как вы объясните, что aLogCat действительно ломает ВСЕ сообщения? ::: Это звучит не так, потому что logcat используется для отладки, и никто не может заверить вас, что проблемы в вашем приложении являются следствием вашего собственного приложения. ::: Это имеет гораздо больший смысл, что logcat показывает все, чтобы вы могли отлаживать должным образом. Без необходимости укоренять ваше устройство, это глупо. – ilomambo

+0

@ilomambo Хорошо, что вы имеете право на свое мнение, однако свободный доступ к логарифму был серьезной дырой в безопасности, которая дала много непреднамеренно. – PravinCG

+0

Так что, если я получаю исключение «Из памяти», я могу только искать причины внутри моего собственного приложения? ::: Кроме того, ваше утверждение, безусловно, не соответствует действительности, как я уже сказал, приложение aLogCat, бесплатное для загрузки и с открытым исходным кодом, действительно ломает ВСЕ сообщения в Jelly Bean, вы хотите объяснить это? – ilomambo

Смежные вопросы