1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Tag log что это на андроид

Содержание

Tag log что это на андроид

Для начала приведу информацию относительно памяти телефона найденую мною на одном из сайтов.

    1. RAM (ОЗУ)

RAM (ОЗУ) — это память «с произвольным доступом», то есть т.н. оперативная память, куда программное обеспечение (ПО) записывает и считывает информацию быстро (и без эмуляции). Содержимое оперативной памяти очистится при пропадании питания, например, если телефон выключить. Объём оперативной памяти решает, сколько приложений можно запускать одновременно, или как большой файл может быть загружен в память для работы (просмотр, редактирование и т.д.). Возможна ошибка «Недостаточно памяти», если память исчерпана и не получается запустить программу. Android 2.2 знает, какие приложения можно убрать из RAM, когда необходимо. До Android 2.2, максимум 256 Мб оперативной памяти поддерживалось.

    2. ROM (ПЗУ)

ROM (ПЗУ) — это память только для чтения (Read-Only Memory). То, что в ней хранится, никогда не может быть изменено (записывается однократно на при изготовлении телефона); и ROM (ПЗУ) хранит данные даже без питания.

В Android-телефоне ROM разбита на несколько разделов. Одна часть для ОС (операционной системы). Раздел ОС защищён, и вы не сможете писать в него без прав root. Root — это получение прав супер-пользователя операционной системы, тогда будет можно читать/писать в разделе ОС, например, заменить образ ОС (что, таким образом, позволяет использовать несколько разных операционных систем).

    3. Internal phone storage («Внутренняя память телефона»)

Internal phone storage («Внутренняя память телефона») — это вторая часть памяти, предназначенная для пользовательских данных, включая загруженные приложения и их сохраненные данные (из RAM). В Android 2.2, она монтируется в /mnt/asec, и в котором — apk-файлы загруженных приложений. Поэтому этот вид памяти называют Internal phone storage («Ёмкость внутренней памяти телефона»). Этот раздел подобен компьютерному внутреннему HDD (диску «С:» у Windows или «file system» у Ubuntu/Linux). Свободного пространства в Internal phone storage («Внутренняя память телефона») становится меньше, когда вы устанавливаете больше приложений. Это место можно проверит так: «Настройки» -> «SD-карта и память телефона» -> «Внутренняя память» (Internal storage). Может наступить момент, когда уже нельзя установить приложения — когда на Internal phone storage («Внутренняя память телефона») слишком мало свободного пространства; тогда нужно удалить ненужные программы.

    4. MicroSD / SDHC / SDXC . (есть и смартфоны без слота для карты)

Это единственный тип памяти, которую пользователь может расширить. Он аналогичен внешнему жесткому диску (External HDD) для компьютера. МикроSD монтируется в /etc/SDCARD на телефоне. Эту память можно увидеть в разделе «Настройки» -> «SD-карта и память телефона» -> «SD карта».

На MicroSD-карте можно хранить любые данные в виде файлов (фильмы, музыку, фотографии и так далее). По сути, можно использовать телефон в качестве т.н. «флэшки», то есть в качестве микроSD-карты. В Android 2.2 часть установленных приложений можно перенести из «Внутренняя память» (Internal storage) сюда — на SD-карту; следовательно, это экономит драгоценное пространство «Внутренней памяти» (Internal storage). Но не все приложения могут быть перемещены из «Внутренней памяти» на карту памяти SD. Поэтому даже добавление большой SD-карты не поможет, если «Внутренняя память» близка к заполнению.

При желании заменть SD-карту (например, на другую с большей пропускной способностью), не забудьте отключить («отмонтировать») текущую SD-карту, прежде чем физически вынимать её: «Настройки» -> «SD-карта и память телефона» -> «SD карта» -> «Отключить SD-Card» (ведь Android основан на Linux-е). Вставленная новая SD-карта будет автоматически установлена («примонтирована»).

