Может ли logcat использоваться для регистрации кода NDK в Android? Или что такое параметры регистрации от NDK?

Как записывать журналы из внутреннего кода в Android (NDK)? Каковы доступные варианты? Например, может ли logcat использоваться изнутри NDK для записи журналов? Или, поскольку его более высокий уровень в android, он не может быть доступен из NDK?

В настоящий момент я просто знаю, как писать времена из кода C: millis = System.currentTimeMillis();

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

Ответ 1

Вы можете использовать ведение журнала Android

#include <android/log.h>

#define APPNAME "MyApp"

__android_log_print(ANDROID_LOG_VERBOSE, APPNAME, "My Log");

Также убедитесь, что вы также ссылаетесь на библиотеку журналов в своем файле Android.mk:

LOCAL_LDLIBS := -llog

Это уже обсуждалось на . Есть ли простой способ войти в код Android NDK?

Ответ 2

Если вы используете новые версии Android Studio (2.2+), которые используют CMake, тогда вы найдете следующее автоматически добавленное в ваш CMakeLists.txt при создании нового проекта с поддержкой С++:

find_library( # Sets the name of the path variable.
          log-lib

          # Specifies the name of the NDK library that
          # you want CMake to locate.
          log )

и

target_link_libraries( # Specifies the target library.
                   your-lib1
                   your-lib2
                   ...

                   # Links the target library to the log library
                   # included in the NDK.
                   ${log-lib} )