Android Studio JNI生成so庫
阿新 • • 發佈:2019-02-09
JNI生成so檔案
1.新建Android studio工程
2.新建class:AppKey.java.主要為了儲存金鑰
程式碼塊
package com...adminapp.lib.utils.jni;
/**
* Created by seven on 16/9/8.
*/
public class AppKey {
static {
System.loadLibrary("AppKey");
}
public static native String WechatId();
public static native String WechatSecret();
public static native String QQId();
public static native String QQKey();
}
3.編譯JNI檔案,生成.h檔案
- 1)選中整個Project,在選單欄選中Build->Make Project
- 2)檢視TestJNI/app/build/intermediates/classes/debug/com…/AppKey.class
3)在Android studio的Terminal中進入app/build/../debug/目錄下,然後執行:
javah -jni com….adminapp.lib.utils.jni.AppKey
生成.h檔案
4.編譯生成so檔案
- 1)在src/main目錄下新建jni目錄和java目錄平級,用來儲存生成的.h檔案。將步驟3生成的com_…_adminapp_lib_utils_jni_AppKey.h檔案拷貝到新建的jni目錄。
2)使用C/C++實現JNI,在jni資料夾下,建立com_…_adminapp_lib_utils_jni_AppKey.h對應的c檔案:AppKey.c
3)建立mk檔案,並使用ndk-build命令生成.so動態連結庫檔案
在jni目錄下建立Android.mk檔案如下:
LOCAL_PATH :=$(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE :=AppKey LOCAL_SRC_FILES=AppKey.c include $(BUILD_SHARED_LIBRARY)
其中LOCAL_PATH:是C/C++程式碼所在目錄,也就是我們的jni目錄。
LOCAL_MODULE:是要編譯的庫的名稱。編譯器會自動在前面加上lib,在後面加上.so。
LOCAL_SRC_FILES:是要編譯的C/C++檔案。在jni目錄下建立Application.mk檔案如下:
APP_PROJECT_PATH := $(call my-dir) APP_MODULES := TestJNI
- 4)使用ndk-build命令生成so庫