Я не являюсь специалистом ни по OS Android, ни по Linux, поэтому простите мне ошибки в названиях и неточности в тексте.
Так вот, приобрели мы моей жене замечательный телефон «Samsung Galaxy Ace» под управлением OS Android. Приобрели его под моим настоянием, т.к. я, до этого немного сталкивался с «Android, и вариант с IOS, Windows и прочими Simbian категорически отвергал. Замечательный оказался телефончик, отзывчивый экран, шустрый процессор, понятная OS, всё восторгало. И я, как «специалист», принялся его всячески улучшать, устанавливать одни программы, удалять другие, экспериментировать с настройками, играть в игрушки, лазить в интернет. Всё супер!
Прошёл месяц такого активного творчества. И вдруг, появилось сообщение «память телефона заполнена». Ну заполнена так заполнена — не придал значения я, освободим, и удалил данные у какой то программы. Помогло, и продолжилось мучение телефона.
Прошло какое-то время, сообщение появилось снова, ну я по проторенной дороге удалил данные у другой программы, затем несколько программ. Помогло.
Прошло какое то время, сообщение появилось снова! Я в настройки – «Очистить ОЗУ» — всё ОК. Ненадолго, увы.

Залез в интернет, скачал программы по очистке памяти –очищают, но сообщение остаётся. Залез в интернет, начал разбираться, выяснил, что не хватает места в Internal storage («Внутренняя память»), а все эти программы чистят RAM (ОЗУ) и для решения моей проблемы не пригодны. Сообщение «Память заполнена» вылезало при заполненности внутренней памяти телефона более 160 из 181 Мб.
Начал искать за..лей памяти Internal storage, выяснил, что это обновления Карт Google и данные Android Market. Запретил картам обновляться, перестал пользоваться Marketом. Временно помогло.

Начал удалять всё подряд, нужное, не нужное. Постепенно удалил почти всё, включая Google Maps, Android Market, Skype, и много другого, чего наустанавливал ранее (осталась только любимая игрушка жены Lines). Всё помогало временно, сообщение в конце концов вылезало снова, а удалять было больше нечего, осталось только самое необходимое.
Жена пилит – «Всё ты, со своими экспериментами»

Залез в интернет, выяснил, что доступ к Internal storage можно получить имея root права. Станцевал с бубном в течении примерно часов 10, получил на телефоне root права. Как? – не помню. В форуме всё написано, но либо у меня уже мозги не те, либо на форуме пишет народ с не теми мозгами :rolleyes:
С помощью программы Link2SD, перенёс часть программ на карту SD. Это хорошо почистило память. Хватило примерно на месяц. Через месяц СМС опять не приходят.

Начал настраивать себя на снос и переустановку системы, всё не решался >-)
Залез в интернет, выяснил, что есть такие временные файлы с расширением rm. Нашёл их в папке datalocaltmp c помощью программы RootExplorer, удалил – помогло не надолго (объём их был около 3 Мб).
Залез в папку data основательно, прошерстил её различными способами. Нашёл кучу файлов с расширением log, в названии которых присутствует слово error и название различных программ, в том числе тех, которые я удалил давно. Размер каждого из них составлял около 2 Mb, а количество – около 30 шт. Удалил их все. И, о чудо, внутренняя память заполнена 62 Мб из 181 (и телефон работает). Надолго ли? Посмотрим, такое ощущение что чистить надо постоянно.

Читать еще:  Внешний жесткий диск не распределен что делать

Logcat

В Android SDK входит набор инструментов, предназначенных для отладки. Самый важный инструмент при отладке — это LogCat (очень красивое название, которое можно перевести как Логичный Кот). Он отображает сообщения логов (журнал логов), рассылаемые при помощи различных методов.

Рассмотрим на примере. Очень часто программисту нужно вывести куда-то промежуточные результаты, чтобы понять, почему программа не работает. Особо хитрые временно размещают на экране текстовую метку и выводят туда сообщение при помощи метода textView.setText(«Здесь был Васька»). Но есть способ лучше. В Android есть специальный класс android.util.Log для подобных случаев.

Класс android.util.Log позволяет разбивать сообщения по категориям в зависимости от важности. Для разбивки по категориям используются специальные методы, которые легко запомнить по первым буквам, указывающие на категорию:

  • Log.e() — ошибки (error)
  • Log.w() — предупреждения (warning)
  • Log.i() — информация (info)
  • Log.d() — отладка (degub)
  • Log.v() — подробности (verbose)
  • Log.wtf() — очень серьезная ошибка! (What a Terrible Failure!, работает начиная с Android 2.2)
  • Log.meow() — когда жрать дадут? (MEOW!) Недокументированный метод, используйте на свой страх и риск. Работает не на всех устройствах

