Monday, December 19, 2011

CedIME 2.0.7 更新

今次修改有以下幾項:

2.0.6:
自訂 Key Vibration Duration:以前的版本中 Android Stock Keyboard 的預設值一向是 30ms,然而到了 Android 4.0 (Galaxy Nexus) 的預設改為 5ms。根據我實際測試在 Galaxy S2 上的 30ms 和 Galaxy Nexus 上的 5ms 感覺是很接近的,而使用 Galaxy Nexus 如果設為 30ms 則會震得比較 "heavy"。現在還不知道這是源於 Android 版本的不同還是硬件上的不同,恐怕要等多些 4.0 機種出現才能夠比較。CedIME 裡預設為 30ms,Galaxy Nexus 則預設為 5ms,並且可於設定頁自行調校。

更有彈性的 Key Height 設定: 以前 CedIME 只有5種預設的大小設定,現改為0.8至2倍的大小設定。和以前對比的話 very small=0.9, small=0.95, normal=1, large=1.05, very large=1.1。這個改動的原因是市面上出現一些大小不一,不知是 phone 還是 tablet 的東西。而大部份正常的電話或 tablet 應該都不需要自己調教設定。

2.0.7:
修正 Android 4.0 Browser 裡的 password text field 會在 candidate list 顯示 password 及會作出 auto-correct 的問題:原因是 Android 4.0 多了一些以前沒有的 text field 的屬性,而 CedIME 預設會顯示 candidate list 及 auto correct。

真正支持 multi-touch:在有真正 multi-touch 功能的 device 上 (例: Galaxy Nexus) 可以同時按下 Shift 鍵及字母,或者在文字鍵盤同時按下符號鍵及符號來輸入簡單符號並馬上自動回到文字鍵盤。一些假 multi-touch device (例: Nexus One) 沒有這種功能

Thursday, July 07, 2011

CedIME 2.0.5 更新及 CedIME with Pinyin 發佈

- 新增拼音輸入,因為拼音詞典比較佔空間的關係,加入拼音輸入法的 CedIME 足足大了 1Mb,因此作者思前想後,覺得還是分開發佈較好,以免有些根本不使用拼音的朋友浪費了寶貴的 Internal Memory,因此如果你想使用拼音輸入法,請到 Market 安裝 CedIME with Pinyin。

- 支援 Tablet Size 螢幕,其實並不是很大的改動,只是把鍵盤大小調整一下而已,感謝 Sam Lu 幫忙測試鍵盤大小。

- 支援速成實體鍵盤輸入標點符號, ZA, ZB...

Tuesday, May 17, 2011

HoneyComb

今有數用者詢 CedIME 之平板支援,然谷歌之機器人平板,久不見其源碼,模擬器之速慢,故 CedIME 之支援遙遙無期也,此實不能也,非不為也,哀乎。谷歌釋其源碼,利其模擬器,則 CedIME 見於平板可期也,然此一廂情願之望,恐非數月內可達也,盼用者耐。

Saturday, February 05, 2011

CedIME 字典

CedIME 裡內建了很多不同的字典

英文 auto-correct 字典 - 821K
倉頡輸入法字典 - 180K
速成輸入法字典 - 66K
筆劃輸入法字典 - 490K
注音輸入法字典 - 47K
中文關聯詞字典 - 386K
倉頡字根查詢字典 - 156K
筆劃字根查詢字典 - 184K

除了英文字典,最佔空間的要算是筆劃輸入法字典了。一直以來筆劃輸入法的字典和倉頡字典的格式都是一樣的,是一個樹狀數據結構。類似下圖:


這裡每個圓圈 (Internal Node) 代表一個字根,例如倉頡的:日、月、金、木等等。從上面開始: A->B->F 可以代表 日 -> 弓 -> 木 = 閑,如此類推。筆劃輸入也是一樣的道理,只是字根變成 (一丨丿丶フ)。

