寫在正文之前:
幾個月沒有更新博客,感覺有點生疏了,所以說不能斷,一斷人就懶。
其實這幾個月也并不是什么事也沒有做,俺可是時刻想著今年的任務呢,10本書,30篇博文...,這幾個月間斷性的也是在學習中,學H5,學設計模式,以及NDK JNI開發(fā)等等。
學習JNI主要是因為公司有一些COCOS游戲需要添加計費點,而又沒有真正的游戲開發(fā)人員,這個重任就落到我身上了,然后就是各種虐,一虐到底,苦不堪言,這種虐并不是學習技術的虐,而是一款游戲用于N種計費點,不停的改改改,那個需求這個需要的,然后你就等著被玩吧。
正文
OK,言歸正傳,說到NDK,相信大家都不陌生,它是Google為便于Android開發(fā)提供的一種原生開發(fā)集:Native Development Kit,而且也是一個包含API、構建工具、交叉編譯、調試器、文檔示例等一系列的工具集,可以幫助開發(fā)者快速開發(fā)C(或C++)的動態(tài)庫,并能自動將so和java應用一起打包成APK。
與NDK密切相關的另一個詞匯則是JNI,它是NDK開發(fā)中的樞紐,Java與底層交互絕大多數都是通過它來完成的,那么接下來看看什么是JNI?
JNI:Java Native Interface 也就是java本地接口,它是一個協議,這個協議用來溝通java代碼和本地代碼(c/c++)。通過這個協議,Java類的某些方法可以使用原生實現,同時讓它們可以像普通的Java方法一樣被調用和使用,而原生方法也可以使用Java對象,調用和使用Java方法。也就是說,使用JNI這種協議可以實現:java代碼調用c/c