Я выполняю Logcat из службы в своем приложении.Android Logcat отлично работает в эмуляторах, а не в реальном устройстве
commandLine = "logcat -v time -b main"
process = Runtime.getRuntime().exec(commandLine);
Когда он запускается на любом AVD, он захватывает все сообщения журнала из любого процесса, запущенного в системе.
Когда я запустил его на реальном устройстве (ASUS TF201), скопировав apk и установив приложение обычным способом, он только улавливает сообщения журнала из моего собственного приложения.
Приложение работает нормально, никаких сбоев, все действия работают нормально, даже активность, которая запускает и останавливает logcat. Единственное различие между запуском в AVD и прогоном в устройстве - это недостающие сообщения. Я знаю, что есть недостающие сообщения, потому что я запускаю aLogCat помимо моего приложения, и aLogCat делает все сообщения.
Что мне не хватает?
Как вы объясните, что aLogCat действительно ломает ВСЕ сообщения? ::: Это звучит не так, потому что logcat используется для отладки, и никто не может заверить вас, что проблемы в вашем приложении являются следствием вашего собственного приложения. ::: Это имеет гораздо больший смысл, что logcat показывает все, чтобы вы могли отлаживать должным образом. Без необходимости укоренять ваше устройство, это глупо. – ilomambo
@ilomambo Хорошо, что вы имеете право на свое мнение, однако свободный доступ к логарифму был серьезной дырой в безопасности, которая дала много непреднамеренно. – PravinCG
Так что, если я получаю исключение «Из памяти», я могу только искать причины внутри моего собственного приложения? ::: Кроме того, ваше утверждение, безусловно, не соответствует действительности, как я уже сказал, приложение aLogCat, бесплатное для загрузки и с открытым исходным кодом, действительно ломает ВСЕ сообщения в Jelly Bean, вы хотите объяснить это? – ilomambo