前序:
嫌無聊的請?zhí)^。上次發(fā)博文是同年8月,時光荏苒,空閑時間少,現(xiàn)在都接近年關(guān)了,其實這4個月學(xué)了很多,接觸了IM(非第三方),學(xué)習(xí)了 golang 并采用它成功完成仿朋友圈頁面的服務(wù)端api,等等..等等..,由于這個問題的確是業(yè)界超級"毒瘤",趁午休時間,盡我程序員的"干貨"思維,少廢話,盡通俗。
碼字發(fā)文。
一,問題描述
先簡單闡述下幾個概念,這些不是重點。
1,Android 編譯時候的 api 版本,指的是你要生成的這個 apk 所依賴的 sdk 版本,例如 api 23 即是 Android 6.0 ;
2,.so 動態(tài)鏈接庫,為 Linux 下的庫文件,Windows 是 .dll,Android 是基于 Linux 內(nèi)核的,所以使用的是 .so,在安卓上面,一般由 C/C++ 語言進(jìn)行 Jni 編程后,采用 NDK 工具編譯后所生成的,可以參考下我之前的一篇教程博文:http://www.cnblogs.com/linguanh/p/4624768.html
3,.so的作用,主要是提供系統(tǒng)底層函數(shù),供應(yīng)用層使用。不用它行不?可以,在Android已經(jīng)提供了的情況下,你不需要再自己添加,例如一個 View 的繪制,里面都有很多 Native 關(guān)鍵詞的函數(shù),這個就是底層函數(shù),Android api 對應(yīng)的是它已經(jīng)提供了。那么如果,你老板要去實現(xiàn),語音,圖像,視頻處理等系統(tǒng)沒有的功能,你就只能自己寫 .so 來供調(diào)用了。
問題來了: