2011/03/15

Android 程式: 注音倉頡輸入法非官方版

Android 手機刷機後通常 Android 預設沒有內建中文輸入法。像我自己因為不滿「摸拖」到今天都還沒釋出 Android 2.2 更新,前前後後刷了兩次 ROM。但這些 ROM 都是外國人修改的,沒內建中文輸入也是必然。於是有人在 Market 寫了一些中文輸入法。其中「注音倉頡輸入法」這個輸入法是 Google 台灣員工利用 20% 時間所寫的。(Ref: Open-sourcing Traditional Chinese IME on Android) 它輕薄短小卻實作了倉頡和注音的輸入法,而且介面簡潔,十分好用。坊間一堆輸入法都是 MB 起跳,它融合兩種輸入法竟然還可以維持 300KB 以內,真是驚人。

可是它自從 2010/04 就沒在更新了。它還有一些問題,例如標點符號的配置竟然是"。"句號比","逗號還要容易輸入。一般人的習慣應該是輸入逗號多於句號,這樣不太便利。而標點符號鍵盤也沒有常用的"、"頓號。因此我學會了安裝 Android SDK,下載輸入法原始碼,打算動手修改來符合自己需要。

改著改著感覺這個輸入法沒有支援實體鍵盤實在有些可惜,我的 Motorola Milestone 硬體鍵盤就這樣浪費掉了,於是就邊查 Android Developer Reference,邊參考谷歌拼音輸入法原始碼,來強化這個注音倉頡輸入法。發現要實作硬體鍵盤對應其實很簡單,我還滿納悶為什麼許多輸入法都不作,甚至拿這個作為收費要素。後來想一想目前有鍵盤的 Android 手機算是相當稀少,為了支援這些少數手機還要多耗額外心力的確是不怎麼划算。好在我自己就是少數手機的擁有者,站在少數人的角度看。

經過好幾天的摸索努力後,我的第一個 Android 程式終於出來了 (雖然不是完全自己寫)。要懂得如何修改從來沒看過的 Android 程式,的確是讓我吃了很大的苦頭,尤其第一隻程式就是輸入法框架而不是 Hello World。好在最後順利完成 (中間當然出過很多插曲,例如改到壞掉只好用舊原始碼蓋回重寫之類的)。

我稱它「注音倉頡輸入法非官方版」。
http://code.google.com/p/android-tcime-unofficial/

特色
  • 修改標點符號配置,新增頓號、間隔號
  • 英文小寫鍵盤可以長按鍵盤以輸入大寫字元,省去Shift
  • 候選字支援手勢換頁,可以滑動切換頁面
  • 注音/倉頡輸入法支援標準鍵盤對應 (硬體鍵盤)
    • 部分鍵位針對 Motorola Milestone 作修改
  • 預設一聲注音如果沒有對應字,會找尋其他聲節的字
    • 例如 ㄋㄧ 在原本的輸入法是沒有字的,現在會去找"尼"等字輸出
  • 候選字支援使用者字典

作了這麼多改進,當然也希望能有更多人能夠用到。於是我繳了 USD$25 的開發者入場費 (還滿貴的老實說),發布了我的第一隻 Android 程式。

注音倉頡輸入法非官方版 Market 頁面


好用的程式越多人知道越好,大家覺得不錯的話歡迎推廣。當然如果能夠贊助一下的話是更好不過 XD





至少能夠多少補貼我的入場費用,那我就很高興了。

2 則留言:

  1. 我也有興趣寫ANDROID 而且把你的改良板研究了
    但我想問問那三個DATABASE 我想自己加入一些新字詞 可是我怎都打不開它來修改 用甚麼軟件才能把它打開?

    回覆刪除
  2. 雖然我已經回你的私信了,但在公開的地方說明一下也不錯。

    那三個檔案我本來也有研究要去改它,初步的研究是這些檔案是Java serialized object,也就是他們本來是某種物件,經過序列化之後存成二進位檔儲存。但是了解如何讀寫還不夠,裡頭的物件陣列有自己的一套規則,我還沒搞懂。

    若是你搞懂的話,就可以自己加字詞了。
    cangjie 應該是倉頡對應表,phrases 為聯想詞組,zhuyin 為注音對應表。

    回覆刪除