В первом параметре метода используется строка, называемая тегом. Обычно принято объявлять глобальную статическую строковую переменную TAG в начале кода:

Некоторые в сложных проектах используют следующий вариант, чтобы понимать, в каком классе происходит вызов:

Далее уже в любом месте вашей программы вы вызываете нужный метод журналирования с этим тегом:

Также используется в исключениях:

Пользователи не видят этот журнал. Но, вы, как разработчик, можете увидеть его через программу LogCat, доступный через ADB или DDMS.

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

Для отслеживания сообщений с заданным текстом введите в поле поиска нужную строку и нажмите Enter.

LogCat также можно запустить из командной строки:

Параметры командной строки смотрите в документации.

Быстрое отключение журналирования

Настоятельно рекомендуется удалять все вызовы LogCat в готовых приложениях. Если проект очень большой и вызовы журналирования разбросаны по всем местам кода, то ручное удаление (или комментирование) становится утомительным занятием. Многие разработчики используют следующую хитрость — создают обёртку вокруг вызова методов LogCat.

Теперь остаётся только присвоить нужное значение переменной isDebug перед созданием готового apk-файла для распространения.

Способ устарел. В 17-й версии Android Build Tools появился класс BuildConfig, содержащий статическое поле DEBUG. Можно проверить следующим образом:

Способ для продвинутых (отсюда) — например, требуется релиз с выводом в лог, или наоборот — debug с выключенным выводом. В этом случае можно создать собственный параметр и добавить его в секцию buildType gradle-файла:

В этом случае конфигурация releaseWithLog будет являться релизной сборкой с ведением логов. Естественно, в коде слегка поменяется проверка:

LogCat на устройстве

Попался в сети пример для просмотра сообщений LogCat на устройстве. С примером не разбирался, оставлю здесь на память.

5 приложений, которые нужно удалить с Android прямо сейчас

Погодные приложения, оптимизаторы, дефолтный браузер — от этого всего лучше избавиться.

Facebook и другие социальные сети

Социальная сеть Facebook является сегодня самой популярной в мире, поэтому неудивительно, что соответствующее мобильное приложение установлено у огромного количества пользователей. Мобильный клиент позволяет вам получать уведомления о новых лайках, постить фотки своей еды и всегда оставаться на связи с друзьями. Однако взамен это приложение потребляет огромное количество системных ресурсов и значительно уменьшает срок работы мобильного гаджета от батареи. Согласно ежегодному отчёту App Report 2015 AVG Android App Report, именно мобильный клиент Facebook занимает верхние строчки в хит-параде самых прожорливых программ на платформе Android.

Альтернатива. Используйте мобильную версию Facebook в любом современном браузере. Функциональность отличается ненамного, зато отсутствуют раздражающие уведомления и стремительно тающая батарея.

The Weather Channel и другие погодные приложения

The Weather Channel — отличный пример того, как на самой простой функции — отображении прогноза погоды — разработчики умудряются выстроить целый мегакомбайн. Здесь вы увидите и анимированные обои, и метеорологические карты, и букет интерактивных виджетов, и бог знает что ещё. Всё это хозяйство сидит в оперативной памяти устройства, каждые пять минут стучится в интернет и, разумеется, самым бессовестным образом съедает заряд вашей батареи.

Альтернатива. Выгляните в окошко — вы получите гораздо более надёжную информацию, чем то, что показывает виджет рабочего стола. Если необходим прогноз, то Google предоставит вам самое надёжное предсказание на неделю вперёд.

AntiVirus FREE и другие антивирусные программы

Дискуссия о том, нужны ли антивирусные программы на устройствах под управлением Android, иногда бывает довольно горячей. Я придерживаюсь мнения, что если вы не получаете root-права на устройстве и не устанавливаете взломанные программы из сторонних сомнительных источников, то антивирус вам не нужен. Компания Google бдительно следит за содержимым своего магазина и моментально удаляет из него все потенциально опасные элементы, поэтому всегда активный мониторинг антивируса будет только зря тормозить ваш смартфон или планшет.

Альтернатива. Если возникли всё-таки сомнения в здоровье гаджета, то установите антивирус, просканируйте, а затем удалите его.

Clean Master и другие оптимизаторы системы

