Как посмотреть логи на андроиде?
Полный список
В этом уроке мы:
— рассмотрим логи приложения и всплывающие сообщения
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 устройств. Для каждого приложения и каждого устройства выполняются следующие шаги:
- Установка приложения на устройство
- Запуск приложения
- Тестирование приложения выбранным способом
- Удаление приложения
- Сброс состояния устройства
На каждом шаге нужно собрать и проанализировать данные, например логи и скриншоты. Затем на основе этих данных сформировать результат тестирования.
Далее рассматриваются средства, позволяющие автоматизировать перечисленные шаги.
Управление 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» ?>
android:layout_height = «match_parent»
android:layout_width = «match_parent»
android:orientation = «horizontal» >
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(). Сохраняем, запускаем, проверяем.
Если у вас есть Андроид-смартфон, я думаю вы уже видели подобные сообщения. Теперь вы знаете, как это делается )