因為有一些人對 Android 3 與手機的關聯無法搭上線,在這邊記錄一些 FAQ:
1. 手機應該和 android 3 無關吧!小弟還特別到官網讀了正式文件,確認 android 3 是給平板電腦用的,android 2 才是給手機用的,後續或許會整合,但那是以後的事了不是嗎?
Android 3 是 Android 最新版號,而且向下相容多數 API。用 Android 3.2 SDK 來開發 2.x 版本(手機)的應用程式完全沒有問題。
第四版主要使用 3.x 的 SDK,只有要使用手機的虛擬機器時,才使用 2.x SDK 提供的虛擬機器(因為 3.x SDK 中只附了平板虛擬機器,沒有附手機版的虛擬機器)。採用本書寫法的話,程式在平板和手機上都能正常運行。您可以拿您手邊現有的任一開發中 App 來測、或等拿到書的時候照著試試,看看是不是確實能在 3.x SDK 上開發手機應用程式。
2. 本書既然叫 Android 3,卻沒有講平板用的 fragment API?首先,這是一本入門書。這本書內容和其他同類書籍不同,關注的是跨版本的基礎知識(所以書名叫「入門」)。封面說明的部份有寫,想傳達的是用這本入門,就算是更新的版本拿來一樣適用。在寫現在版本時想的是善用開發工具、與市面上主流版本相容,而非關注新功能。
而現在平板在 Android 系統中的市佔率 1.2%,要撐起書市還不到時機(個人意見)。一般入門的開發者(本書的預設讀者群)會專為了 1.2% 的使用者而開發?我認為不會。
有些開發基礎,而又看過我的書的人,應該知道我一貫建議去官方網站查這些進階的 API,而不是苦苦等中文書。
平板的 fragment API(將畫面分隔的 API)有兩種版本,一種是向後相容版,可以跑在 Android 2.x 機種上。另一種是原生版,只能跑在 3.x Tablet 上。根據我個人的評估,這兩種 API 還會有某種程度的改動,除非是專為了平板而開發,不然學習 fragment API 還不是時候(也許等到 Ice Cream Sandwich?)
3. 看第四版的目錄好像沒有講到 Android 3 的特性?
其實各種新東西講了不少,但都已經整合在各個章節中,融入了整個學習過程裡。
在主要開發手機應用程式的情況下, 2.x 和 3.x 還有什麼差別哩?3.x 版為了平板做很多事情,若是還繼續用 2.x SDK 開發,程式放到 Tablet 上會有些 "不太 Native" 的感覺,如選單會出現在平板的下方,而不是如其他內建應用程式顯示 Action Bar 在上方。
比起專為平板設計一份程式碼,在 Android 上要解決這些問題較容易。本入門書第四版的目標是「寫一次,就能在手機、平板、Google TV 等設備上執行」。
因此我是以這樣的想法,以手機為主,在維持本書架構的開發過程中,加入更多實際經驗與技巧,來協助 Android 應用程式開發的入門者或剛接觸平板等機種的開發者。第四版除了圖片重新擷取之外,內容大概有 30~40% 的改動。新版加入了一些新章節,介紹了選單、關連選單、App Widget(桌面小工具)與平板相容設定。還加上了 AsyncTask、Admob 等章節,在主要使用者為手機的情形下,也能讓平板的使用者得到不錯的使用經驗。
「雖然平板等機種的數量少,但如果不麻煩的話,還是盡可能支援吧?」如果您贊同這樣的想法,那看這本書可以得到您想要的。
不必懷疑,這是我的誠意之作。
PS: 本書歷版以來都追求和市面其他書籍不同,不求全,只追求初學者透過本書能確實理解 Android 應用程式開發,並能投入實用。我一直以支持入門者的想法來改版或寫作。除非是 spam,不然大可不必揣測我會隨意砍誰的回覆。