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