淺談Android Studio JNI生成so庫(kù)
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)選中整個(gè)Project,在菜單欄選中Build->Make Project
•2)查看TestJNI/app/build/intermediates/classes/debug/com…/AppKey.class
•3)在Android studio的Terminal中進(jìn)入app/build/../debug/目錄下,然后執(zhí)行:
javah -jni com….adminapp.lib.utils.jni.AppKey
生成.h文件
4.編譯生成so文件
•1)在src/main目錄下新建jni目錄和java目錄平級(jí),用來(lái)保存生成的.h文件。將步驟3生成的com_…_adminapp_lib_utils_jni_AppKey.h文件拷貝到新建的jni目錄。
•2)使用C/C++實(shí)現(xiàn)JNI,在jni文件夾下,創(chuàng)建com_…_adminapp_lib_utils_jni_AppKey.h對(duì)應(yīng)的c文件:AppKey.c
•3)創(chuàng)建mk文件,并使用ndk-build命令生成.so動(dòng)態(tài)鏈接庫(kù)文件
在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:是要編譯的庫(kù)的名稱。編譯器會(huì)自動(dòng)在前面加上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庫(kù)
以上這篇淺談Android Studio JNI生成so庫(kù)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android編程學(xué)習(xí)之抽象類(lèi)AbsListView用法實(shí)例分析
這篇文章主要介紹了Android編程學(xué)習(xí)之抽象類(lèi)AbsListView用法,較為詳細(xì)的分析了抽象類(lèi)AbsListView的功能、結(jié)構(gòu)、定義及使用注意事項(xiàng)等,需要的朋友可以參考下2015-10-10Android開(kāi)發(fā)中匿名設(shè)備標(biāo)識(shí)符OAID使用及初始化
這篇文章主要為大家介紹了Android開(kāi)發(fā)中匿名設(shè)備標(biāo)識(shí)符OAID使用及初始化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04Android外部存儲(chǔ)無(wú)法訪問(wèn)問(wèn)題解決方法
大家好,本篇文章主要講的是Android外部存儲(chǔ)無(wú)法訪問(wèn)問(wèn)題解決方法,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01Android實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10Android編程之利用服務(wù)實(shí)現(xiàn)電話監(jiān)聽(tīng)的方法
這篇文章主要介紹了Android編程之利用服務(wù)實(shí)現(xiàn)電話監(jiān)聽(tīng)的方法,較為詳細(xì)的分析了Android基于服務(wù)實(shí)現(xiàn)針對(duì)電話監(jiān)聽(tīng)的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-11-11Android中的Fragment類(lèi)使用進(jìn)階
這篇文章主要介紹了Android中的Fragment類(lèi)使用進(jìn)階,重點(diǎn)講解了Fragment與Activity的交互以及Fragment間的數(shù)據(jù)傳遞,需要的朋友可以參考下2016-04-04Android利用Sensor(傳感器)實(shí)現(xiàn)水平儀功能
這篇文章主要為大家詳細(xì)介紹了Android利用Sensor傳感器實(shí)現(xiàn)水平儀功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02