Intereting Posts
Полноэкранный диалог Android выглядит прозрачным и в неправильном положении Невозможно импортировать facebook-sdk 4.0.1 Как играть онлайн-радиопоток в Android. Как играть .png радио потоковый url в android Установить видимость индикатора выполнения после завершения загрузки изображения с использованием библиотеки Glide Устройства с Android 4.2 (Jelly Bean) поддерживают низкую энергию Bluetooth (BLE) Редактируемый список элементов в настройках приложения? Правильный способ создания диалогового окна настраиваемого материала с помощью приложения AppCompat 23+ Firebase, как отправить сообщение о теме Как удалить элемент из RecyclerView с задержкой Импорт Facebook SDK на Android Studio 0.5.1 Путь APK не указан для модуля «Пример-пример» Нужно ли устанавливать прослушиватели интерфейса фрагмента на нуль при отсоединении? Идиома для закрытия курсора Android Studio 2.0 – плагин слишком стар, обновите его до более поздней версии или установите переменную окружения ANDROID_DAILY_OVERRIDE в Получить аудиоисточники

Основы использования logcat в разработке Android

Я только начинаю Android, и я не понимаю, как использовать эту вещь.

Я работаю над эмулятором, но, вероятно, буду работать и на реальном устройстве в будущем. Одна из тестируемых программ ( ПОСМОТРЕТЬ ЗДЕСЬ ) зависает, когда она запускается, и другие пользователи предложили мне посмотреть на логарифм. Но logcat на моем компьютере продолжает показывать новый текст и прокручивается. Я не уверен, как искать что-либо во всем этом беспорядке. Иногда он держит прокрутку, когда я даже не тестирую свою программу.

Он показывает вещи, если я вообще что-то делаю в эмуляторе? Эмулятор уже настолько медленный, что сложно определить, какое событие на эмуляторе вызывает какое сообщение.

Кроме того, для новичка, какого уровня многословия достаточно на логарифме? Переход к утверждению не показывает ничего (что, вероятно, логично, поскольку у меня нет утверждений), и поэтому я предположил, что ошибка была, вероятно, наименее сложным, но даже тогда в журнале слишком много сообщений для обработки.

Каков минимальный уровень детализации, который мне нужно установить, и есть ли там какая-либо программа-образец, которая позволяет мне проверить, какое событие в коде создает какой-либо вид сообщения в логарифме? (Я использую logcat в среде IDE)

— РЕДАКТИРОВАТЬ —

Я вижу, что в logcat есть такие сообщения, как эти

08-12 08:24:26.699: I/Choreographer(528): Skipped 57 frames! The application may be doing too much work on its main thread. 08-12 08:25:02.550: I/Choreographer(528): Skipped 33 frames! The application may be doing too much work on its main thread. 08-12 08:25:07.950: I/Choreographer(528): Skipped 37 frames! The application may be doing too much work on its main thread. 08-12 08:25:08.022: E/SoundPool(287): error loading /system/media/audio/ui/Effect_Tick.ogg 08-12 08:25:08.022: W/AudioService(287): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg 08-12 08:25:08.022: E/SoundPool(287): error loading /system/media/audio/ui/Effect_Tick.ogg 08-12 08:25:08.022: W/AudioService(287): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg 

Это находится в режиме Info, а в режиме подробной версии есть еще более непонятный текст, поэтому я не включил его. Похоже, что он не может найти файл, содержащий звуковой эффект, который будет воспроизводиться при нажатии кнопки «Назад», которую он отображает в журнале. Как удалить такие ненужные сообщения, связанные с пользовательским интерфейсом ОС телефона, и отображать только сообщения, связанные с программой, которую я тестирую, и что вызывает ее зависание до того, как в коде вызывается даже вызов onCreate ()? Я хочу иметь возможность сделать это из IDE на данный момент.

Log.v () – VERBOSE

Log.d () – DEBUG

Log.i () – INFO

Log.w () – WARN

Log.e () – ОШИБКА


Совет. Хорошим соглашением является объявление константы TAG в вашем классе:

 private static final String TAG = "MyActivity"; 

Совет. Не забывайте, что когда вы звоните, как

 Log.e(TAG, "index=" + i); 

Использовать Log.e(); Потому что он показывает вам красный цвет, вы можете легко идентифицировать ошибку во всех журналах


Вы также можете использовать флаттер-журналы в тесте eclipse ниже.

Введите описание изображения здесь

Введите описание изображения здесь

Для более подробной проверки сайта разработчика .

То, что я делаю при работе с приложением с проблемой, – это переключиться в режим ERROR в logcat, а также добавить фильтр для имени пакета моего приложения, например. com.something.blah . Таким образом, я когда-либо видел сообщения об ошибках, связанные с моим приложением.

Конечно, бывают случаи, когда этого недостаточно информации, но к тому времени, когда вам нужна дополнительная информация, вам должно быть удобно работать с логарифмом 🙂

Для ручного ведения журнала (используя Log.* ) Очень уникальная вкладка (что-то вроде ThisIsAVeryUniqueTag1234 ) может сэкономить много времени. Просто фильтруйте этот тег, и это должны быть единственные сообщения, которые вы видите. См. Журнал для получения полной информации о том, как использовать теги и ручное ведение журнала.

 adb -d logcat <your package name>:<log level> *:S 

-d обозначает фактическое устройство, а -e обозначает эмулятор. Если работает более 1 эмулятора, вы можете использовать -s emulator-<emulator number> (например, -s emulator-5558 )

Пример: adb -d logcat com.example.example:I *:S

Или, если вы используете System.out.print для отправки сообщений в журнал, вы можете использовать adb -d logcat System.out:I *:S чтобы показывать только вызовы System.out .

Вы можете найти все уровни журнала и дополнительную информацию здесь: http://developer.android.com/guide/developing/tools/adb.html#logcat

Вы должны использовать Log.<log level>(TAG, message) в вашем коде, где тег может быть чем угодно, но я всегда использую имя пакета.

Пример: Log.i("com.example.example", "message");