2013年4月27日 星期六

說說,專案import jar檔或是其他專案的方法。


在android中,我們開發專案時常常會需要其他朋友所開發的輪子,
於是就會需要improt其他專案檔或是封裝好的jar檔。

這有許多好處:

  1. 避免重複開發:
    自己或是有找到已經開發過的系統,我們可以直接引用來使用,
    加快開發的時間。
  2. 專職分工:
    在合作開發上,每個人負責一個獨立的需求的系統,
    由team leader或是專職負責的人來進行整合的工作。
    此時將它做成專案檔或是jar檔就很有用了,
    如果配合上足夠的java doc,對於公司或是開發的同步速度上會有很大的幫助。
  3. 分享:
    就像是工具箱的功能,網路上也有許多神人與強者分享自己所開發的jar檔,
    這真的很偉大,尤其是有許多朋友提供了其中的source code給大家進行更多優化,
    未來我們也應該要多做這樣的事情來貢獻軟體產業才是。
所以,在合法使用的前提之下,我們可以盡量import專案或是jar檔來達到快速達到功能需求的目的。至於我為什麼會一直提到"improt專案和jar檔"呢?

因為目前我知道的有兩種方法可以避免重複創作輪子:
  1. jar檔:
    副檔名為".jar"的單一檔案,其中大多為許多class,為實現特殊需求所創作出來的工具箱,
    之後我們會有個簡單的範例來教學如何import jar檔。
  2. 專案檔:
    我想如果有開發過google map api for android v2的朋友應該會有印象,我們會add一個google所開發的專案作為lib。我們也可以自己製作一個完整的專案來讓其他專案import呢!
順道一提,.jar檔基本上如果沒有擾碼,其安全性是非常低的,
可以使用反組譯的方法來看到其中的source code。
不過如果正常使用的範圍,基本上是不需要這樣操作的,
而通常我們自己做的工具箱不太會需要把它封裝成.jar檔,
大多是設定為"Is Library"來作為讓其他專案引用的接口。

好,說到底,方法很簡單。首先我們來實作怎麼樣import .jar檔案:

  1. 首先,把.jar檔放到"libs"資料夾中,這不是最重要的。
    等等我們會設定參考位置,你也可以放在外部資料夾中,
    這樣的話要注意所放置的位置必須不能改變,要不牽一髮而動全身呀。
  2. 接著看圖片:
    1. 對著專案案右鍵,選擇Properties:
    2. 然後如果你是放在"libs"資料夾中的話,參考位置的設定依照下列步驟:
    3. 如果是放在外面,可以選擇右邊第二個"Add External JARs.."選項,
      選擇外部的檔案來使用。
  3. 如果完成的話,會發現我們可以開始使用.jar檔裡面的class啦!
    至於有件很重要的事情便是:"該怎麼知道裡面有什麼東西?"

    這時我們除了對他反組譯之外,在下載時所看到的doc或是範例就很重要了。除此之外,我們也可以直接用檔案名稱來google,通常也可以找到相關的說明文檔。例如之前分享過的專案(see: 說說,關於文件匯出至Excel檔案中。)可以直接搜尋"jxl.jar",會找到一些相關的資料。
嗯嗯..我還是建議放在"libs"的資料夾中,話說這個資料夾在以前稱之為"lib",在2012年大概六月底左右eclipse的android ADT改版,當時除了create new project的流程大改之外,也改了一些結構的部分,所以如果當時有更新這波流行個開發者們會突然發現之前的project都不能run了,主要就是原本import的jar檔連結斷掉,不過解法其實很簡單,只要稍微改資料夾名稱就好哩。

然後接下來,是開發project透過import來引用的作法。
這我覺得還滿重要的,因為我們常常同時一起開發一個專案,如果我是PM或是team leader,我應該怎麼管理RD的工作方式,以能夠有最好的效率呢?

目前我的解如下:

  1. 將目前規劃的app依照需求功能切分和分類的動作。開始進行功能實現調查的動作。
    1. 功能調查完畢,我們應該會獲得所有功能完整的實作參考,甚至是demo。
  2. 此時便開始分工了,leader開始建構主程式的架構部分,實做出接口。
    1. 其他人同步開始將所負責的功能做成project,並且依照架構提供接口。
    2. 此時會架構出工具箱,提供未來開發需求時使用。
  3. 最後leader或是負責整合的夥伴,依照其他人所提供的project與doc來進行整合的動作,將系統完整建構出來。
  4. 依照該app的case進行最後修改的動作,例如刪除工具箱中不需要的功能,或是依照特殊的需求整理project的function。並且最最後壓力測試。
  5. 可靠度測試完成後,將app上線!
真的是完美的如意算盤。當然如果整個case只有一個人來做的話,這一切就只有一個人來弄了。
其中第2點和第3點的步驟中,我們將project設定成可以給其他夥伴使用的project,關鍵在這裡:
該project的Properties之中,設定為一個library用途的project,
而在main project中,要按下Add來選擇之前所設定的project,示意圖如下:
這和import .jar檔有什麼不一樣呢?
  1. 他是android獨特的import方法,可以用來import android相關的應用,包括了Activity和Service等相關類別。
  2. 因為是直接import編輯檔,所以可以一邊使用一邊檢查/修改所import的project。
    不過要注意,當library project修改過後,main project需要Refresh(按F5)過後才會重新更新鏈結,達到更新的效果。
  3. 系統功能分類會更加明確,可能不同的功能會需要相對應不同的res資料,透過這個方法我們可以將工具箱所需要的res資源分類的更好,但是另外一面來看我們也會發現可能會造成app檔案太大的問題,所以在最後才會需要有所整理的動作。

以上,個人認為import project非常好用。而以上提供兩種方法,希望對大家有所幫助。











沒有留言:

張貼留言

你好,我是小書,如果文章內容有錯誤,或是看到有建議以及任何感想時,歡迎提出分享,我們一起學習一起努力。

追蹤者