Log txt android что это

Android: логгирование и отправка результатов на почту

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

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

Предлагаю разбить задачу на несколько частей, а именно — сбор и хранение логов, способ их передачи из одного приложения в другие с помощью FileProvider, ну и небольшой helper класс для создания писем с аттачами. Итак, поехали.

Сбор и хранение логов.

Кто-то использует System.out.println, кто-то — статические методы класса Log. Я с некоторых пор пришел к написанию своего класса для распечатки логов. Давайте вкратце расскажу почему.

Во-первых, это проще. Как правило, для отслеживания изменений в процессе выполнения приложения я использую одну и ту же метку. И вот однажды я подумал — зачем ты пишешь постоянно Log.i(MY_TAG, «info») если можно сократить немного и убрать из этой формулы одну постоянную?

Во-вторых, расширение логгирования. Это конкретно упирается в нашу задачу — хранение логов в файлах. Можно написать отдельный класс, в который будем передавать какие-то данные, как то: данные и имя файла, но данные мы уже передаем в метод Log.i / Log.e / проч., создавать лишний раз переменную что ли для этого? Некрасиво все это как-то.

Ладно, довольно лирики, давайте лучше взглянем на класс Diagnostics.

Для того, чтобы вывести информацию в LogCat с дефолтной меткой, достаточно написать следующее:

Иногда мне хочется видеть какие методы вызываются и в каких объектах. И с какими параметрами или значениями переменных. В общем, тут важно для меня — где именно производится вызов. Тогда я использую следующую конструкцию

Diagnostics.i(this, “onCreate w/param1 = “ + param1);

где this — это экземпляр класса Caller. Например, для MainActivity вы увидите следующее:

03–29 12:31:53.203 16072–16072/com.isidroid.platform I/Diagnostics: MainActivity.onCreate w/param1 = 200

И все сразу становится понятно — кто вызывает и где вызывает.

А теперь о хранении этой информации.

Как вы уже могли видеть, в классе Diagnostics есть методы для работы с файлами — createLog и appendLog. Объяснять, я думаю, не стоит — первый создает файл, второй — добавляет в него строку. Для новичков или тех, кто ленится читать код, уточню — appendLog создает файл, если его не существует, а createLog всегда создает новый. Чтобы лишней информации там не хранилось.

Файлы хранятся в cache директории, которая, к слову, недоступна для других приложений (ну, если у вас телефон не рутован, конечно).

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

Надеюсь, это выглядит просто в использовании.

Передача файлов в другие приложения

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

На помощь к нам мчится FileProvider, друзья!

Читайте также:  Capture one android app

Вообще, в документации есть отличная статья (она же — пошаговая инструкция) на эту тему — Setting Up File Sharing, но для тех, кто предпочитает читать StackOverFlow и isidroid.com, я приведу выжимку из статьи с кодом реализации.

  1. Добавляем FileProvider в Manifest.

2. Указываем директории, доступные для шаринга. Для этого создаем файл res/xml/cache_file_paths и для нашего конкретного примера заполняем его.
Конец.

Нет, правда, это все.

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

Отправка писем с логами.

Мы с вами почти добрались до конца, осталось дело за малым. Вообще, создание намерения (intent) для отправки писем — это довольно тривиальная задача, чтобы под нее писать отдельный хелпер. Но с другой стороны, если можно причесать код в вашей Activity / Fragment, то почему бы и нет, верно?

Гораздо симпатичнее будет выглядеть какой-нибудь строитель (builder) в коде нежели условия, проверки и лишние циклы. Я за то, чтоб это выносить в отдельный класс (кстати, не только я ратую за разделение представления от бизнес-логики).

Давайте перейдем сразу к сути. Сначала я покажу класс (который вы можете скопировать и использовать не глядя, конечно), а потом пример его использования. Поехали!

Где this — это Activity.

Вы можете самостоятельно указать «рыбу» для текста письма, но я рекомендую использовать те данные, которые указаны в методе buildContent, расширяя их при необходимости. Можно конечно извернуться и применить паттерн «декоратор» для расширения этих данных без модификации класса FeedbackHelper, но лично для меня необходимости в этом не было… Что до вас, то дерзайте!

Источник

990x.top

Простой компьютерный блог для души)

Папка Logs на Андроиде — что это такое?

Приветствую друзья. Данная заметка расскажет о папке Logs, которую можете заметить на смартфоне под управлением операционной системы Android.

Папка Logs на Андроиде — что это?

Содержит логи — специальные файлы, содержащие служебную информацию о работе некоторых системных функций/приложений телефона. Записываются ошибки, успешный результат, а также дополнительная информация.

Важно: данные файлы несут только информационный характер.

Стандартное расположение папки:

Без рут-доступа данная папка пользователю недоступна. Однако файлов внутри может становиться больше, свободное место телефона уменьшается.

В интернете найдена инструкция очистки логов системы:

  1. Наберите комбинацию *#9900#, на дисплее отобразится служебное меню.
  2. Нажмите пункт Delete dumpstate/logcat, кликните ОК.
  3. После данного действия логи телефона удалятся.

Способ был проверен на устройстве Самсунг Гелекси без рут-доступа. Действия проводить в стандартном диалере.

Данный способ на некоторых устройствах может не работать.

Зачем нужны Log-файлы?

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

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

Кроме OS Android, подобные файлы присутствуют в Windows, Linux и других операционках.

Заключение

  • Папка Logs на Андроиде — содержит специальные файлы-отчеты, в которые записывается информация об ошибочных/успешных операциях некоторых программ/функций операционной системы Android.
  • Данные файлы могут быть полезны при поиске проблем смартфона.

Источник

Log txt android что это

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

    1. RAM (ОЗУ)

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

    2. ROM (ПЗУ)
Читайте также:  Мобильная печать android bluetooth

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

Источник

Log txt android что это

Многие владельцы Android хотят иметь систему настроенную под себя, со своим оформлением, но далеко не у всех получается с первого раза и все приходится делать заново, не узнав причину, ведь причина может быть самая элементарная: забыли добавить файл, ошиблись в каком то файле и случайно добавили лишний символ, а ведь если вы делали по большой инструкции, несколько часов или дней (в связи такой сложностью, у вас редко бывает время или вы не понимали на тот момент как надо было делать), а у вас ваше приложение не заработало, как-же быть тогда?
Есть одно решение, воспользоваться логом системы — LogCat.
Пользоваться им не очень сложно и делается он запросто, для начала нам необходимо скачать программу ADB, скачать вы её можете — здесь. Распаковываем скачанный архив в папку C:/adb. Открываем командную строку и пишем

и открываем ваше нерабочее приложение, если это статус-бар, то ждём когда он выдаст ошибку. В папке C:/adb будет лежать logcat.txt, его вы вылаживаете сюда или отправляете человеку, который вас попросил, ждёте ответа.

P.S. Тема была специальна создана, дабы всё время не описывать и объяснять, что да как делать.

Сообщение отредактировал WinKarbik — 14.08.14, 16:00

Там есть информация об этом, но возможно не так подробно.

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

WinKarbik,

в этом случае, тема просто погрязнет в мусоре других тем, вот и всё.
Та же тема всегда наверху в том разделе.

Источник

Оцените статью