關於NDK的那些事

說到NDK,那就要先說說cygwin。

cygwin:是一個相當於Android虛擬機一樣的東西,它是Linux系統的虛擬機,作用是編譯成爲so文件,具體的等會詳細說。

NDK:它可以讓我們在開發環境中使用本地語言來開發應用,比如說c、c++;

接下來我們說說這些內容的關係和使用:

首先說關係:使用NDK9之前版本編寫c代碼時,需要藉助cygwin工具完成編譯so的過程。NDK相當於編寫Android應用的SDK,屬於第三方庫文件。而如果使用NDK9,或者以後的版本,由於對Android的版本要求比較高,所以還沒有應用廣泛。

再來是使用:最重要的是使用NDK,那麼如何使用呢?我們首先安裝cygwin,在虛擬機中配置NDK的路徑。(.bash_profile文件,在cygwin的home目錄中。)

雙擊運行cygwin,

輸入命令:$ cd $NDK 

如果顯示NDK的路徑就說明配置成功了。

編寫c代碼,在cygwin中有默認的代碼模板,我們可以修改它作爲我們需要生成so文件的c代碼

之後我們在cygwin中輸入

$ $NDK/ndk-build

就可以生成so文件了。找到文件後將文件考入我們的項目中(libs/armeabi)沒有則創建。


爲什麼要用NDK:

從好處來講,我們的關鍵代碼比如加密等需要使用c來編寫,因爲它可以很好的防止反編譯程序。c的代碼運行速度快。


我們爲什麼要使用NDK生成so文件呢?

在Windows系統中,使用編譯工具編寫的c代碼編譯後生成dll文件,Linux系統中編寫c代碼後生成so文件。而dll是不可以在Linux系統中運行的,所以我們就需要一個cygwin虛擬機模擬Linux系統,從而幫助我們生成so文件的操作。我們知道,Android應用時運行在Linux中,所以我們的c代碼只有生成so文件纔可以讓應用運行在Linux平臺上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章