Android項目中打jar包 和 使用

文章轉自:http://blog.csdn.net/tmj2014/article/details/32718127


因爲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項目。 這個項目可以起任何的名稱,任何的報名,設置其他需要設置的字段等,如圖1所示。

接着把項目設置成庫項目,步驟如下

  1. Package Explorer中, 鼠標右鍵項目文件夾,點擊 Properties.
  2. Properties 窗口, 選擇"Android" ,Library屬性顯示在右下邊.
  3. 把"is Library" 單選框選擇上,再點擊 Apply.
  4. 點擊 OK 關閉Properties 窗口.

     這時,這個項目就變成庫項目了。

     當然,java項目也可以讓其變成一個庫項目,非常簡單,執行上面的四步。其他程序項目就可以引用庫項目了。

    圖 1.使一個項目爲庫項目

    創建manifest文件

    一個庫項目的manifest文件也和標準的android應用程序一樣,聲明所有共享的組件。

    比如APIDemo中的TicTacToeLib 這個例子,庫項目聲明瞭Activity GameActivity:

<manifest>
  ...
  <application>
    ...
    <activity android:name="GameActivity" />
    ...
  </application>
</manifest>

    第二步 引用庫項目

    如果你開發的應用程序想要包括庫項目中的代碼和資源,非常簡單,引用步驟如下

  1. Package Explorer中, 鼠標右鍵項目文件夾,點擊 Properties.
  2. Properties 窗口, 選擇"Android" ,Library屬性顯示在右下邊.
  3. 點擊Add ,打開了Project Selection對話框.
  4. 從可用庫項目列表選擇一個項目,然後點擊 OK.
  5. 對話框關閉之後點擊 Apply (在Properties窗口).
  6. 點擊 OK 關閉Properties 窗口.

    完成以上六步,Eclipse 會重建項目,把庫項目中的內容包含進去。 如圖2所示

      圖 2.讓項目引用一個庫項目

      如果你想增加多個庫項目的引用,使用up和down可以設置他們的相對的優先級和合並順序。工具在合併引用的庫的時候順序是從低優先級(列表的下面)到高優先級(列表的上面)。 如果不只一個庫定義了相同的資源ID,這個工具選擇資源時會選擇高優先級的資源。應用程序自身擁有最高的優先級,自身的資源zThe application itself has highest priority and its resources are always used in preference to identical resource IDs defined in libraries.

 

      在menifest文件中聲明庫中的組件

      在manifest文件中必須增加對在當前程序中用到的庫項目中的所有的組件。比如,你必須聲明任何用到的 <activity>, <service>, <receiver>, <provider>等,<permission>, <uses-library>,和其他類似的元素。

聲明庫項目中的組件時,必須使用包含包名的類全名。

      在TicTacToeMain例子中,聲明庫Activity GameActivity :

<manifest>
  ...
  <application>
    ...
    <activity android:name="com.example.android.tictactoe.library.GameActivity" />
    ...
  </application>
</manifest>

    需要了解更多關於androidManifest的信息請參閱 AndroidManifest.xml.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章