標籤:native android ndk jni cpp
1.建立native方法
public final static native int startservice();
2.選擇項目右擊Android tools->Add native support 就會產生jni檔案
3.cd user/alarmTest/bin/命令進入到項目的classes 執行 javah com.li.JNI 包名.類名 可以產生com_yfz_JNI.h檔案 然後把com_yfz_JNI.h檔案拷貝到jni檔案下
4修改android.mk檔案
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Test 這個是產生庫檔案的名字
LOCAL_SRC_FILES := com_li_JNI.cpp 注意這裡預設是產生的項目名.cpp這裡我們需要改成 包名_類名.cpp 因為產生的裡面沒有代碼所以可以用.h檔案的
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog 這一條就是我們要用的android log資訊列印的庫檔案
include $(BUILD_SHARED_LIBRARY)
5.修改com.li.JNI.cpp
引入二個需要用到的檔案相當於java import
#include <jni.h>
#include <android/log.h>
然後在.cpp裡面加入因為.h檔案裡面已經產生了介面在cpp裡面要去實現{
__android_log_print(ANDROID_LOG_ERROR, "test-jni", "%s", "error");
//ANDROID_LOG_ERROR 這是android 裡面的log層級 這裡是error
//test-jni 是android裡面的 tag
// "%s" 表示輸入的是字串
//error 是我們列印的內容
}
6.點擊project->build project就可以產生so庫檔案了
7.載入庫檔案System.loadLibrary("Test");
8.調用jni方法 JNI.startservice();
9.下面就是我們從android 調用所顯示的
ok 今天就到這裡了!!大家有什麼問題可以留言 大家一起學習!!
android 調用jni 並列印log