diff --git a/scripts/build_android.sh b/scripts/build_android.sh index 10b49eedf2913d163befde6e9596ccee88e03c46..2031459d581445d1719b5e9a62b978b01947db71 100644 --- a/scripts/build_android.sh +++ b/scripts/build_android.sh @@ -1,6 +1,6 @@ #!/bin/bash -export ANDROID_NDK= +export ANDROID_NDK= ##### android armv7 diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 3a1df1f3eeac763fb723fe76a9ff7ae8fa1024c1..7adf1b23997326e4a1e3eb9553876176144e5bbf 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -109,6 +109,7 @@ IF (TENGINE_COMPILER_GCC OR TENGINE_COMPILER_CLANG) IF (ANDROID) LIST (APPEND TENGINE_COMMON_LINK_LIBRARIES android) + LIST (APPEND TENGINE_COMMON_LINK_LIBRARIES log) ELSEIF (OHOS) LIST (APPEND TENGINE_COMMON_LINK_LIBRARIES dl) LIST (APPEND TENGINE_COMMON_LINK_LIBRARIES m) diff --git a/source/utility/log.c b/source/utility/log.c index 19494d51b2c80f24e1c0b7994c3406a6c5f1cb0f..317a2cd14554a2188983efe61f3facbf26fdf153 100644 --- a/source/utility/log.c +++ b/source/utility/log.c @@ -34,6 +34,10 @@ #include #include +#ifdef ANDROID +#include +#endif + static mutex_t log_locker; static const char* map_table[] = {"EMERG", "ALERT", "CRIT", "ERROR", "WARN", "NOTICE", "INFO", "DEBUG"}; @@ -58,7 +62,49 @@ static void do_log(struct logger* logger, enum log_level level, const char* fmt, { return; } +#ifdef ANDROID + va_list _ap; + va_start(_ap, fmt); + + switch (level) + { + case LOG_EMERG: + case LOG_ALERT: + case LOG_CRIT: + { + __android_log_print(ANDROID_LOG_FATAL, "Tengine", fmt, _ap); + break; + } + case LOG_ERR: + { + __android_log_print(ANDROID_LOG_ERROR, "Tengine", fmt, _ap); + break; + } + case LOG_WARNING: + { + __android_log_print(ANDROID_LOG_WARN, "Tengine", fmt, _ap); + break; + } + case LOG_NOTICE: + case LOG_INFO: + { + __android_log_print(ANDROID_LOG_INFO, "Tengine", fmt, _ap); + break; + } + case LOG_DEBUG: + { + __android_log_print(ANDROID_LOG_DEBUG, "Tengine", fmt, _ap); + break; + } + default: + { + __android_log_print(ANDROID_LOG_VERBOSE, "Tengine", fmt, _ap); + } + } + va_end(_ap); + return; +#else va_list ap; char msg[TE_MAX_LOG_LENGTH] = { 0 }; int max_len = TE_MAX_LOG_LENGTH; @@ -108,6 +154,7 @@ static void do_log(struct logger* logger, enum log_level level, const char* fmt, va_end(ap); return safety_log(logger, msg); +#endif }