1. 程式人生 > >Android NDK學習之:Eclipse配置NDK環境及列印日誌

Android NDK學習之:Eclipse配置NDK環境及列印日誌

     上一篇部落格Android NDK開發學習:我的第一個NDK專案雖然是用Eclipse開發,但是在編譯專案和執行專案時,都用到了CMD視窗命令,包括javah及ndk-build等命令。如果Eclipse工具可以直接進行編譯NDK專案,不用來回切換Eclipse及CMD視窗多好呀。這個願望肯定是可以實現的。接下來開始Eclispe之NDK配置。

第一步:首先配置Eclispe中NDK環境,Eclipse-->Window-->Preferences--->Android--->NDK,如圖配置:


第二步:對要進行編譯的Android專案進行配置。工程滑鼠右鍵--->Properties-->Resource--->Builers,進行下圖配置。

   1,NEW一個Builder


 2,對新建的Builder進行配置:

 

 還需要進行一個配置,如圖:


 現在就在Eclipse及Android專案都配置好了,把我們專案中之前生成的libs下的.so檔案及obj檔案刪除,直接用Eclipse執行專案,發現沒有問題的。這樣就比之前來回與cmd與Eclipse中切換輕鬆多了。

---------------NDK開發之Eclipse列印LOG日誌--------------------------------------------------------------

   我們開發專案的時候,通過列印LOG日誌來除錯程式是常用手段之一,那NDK開發的日誌怎麼列印呢?主要有以下幾步:

1. 引入標頭檔案  #include <Android/log.h>

#include <android/log.h>

2. 在android.mk中新增LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog(千萬不要寫錯,注意空格,否則什麼都不顯示)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := first
LOCAL_SRC_FILES := first.c
# for logging
LOCAL_LDLIBS    += -llog
include $(BUILD_SHARED_LIBRARY)

3.__android_log_print(ANDROID_LOG_INFO, "TAG","%s", “HELLO”); 其中TAG是標誌最後就是內容了。

#define TAG "ldm"
#define LOGV(...) ((void)__android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__))//列印日誌方法,Warn級別LOG

4,呼叫列印日誌方法。

JNIEXPORT jstring JNICALL Java_com_ldm_firstndk_MainActivity_getStringFromC(
		JNIEnv *env, jobject obj) {
	LOGV("my ndk log"); //呼叫列印日誌方法
	return (*env)->NewStringUTF(env, "My First JNI PROJECT!");
}
   在NDK開發包中的samples中很多示例專案都有列印日誌的demo,我們可以多學習下。推薦部落格:http://blog.csdn.net/luoshengyang/article/details/6581828,寫得很實用。