Как посмотреть логи на андроиде?

Полный список

В этом уроке мы:

— рассмотрим логи приложения и всплывающие сообщения

Project name: P0121_LogAndMess
Build Target: Android 2.3.3
Application name: LogAndMess
Package name: ru.startandroid.develop.logandmess
Create Activity: MainActivity

Создадим в main.xml экран, знакомый нам по прошлым урокам про обработчики:

Алгоритм приложения будет тот же. По нажатию кнопок меняется текст. Обработчик — Activity.

Сохраним, запустим. Убедимся, что все работает.

Логи приложения

Когда вы тестируете работу приложения, вы можете видеть логи работы. Они отображаются в окне LogCat. Чтобы отобразить окно откройте меню Window > Show View > Other … В появившемся окне выберите Android > LogCat

Должна появится вкладка LogCat

Рассмотрим эту вкладку подробней. Логи имеют разные уровни важности: ERROR, WARN, INFO, DEBUG, VERBOSE (по убыванию). Кнопки V D I W E (в кружках) – это фильтры и соответствуют типам логов. Опробуйте их и обратите внимание, что фильтр показывает логи не только своего уровня, но и уровней более высокой важности. Также вы можете создавать, редактировать и удалять свои фильтры – это мы рассмотрим чуть дальше.

Давайте смотреть, как самим писать логи. Делается это совсем несложно с помощью класса Log и его методов Log.v() Log.d() Log.i() Log.w() and Log.e(). Названия методов соответствуют уровню логов, которые они запишут.

Изменим код MainActivity.java. Возьмем все каменты из кода и добавим в DEBUG-логи с помощью метода Log.d. Метод требует на вход тэг и текст сообщения. Тэг – это что-то типа метки, чтобы легче было потом в куче системных логов найти именно наше сообщение. Добавим описание тега (TAG) и запишем все тексты каментов в лог.

Eclipse ругнется, что не знает класс Log. Обновите импорт (CTRL+SHIFT+O) и, если спросит, выберите android.util.Log. Запустим приложение, понажимаем кнопки и посмотрим логи

Видно, что все отлично записалось. Чтобы сделать просмотр удобней, создадим свой фильтр. Жмем значок +

Имя фильтра произвольное, например, «My logs». Log Tag – это как раз значение константы TAG, которая описана в нашем коде и использовалась в методе Log.d, т.е. — «myLogs«. Pid оставляем пустым, это id процесса. Уровень поставим Debug

и жмем OK. Появилась новая вкладка My logs, на которой отображаются логи, соответствующие только что созданному фильтру.

Мы помещали в лог текст, но разумеется, вы можете писать, например, значения интересующих вас переменных (приведенные к типу String).

Иногда бывает, что логи не отображаются во вкладке LogCat, хотя AVD запущен, приложение работает без проблем. В таком случае должно помочь следующее: в Eclipse идем в меню Window > Open Perspective > Other > DDMS. Откроется немного другой набор окон чем обычно. Там найдите вкладку Devices и в ней должно быть видно ваше AVD-устройство, кликните на него и логи должны появиться. Чтобы вернуться в разработку: Window > Open Perspective > Java.

Всплывающие сообщения

Приложение может показывать всплывающие сообщения с помощью класса Toast. Давайте подредактируем метод onClick. Сделаем так, чтобы всплывало сообщение о том, какая кнопка была нажата.

Разберем синтаксис вызова. Статический метод makeText создает View-элемент Toast. Параметры метода:

context – пока не будем вдаваться в подробности, что это такое и используем текущую Activity, т.е. this.
text – текст, который надо показать
duration – продолжительность показа ( Toast.LENGTH_LONG — длинная, Toast.LENGTH_SHORT — короткая )

Toast создан и чтобы он отобразился на экране, вызывается метод show(). Сохраняем, запускаем, проверяем.

Если у вас есть Андроид-смартфон, я думаю вы уже видели подобные сообщения. Теперь вы знаете, как это делается )

На следующем уроке:

— создаем пункты меню

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Где у андроида логи?

Телефон LG P500. Иногда наглухо виснет, лечится только выдергиванием батареи. Как понять, что происходит — то ли ядро в кору выпало, то ли оболочка фризится — непонятно. Поделитесь тайным знанием, куда смотреть. Или мануалом, где про это написано.

