淺談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ù)的名稱(chēng)。編譯器會(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 ListView列表實(shí)現(xiàn)倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了Android ListView列表實(shí)現(xiàn)倒計(jì)時(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
Android數(shù)據(jù)流之Channel和Flow實(shí)現(xiàn)原理和技巧詳解
在 Android 應(yīng)用程序的開(kāi)發(fā)中,處理異步數(shù)據(jù)流是一個(gè)常見(jiàn)的需求,為了更好地應(yīng)對(duì)這些需求,Kotlin 協(xié)程引入了 Channel 和 Flow,它們提供了強(qiáng)大的工具來(lái)處理數(shù)據(jù)流,本文將深入探討 Channel 和 Flow 的內(nèi)部實(shí)現(xiàn)原理、高級(jí)使用技巧以及如何在 Android 開(kāi)發(fā)中充分利用它們2023-11-11
Android自定義View 使用PathMeasure簡(jiǎn)單模仿系統(tǒng)ProgressBar(四)
這篇文章主要為大家詳細(xì)介紹了Android自定義View,使用PathMeasure簡(jiǎn)單模仿系統(tǒng)ProgressBar,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Android 自定義SeekBar 實(shí)現(xiàn)分段顯示不同背景顏色的示例代碼
這篇文章主要介紹了Android 自定義SeekBar 實(shí)現(xiàn)分段顯示不同背景顏色,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Android?startActivityForResult的調(diào)用與封裝詳解
startActivityForResult?可以說(shuō)是我們常用的一種操作了,目前有哪些方式實(shí)現(xiàn)?startActivityForResult?的功能呢?本文就來(lái)和大家詳細(xì)聊聊2023-03-03
Android中的Intent Filter匹配規(guī)則簡(jiǎn)介
這篇文章主要為大家詳細(xì)介紹了Android中的Intent Filter匹配規(guī)則,感興趣的小伙伴們可以參考一下2016-04-04
Android實(shí)現(xiàn)調(diào)用系統(tǒng)相冊(cè)和拍照的Demo示例
這篇文章主要介紹了Android實(shí)現(xiàn)調(diào)用系統(tǒng)相冊(cè)和拍照的Demo示例,實(shí)例分析了Android調(diào)用系統(tǒng)相冊(cè)及拍照的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10

