背景:
? ? ? ? 我們一般選擇使用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,等啊等啊。然后就好了。
2、gradle配置
在build.gradle里
3、java調(diào)用類
其實就短短幾行而已
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ù)自己的包修改即可。
5、寫C代碼
在jni里面寫個簡單的c程序,比如jnitest.c整個工程我一會兒打包上傳。
6、AS里點擊Build->make project就可以生成.so了
.so在這里H:\NdkJniDemo\app\build\intermediates\ndk\debug\lib
把這幾個文件夾拷貝到app的libs目錄H:\NdkJniDemo\app\libs
6、現(xiàn)在可以運行了,結(jié)果大家看真機吧,我這里不截圖了