Skip to main content

· 2 min read

蛋糕賣完賣焦糖布丁,書一年改了三版,真是太瘋狂啦!

當初寫作這本書的目標,就是成為學習 Android 基礎的第一本入門書,我想我有做到最好。對我來說,每個讀者當下拿到書可能只會看一遍。如果看到的內容與新版 Android 有所差距,雖然可以很容易歸因於 Android 改版太快,但我覺得作者也應該負上責任。

Android 自 1.6 版後,引入了新的 SDK 工具架構,讓整個版本升級更容易。同時因為升級容易,Android 的改版也變得更快速(現在幾乎是一個月出一個新版本),這讓寫作入門書的挑戰變得更大。這次針對 Android 1.6、2.0 之後所引進開發工具新架構的大改版,讓新讀者入門時更順暢、也讓舊讀者能順利熟悉新版 Android 環境,並有足夠知識去使用各種 2.x 版的後續版本更新。

這個版本加入 SDK 開發工具介紹,說明 Android 各版本與開發工具之間的關係;解釋了多種解析度機種的區別與開發 / 測試方式。同時因為書籍範例的完成度很高了,也將各章的範例操作完全獨立開來,每章都附有可直接對照進度的程式碼,更易於新手入門時對照學習。

期望在新的一年裡,可以騰出手來,好好研究一些進階的技術,繼續與大家分享。

· 3 min read

雖然有一堆文件或介紹影片,但再怎麼口沫橫飛,還是不如看上一段 Chrome OS 實際操作影片來的直覺。

總而言之,對專業工作者(繪圖、Coding、玩家)來說,Chrome OS 並不是理想的系統,但看 DEMO 對一般使用來說,上網聊天種菜儘管夠用了。

我看到 Chrome OS 的幾個重點在

  • Thin Client
  • 2 partitions for the root file system
  • Web Apps + Local Media Player Thin Client

Chrome OS 真的把所有 OS 中常見的東西都拿掉了。桌面基本上就是個 Chrome 瀏覽器。但也可以切換桌面,切換桌面就是切換帶有不同頁籤的 Chrome 瀏覽器。

2 partitions for the root file system

2 個可置換的 root file system 是高階嵌入式系統中常見的配置,有了這樣的備援方式,OS 基本上就很難更新失敗,更新失敗了也可以救回來。

Web Apps + Local Media Player

除了閉著眼都猜的到的 Google Gmail/Doc 之外,也內建了 Notes/Tasks Panel。玩遊戲靠 Flash,播 SD 卡 / 線上的 MP3 / 影片則可以呼叫系統提供的播放工具。有 Local Media Player 至少沒連網路時也不會太糟。

對了,登入時一定得用 Google 帳號密碼,登入後使用各種 Google 服務時就不用再登入一次。這種作法有沒必要,可能得再深入點實際使用過才知道。如果我是詐騙集團,現在就趕緊來釋出一版 Chrome OS 下載版,相信可以偷到很多 Gmail 帳號;)

如果要寫 Chrome OS 上層的應用程式,只能用 HTML5、Javascript、Flash 這些工具,來撰寫網站或是 Chrome Extension。

Chromium 是 Chrome OS 跟 Chrome 的開源專案。

目前唯一在這個 OS 上開發程式的方式,是透過類似 Firefox Extension 的瀏覽器外掛套件方式達成。

一些連結實在是不太好找,順便列在此:

· 5 min read

是什麼 Market 並不太重要。使用者在哪裡,開發者就在哪裡。 談到 Android Market,非北美 / 西歐的開發者都有很多意見,主要焦點都集中在能不能放付費軟體上。這點對各 Android 集市皆然。前陣子開始整理了一個已公開的各家 Market 一覽表。開發者把應用軟體寫出來了,該選擇放在哪些 Market 上頭呢?

寫應用軟體的目的

開發者開發免費應用程式無非是為了以下幾種目的:

  1. 自己要使用

  2. 增加經驗值 (練功)

  3. 提高名聲 / 打知名度

  4. 靠廣告賺錢

  5. 靠付費版賺錢