這個樹狀的結構在使用時非常有效率,例如當你輸入"日"倉頡字根,CedIME就可以把"日"這個 Internal Node 以下所有可能的字都找出來,因此你很多時不必整段倉頡字根輸入完已經能夠從選字表中找到要輸入的文字。

然而筆劃字根和倉頡字根的差異非常大:
- 倉頡輸入法字根長度最長只是 5 ,而筆劃字根最長可以去到 48
- 倉頡輸入法盡用 26 個字母作為字根,筆劃基本字根只有五個 (一丨丿丶フ)

因此相對於倉頡輸入法來說,筆劃輸入法的樹結構相對較長而且窄,並且有很多無用的 Internal Node。當理解這點以後,改善辦法自然就是要從樹的結構入手,盡量把浪費的 Internal Node 省略掉。

而我在 CedIME 裡處理這個問題的方法就是用一種叫 Radix Tree (Patricia tries) 的數據結構。它也是樹結構的一種,特點是所有 Internal Node 都必然會有兩個或以上的 Child。如下圖:


這種結構對於筆劃字根來說很適合,它能把幾個無用而連續的 Internal Node 合併為一個 Node ,這大大省略了整棵樹佔用的空間。轉用了這個新的結構後筆劃輸入法的字典由本來的 490K 大幅減少至 238K,加上 Android APK本身的壓縮功能,實際上在手機中只佔大約 130K左右。另外由於使用時字典必須載入到手機的記憶體中,因此在 CedIME 運行時也節省了相當的記憶體。

CedIME 2.0.4 更新

- 修正筆劃 "衝" 字字根
- 實體鍵盤倉頡加入標點符號輸入(三代倉頡符號表)
- 將筆劃字典再壓縮超過一半(詳情)
- English auto-correct capitalize "i" correctly

Saturday, January 15, 2011

CedIME 2.0.2 更新

- add option to show Language Key.
- add option to show Candidate list arrows. (因為我自己比較少用,忘了用注音或速成輸入法會經常用到)
- Fix a few rarely occurring bugs.

Saturday, January 08, 2011

Android 2.3 Gingerbread Keyboard and CedIME

Android 2.3 Gingerbread 還沒推出(除了 Nexus S),但是它的 source code 大約兩週前己經釋出。老實說 Android 更新如此頻密也是有點煩,尤其它的鍵盤每次必然大改,要追上它的修改可是不容易啊。

但是當我看到 Gingerbread 新鍵盤的外型:



加上親自試用過之後實在是愛不釋手,結果還是忍不住把它的 source code 抓來研究了一番。

這次的改動比以前的改動都要大,事實上外觀的部分它根本整個重寫了:灰色的字母鍵及黑色的功能鍵把整個鍵盤的佈局更清楚的勾劃出來,因此使用者能夠更容易找到目標按鍵;另外每個鍵的圖像縮小了些,加上字體用上了粗體,這樣使用者能夠更清楚認出每個鍵要按的目標位置,因此即使現實上鍵盤大小一樣,新的鍵盤光是靠外觀上的小手段就足以提升使用者按鍵的準確率了。




Auto-correct 的功能和以前一樣,但是,同樣只是利用 Spacebar 上顯示的一個簡單光條,使用者就可以知道自己打的字有沒有出錯,可以不必常常看著 Candidate List 來檢查自己有否打錯字。



Popup mini keyboard 也是完全重寫了,只要長按就會出現的 Popup mini keyboard,不需要再按第二下來選字,只要按著的手指滑過去要選的字的下方就可以選到要用的字,整個過程比以前更加流暢,如果你要選的字就是在 mini keyboard 中的第一個字,那麼等於是長按一下那個鍵就可以選到 mini keyboard 中的字,這根本就等於是 HTC Keyboard 長按第一行字母可以出數字的功能了,只是這個 mini keyboard 的方法的確更好更全面。



事實上,Gingerbread keyboard 的第一行字母上的數字鍵正是用 mini keyboard 的功能做出來的。



還有一些不容易發現的小改動,不看 source code 確實是沒可能發現的。這裡和大家分享其中兩個:

