Eclipse中Android公共庫的正確建立及調(diào)用方法
之前一直頭痛于沒有辦法在多個程序中共享資源,用作公共類庫的方法也是使用的導出jar再導入的辦法,現(xiàn)在終于初步搞明白了,可算解脫了~,分享出來。
建立公共庫
首先建立公共庫的Android項目,名為MyCoreLib:
完成后在左側(cè)包瀏覽器里右鍵點選我們新建的這個項目,選擇Properties項:
左側(cè)選擇Android分類,右側(cè)勾選Is Library選項:
完成后在包資源管理器中刪除默認生成的資源,以避免以后被引用時沖突:
打開AndroidManifest.xml,刪除下圖中紅色部分代碼:
添加測試用資源
至此初始的空庫就建立完成了,現(xiàn)在我們來添加一個資源以供其他程序使用,我在這里僅添加了一個名為libName的字符串資源:
建立測試項目并引入公共庫
現(xiàn)在新建一個名為LibTest的項目來嘗試調(diào)用公共庫:
還是右鍵點選項目,選擇Properties:
還是左邊選擇Android分類,右邊點擊Add按鈕選擇以添加MyCoreLib類庫到項目:
完成后即添加到項目中來了:
此時還能看到gen目錄下也已經(jīng)有MyCoreLib的包名及其資源ID了:
但此時你會發(fā)現(xiàn)字符串資源里莫名其妙多出兩個之前已經(jīng)刪除的資源,這其實是因為此時已將引用的資源與程序默認包里的資源混編在一起了,你可以看到上面默認包里的資源ID和下面這里也是一模一樣的。
換言之,你可以以使用本地資源的方式直接調(diào)用引用來的資源。
測試調(diào)用公共庫的資源
比如在AndroidManifest.xml里這樣修改:
在java代碼中也同樣是使用調(diào)用默認資源的方式直接調(diào)用即可,當然也可以顯示加入公共庫的包名以調(diào)用;但加入顯示包名的方法在XML文件中行不通,多次嘗試都提示找不到資源,也就是說在XML中只能以調(diào)用默認包資源的方式調(diào)用公共庫資源。
編譯并運行效果:
可以看到之前我們在公共庫中設(shè)置的資源內(nèi)容被正確顯示出來了。
結(jié)語
這種調(diào)用方式不只是使資源調(diào)用成為可能,公共代碼在編輯起來也比jar方式方便許多,非常實用。
之前網(wǎng)上尋找此方法許久都沒獲知,此時突然想起參考Scoreloop的引用方法,總算將其搞明白了。