淺談Android Studio 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/目錄下,然后執(zhí)行:
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++實現(xiàn)JNI,在jni文件夾下,創(chuàng)建com_…_adminapp_lib_utils_jni_AppKey.h對應(yīng)的c文件:AppKey.c
•3)創(chuàng)建mk文件,并使用ndk-build命令生成.so動態(tài)鏈接庫文件
在jni目錄下創(chuàng)建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目錄下創(chuàng)建Application.mk文件如下:
APP_PROJECT_PATH := $(call my-dir)
APP_MODULES := TestJNI
•4)使用ndk-build命令生成so庫
以上這篇淺談Android Studio JNI生成so庫就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android編程學(xué)習(xí)之抽象類AbsListView用法實例分析
這篇文章主要介紹了Android編程學(xué)習(xí)之抽象類AbsListView用法,較為詳細的分析了抽象類AbsListView的功能、結(jié)構(gòu)、定義及使用注意事項等,需要的朋友可以參考下2015-10-10Android開發(fā)中匿名設(shè)備標(biāo)識符OAID使用及初始化
這篇文章主要為大家介紹了Android開發(fā)中匿名設(shè)備標(biāo)識符OAID使用及初始化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04Android編程之利用服務(wù)實現(xiàn)電話監(jiān)聽的方法
這篇文章主要介紹了Android編程之利用服務(wù)實現(xiàn)電話監(jiān)聽的方法,較為詳細的分析了Android基于服務(wù)實現(xiàn)針對電話監(jiān)聽的具體步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2015-11-11Android利用Sensor(傳感器)實現(xiàn)水平儀功能
這篇文章主要為大家詳細介紹了Android利用Sensor傳感器實現(xiàn)水平儀功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02