android代碼共享(so和jar)

我們在開發過程中,肯定要碰到複用已有代碼的情況,最簡單的方法是直接拷貝源代碼

但是個人認爲這樣有如下幾個缺點:

1:如果源代碼很多,會給代碼管理造成很大的不便

2:代碼對使用者來說,不是隱藏的

所以最好有方法,將我們的代碼打包成一個文件供使用者調用,然後我們只需要提供接口文檔供他人查閱即可。


這種打包後的文件,在linux c++層,就叫庫,在android java層就叫jar包


庫在linux c++層,又分爲靜態庫和動態庫,靜態庫一般以.a結尾,動態庫都以.so結尾

jar包則不分靜態包和動態包,二則都一樣


什麼叫靜態和動態?

靜態就是在編譯期,就把.a或者jar裏的代碼,鏈接到目標文件裏了

動態則在運行時動態加載.so或者jar內的代碼,那有個問題,系統如何去找尋我們想要動態加載的so或者jar呢?

對so來說,我們可以在LD_LIBRARY_PATH這個環境變量裏設置指定so的路徑,對於jar來說,則是CLASSPATH


順道說下,在eclipse中,靜態引用jar包,很簡單,只需要在工程根目錄下,建一個libs文件夾,將jar文件放入即可。

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