Android Studio編譯ndk

背景:

? ? ? ? 我們一般選擇使用ndk無外乎為了隱藏java代碼,還有提高硬件的訪問速度。第一點,目前的加密手段已經(jīng)可行,至于第二點,多半在音視頻中應用,比如bilibili的ijkPlayer中就有ffmpeg的.so。當年的編譯還要Linux環(huán)境,比如cygwin或者Ubuntu,筆者就吃過這些虧。不過現(xiàn)在好了,AS自帶jni編譯了。

環(huán)境:

win7 64位系統(tǒng)

AS 2.0

步驟:

1、裝載ndk,打開AS,在Tools->Android->SDK Manager的右邊第二個選項SDK Tools里選擇NDK,點擊右下角Apply,等啊等啊。然后就好了。


安裝好后變成一個減號


ndk路徑自動生成的


這句自己加,運行時防止報錯

2、gradle配置

在build.gradle里

生成的so的名字,和生成哪些abi的so


在android語句塊里添加這個,就是編譯好的so生成到哪個目錄里

3、java調(diào)用類

其實就短短幾行而已

別忘了剛才自己寫的.so的名字

4、生成c++用的.h

首先build一下,生成java的class,在H:\NdkJniDemo\app\build\intermediates\classes\debug\com\example\ll\ndkjnidemo這里。不過這不重要,因為我們在包外面操作就好。打開AS的Terminal,進入app/build/intermediates/classes/debug目錄,輸入javah -jni com.example.ll.ndkjnidemo.NdkJniUtils,根據(jù)自己的包修改即可。


把這個文件放到j(luò)ni目錄下,沒有就自己建一個吧


看到?jīng)],最長那個

5、寫C代碼

在jni里面寫個簡單的c程序,比如jnitest.c整個工程我一會兒打包上傳。

6、AS里點擊Build->make project就可以生成.so了

.so在這里H:\NdkJniDemo\app\build\intermediates\ndk\debug\lib


文件夾對應第2步的abi配置

把這幾個文件夾拷貝到app的libs目錄H:\NdkJniDemo\app\libs

6、現(xiàn)在可以運行了,結(jié)果大家看真機吧,我這里不截圖了

https://pan.baidu.com/s/1slBF0nV

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容