Android NDK 是一組允許您將 C 或 C++(“原生代碼”)嵌入到 Android 應(yīng)用中的工具囚霸。
這一組工具包括:
ndk-build:ndk-build 腳本用于在 NDK 中心啟動構(gòu)建腳本瑰钮。
Java:Android 構(gòu)建過程從 Java 來源生成 .dex (Dalvik EXecutable) 文件,這些文件是 Android OS 在 Dalvik 虛擬機(jī)(“DVM”)中運(yùn)行的文件拙徽。
原生共享庫:NDK 從原生源代碼構(gòu)建這些庫或 .so 文件恰矩。
原生靜態(tài)庫:NDK 也可構(gòu)建靜態(tài)庫或 .a 文件仿便,您可以關(guān)聯(lián)到其他庫。
Java 原生接口 (JNI):JNI 是 Java 和 C++ 組件用以互相溝通的接口稻扬。
應(yīng)用二進(jìn)制界面 (ABI):ABI 可以非常精確地定義應(yīng)用的機(jī)器代碼在運(yùn)行時(shí)如何與系統(tǒng)交互卦方。
腳本構(gòu)建
Android.mk 必須在 `jni` 文件夾內(nèi)創(chuàng)建 [`Android.mk`](https://developer.android.com/ndk/guides/android_mk.html?hl=zh-cn) 配置文件
[`Application.mk`](https://developer.android.com/ndk/guides/application_mk.html?hl=zh-cn):此文件枚舉并描述您的應(yīng)用需要的模塊
android ndk 應(yīng)用 開發(fā)流程
1、應(yīng)用設(shè)計(jì)腐螟,確認(rèn)java中實(shí)現(xiàn)的部分和C++中實(shí)現(xiàn)的部分
2愿汰、在JNI 目錄中創(chuàng)建一個(gè)Android.mk 的文件, 包括名稱乐纸、標(biāo)志衬廷、鏈接庫和要編譯的源文件。
3汽绢、創(chuàng)建Application.mk 文件吗跋。將分別使用以下默認(rèn)值:
ABI:armeabi
工具鏈:GCC 4.8
模式:發(fā)行
STL:系統(tǒng)
4、將原生來源置于項(xiàng)目的 jni 目錄下。
5跌宛、使用 ndk-build 編譯原生(.so酗宋、.a)庫。
6疆拘、構(gòu)建 Java 組件蜕猫,生成可執(zhí)行 .dex 文件。
7哎迄、將所有內(nèi)容封裝到一個(gè) APK 文件中回右,包含 .so、.dex 以及應(yīng)用運(yùn)行所需的其他文件漱挚。
注意:如果要編寫純原生應(yīng)用翔烁,請?jiān)?AndroidManifest.xml
中聲明 [NativeActivity](https://developer.android.com/reference/android/app/NativeActivity.html?hl=zh-cn)
類。 如需了解詳細(xì)信息旨涝,請參閱原生 Activity 和應(yīng)用蹬屹。