Android 7.0 APP存取log和prop行為變更
根據Android官方文件 https://developer.android.com/about/versions/nougat/android-7.0-changes.html?hl=zh-tw Android 7.0後非系統APP, 需要使用log和prop要使用NDK開放的API, 不再提供如libcutils和libutils的存取, 在啟動APP時候會發生 dlopen failed: cannot locate symbol "__system_property_get" referenced by ... 像是下面兩個log標頭檔就應該要修改 #include<utils/Log.h> #include<cutils/log.h> log函數使用包含在liblog內的函數 #include<android/log.h> int __android_log_print(int prio, const char *tag, const char *fmt, ...); AOSP實作和定義分別在 system/core/liblog/logger_write.c system/core/include/android/log.h 和以前用ALOG以及LOG系列函數不一樣的點在於需要自己寫priority, 因為實在太麻煩, 所以自己寫了一個AndroidLog.h方便使用 #ifndef __ANDROIDLOG_H__ #define __ANDROIDLOG_H__ #include <android/log.h> #if LOG_NDEBUG #define LOGV(...) ((void)0) #else #define LOGV(...) ((void)__android_log_print(ANDROID_LOG_VERBOSE,LOG_TAG,__VA_ARGS__)) #endif #define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)) #define LOGE(...) ((void)__android_l...