1. 情境
通常我們開發的app 不止一個,並且這些app 中有一些通用的模組,比如一些util 方法或
者我們自訂的控制項。通常我們將這部分代碼copy 到不同的工程中實現複用,隨之而來的麻煩
就是當我們對這部分代碼稍有該動就需要同時在多個工程中進行修改,這種重複性工作的感覺跟
吃屎差不多。
那麼有什麼好的方法實現複用並切避免吃屎?那就是使用Android 中的Library 工程,並
且相比jar 包而言,他可以實現資源檔的複用甚至覆蓋。
2. 具體步驟
• 建立library 工程
建立Android Project,命名為demo-common,建議不Create Activity
將demo-common 設定為library
點擊ok,然後查看一下properties 檔案中的變化
完成公用的模組,這裡我們實現一個activity 一個util 類和一個自訂的view。
TextUtil 實現一些靜態方法,MyImageView 是eoe 中一個開發人員模仿winphone
磁貼效果的控制項。
•建立新的的工程
建立一個Android Project,命名為demo-project
為demo-project 添加demo-common 的引用
看一下添加demo-common 後,demo-project 的變化
其中多了一個R.java 檔案,但是兩者的內容相同。
新產生的R 檔案包含並且覆蓋了demo-comment 中R 檔案的所有定義的資源id。
包含就是為common 中的資源產生id 供project 使用;覆蓋就是project 中的資源
id(或name)與common 同名時會保留project 的,產生apk 後,common 中的
代碼所使用的是project 中的資源。
properties 檔案中也多了一個引用的定義。
在demo-project 中使用TextUtil 和MyImageView,並且實現介面的跳轉。
注意:使用common 中的Activity 時,需要在project 的manifest 檔案中進行相應
的聲明。因為manifest 設定檔是獨立給工程的,不能複用。例子中我沒有在common
的manifest 聲明AboutActivity,但是在project 中必須聲明。
3. 總結
使用Library 的好處顯而易見,模組化設計實現代碼共用,便於管理提高效率,避免不必要
的吃屎經曆。
摘自 icePhone