Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android4.2.2NDK和源碼開發jni的異同

Android4.2.2NDK和源碼開發jni的異同

編輯:關於Android編程

C/C++開發,在NDK和源碼中輸出Log信息的方法!

NDK:
1、包含頭文件
#include
2、Android.mk中包含庫
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
上面這個一定要,不然出現error: undefined reference to '__android_log_print'
LOCAL_SHARED_LIBRARIES := libdl\
liblog\ #經測試在Eclipse中用NDK編譯可有可無,沒啥用!但在源碼中就必須是他,所以都加上吧!
libpre_AppUpgrade\
libpre_AppArea\
3、在你的jni文件中定義
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) // 定義LOGD類型
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) // 定義LOGI類型
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__) // 定義LOGW類型
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) // 定義LOGE類型
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG_TAG,__VA_ARGS__) // 定義LOGF類型

adnroid4.2源碼中已經將LOGD等都加了一個頭,
#define ALOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) // 定義LOGD類型
#define ALOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) // 定義LOGI類型
#define ALOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG_TAG,__VA_ARGS__) // 定義LOGW類型
#define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) // 定義LOGE類型
#define ALOGF(...) __android_log_print(ANDROID_LOG_FATAL,LOG_TAG,__VA_ARGS__) // 定義LOGF類型

注意如果你不想在每一個jni文件中都定義上述宏,投機方法即可以定義在:D:\android-ndk-r9d\platforms\android-19\arch-arm\usr\include\android\log.h中!當然這種編譯也只能在你本機上使用啦~

源碼開發:
1、Android.mk中包含庫
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
LOCAL_SHARED_LIBRARIES := libdl\
liblog\ //源碼中開發一定的加上
libpre_AppUpgrade\
libpre_AppArea\
2、包含頭文件#include
3、注意在使用時記得包含庫的頭文件

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved