在很多的工程中安卓工程中扑庞,有許多底層代碼都是用C/C++寫的氏淑, 且很多會(huì)封裝成庫,因?yàn)镃/C++的代碼效率高狂秘,所以就有一個(gè)問題是如何生成安卓可調(diào)用的動(dòng)態(tài)庫即so文件骇径, 下面一一到來
下載NDK
如果國外官網(wǎng)的下載速度太慢,可以找一些國內(nèi)的網(wǎng)站
http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform-sdk-download-mirror.html
http://blog.csdn.net/gyh198/article/details/75036686
或者可以復(fù)制下載鏈接用迅雷下載
我下載的是這個(gè)版本 android-ndk-r16-windows-x86_64 非安裝版本的-
解壓文件者春。
設(shè)置系統(tǒng)變量破衔,在系統(tǒng)變量PATH添加剛才解壓的NDK文件路徑
設(shè)置成功后在CMD中執(zhí)行
ndk-build
會(huì)出現(xiàn)如下
否則會(huì)提示找不到命令
注意:
(1)NDK的路徑一定要選到這一層
(2)系統(tǒng)變量有時(shí)候剛設(shè)置完后并不會(huì)使能,可能需要重啟電腦
- 創(chuàng)建Android.mk文件以及Application.mk文件
Android.mk文件內(nèi)容如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY)
其中第三行hello為要輸出的文件名稱钱烟,第四行為要編譯的文件晰筛,如果是多個(gè)文件用 \ 換行,每行一個(gè)C/C++文件
這個(gè)文件的具體語法可以參考這篇文章
http://blog.csdn.net/ymangu666/article/details/23657565
http://blog.csdn.net/qq_695538007/article/details/44339643
下面是Application.mk 文件
APP_STL := stlport_static
如果系統(tǒng)中只有C文件的話拴袭,這個(gè)文件可以不要读第。
具體的語法參考如下文章
http://blog.csdn.net/wang_shaner/article/details/41479721
NDK目錄下新建JNI文件夾
把要編譯的C/C++文件,上面建的兩個(gè)文件拥刻,都放入其中在CMD窗口下怜瞒,切換到NDK目錄下
然后執(zhí)行
ndk-build
編譯成功后,會(huì)自動(dòng)生成兩個(gè)文件夾libs般哼, 和obj
libs下就是針對(duì)不同平臺(tái)生成的so動(dòng)態(tài)庫文件
任務(wù)圓滿完成吴汪!