Android Log Collector

эмулятор терминала, команда adb logcat

  • Показать ответ
  • Ссылка

короче прог для просмотра логов в маркете полно. а adb это из SDK

че ты с ним делал? какая версия? у меня тоже П500, правда я почти им не пользуюсь. только звоню, и изредка в инторнеты хожу. до сих пор даже до 2.3 не обновил. да, я лентяй.

  • Показать ответ
  • Ссылка

2.3.3 Проблема возникла практически с самого начала, с заводским дефолтом. Сейчас отрутовал, кучу хлама предустановленного снес, теперь виснет гораздо реже.

  • Показать ответ
  • Ссылка

я вот тоже хочу 2.3, а потом рут-права, да только запуск на телефоне каких-то бинарей, сделанных кем-то меня немого напрягает.

  • Показать ответ
  • Ссылка

afaik все «джейлбрейки» (или как их лучше называть?) предполагают запуск прекомпилированных блобов? я бы хотел какой-нть опен-сурцный вариант — самому собрать и проверить на наличие бэкдоров. паранойя, ага.

  • Показать ответ
  • Ссылка

в /data/logger/*.log
только надо в hidden menu включить запись логов.
последовательность для входа в скрытое меню нагуглишь сам — у меня нет для этой трубы.

самому собрать и проверить на наличие бэкдоров. паранойя, ага

После перепрошивки и хардресета — не пофиг ли на бэкдоры в руте? 🙂

  • Показать ответы
  • Ссылка

юзай adb shell, даже top -n 1 работает

adb logcat + временной лог

отладку usb — возможно можно будет подключиться через adb во время зависания по usb кабелю.

Еще смотри по времени когда виснет и жрет баттарею в BattaryGraph.

У меня тоже такое было но хитрое перепрошивание хитрой китайской прошивки вроде пока помогло, но про adb узнал уже после.

таки сначала перепрошивка, потом получение рута

  • Показать ответ
  • Ссылка

Таки, наоборот. Как ты поставишь кастомную прошивку, не имея рута? И зачем тебе рут, когда в кастомных прошивках он обычно стоит изначально? 🙂

  • Показать ответы
  • Ссылка

я хотел обновить дефолт 2.2 на дефол 2.3, получить рут, удалить говно с телефона, как сделал ТС

кто сказал что в кастомной прошивке не может быть бэкдоров?

кочнено, я исхожу из предположения, что в дефолтной прошивке нет бэкдоров 🙂

Droid Log Viewer

О как — у меня сегодня опять завис.

Почитал буржуйский форум попробую форматированную флешку от нокии и вставить ее, там правда про factory reset писали.

Кстати LogCat всетаки после перезагрузки ведет лог заново или я что то не так понимаю?

И adb shell во время зависания не работает. На kernelpanic кстати не похоже — на ютрубе кернел паник на этом телефоне уже видел и телефон мигает во время сего.

Как посмотреть логи на андроиде?

В данной заметке будут рассмотрены средства реализации автоматического тестирования. Рассматриваются только инструменты, входящие в Android SDK или распространяющиеся под Open Source лицензией.

Концепция автоматического тестирования

Задача — с наибольшей точностью автоматизировать действия, которые выполняет тестировщик. Давайте их рассмотрим. В наличии есть несколько приложений и несколько Android устройств. Для каждого приложения и каждого устройства выполняются следующие шаги:

  1. Установка приложения на устройство
  2. Запуск приложения
  3. Тестирование приложения выбранным способом
  4. Удаление приложения
  5. Сброс состояния устройства

На каждом шаге нужно собрать и проанализировать данные, например логи и скриншоты. Затем на основе этих данных сформировать результат тестирования.

Далее рассматриваются средства, позволяющие автоматизировать перечисленные шаги.

Управление Android устройствами

Для начала нужно выделить компьютер на котором будет запускаться автоматическое тестирование и настроить на нем Android SDK . Примеры приводятся для компьютера с установленной ОС Linux.

На всех тестируемых устройствах нужно отключить экран блокировки и максимально увеличить время ожидания. Для некоторых методов тестирования нужно отключить смену ориентации экрана.

В Android SDK имеются две утилиты для управления устройствами: adb и MonkeyRunner.

Я постараюсь подробно описать автоматизацию действий, использующихся при тестировании. Тем, кто знаком с ADB и MonkeyRunner имеет смысл сразу переходить к разделу « Способы автоматизированного тестирования ».

Управление с помощью утилиты ADB

ADB (Android Debug Bridge) – утилита для управления Android устройствами из командной строки. Официальная документация по ADB: developer.android.com/tools/help/adb.html

Проверка работы ADB

Устанавливаем и настраиваем Android SDK, подключаем к компьютеру Android устройства и выполняем команду:

Команда выдаст список всех подключенных устройств. Если список устройств не пуст, значит ADB настроен и работает.

Работа с несколькими устройствами

Чтобы указать ADB с каким устройством нужно работать, следует прописать серийный номер устройства после ключа -s :

Серийный номер устройства можно посмотреть командой adb devices . Ключ -s позволяет работать одновременно с несколькими подключенными устройствами. В дальнейшем ключ -s в командах я указывать не буду.

Основные команды ADB

Открыть консоль на устройстве:

Запустить команду на устройстве:

В Android присутствуют многие стандартные утилиты Linux: ls, cat, dmesg,…

Установить приложение из apk файла:

adb install example.apk

Название package можно получить из apk файла командой:

aapt dump badging example.apk | grep «package»

Загрузить файл с устройства на компьютер:

Загрузить файл с компьютера на устройство:

В большинство директорий на устройстве разрешен доступ только на чтение. Доступ на запись разрешен в директорию /sdcard (из нее нельзя запускать программы) и /data/local/tmp/ .

adb shell am start -n

Запускает указанную activity. Название activity, которая запускается при выборе приложения в меню можно получить из apk файла командой:

aapt dump badging example.apk | grep «launchable-activity»

Чтение логов в Android производится утилитой logcat.

Считать логи с устройства (блокируется до нажатия Ctrl-C):

Очистить буфер логов на устройстве:

Считать буфер логов на устройстве (выдает текущее содержимое буфера, не блокируется):

adb logcat -c # очищаем буфер логов

adb logcat -d > file.log # сохраняем текущее содержимое буфера логов в file.log

Снятие скриншотов с помощью утилиты screencap

Утилита screencap сохраняет текущее содержимое экрана в графический файл:

adb shell screencap /sdcard/screen.png

adb pull /sdcard/screen.png screen.png

adb shell rm /sdcard/screen.png

Утилита screencap имеется на телефонах с Android 4.x и выше. На предыдущих версиях Android снятие скриншотов можно производить с помощью MonkeyRunner.

Пример BASH скрипта для тестирования приложения c помощью ADB

# Пример BASH скрипта для автоматического тестирования приложения c помощью ADB

# 1. Устанавливает приложение

# 2. Запускает приложение

# 3. Тестирует приложение с помощью monkey

# 4. Удаляет приложение

# На каждом шаге собираются и сохраняются log-файлы.

# 1. Устанавливаем приложение

adb uninstall $PACKAGE # удаляем приложение

adb logcat -c # очищаем буфер логов

adb install $APK # устанавливаем приложение

adb logcat -d > log/install.log # записываем логи установки приложения

# 2. Запускаем приложение

adb shell am start -n $PACKAGE/$ACTIVITY # запускаем приложение

sleep 10 # ожидаем 10 сек чтобы приложение полностью загрузилось

adb logcat -d > log/start.log

# 3. Тестируем приложение

# тестируем приложение с помощью monkey

adb shell monkey —pct-touch 70 -p $PACKAGE -v 1000 —throttle 500

Как посмотреть логи на андроиде?

Мобильный лог нужен радиолюбителю во время выездов, прогулок, командировок. Вводить данные в смартфон находясь в полевых условиях не всегда комфортно и разработчики должны это учитывать.

Лог в смартфоне, это возможность быстро записать несколько QSO, чтобы затем, перенести их в основной лог, на компьютере.

Требования в логу в смартфоне:
- максимально простой интерфейс
- контрастные цвета интерфейса, чтобы хорошо видеть на ярком солнце
- крупные поля для ввода и возможность их менять
- ввод данных без листания экрана (поля не должны перекрываться)
- экспорт журнала в формате ADIF (импорт не обязателен)
- навороты в виде карты, кластера, поддержки дипломных программ - не обязательны
- очень желательно отсутствие рекламы и привязки к Google сервисам

Рассмотрим несколько аппаратных журналов для Android девайсов:

Ham Radio Logger

Автор Karson Kimbrel. Лог с открытым исходным кодом!
Без рекламы, если скачивать c github.

Хорошо продуман. Можно убирать поля и быстро вводить данные. Присутствуют Импорт/Экспорт. Можно создать несколько логов. Интерфейс лаконичный, без украшательств.

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

VLS Logger

Автор SP7VLS. Бесплатный лог, есть реклама!
Домашний сайт автора.

Продуманный интерфейс, легко освоить, удобно заполнять. Импорт/Экспорт в ADIF, CSV, Cabrillo. Обмен логом с HamQTH. Диапазоны, можно исключать из выбора. Встроенная карта QSO. Поддержка дипломных программ SOTA, POTA, WWFF, IOTA. Есть режим для SWL.

Лаконичный, удобный интерфейс без лишних деталей. Работает без Google сервисов.

— реклама только на первой вкладке, не мешает, но лучше бы её не было совсем.

Ham Log

Автор 9W2ZOW. Бесплатный лог, без рекламы!
Можно убирать не нужные поля, при вводе информации в лог. На небольших экранах помещается вся информация, для ввода. Эта мелочь удобна в полевых условиях, при вводе OSO.

Данные можно экспортировать в CSV и ADIF.

— интерфейс наляпистый, где-то не логичный
— есть особенности к которым нужно привыкнуть

Ham Radio Log

Автор Talixa. Бесплатный/платный лог, есть реклама в бесплатной версии.
Простой, легко освоить, всё сделано логично. Предусмотрен экспорт в ADIF и DB.

— нельзя изменять поля ввода
— виртуальная клавиатура и реклама, перекрывают поля для ввода данных о QSO

EWLog Mobile

Автор EW8BAK. Бесплатный/платный лог, есть реклама!
Сделан красиво, продуманно, присутствует dx-кластер, Импорт/Експорт в ADIF (можно загрузить лог из ПК), можно подключиться к базе QRZ.ru и отсылать eQSL, Присутствует русский язык.

На сайте автора, есть лог для Windows и он хорошо работает.

— слишком красивый, на небольшом экране, клавиатура перекрывает поля для ввода
— в бесплатной версии, не все опции доступны

QSO Journal

Автор R1BEN. Бесплатный лог, без рекламы!
Очень простой лог. Отдельно можно посмотреть свой QTH локатор.

— при вводе данных о корреспонденте, виртуальная клавиатура закрывает поля ввода
— нет возможности сохранить введённые данные на ПК
— файл в который лог пишется в андроиде, я не нашел.

QSO секретарь

Автор Alcyon. Платный лог, без рекламы (бесплатной версии нет)!
Интерфейс хорошо продуман, можно быстро вводить данные. Присутствуют eQSO, dx-кластер. Многие пользуются. Я не пробовал.

Программы тестируются на смартфоне WileyFox:
Процессор Qualcomm Snapdragon 410, RAM 2гб, Диск 16гб, Дисплей 5″ 720×1280рх, LinearOS 14.1 + MicroG (без сервисов Google)

Читайте информационный канал ‘Новости о радиосвязи’.

Урок 12. Логи и всплывающие сообщения

В этом уроке мы:

— рассмотрим логи приложения и всплывающие сообщения

Project name: P0121_LogAndMess
Build Target: Android 2.3.3
Application name: LogAndMess
Package name: ru.startandroid.develop.logandmess
Create Activity: MainActivity

Создадим в main.xml экран, знакомый нам по прошлым урокам про обработчики:

version = «1.0» encoding = «utf-8» ?>

  • xmlns:android = «http://schemas.android.com/apk/res/android»
    android:layout_height = «match_parent»
    android:layout_width = «match_parent»
    android:orientation = «horizontal» >
  • android:id = «@+id/linearLayout1»
    android:layout_height = «match_parent»
    android:orientation = «vertical»
    android:layout_width = «match_parent»
    android:layout_margin = «30dp» >

    android:layout_width = «wrap_content»
    android:text = «TextView»
    android:layout_height = «wrap_content»
    android:id = «@+id/tvOut»
    android:layout_gravity = «center_horizontal»
    android:layout_marginBottom = «50dp» >

    android:layout_height = «wrap_content»
    android:layout_gravity = «center_horizontal»
    android:id = «@+id/btnOk»
    android:text = «OK»
    android:layout_width = «100dp» >

    android:layout_height = «wrap_content»
    android:layout_gravity = «center_horizontal»
    android:id = «@+id/btnCancel»
    android:text = «Cancel»
    android:layout_width = «100dp» >

    Алгоритм приложения будет тот же. По нажатию кнопок меняется текст. Обработчик — Activity.

    Сохраним, запустим. Убедимся, что все работает.

    Логи приложения

    Когда вы тестируете работу приложения, вы можете видеть логи работы. Они отображаются в окне LogCat. Чтобы отобразить окно откройте меню Window > Show View > Other … В появившемся окне выберите Android > LogCat

    Должна появится вкладка LogCat

    Рассмотрим эту вкладку подробней. Логи имеют разные уровни важности: ERROR, WARN, INFO, DEBUG, VERBOSE (по убыванию). Кнопки V D I W E (в кружках) – это фильтры и соответствуют типам логов. Опробуйте их и обратите внимание, что фильтр показывает логи не только своего уровня, но и уровней более высокой важности. Также вы можете создавать, редактировать и удалять свои фильтры – это мы рассмотрим чуть дальше.

    Давайте смотреть, как самим писать логи. Делается это совсем несложно с помощью класса Log и его методов Log.v() Log.d() Log.i() Log.w() and Log.e(). Названия методов соответствуют уровню логов, которые они запишут.

    Изменим код MainActivity.java. Возьмем все каменты из кода и добавим в DEBUG-логи с помощью метода Log.d. Метод требует на вход тэг и текст сообщения. Тэг – это что-то типа метки, чтобы легче было потом в куче системных логов найти именно наше сообщение. Добавим описание тега (TAG) и запишем все тексты каментов в лог.

    Eclipse ругнется, что не знает класс Log. Обновите импорт (CTRL+SHIFT+O) и, если спросит, выберите android.util.Log. Запустим приложение, понажимаем кнопки и посмотрим логи

    Видно, что все отлично записалось. Чтобы сделать просмотр удобней, создадим свой фильтр. Жмем значок +

    Имя фильтра произвольное, например, «My logs». Log Tag – это как раз значение константы TAG, которая описана в нашем коде и использовалась в методе Log.d, т.е. — «myLogs«. Pid оставляем пустым, это id процесса. Уровень поставим Debug

    и жмем OK. Появилась новая вкладка My logs, на которой отображаются логи, соответствующие только что созданному фильтру.

    Мы помещали в лог текст, но разумеется, вы можете писать, например, значения интересующих вас переменных (приведенные к типу String).

    Иногда бывает, что логи не отображаются во вкладке LogCat, хотя AVD запущен, приложение работает без проблем. В таком случае должно помочь следующее: в Eclipse идем в меню Window > Open Perspective > Other > DDMS. Откроется немного другой набор окон чем обычно. Там найдите вкладку Devices и в ней должно быть видно ваше AVD-устройство, кликните на него и логи должны появиться. Чтобы вернуться в разработку: Window > Open Perspective > Java.

    Всплывающие сообщения

    Приложение может показывать всплывающие сообщения с помощью класса Toast. Давайте подредактируем метод onClick. Сделаем так, чтобы всплывало сообщение о том, какая кнопка была нажата.

    Разберем синтаксис вызова. Статический метод makeText создает View-элемент Toast. Параметры метода:

    context – пока не будем вдаваться в подробности, что это такое и используем текущую Activity, т.е. this.
    text – текст, который надо показать
    duration – продолжительность показа ( Toast.LENGTH_LONG — длинная, Toast.LENGTH_SHORT — короткая )

    Toast создан и чтобы он отобразился на экране, вызывается метод show(). Сохраняем, запускаем, проверяем.

    Если у вас есть Андроид-смартфон, я думаю вы уже видели подобные сообщения. Теперь вы знаете, как это делается )