Eclipse中Android公共庫的正確建立及呼叫方法

徐明璐的部落格發表於2014-11-24

之前一直頭痛於沒有辦法在多個程式中共享資源,用作公共類庫的方法也是使用的匯出jar再匯入的辦法,現在終於初步搞明白了,可算解脫了~,分享出來。

建立公共庫

首先建立公共庫的Android專案,名為MyCoreLib:

SNAGHTML664342b

完成後在左側包瀏覽器裡右鍵點選我們新建的這個專案,選擇Properties項:

image

左側選擇Android分類,右側勾選Is Library選項:

SNAGHTML668b0c9

完成後在包資源管理器中刪除預設生成的資源,以避免以後被引用時衝突:

image

開啟AndroidManifest.xml,刪除下圖中紅色部分程式碼:

image

新增測試用資源

至此初始的空庫就建立完成了,現在我們來新增一個資源以供其他程式使用,我在這裡僅新增了一個名為libName的字串資源:

image

建立測試專案並引入公共庫

現在新建一個名為LibTest的專案來嘗試呼叫公共庫:

image

還是右鍵點選專案,選擇Properties:

image

還是左邊選擇Android分類,右邊點選Add按鈕選擇以新增MyCoreLib類庫到專案:

SNAGHTML673f825

完成後即新增到專案中來了:

image

此時還能看到gen目錄下也已經有MyCoreLib的包名及其資源ID了:

image

但此時你會發現字串資源裡莫名其妙多出兩個之前已經刪除的資源,這其實是因為此時已將引用的資源與程式預設包裡的資源混編在一起了,你可以看到上面預設包裡的資源ID和下面這裡也是一模一樣的。

換言之,你可以以使用本地資源的方式直接呼叫引用來的資源。

測試呼叫公共庫的資源

比如在AndroidManifest.xml裡這樣修改:

image

在java程式碼中也同樣是使用呼叫預設資源的方式直接呼叫即可,當然也可以顯示加入公共庫的包名以呼叫;但加入顯示包名的方法在XML檔案中行不通,多次嘗試都提示找不到資源,也就是說在XML中只能以呼叫預設包資源的方式呼叫公共庫資源。

編譯並執行效果:

SNAGHTML68111cd

可以看到之前我們在公共庫中設定的資源內容被正確顯示出來了。

結語

這種呼叫方式不只是使資源呼叫成為可能,公共程式碼在編輯起來也比jar方式方便許多,非常實用。

之前網上尋找此方法許久都沒獲知,此時突然想起參考Scoreloop的引用方法,總算將其搞明白了。

相關文章