Android NDK入門 —— 第一個(gè)NDK程序

前言

我會(huì)在小專欄簡(jiǎn)書一起分享。
最近在搞NDK開發(fā),于是想著申請(qǐng)專欄跟大家一起分享我的學(xué)習(xí)過(guò)程,剛申請(qǐng)完沒想到就有人關(guān)注了,讓我更有了干勁。如今大部分Android開發(fā)應(yīng)該是了Android Studio(AS),所以接下來(lái)基本圍繞AS來(lái)開發(fā)。如果有需要Eclipse入門的可以留言給我。

正題

使用AS開發(fā)現(xiàn)在有兩種方式,分別ndk-build和CMake。不管哪種方式都需要安裝Android NDK工具,需要調(diào)試需要LLDB工具,使用CMake編譯就需要CMake工具,如圖,

首頁(yè)講講使用ndk-build編譯,先使用Android Studio新建一個(gè)基礎(chǔ)項(xiàng)目,在任意類中新建native方法進(jìn)行一次編譯。接著打開Terminal工具,通過(guò)命令行“cd app/src/main/java”進(jìn)去到工程目錄,然后使用命令“javah -jni <包名>.<類名>”,噌。蹦出一個(gè)錯(cuò)誤找不到xxx類,進(jìn)過(guò)一翻搜索后發(fā)現(xiàn)原來(lái)現(xiàn)在是要這樣“javah -classpath . -jni <包名>.<類名>”,注意在-classpath后面是有一個(gè)空格和一個(gè)點(diǎn),敲完回車.h文件就生成了。把得到的.h文件拉到我們的jni文件夾中,在新建一個(gè).c文件進(jìn)行編碼。接下來(lái)就是要生成.so文件,根據(jù)一位大神的方案配置了External Tools。
1.javah命令生成.h文件



2.ndk-build命令生成.so文件

除了以上設(shè)置以外,還有必須配置在build.gradle ->defaultConfig

ndk{
   moduleName "HelloJniLibName"         //生成的so名字
}

根據(jù)存放的so文件配置

sourceSets.main {
    jni.srcDirs = ['src/main/jni']
    jniLibs.srcDir 'src/main/jniLibs'
}

在gradle.properties中需要加入

android.useDeprecatedNdk=true

最后別忘了Android.mk文件和Application.mk文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := HelloJniLibName
LOCAL_SRC_FILES := ndktest-jni.c
include $(BUILD_SHARED_LIBRARY)

以上都搞定后,你可以在你的jni目錄右鍵使用NDK->ndk-build操作就會(huì)在響應(yīng)目錄生成.so文件了。

結(jié)尾

第一次寫望大家見諒,可留言指點(diǎn),今天就先到這了明天繼續(xù)CMake方式生成so文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容