移動程式開發101(2-1)-環境與開發框架
文‧圖/何孟翰 2012/4/12 下午 03:40:43
移動式的手機平板應用程式開發,也就是俗稱的app開發在2012年依然是紅透半邊天,從iPhone4S到最新的The New iPad,從變型金鋼,Prime到現在的Infinity,不管你是開發者或者是使用者,你可以發現這種智慧型手機已經影響了你我的生活。在前一章中我們說明了開發上手的一些準備工作,在這一回讓我們在環境準備充足之後,作一些更深入的探討。
智慧型手機最令人注目的兩大陣營,也就是iOS和Android這兩個陣營之所以能夠如此被開發者注意,是因為它們的開發語言。在Android陣營使用的是Java的語言,在iOS使用的是Objective C的語言。這一回在實際操作這兩種語言進行開發並且比較之前,讓我們看一看這些語言與它們相關的議題。
Java語言
Java自從Sun被Oracle買掉之後,就成為Oracle的產品之一,但如果你是Java的開發者的一員,最近一定會看到一則消息,它的連結如下:
https://blogs.oracle.com/henrik/entry/updated_java_6_eol_date
也就是說,依照Java的開發支援發展計畫,一個Java的版本,會有三年的正式發行,之後會有一年的更新,最後再過六個月就會進入尾聲,也就是在2012年的11月之後,Java6.0就會停止支援。除非是商用再另外和Oracle簽約,不然是得不到更新的版本。
或許你會覺得這個和Android的開發有什麼關係,事實上,目前的Android建置環境必須要依賴Java,也就是JDK6.0系列來作為建置的基礎。因此如果JDK6.0不再提供更新,而必須要使用JDK7.0時,開發者有沒有什麼需要注意的事項呢?
Eclipse與JDK
不管你使用的是哪一種作業系統,事實上Java這種跨平台的特性,與虛擬機器的本質,其實都會讓Java與作業系統維持著抽離的本質。也就是說,事實上一個系統中可以安裝多份Java,而一份Java的環境,在不同的作業系統下,理論上應該也能夠維持同樣的行為。
因此,以Android的開發者的我們,事實上對於Eclipse和Java也要有著一定程度的了解。在Eclipse底下是可以有著多套的JRE/SDK的。當Eclipse運行起來後,請你打開使用者偏好,在Java的Installed JREs可以看到Java的設定路徑如圖1。

▲ 圖1 在Eclipse下檢視所安裝的JRE/JDK
或許你所安裝的JRE/JDK並沒有完全被Eclipse所偵測到,此時請你就按下Add,可以手動安裝自己所需要的JRE/JDK。
但是此時請你注意,目前的Android SDK是沒有支援JDK1.6之外的版本。也就是說,JDK1.7目前是不支援的。雖然說在可預見的未來,這個部份即有可能會被改善,不過目前如果你需要讓Android SDK在JDK+Eclipse的環境底下執行,你可以使用如下的方式,請你在Eclipse底下先安裝好JDK 1.7(請注意,是Java Development Kit而不是JRE的Java Runtime Environment)。並且請你切換到Java的compiler的設定項,並且將JDK Compliance的層級設定成1.6如圖2。這樣你就可以有一個相容於JDK1.6,也就是可以編譯Android的環境,但是卻是JDK1.7的系統運行。

▲ 圖2 設定Java的相容性層級為1.6
不同JDK版本之間的共存
或許你會想,既然可以使用這種相容的模式,是不是只要這樣設定就萬無一失了。然而如果你實際實作,你會發現不同的版本的JDK所附的工具還是不大相同。舉例來說,如果你有在使用Google的地圖元件,你會知道系統是需要使用一個叫作keytool的工具作簽章。JDK1.6與之前的簽章是使用MD5作為簽章的碼,而JDK7之後是使用SHA1,如果你要使用不同的版本的Java與工具,那還是必須要稍微留意一下這些版本之間的差異性,才不會在開發時會有不可預期的狀況發生。