1. 程式人生 > >Android工程依賴:android中打包帶有Activity以及資原始檔的jar包在工程中呼叫

Android工程依賴:android中打包帶有Activity以及資原始檔的jar包在工程中呼叫

這是因為android的特殊性,android不僅有java檔案還有res檔案,需要研究如何將資源以及activity檔案打包成jar檔案供其他 專案呼叫,最終多方嘗試,找到如下兩種方案。方案二是從android的官方文件中找到的完美解決方案。方案二更優,方案一要求兩個工程包名最好一樣,而 方案二不需要包名一致。
  方法一
1將A工程 的src資料夾下面所有的內容 匯出 jar包。
2保留 res下的 圖片,xml 等資原始檔, 還有 AndroidManifest.xml 的內容。
3將A工程的jiar包 匯入到B工程中, res中的檔案放到相應的資料夾下面。 AndroidManifest裡面的Activity複製到B的對應檔案。
這個時候存在兩個工程 包名 不相同的情況, 容易出錯, 最好兩個工程保持一致。
這樣完成了 B 工程 對 A工程的整合。

  
   方法二:(android的官方文件)
 將其中一個專案設定為引用的庫,在另一個專案中新增這個庫引用。
  簡單點的做法是
  在被引用專案A中的project-properties 中新增一行 android.library=true
  在引用的專案B 中新增android.library.reference.1=../A
  其中 1表示引用的包的序號,“../A”表示引用的專案的路徑
  具體做法如下:
第一步,把普通的android project設定成庫專案
  庫專案也是一個標準的android專案,因此你先建立一個普通的android專案。 這個專案可以起任何的名稱,任何的報名,設定其他需要設定的欄位等,。
  接著把專案設定成庫專案,步驟如下
在Package Explorer中, 滑鼠右鍵專案資料夾,點選 Properties.
在Properties 視窗, 選擇"Android" ,Library屬性顯示在右下邊.
把"is Library" 單選框選擇上,再點選 Apply.
點選 OK 關閉Properties 視窗.
  這時,這個專案就變成庫專案了。
  當然,java專案也可以讓其變成一個庫專案,非常簡單,執行上面的四步。其他程式專案就可以引用庫專案了。
  605x419
   圖 1.使一個專案為庫專案
建立manifest檔案
  一個庫專案的manifest檔案也和標準的android應用程式一樣,宣告所有共享的元件。
  比如APIDemo中的TicTacToeLib 這個例子,庫專案聲明瞭Activity GameActivity:
  <manifest> ... <application> ...<activity android:name="GameActivity" /> ...</application> </manifest>
第二步 引用庫專案
  如果你開發的應用程式想要包括庫專案中的程式碼和資源,非常簡單,引用步驟如下
在Package Explorer中, 滑鼠右鍵專案資料夾,點選 Properties.
在Properties 視窗, 選擇"Android" ,Library屬性顯示在右下邊.
點選Add ,打開了Project Selection對話方塊.
從可用庫專案列表選擇一個專案,然後點選 OK.
對話方塊關閉之後點選 Apply (在Properties視窗).
點選 OK 關閉Properties 視窗.
  完成以上六步,Eclipse 會重建專案,把庫專案中的內容包含進去。
 
  讓專案引用一個庫專案
  如果你想增加多個庫專案的引用,使用up和down可以設定他們的相對的優先順序和合並順序。工具在合併引用的庫的時候順序是從低優先順序(列表的下面)到高優先順序(列表的上面)。 如果不只一個庫定義了相同的資源ID,這個工具選擇資源時會選擇高優先順序的資源。應用程式自身擁有最高的優先順序,自身的資源zThe application itself has highest priority and its resources arealways used in preference to identical resource IDs defined in libraries.
  在menifest檔案中宣告庫中的元件
  在manifest檔案中必須增加對在當前程式中用到的庫專案中的所有的元件。比如,你必須宣告任何用到的 <activity>, <service>, <receiver>,<provider>等,<permission>,<uses-library>,和其他類似的元素。
  宣告庫專案中的元件時,必須使用包含包名的類全名。
  在TicTacToeMain例子中,宣告庫ActivityGameActivity :
  <manifest> ... <application> ...<activity android:name="com.example.android.tictactoe.library.GameActivity"/> ... </application> </manifest>
  需要了解更多關於androidManifest的資訊請參閱AndroidManifest.xml.