Вера в чудеса является самой главной движущей силой для распространения разных «очистителей» и «оптимизаторов». Мол, сотни лучших программистов Google не смогли довести свою систему до ума, а вот этот изобретатель-одиночка взял и сделал! Спешим вас расстроить: большинство подобных приложений либо вообще ничего не делают, либо наносят только вред. Очистить кэш, удалить остатки старых программ можно и встроенными системными инструментами. Очистка же памяти на самом деле только замедляет запуск программ и работу Android вместо обещанного создателями утилит ускорения системы.

Альтернатива. Используйте имеющиеся в Android инструменты для очистки кэша приложений. Забудьте об оптимизации памяти.

Дефолтный браузер

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

Альтернатива. Для Android существуют десятки хороших браузеров, но самым надёжным и быстрым является, несомненно, Google Chrome. Он функционален, обладает поддержкой самых современных веб-технологий, умеет экономить мобильный трафик и обладает простым и понятным интерфейсом.

А какие приложения вы считаете самыми вредными на платформе Android?

MTKLogger на Android – функции и возможности программы

MTKLogger – это Android-приложение для сбора ошибок, работающее в фоновом режиме. Встроено в некоторые телефоны Android, в частности, в мобильные телефоны и планшеты, которые имеют физические компоненты MediaTek (компания, которая продаёт полупроводники). Вы можете деактивировать приложение, не будучи пользователем root, и удалить его, если вы являетесь пользователем root.

Читать еще:  Microsoft onedrive в автозагрузке что это

Работа с приложением MTKLogger на Android.

Что такое mtklogger

При этом в панели уведомлений появляется сообщение «MTKLogger is running», которое возвращается после каждой перезагрузки. Избавиться от навязчивого напоминания удаётся не всем, для этого на Андроиде необходимо отключить или удалить MTKLogger. Для стабильной работы системы приложение не требуется, и, если вы хотите, вы можете удалить или отключить его, следуя инструкциям, описанным ниже. MTKLogger – это приложение, отвечающее за мобильный, сетевой, системный журналы и журнал модема. Обеспечивает возможность использования всех логов в одном пользовательском интерфейсе. MTKLogger с именем пакета com.mediatek.mtklogger имеет компоненты, доступные любому приложению, которое находится на устройстве. А именно, компоненты приложения com.mediatek.mtklogger.framework.LogReceiver и com.mediatek.mtklogger.framework. Эти компоненты можно использовать для запуска и остановки журналов. Доступные журналы – журнал GPS, журнал модема, сетевой и мобильный журнал. Базовым каталогом, содержащим папки для всех 4 журналов, является /sdcard/mtklog. Поэтому директория доступна для приложений, которым требуется разрешение READ_EXTERNAL_STORAGE.

  • Android Log (Журнал Android) – основной журнал android; сохраняется, пока параметр Mobile Log активен.
  • Kernel Log (Журнал ядра) – журнал ядра; сохраняется, пока параметр Mobile Log активен.
  • Bluetooth Log (Журнал Bluetooth) – журнал Bluetooth сохраняется, пока активен Mobile Log.
  • Limit Current Log Size (Ограничить текущий размер журнала) – максимальный размер журнала Mobile Log для этой сессии.
  • Limit Total Log Size (Ограничить общий размер журнала) – общий размер журнала, включая текущие и сохранённые записи Mobile Log.
  • Start Automatically (Автозапуск) – автозапуск Mobile Log.
  • Log Mode (Режим журнала) – режим восстановления журналов, обычно SD.
  • Limit Log Size (Предельный размер журнала) – общий размер папки Modem Log.
  • Start Automatically (Автозапуск) – автозапуск Modem Log.

  • Enable environment check (Включить проверку среды) – включите для проверки текущего состояния сетевого подключения. Если параметр активен, он при необходимости пропингует 2 IP для подтверждения состояния сетевого подключения.
  • Enable package limitation (Включить ограничение пакета) – ограничить размер каждого пакета Network Log.
  • Limited package size (Ограниченный размер упаковки) – ограничения для каждого сетевого пакета.
  • Limit Log Size (Предельный размер журнала) – общий размер папки Network Log.
  • Start Automatically (Автозапуск) – автозапуск Network Log.
  • Enable Tag Log (Включить журнал тегов) – включите для проверки текущего состояния сетевого подключения. Если параметр активен, он при необходимости пропингует 2 IP для подтверждения состояния сетевого подключения.
  • Log storage location (Место хранения журнала) – включите, чтобы ограничить размер каждого пакета Network Log.
  • Run Command (Команда запуска) – установите размер ограничения для каждого сетевого пакета.

