Приложение logd что это
[Вопросы] logd что это? и почему оно жрет батарею
Что это такое. |
avatar.png (109.25 KB, Downloads: 0)
2021-08-28 03:46:52 Upload
Xiaomi Comm APP
Получайте новости о Mi продукции и MIUI
Рекомендации
* Рекомендуется загружать изображения для обложки с разрешением 720*312
Изменения необратимы после отправки
Cookies Preference Center
We use cookies on this website. To learn in detail about how we use cookies, please read our full Cookies Notice. To reject all non-essential cookies simply click «Save and Close» below. To accept or reject cookies by category please simply click on the tabs to the left. You can revisit and change your settings at any time. read more
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
Русские Блоги
Подробный вход в Android
предисловие
Код основан на версии: Android P
архитектура
Система бревен разделена на три части:
В платформе Android есть файлы Log.java, Slog.java и другие, которые предоставляют интерфейс, используемый приложением верхнего уровня. В собственном коде или jni-коде будут использоваться макроинтерфейсы ALOGD, ALOGE и другие интерфейсы, определенные в liblog / include / log / log.h. Но в конце концов это происходит через интерфейс __android_log_write в logger_write.cpp в liblog.
Сначала посмотрите на __android_log_write:
Вызов write_to_log () и во время инициализации write_log_log указывает на __write_to_log_init ():
Эта функция в logger_write.c очень важна, здесь начинаются все источники, и в конце концов будет вызван __write_to_log_daemon:
Выполните некоторую инициализацию, фильтрацию, оценку и т. Д. В __write_to_log_daemon и, наконец, вызовите write в transport:
Мы не будем читать последний вызов функции записи здесь, что будет объяснено ниже.
Здесь транспорт формирует список во время инициализации. Подробнее см. __Android_log_config_write () в __write_to_log_initialize ():
Для использования LOGD окончательно используется logdLoggerWrite:
logd В initrc
Видно, что logd будет общаться и управлять через 3 сокета. А это значит начать один раз.
logd.main()
В основной функции файла system / core / lodgd / main.cpp создаются четыре объекта: LogBuffer, LogReader, LogListener и CommandListener:
Logd-Reinit процесс
Когда процесс Logd-reinit запускается, он отправляет команду reinit процессу logd.После получения команды logd повторно инициализирует LogBuffer.
В основной функции файла system / core / lodgd / main.cpp создается поток, чтобы отслеживать, есть ли запрос на повторный запуск.
В функции reinit_thread_start размер каждой области журнала и инициализация других параметров повторно инициализируются, но объект LogBuffer не создается заново. Соответствующий код выглядит следующим образом:
Сохранить журнал
Читать журнал
Журнал logd можно получить с помощью инструмента logcat, и путь, по которому находится код, связанный с logcat: system / core / logcat
Журнал, полученный с помощью logcat, распечатывается не полностью в соответствии с классификацией журналов, например, в журнале KERNEL может быть журнал MAIN.
Большинство функций, реализованных logcat, находятся в файле logcat / logcat.cpp, из которых наиболее важной является функция __logcat, которая отвечает за анализ входных параметров logcat и обработку журналов.
Наконец, Logcat читает журнал через функцию logdRead в liblog / logd_reader.c. Эта функция отвечает за открытие / dev / logdr и получение журнала через сокет.
Что касается уровня журнала и другой информации в коде, мы пока не будем объяснять это, с учетом log.h в разделе liblog.
[Прочее] (автономность, рут) способ удаления logd
Xiaomi Comm APP
Получайте новости о Mi продукции и MIUI
Рекомендации
* Рекомендуется загружать изображения для обложки с разрешением 720*312
Изменения необратимы после отправки
Cookies Preference Center
We use cookies on this website. To learn in detail about how we use cookies, please read our full Cookies Notice. To reject all non-essential cookies simply click «Save and Close» below. To accept or reject cookies by category please simply click on the tabs to the left. You can revisit and change your settings at any time. read more
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
Русские Блоги
Резюме: в этом разделе в основном объясняются инструкции, связанные с logd и logcat, классификация журналов и общие атрибуты журналов системы ведения журналов Android10.0.
Чтение статьи занимает около 15 минут.
Первая статья была опубликована в публичном аккаунте WeChat: Big Cat Play.
Сосредоточьтесь на анализе исходного кода на уровне системы Android, дизайне платформы Android, добро пожаловать, подписывайтесь на меня, спасибо!
Цикл статей:
1 Обзор
При разработке программ ведение журнала является незаменимым методом отладки, как и разработка Android.
При разработке Android мы пишем журналы с помощью LOGD \ SLOGD и других методов, а затем читаем связанные журналы с помощью logcat, но как журналы записываются и читаются, и каковы лежащие в основе операции, иногда не глубоко изучение.
Этот раздел посвящен анализу принципов чтения и записи журналов Android с нижнего уровня исходного кода.
До Android 5.0 (Android-L) журнал сохранялся в кольцевом буфере ядра. После Android 5.0 журнал сохранялся в пользовательском пространстве и доступ к нему осуществлялся через Socket.
После Android 5.0 был представлен демон Logd для выполнения операций чтения и записи журнала.
Принцип раннего кольцевого буфера ядра можно найти в «Анализе исходного кода регистратора драйвера системы регистрации Android, Ло Шэнъян».
В этом разделе в основном анализируются связанные принципы реализации logd и logcat.
2. Основной исходный код
3. Описание инструкций, связанных с logcat
Подключите мобильный телефон к компьютеру, установите драйвер adb, откройте режим разработчика, выберите «Отладка по USB», можно выполнить команду adb
3.1 Синтаксис командной строки
Чтобы запустить Logcat через оболочку adb, обычно используется следующее:
3.2 Инструкции
Для получения дополнительной информации см. «Инструмент командной строки Logcat»
3.3 Выходные данные фильтрации журнала
Журналы Android делятся наСледующие 7 уровней:
При отладке журналов мы можем управлять выводом журналов на разных уровнях.
Ниже приводится нормальный вывод журнала Android.
Журнал:02-05 12:44:15.357 17533 17545 D ActivityThread: caller system = false
Формат журнала:
Мы можем использовать фильтры для вывода только логов ниже соответствующего уровня:
1) Например: adb logcat *: I
Значение команды: выводить журналы с уровнем журнала выше Info, то есть выводятся только журналы Info, Error, Fatal и Silent, но журналы Debug и Verbose не выводятся.
2) Например: adb logcat ActivityManager: E ActivityThread: I *: S
Значение инструкции: это выражение подавляет все другие журналы, кроме сообщений журнала, помеченных как «ActivityManager» с приоритетом не ниже, чем «Ошибка», и сообщений журнала, помеченных как «ActivityThread» с приоритетом не ниже «Информация». Новости.
3) Например: adb logcat ActivityThread: E *: S
Значение команды: выводятся только журналы с меткой ActivityThread, а уровень журнала больше или равен Error, то есть выводятся только журналы Error и Fatal of ActivityThread
3.4 Формат вывода журнала
краткое: отображает приоритет, тег и PID процесса, отправившего сообщение.
long: отображать все поля метаданных и отдельные сообщения пустыми строками.
процесс: отображать только PID.
raw: отображать необработанные сообщения журнала, не содержащие других полей метаданных.
tag: только отображение приоритета и тега.
thread :: Старый формат, в котором отображается приоритет, PID и TID потока, отправившего сообщение.
threadtime (по умолчанию): отображает дату, время вызова, приоритет, тег, PID и TID потока, отправившего сообщение.
время: отображает дату, время вызова, приоритет, флаг и PID процесса, отправившего сообщение.
инструкция: [adb] logcat [-v ]
нота:-v может использовать только один формат за раз, формат времени потока по умолчанию может удовлетворить наши текущие потребности
3.5 Буфер журнала
радио: просмотр буфера, содержащего сообщения, относящиеся к беспроводным устройствам / телефонам.
events: просмотр интерпретированных сообщений буфера событий двоичной системы.
main: просмотр буфера основного журнала (по умолчанию), исключая системные сообщения и сообщения журнала сбоев.
система: просмотр буфера системного журнала (по умолчанию).
сбой: просмотр буфера журнала сбоев (по умолчанию).
все: просмотреть все буферы.
по умолчанию: основной, системный и аварийный буферы отчетов.
Описание 1:Приведенная выше команда выводит журнал только основного буфера.
Описание 2:Приведенная выше команда выводит журналы трех буферов: основного, радио и системного.
4. Описание атрибутов, связанных с системой журналов
setprop log.tag.MyApp D
После ручной настройки перезагрузка не удалась
Запустите демон аудита selinux
Информация аудита selinux отправляется в журнал dmesg
узел cat «/ proc / kmsg», используемый для чтения журнала ядра
Размер по умолчанию всех буферных областей журнала, по умолчанию 256 КБ, можно изменять в реальном времени, перезапуск недопустим.
Изменить временную метку журнала, можно изменить в реальном времени, перезапуск недопустим
Действует ли черный и белый список журнала, отключение недействительно, а включение действует
Измените временную метку журнала, которая может быть изменена только при компиляции версии или изменена после рутирования телефона, и перезагрузка продолжит действовать.
Размер буфера основного журнала, по умолчанию 256 КБ.
Размер буфера системного журнала, по умолчанию 256 КБ.
Независимо от того, действует ли черный и белый список журнала, отключение недопустимо, а включение действует.
setprop persist.log.tag Debug
Управляйте выводом журнала над отладкой. Настройка вступает в силу только после того, как версия предварительно создана или внедрена, и перезапуск также действует.
setprop ro.logd.kernel true
Управляйте выводом журнала ядра в буфер logd и загружайте его через lgocat
setprop ro.logd.auditd true
Управляйте выводом журнала selinux в буфер журнала и загружайте его через lgocat
Когда мы находимся в ежедневной отладке или тестировании CTS, мы сталкиваемся с потерей или неполнотой журнала. Основная причина заключается в том, что объем журнала большой, но буфер журнала мал. В настоящее время нам нужно только увеличить буфер журнала.
способ 1:setprop ro.logd.size 5120 т.е. отрегулируйте буфер журнала до 5M
5. Классификация журналов
Журналы на Android 10.0 разделены на 8 категорий:
Главный буфер журнала, который является единственным буфером журнала, доступным для приложения. Интерфейс android.util.Log предоставляется на уровне инфраструктуры приложения для записи журналов в и из драйвера журнала Logger через библиотеку liblog. Библиотека времени выполнения предоставляет макрос LOGV, LOGD, LOGI, LOGW и LOGE используются для записи журналов основного типа.
Просмотрите журнал, содержащий сообщения, связанные с беспроводным устройством / телефоном, вы можете вызвать android.telephony.Rlog для печати
Журналы событий типа используются для диагностики системных проблем. Интерфейс android.util.EventLog предоставляется на уровне инфраструктуры приложения для записи журналов в драйвер журнала Logger и из него через библиотеку liblog. Библиотека времени выполнения предоставляет макросы LOG_EVENT_INT, LOG_EVENT_LONG, LOG_STRING Используется для записи журналов типов событий.
Буфер журнала сбоев приложения или процесса
Breadcrumb
aferende
Senior Member
Hi all,
I have the G4 (H815) for over 6 months and always (both Lollipop and Marshmallow) I have been suffering from a tremendous battery drain.
After a lot of research I discovered that the reason (the main reason) of my battery drain is due to «logd» process that normally burned over 15% (or more) for each charge cycle (checked with Better Battery Stats).
Obviously I tried everything, full wipe, change ROM but that process was always there to suck battery them.
I do not know why the process is so high but I know that deactivating it the problem is automatically solved
So finally I found a way to eliminate the underlying problem permanently by disabling the logd process from TWRP.
if you also have this problem, follow this simple guide and you will solve the problem permanently.
After disabling «logd» process the only evidence it is that logcat no longer works but for many I do not think it’s a problem.
Anyway you can always go back and put everything back as it was.
[Before Start]
I suggest you to make a FULL BACKUP before you follow this guide.
I am not responsible if your brick your phone.
See the attached screen for a visual guide.
I also attach my battery stats AFTER disabling the «logd» process.
Before deactivating I did not reach the 2 hours of SOT. Now they are 4 or more with 20hrs of standby
All without Amplify or other battery savers
Let me know if this works for you.