大家都很熟悉的 Key Feedback, 就是按下每一個鍵都會出現的一個 popup 顯示:



以前都是按下去就立即出現,放手就立即消失的,但是 Gingerbread 的 Key Feedback 卻不是如此,按下去立即出現,但是放手時卻是做了一個 0.07 - 0.1 秒的 fade out 效果。因此整體的感覺就是鍵盤界面比較柔和及流暢,沒有了以前硬梆梆的感覺。

第二個改動也是不容易發現,由於以前各按鍵的邊界都是定好的,加上 touch screen 的特性(手指接觸螢幕不只一點),因此有機會當手指按在兩鍵中間的時候會導致 Popup Feedback 在兩鍵間跳來跳去(大家可以試試在 CedIME 1.2.2 裡按著 D 鍵和 F 鍵中間慢慢調整位置盡量靠兩鍵中間),如果最後位置正確的話就可以看到上述的效果了。Gingerbread 的鍵盤修正了這個問題,因此是按鍵的感覺變得更實在和更準確了。

說了一大堆,當然,大家最關心的問題:CedIME 會否更新呢?答案當然是肯定的,不但如此,CedIME 仍然會支援所有 Android 1.5-2.3+ 的所有版本,所以即使你還在用 HTC Magic Android 1.5,你還是可以享受到 Gingerbread 裡的最新鍵盤。

當然,每次改版總是有人會覺得以前的版本較好,鑒於這次改變較大,為了滿足舊版的死忠粉絲,這次我特意把 CedIME 1.2.2 版也同時放到 Market 上,App 名為 CedIME Old Version。因此你可以盡情試用新版,萬一覺得不好還是想用回舊版,只要到 Market 下載舊版就好。當然,我本人當然希望 CedIME Old Version 的使用者是越少越好。

最後,如果你很喜歡 CedIME,並希望支持 CedIME 的開發工作,請考慮購買 Market 上的 CedIME Donate app,買了 CedIME Donate 功能上基本上沒有分別,因為我還是非常希望 CedIME 能繼續免費給大家使用,唯一不同的只是少了廣告以及多了一個自選顏色的選項。

同時也希望大家能夠多多向朋友推薦 CedIME,越多人使用,就是對作者最好的支持了。






Thursday, January 06, 2011

一點點更新

WiFi Browser Login 最近似乎人氣很高,我本來沒留意,直到 App Brain 給我發了封 email 說: Congratulations! Your Android app 'Wifi Browser Login' is now one of the top 10 hottest apps on AppBrain...
結果我查了一下,起源應該是來自兩篇文章
Android Starter Kit: What every new Android owner should get

LifeHackerWifi Browser Login Takes the Pain Out of Login-Required Wi-Fi
居然上了 LifeHacker,自我感覺良好中... =)

另外,今天快速看了一遍 Market 關於 CedIME 的 Comments。FAQ 裡加了幾個問題的答案,大家可以看看。當然,像以下這些妙不可言的 comment 請容許我親自回應:

“如果可以像ipad的鍵那麼大就完美了…”
如果你能把 iPad hack 掉裝個 Android 上去再裝個 CedIME,我保証 CedIME 的鍵會比 iPad 的還要大。

“Extraordinarily wonderful for hku ppl”
我很好奇 HKU 人會很常用 CedIME 麼?那個,我其實是科大畢業的。

“快!終於可以單手打中文了!”
我個人認為還是雙手打會快一點,不過我完全可以理解分享到你的快樂。

“垃圾”
多謝你的指點,作者必然會虛心聽取各方意見,努力改善,令 CedIME 更加的盡善盡美,並且...呃,請問你的意見是?

“自訂高度後準確度更高,但仍然未開放自訂闊度?”
嗯,莫非你覺得 CedIME 太闊?想窄一點?還是想 A 鍵闊一點 D 鍵窄一點?那個,建議你還是和樓上的一樣,買個 iPad 吧。

請大家繼續供應美妙的 comment =)


下期預告:Gingerbread Keyboard