Чтобы очистить все предыдущие журналы, нажмите на значок корзины, выберите «Удалить все» и подтвердите действие ОК. Чтобы извлечь файлы журналов, подключите устройство к компьютеру с помощью USB-кабеля. Перейдите в /storage/mtklog/ и скопируйте файлы с устройства на ПК.

Кому и для чего нужно приложение MTKLogger

MTKLogger – это программа-функция, которая сохраняет все события и действия, выполненные пользователем, при этом занимая всё свободное место в памяти смартфона или на SD-карте. Необходимо только в том случае, если вы этого хотите. MTKLogger можно безопасно отключить и удалить. Это не повлияет на ваше устройство. После удаления приложения может потребоваться отключить функцию регистрации в вашем телефоне, чтобы предотвратить очередное накопление событий журнале в MTKLogger. Программа по сути является кейлоггером. Кейлоггер, иногда называемый регистратором нажатий клавиш или системным монитором, представляет собой тип технологии наблюдения, используемый для мониторинга и записи каждого нажатия клавиши, набранного на клавиатуре конкретного компьютера. Программное обеспечение типа Keylogger также доступно для использования на смартфонах, таких как устройства Apple iPhone и Android.

Злоумышленники часто используют такие утилиты в качестве инструмента-шпиона для кражи персональной информации, учётных данных для входа и конфиденциальной корпоративной информации. Регистраторы кейлоггеров могут также использоваться работодателями для наблюдения за компьютерной деятельностью сотрудников, родителями для контроля за использованием Интернета их детьми, пользователями для отслеживания возможной несанкционированной активности на их устройствах или правоохранительными органами для анализа инцидентов, связанных с кибератаками.

Аппаратный кейлоггер – это небольшое устройство, которое служит коннектором между клавиатурой и ПК (экраном и смартфоном). Девайс подключается через обычный разъем PS/2 или USB-адаптер, благодаря чему спрятать такое устройство для получения конфиденциальных данных несложно. Аппаратный кейлоггер может также иметь форму модуля, который устанавливается внутри самой клавиатуры. Когда пользователь печатает на клавиатуре, кейлоггер собирает каждое нажатие клавиши и сохраняет его как текст на своём собственном миниатюрном жёстком диске, который может иметь до нескольких гигабайт памяти. Чтобы получить доступ к собранной информации, злоумышленнику необходимо позже вернуться и физически удалить устройство. Существуют также беспроводные клавиатурные шпионы, которые могут перехватывать и дешифровать пакеты данных, передаваемые между беспроводной клавиатурой и её приёмником.

Программа для создания кейлогинга Bottom of Form для установки не требует физического доступа к компьютеру пользователя. Приложение может запускаться и работать скрытно, чтобы избежать ручного обнаружения или антивирусного сканирования. Программа кейлоггера обычно состоит из двух файлов, которые устанавливаются в одном каталоге: файл библиотеки динамической компоновки (DLL), который выполняет всю запись, и исполняемый файл, который устанавливает файл DLL и запускает его в работу. Программа записывает каждое нажатие клавиши и периодически загружает информацию через Интернет. Некоторые кейлоггеры способны сохранять и другие данные, например, буфер обмена или создание снимков экрана.

Нужно ли оставлять mtk logger обычному пользователю

Вероятность того, что MTKLogger является вредоносным ПО, невелика. Поэтому особо переживать по этому поводу не стоит. Если приложение никак не даёт о себе знать и не мешает обычной работе смартфона, отключать или удалять его не обязательно. К сожалению, удаление программы является единственным способом избавиться от навязчивого всплывающего при перезагрузке сообщения и индикатора в шторке уведомлений «MTKLogger is running».

Как отключить приложение MTKLogger

Для отключения MTKLogger необходимо перейти в инженерное меню смартфона.

Способ 1

  1. На клавиатуре номеронабирателя введите *#*#3646633#*#* и нажмите Вызов.
  2. Откроется окно системных настроек. Слайдом вправо перейдите в раздел «Log and Debugging» и выберите «MTKLogger».
  3. После этого появится окно настроек приложения. Здесь необходимо отключить несколько параметров, а именно: «MobileLog», «ModemLog», «NetworkLog» и «Enable Tag Log».
  4. Чтобы отключить функции, просто кликните по ним.