在此暫時不分析付費軟體的部份,因為目前還沒有任何一家提供。

這篇只就免費軟體來談。免費軟體該發佈到哪些 Market 上頭呢?

殘酷的答案

老實說寫了免費軟體,經過思考之後,我只會丟到 Android Market。

理由如下:

以前面寫應用軟體的目的來分析:

  • 自己要使用目前手邊還沒有不預裝 Android Market 的機子。對其他 Market 的需求並不大。

  • 增加經驗值 (練功) 放到哪個 Market 上一樣都是練功。Android Market 背後有 G 社備援,提供網頁管理介面、使用者評論等等,雖然不完美,但至少可以和使用者取得互動。目前大部分其他的 Market 並無提供同級的網頁管理介面。有的 Market 還得自己四處申請、填寫一堆文件、截圖,各 Market 審核後還有可能會退你件,弄得跟到奴隸銀行求職一樣。寫免費軟體的開發者難道是為了得到這樣的經驗值?

  • 提高名聲 / 打知名度

發佈到各家 Market 的下載量,可能還沒有 Android Market 上的 1/100(這是經過美化 n 倍後的數據,請原諒我就是這麼直)

  • 靠廣告賺錢參考上一點,發到各論壇去,下載數可能也會比在一些 Market 上高。要勤勞到處貼我建議去貼論壇或 PTT。

以上四點都是 False Impact 的,各 Market 集市的擁有者們看了可能會很沮喪。但其實你們只剩下一個吸引開發者將程式放到自己 Market 的方式:

  • 靠付費版賺錢各家集市算盤打的精,想拿免費軟體開路,吸引使用者造訪的司馬昭之心再明顯不過。除了電信商推的 Market 之外,其他的 Market 要取得開發者 / 開發商青睞,自動奉上免費軟體更難。開發者不可能永遠靠佛心來支撐,沒飯吃還是會餓死的。國內哪個 Market 先能收費,對是否能帶動免費軟體進來,衝高軟體數量還是很關鍵的。

至於國內最後哪些個 Market 會繼續存活,其實只要比較兩件事:

1. 人潮 2. 哪個 Market 能放付費軟體

我相信沒有回報,只有付出的關係是無法長久的。

只要誰先推出拆帳合理的付費機制,相信開發者還是會趨之若騖。

眾家 Market:加油,好嗎?

· 2 min read

本來市面上 Android 相關機種一律都是 480320 解析度, 在 Android 1.6 發佈後,也正式發售支援了其他使用不同解析度的機種,例如 QVGA (320240) 或 WVGA (800*480)。

當然在不同的解析度下,畫面顯示上多少有些不同。 為了避免使用者裝到不適合解析度的程式而引發使用上的混亂,Android 1.6 在 AndroidManifest 清單中引入了「supports-screens」宣告。

一般來說要支援各種解析度,可以在編譯前先將編譯 Target 選為 1.6(專案名 > 右鍵 > Properties>Android>Android 1.6),並在 AndroidManifest 清單中加入如下設定:

 [supports-screens 
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="false"/]

「normalScreens」代表的是一般解析度(如 G1, Hero),「smallScreens」代表的是較低解析度(如 Tatoo)。

現在將程式發佈到 Android Market 時若沒做以上設定,你寫的程式將不會顯示在 QVGA/WVGA 機器的 Market 中。

那麼其他使用奇怪解析度的設備哩?(例如最近發表的某台 WQVGA 機器...)反正上面也沒有 Android Market, 就留給打算支援這些設備的開發者多傷一份腦筋啦.

PS: 將 Target 設為 1.6 跟在 AndroidManifest 清單中設定 minSdkVersion 最低相容版本並不衝突,只要 minSdkVersion 維持不變,低於 1.6 版的機器還是可以使用你的程式。

update: 事實上「smallScreens」代表的是小螢幕,「normalScreens」是一般螢幕,「largeScreens」當然是大螢幕。一般三者的分界點大概在 3 吋跟 4 吋。所以 Tattoo (2.8") 被歸在「smallScreens」範疇。