Получить данные Logcat через собственный (C) код - PullRequest
0 голосов
/ 15 декабря 2011

Мне было интересно, есть ли способ получить доступ к данным журналирования logcat из нативного кода? Также, если кто-то знает, к какой оболочке можно получить доступ в родной системе linux непосредственно на самом устройстве (так что НЕ запускать оболочку через adb на клиентском ПК !!!)? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2016

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

#define LOG_TAG "some.unique.identifier" //I usually use the class name
#include <utils/Log.h>

Затем в файле Android.mk вам нужно будет добавить библиотеку liblogзависимость от вашего LOCAL_SHARED_LIBRARIES.

LOCAL_SHARED_LIBRARIES += liblog

Также обратите внимание, что logcat ищет определение LOG_TAG для включения в тегирование, что облегчает поиск ваших журналов.Затем вы можете войти в систему следующим образом:

int my_int = 0;
ALOGI("some logs.... print my int: %d", my_int);

ALOGI для информации, вы также можете использовать ALOGE, ALOGD, ALOGV и ALOGW для ошибок, отладки, подробностей и предупреждений.регистрация, соответственно.

ALOG* аналогична printf.Я иногда обмениваю их, если мне нужно отладить на разных платформах, скажем, Linux.

0 голосов
/ 14 марта 2012

Вы можете либо прочитать необработанные данные fom / dev / log / main, либо запустить команду встроенной оболочки logcat и передать результат в дескриптор файла, как обычно.Команда logcat обычно предпочтительна, потому что тогда распечатку легче фильтровать и форматировать.

Что касается встроенной оболочки, она называется toolbox, а источник можно найти в проекте Android с открытым исходным кодом.Оболочка довольно похожа на bash.Панель инструментов содержит гораздо больше функциональности, чем просто оболочка.Он очень похож на Busybox, но выпущен под другой лицензией.

...