После этого сообщение MTKLogger больше не появится.

Способ 2

  1. Откройте панель уведомлений и нажмите на сообщение «MTKLogger is running».
  2. В нижней части открывшегося окна нажмите на маленький красный квадрат, чтобы остановить MTKL
  3. После этого в том же окне нажмите на значок корзины, чтобы удалить данные MTKL
  4. Выберите «Очистить все», чтобы удалить данные всех журналов, затем подтвердите действие, нажав ОК.
  5. Откройте номеронабиратель и введите *#9527*#.
  6. В открывшемся меню кликните кнопку DM.
  7. Введите RD personnel password: 54321.
  8. Если значение DM равно «1», нажмите «ОК», после чего DM изменится на «0».
  9. Если цвет кнопки DM изменился с зелёного на красный, нажмите «Close» и подтвердите действие «Sure».
  10. После перезагрузки приложение будет удалено.

Удалите MTKLogger как пользователь root

Если вы уже получили права root, вы можете удалить MTKLogger, установив приложение «Root Uninstaller».

  1. Скачайте бесплатное приложение в Google Play. Программа предназначена для удаления других приложений. Её функционал также позволяет удалять предустановленные системные утилиты.
  2. Запустите «Root Uninstaller» и найдите приложение, которое вы хотите удалить. Если вы не хотите удалять MTKLogger, программу можно заморозить, чтобы она не засоряла систему.
Читать еще:  IpTVRip что за качество

Права root открывают довольно много новых возможностей, и реализовать их можно не только через Root Uninstaller. Например, то же самое можно сделать с помощью альтернативного, но более сложного в использовании приложения Root Explorer.

Logcat

В Android SDK входит набор инструментов, предназначенных для отладки. Самый важный инструмент при отладке — это LogCat (очень красивое название, которое можно перевести как Логичный Кот). Он отображает сообщения логов (журнал логов), рассылаемые при помощи различных методов.

Рассмотрим на примере. Очень часто программисту нужно вывести куда-то промежуточные результаты, чтобы понять, почему программа не работает. Особо хитрые временно размещают на экране текстовую метку и выводят туда сообщение при помощи метода textView.setText(«Здесь был Васька»). Но есть способ лучше. В Android есть специальный класс android.util.Log для подобных случаев.

Класс android.util.Log позволяет разбивать сообщения по категориям в зависимости от важности. Для разбивки по категориям используются специальные методы, которые легко запомнить по первым буквам, указывающие на категорию:

  • Log.e() — ошибки (error)
  • Log.w() — предупреждения (warning)
  • Log.i() — информация (info)
  • Log.d() — отладка (degub)
  • Log.v() — подробности (verbose)
  • Log.wtf() — очень серьезная ошибка! (What a Terrible Failure!, работает начиная с Android 2.2)
  • Log.meow() — когда жрать дадут? (MEOW!) Недокументированный метод, используйте на свой страх и риск. Работает не на всех устройствах

В первом параметре метода используется строка, называемая тегом. Обычно принято объявлять глобальную статическую строковую переменную TAG в начале кода:

Некоторые в сложных проектах используют следующий вариант, чтобы понимать, в каком классе происходит вызов:

Далее уже в любом месте вашей программы вы вызываете нужный метод журналирования с этим тегом:

Также используется в исключениях:

Пользователи не видят этот журнал. Но, вы, как разработчик, можете увидеть его через программу LogCat, доступный через ADB или DDMS.

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

Для отслеживания сообщений с заданным текстом введите в поле поиска нужную строку и нажмите Enter.

LogCat также можно запустить из командной строки:

Параметры командной строки смотрите в документации.

Быстрое отключение журналирования

Настоятельно рекомендуется удалять все вызовы LogCat в готовых приложениях. Если проект очень большой и вызовы журналирования разбросаны по всем местам кода, то ручное удаление (или комментирование) становится утомительным занятием. Многие разработчики используют следующую хитрость — создают обёртку вокруг вызова методов LogCat.

Теперь остаётся только присвоить нужное значение переменной isDebug перед созданием готового apk-файла для распространения.

Способ устарел. В 17-й версии Android Build Tools появился класс BuildConfig, содержащий статическое поле DEBUG. Можно проверить следующим образом:

