一烤宙、概念
Android NDK
Android Native Development Kit遍烦,簡(jiǎn)稱NDK。
Android NDK 是一組允許您將 C 或 C++(“原生代碼”)嵌入到 Android 應(yīng)用中的工具躺枕。 能夠在 Android 應(yīng)用中使用原生代碼對(duì)于想執(zhí)行以下一項(xiàng)或多項(xiàng)操作的開發(fā)者特別有用:
- 在平臺(tái)之間移植其應(yīng)用乳愉。
- 重復(fù)使用現(xiàn)有庫,或者提供其自己的庫供重復(fù)使用屯远。
- 在某些情況下提高性能蔓姚,特別是像游戲這種計(jì)算密集型應(yīng)用。
JNI
Java Native Interface的縮寫慨丐,它提供了若干的API實(shí)現(xiàn)了Java和其他語言的通信(主要是C和C++)坡脐。
二、環(huán)境搭建
打開Android studio房揭,F(xiàn)ile>>>Project Structure配置環(huán)境
如果沒有下載android ndk备闲,Android studio會(huì)提示下載,點(diǎn)擊下載按鈕下載即可捅暴。設(shè)置完畢查看local.properties文件會(huì)看到你的配置路徑恬砂。
NDK下載配置完成之后,需要在gradle.properties文件中加上一行:
android.useDeprecatedNdk=true
如圖:
接下來打開Android studio設(shè)置頁面(快捷鍵:Ctrl + Alt + S)蓬痒,在Tools>>>External Tools下配置插件泻骤。
javah -jni命令,是根據(jù)java文件生成.h頭文件的梧奢,會(huì)自動(dòng)根據(jù)java文件中的類名(包含包名)與方法名生成對(duì)應(yīng)的C/C++里面的方法名狱掂。
參數(shù)配置及其含義:
- Program:
$JDKPath$\bin\javah.exe
,配置javah.exe的路徑亲轨。 - Arguments:
-classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$
趋惨,這里$FileClass$
指的是要執(zhí)行操作的類名(即我們操作的文件),$ModuleFileDir$/src/main/jni
表示生成的文件保存在這個(gè)module目錄的src/main/jni目錄下惦蚊。 - Working directory:
$ModuleFileDir$\src\main\java
器虾,module目錄下的src\main\java目錄(不是很理解)讯嫂。
使用方式:選中java文件>>>右鍵>>>External Tools>>>javah-jni,將生成jni文件夾以及文件夾下的 包名.類名的.h頭文件(名字過長(zhǎng)兆沙,可以重命名)端姚。如下圖:
ndk -build命令,是根據(jù)C/C++文件生成so文件的挤悉。
使用方式:選中C/C++文件—>右鍵—>ExternalTools—>ndk-build,將在main文件夾下生成libs文件夾以及多個(gè)so文件巫湘,我們可以移動(dòng)至jniLibs目錄下去装悲。
參考博客:https://blog.csdn.net/xiaoyu_93/article/details/52870395