Способ для продвинутых (отсюда) — например, требуется релиз с выводом в лог, или наоборот — debug с выключенным выводом. В этом случае можно создать собственный параметр и добавить его в секцию buildType gradle-файла:

В этом случае конфигурация releaseWithLog будет являться релизной сборкой с ведением логов. Естественно, в коде слегка поменяется проверка:

LogCat на устройстве

Попался в сети пример для просмотра сообщений LogCat на устройстве. С примером не разбирался, оставлю здесь на память.

Somethings

problems and solutions

суббота, 24 ноября 2012 г.

Моя практика логгирования в Android

Я люблю логи, считаю их лучшим инструментом отладки, чем дебаггер и стараюсь использовать везде.

Логгирование в Андроиде меня удивило. С одной стороны, состав инструментов SDK намекает на него как главный инструмент отладки. Да и при тестировании без них никуда: андроидское сообщение «Приложение неожиданно остановилось» обычно совершенно ни о чем не говорит, а логи позволяют воссоздать картину преступления. С другой стороны, API для логгирования, мягко говоря, не блещет. Особенно по сравнению с такими монстрами, как log4j.

Что мне не нравится

Как известно, вызов лога выглядит примерно так:

Возникают следующие вопросы/претензии:

  1. Зачем такая искусственная сущность, как tag ?
  2. Почему бы не выводить имя класса и номер строки, где тег вызвался?
  3. Почему в сигнатурах методов не предполагается никакого форматирования?

В общем, несмотря на наличие средств для логгирования, всё равно приходится писать свою обёртку

Этот самый tag вызывает массу вопросов. Что туда выводить?

Мне встречалось несколько вариантов:

  • Одна константа на все приложение
  • Имя класса, откуда вызывается лог
  • Что попало (в зависимости от логической части программы)

С первыми двумя пунктами всё более-менее понятно. Третий подход используется, например, в Facebook SDK (конкретный пример)

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

Форматы

Типичный вызов лога в андроиде выглядит так:

А теперь посмотрим на log4net:

Вызов второго вида кажется намного более приятным.

Источник лога

В log4net была возможность задать в конфигурации, чтобы со строчкой лога выводился класс, метод и номер строки, откуда лог был вызван.

По-моему, это мастхэв и жить без этого нельзя. Во-первых, так можно быстро отключать в коде логи, которые сильно мозолят глаза (иначе придется лазить поиском по всему проекту). Ну а во-вторых, это и отладку может сильно ускорить.

Кроме того, иногда хочется вывести не просто класс и номер строки, откуда лог был вызван, а еще и кусок стека вызовов.

Что делаю

Пишу разные обертки. Приведу пример наиболее универсальной из них.

  • Методы v , d , i , w , e выводят логи с общим тегом.
  • В методах vt , dt , it , wt , et можно указать свой тег. При этом желательно, чтобы у всех логов был общий префикс.
  • Все методы выводят класс и строчку, где были вызваны.
  • Методы vtrace , dtrace , itrace , wtrace , etrace выводят не просто класс и строчку, а ещё и кусок стека вызовов заданной длины. Ну хочется иногда.
  • TAG_WEB и TAG_STORAGE даны просто для примера.
  • ENABLED — для возможности отключить логи в проекте
  • С помощью флага LOCATION_ENABLED можно выключить вывод источника лога. Это если вдруг разовьется паранойя насчет производительности.

И что получилось

Примеры вызова лога:

(Небольшое замечание. Я обычно заключаю значения в квадратные скобки. Это, во-первых, для того, чтобы отделить их от всего остального текста. А во-вторых, в значении может быть пустая строка, которую я не замечу. А [] замечу точно)

А вот, что видим в ddms при использовании этой обертки:

Заключение

Кто-нибудь может сказать, что String.format и определение источника — долгие операции, а поэтому так писать не надо. Могу возразить, что при выпуске продакшен-версии вызовы логов можно (и нужно) отключать (с помощью флага ENABLED или с помощью Proguard), так что на производительность они не повлияют.

Ещё есть мысль, что в андроиде вполне юзабелен log4j. Возможно. Но добавление библиотеки, функциональность которой никак не пригодится пользователю, — более чем сомнительное решение. А логи Андроида с описанной доработкой вполне себе ничего.

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector