Saturday, November 27, 2010

CedIME 1.2.2 更新

Added Chinese (Mandarin) and English Voice Input for 2.2 Froyo.


Fixed a force close issue on HTC Desire HD. (Thanks Stephen Wong for help in testing the release)

Tuesday, October 05, 2010

Google DevFest 2010 Hong Kong

Yay, this is what I got today, A greeny fury little Android.


The sessions about Android has nothing new. Just information from previous Google I/O. The part about LVL is good to know, since there'll be paid app available in Hong Kong very very soon.

There're also some cool demo of HTML 5, which is also available for quite some time on the web already.

Talking about buzz API is, well, feel less relevant because of its popularity. But still, technically there's some good information there.

Free lunch is also great.

Only thing to complain about is the Internet access. Need a better WiFi hotspot and some more network cables.

CedIME 1.2.1 更新

Some minor bug fixes.

Thursday, August 05, 2010

CedIME 1.2.0 更新

這次的更新隔了一段比較長的時間,大家久等了!


主要的新功能有:
Froyo 鍵盤裡的轉換語言的方法,按著 spacebar 左右swipe。這個代替了上一個版本直接在鍵盤上 swipe 來轉中英文的方法。主要是因為直接在鍵盤上 swipe 與下面的 multi-touch, extension keyboard 等等功能有衝突。



Froyo 鍵盤裡的數字符號鍵盤廷伸,按下鍵盤往上拉就會出現。


Froyo 鍵盤裡的 multi-touch support,可以更容易地用雙手快速打字。(此功能只在 Android 2.0 以上有效)


其他改善:
- 增加一個 option 可以 disable 自動調整英文標點符號的功能
- .com 鍵改小一點
- 轉到數字符號鍵盤總是先顯示英文的數字符號(因為比較常用)。
- 中文顯示聯想詞的功能可以在有 auto-complete 的 input box 裡使用,包括 google search, browser url bar 等等。
- 解決一個筆劃輸入的問題導致小部分字不能輸入:e.g. 匯
- 解決一些遇然在第一次啓動 CedIME 會發生的 Force Close 問題

Sunday, August 01, 2010

Issue on Android 1.5 TextView

When I implemented the drag-spacebar-to-change-language function in CedIME, It seems to work fine on my Nexus One. However testing it on HTC Magic with Android 1.5 reveals a problem - the spacebar drag image won't redraw itself when the spacebar is being dragged.

Since the code in CedIME for the two versions of Android are completely the same, it must be the problem within the Android framework code itself. After two days of tracing / debugging the issue, I found that the problem seems to resides in the TextView class's invalidateDrawable() method. In Android 2.2 this method is reimplemented differently and hence CedIME works fine on Nexus One.

The fix for this come as a sort of a hack. I have to resolve this using Java's reflection mechanism to access some private fields in the Android Framework. Not a very good solution as it may break on future Android versions. But, as long as it works...

Wednesday, July 28, 2010

Supporting Multiple Android Version

Previously when considering new features for CedIME, I always hesitate about features that require a newer Android version like Voice Input. I want to support devices back to Android 1.5. And I thought it was tedious to manually support multiple code base for different versions of Android.

Now the smart people at Google has shown us the way! Using a method developed by Bill Pugh that was originally developed for implementing a lazy Singleton pattern in Java. It can be modified slightly to accomplish the magic of selecting the right class to load for different runtime versions of Android.

This is much better than using reflection which is slow and ugly.

Using this method I've already made CedIME support multitouch as the Froyo keyboard on Android version 2.0 or above, which is coming in CedIME 1.2.0 together with some other Froyo keyboard features. Stay tuned.

Thursday, July 15, 2010

Froyo Keyboard 研究

Froyo 的 source code 早些時候已經 release 了。但是我這兩天才找到時間仔細去看看它有什麼新功能。這裡簡單整理一下,大家將來或者有可能在 CedIME 裡看到類似的功能。

可見的新功能有
Extended keypad for numeric+symbols keys
按著鍵盤任何位置然後向上掃,會顯示兩行新的鍵,有數字鍵及一些常用符號。

Drag on spacebar to switch language
如果在設定裡選擇了多種語言,則按著鍵盤 spacebar 然後左右掃可以轉換輸入語言。

隱藏的新功能
Multi-touch support
當用雙手打字的時候,有可能會發生手指在上一個按鍵還沒離開鍵盤的時候另一隻手指就已經按到下個鍵的情況,這種情況正常來說只能記錄到後來的按鍵。但 Froyo 的鍵盤專門對此做了處理,兩個按鍵都能夠成功輸入。

Larger hit area for next probable key
根據字典,Froyo 鍵盤會計算出下一個將會被輸入字母的機會率,然後暗地裡增加那個字母鍵的大小。例如我剛打: appl 。則下一個字母 e 的機會率會比 r 為高,如果你按到 r 鍵偏左的話就會輸出 e 而不是 r 。

Tuesday, June 22, 2010

CedIME 1.1.9 更新

加了中英轉換鍵 option


不好意思沒有照顧到用慣中英轉換鍵的使用者,畢竟手機螢幕空間有限,設計鍵盤排列也是頗為頭痛。加入了顯示中英文轉換鍵的 option 在 setting 頁,應該可以滿足大家的需要了。

Monday, June 21, 2010

CedIME 1.1.8 更新

這次修改的東西比較多,主要有三方面:

1. 筆劃輸入法修改:我把筆劃輸入法的字庫整個換了,包含了大部份香港字,而有些字的打法可能和之前有些分別,例如之前很多用 "フ" 的現在變為 (丨),例如:丁(一丨) 水(丨フ丿丶)
其他一些常用字的打法:
三點水(丶丶一),例如:江(丶丶一一丨一)
豎心邊(丶丶丨),例如:快(丶丶丨フ一丿丶)
草花頭(一丨丨),例如:花(一丨丨丿丨丿フ)
阝(フ丨),例如:阿(フ丨一丨フ一丨)
這個版本的字庫雖然和 Nokia, SE 等等的還是有所不同,但是和 Google Pinyin 裡的筆劃輸入卻是很接近的。如果有個別字不知怎麼輸入可以善用字根查詢或通配符(?)。
筆劃的鍵盤排列也作了一點修改。


2. Enhanced English Keyboard:
- Much bigger built-in dictionary, that is comparable to the stock android keyboard.
- Less intrusive auto-correction behavior.
- If the default auto-corrected word is wrong, you may simply press backspace and space again to undo the auto-correction.
- Show common English punctuations in candidate list when there's nothing else to show. (Froyo Android Keyboard feature)
- should be more responsive.
- and, some other small / detailed behavior tweaks.

3. 一直有很多朋友覺得 CedIME 的鍵盤最底那行的排列太緊迫,對此我深表同意,因此這次更新將小鍵盤鍵和中英轉換鍵都放棄掉了。小鍵盤鍵本來就沒什麼用,中英轉換鍵就用向左、向右或向上的 Gesture 來代替。

4. 在 Setting 頁新增了個 built-in Help。有問題的話可以先看看。

Thursday, June 03, 2010

CedIME 1.1.7 更新

- 使用者常用的中文字會在倉頡,速成,筆劃輸入法的選字表中靠前排。
- URL 鍵盤加入 spacebar,刪除了逗號。
- 筆劃輸入法加入 wildcard 符號。
- 選字表不會再遮蓋後面的 textbox,而會像 android keyboard 一樣把整個 app 往上推。
- 在符號 Keyboard,轉換回語文鍵現在會跟據語文鍵盤正確顯示 "ABC" 或 "中"。
- 長按左下角的小鍵盤可以進入 Setting 或選擇其他 Input Method。

另,CedIME market download 終於過萬了,多謝大家支持 =)

Wifi Browser Login 1.0 released

This app will automatically detect if your WiFi connection requires browser login.

It can be configured to either notify you or automatically popup a webview for you to login. Hence you don't have to open a browser yourself. This is similar to the iPhone's WiFi browser login feature.

Saturday, May 29, 2010

CedIME 1.1.6 更新

- 新增支援輸入香港字,在 Setting 選 Show Extended Characters (暫時只支援倉頡及速成)。
- 修正一些小問題。

Sunday, May 23, 2010

Updated Android 2.2 Froyo

可以自己手動 update,看這裡

有圖有真相


Move to SD card: 讓 app 可以搬放到 SD Card 的功能,原來要 developer update app permission,因此現在 market 上大部分 app 應該都不能搬去 SD card。而跟據 official document,不是所有 app 都適合搬到 SD card 上的,例如 Service,Live Wallpaper,IME 類就不應該放到 SD card 上。(因此 CedIME 也不可以放到 SD Card 上,只是 1.5M 而已,也沒所謂吧)



另外 Flash Player 要到 Market 自己安裝,可以到 Market search "Flash Player"。


另,CedIME 在 Froyo 上運行沒有問題。

Friday, May 14, 2010

CedIME 1.1.5 更新

- Correct a minor bug where English Auto-correction default chosen word is incorrect.
- 注音鍵盤排列小改動。

Thursday, May 13, 2010

CedIME 1.1.4 更新

速度更快。

新增一個試驗性的倉頡 auto correct 功能,和英文的 auto correct 有點類似,對經常按錯鍵或者按很快的人來說可能有幫助,可以在設定頁裡選用(只對軟體鍵盤有效)。我自己用了幾天覺得效果應該還可以,有什麼建議歡迎提出。

注音鍵盤排列小改動。

Wednesday, May 12, 2010

沒電

今天 Nexus One 出了問題,早上明明還是電量 100%,到了下午三點居然完全無電然後自動關機了 -_-

中途看了一下 Battery Information 居然發現 Android System 佔用了 60% 以上的電量,正常來說 Display, Idle, Cell Standby 應該是耗電量最多的 process,上網一查果然找到了這個問題:

http://www.google.com/support/forum/p/android/thread?tid=1d4f2b411352797f&hl=en
http://www.google.com/support/forum/p/android/thread?tid=7ba211f7dbd2f012&hl=en

貎似 restart 一下就可以了,希望行得通。

本來想今晚 update CedIME 的,只好明天再算了。(其實明明就是懶 XD)

Monday, May 10, 2010

為什麼 Android 的實體鍵盤沒有 auto correct 功能

Android 的 Virtual Keyboard 有一個 auto correct 的功能相信大家都知道,例如當我想輸入 "android" 卻打成了 "ancroud",Candidate List 上會自動出現 ”android” 的選項,另外由於 "ancroud" 不是一個字,因此 Keyboard 會自動為你選擇 "android" 為預設的選擇,當你按 space 就會自動選擇了 "android" 而不是 "ancroud"。

這個功能其實是根據使用者手指按到 Virtual Keyboard 上哪一點(螢幕上的 x,y 座標),實時計算出來的。例如我按到 S 鍵的右上角,那麼 Virtual Keyboard 記錄的實際上可能是 S,D,W,E 四個鍵,按可能性排列。用上面的例子來說明,輸入 "ancroud",實際上 Keyboard 記錄的鍵可能分別是:

(aqw)(njmb)(cdxf)(rtf)(okl)(uij)(dsef)

Virtual Keyboard 根據字典,把上面的一串字母所有可能組成的字給找出來,就得到 "android" 這個字了。

好了,那麼為什麼實體鍵盤做不到這個效果呢,原因是實體鍵盤每個按鍵只是對應一個 key code 而不是一個座標,例如你按 S 鍵,系統就只會得到 S 一個 key code,系統本身並不可能知道附近還有Q,W,A,E,D,Z,X等等的按鍵。而不同的 Android 手機的實體鍵盤的位置各有不同,因此也不可能預設 Q 鍵就一定是在 S 附近。例如下面兩種實體鍵盤:

對 Milestone 來說 D 鍵附近是 W,E,R,S,F,Z,X,C
對 G1 來說 D 鍵附近是 E,R,S,F,X,C

如果要為實體鍵盤加上 auto correction 不是不可能,只是
1. 每種不同的手機可能要分別自行設定各個按鍵附近的鍵
2. auto correction 的效果可能沒有 Virtual Keyboard 那麼好

因此 Android 內建的 Keyboard 選擇了放棄實體鍵盤的 auto correction。

Wednesday, May 05, 2010

CedIME 1.1.3 更新

修正了一個導致使用實體鍵盤 Force close 的問題

Tuesday, May 04, 2010

CedIME 1.1.2 更新

Disable English suggestions for browser URL textfield. (same behavior as Android Keyboard)

增加一個 Key Height 設定,覺得鍵盤太小嗎?現在可以自定大小了。

增加倉頡,筆劃字根查詢,可在設定頁面選擇,當長按 candidate list 裡的中文字就會出現該字的字根。

Update: 不好意思,忘了試實體鍵盤,有個小問題導致實體鍵盤中文輸入 Force Close,今晚會修正。

Monday, May 03, 2010

看得到但是摸不到的 Flash

喬教主解釋不讓 Flash 進駐 iPhone, iPod, iPad 的原因

當中除了 open 一項之外(由蘋果口中說出 Adobe 不夠 open 實在沒有什麼說服力) 其他的原因我基本上同意,尤其是這點:

"Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot"

另一位資深 Flash developer Morgan Adams 也曾經詳細地解釋這個問題:這些以 Touch 為本的行動裝置,即使可以裝上一個完整的 Flash runtime,也只能夠做到顯示網站上的 Flash 內容,而利用鼠標座標的所有動作都不可能做到(例如用鼠標座標控制的賽車遊戲,或者當鼠標經過 menu 而彈出來的 sub-menu 等等),結果網站還是要重新設計,那不如還是用開放的 HTML Standard 更好。

說回 Android,據說 Android 2.2 Froyo 同時會加入 Flash 10.1 的支援。我比較好奇這個問題將會如何解決?還是不解決,讓使用者只能看到 Flash 但又摸不到?

Sunday, May 02, 2010

Android 2.2 Froyo JIT Compiler

Just in time (JIT) 是一個可以把在運行中的 java byte code 自動轉換為 native machine code的技術。十幾年前 Java 剛推出的時候被認為非常慢,後來就是靠優化 garbage collection 及 JIT 技術令其效能得以大幅度提昇。因此傳聞 android 2.2 Froyo 將會加入 JIT 技術的確令人十分期待。

估計 Google 會在五月的  Google I/O developer conference 宣布這一個更新。

Friday, April 30, 2010

CedIME 1.1.1 更新

修改的還是昨天的實體按鍵問題,千算萬算想不到還是算漏了一個 camera 鍵。這次改變了做法,希望不會再有其他鍵按不了。(感謝 Eddy 及 Frankie 回報)

增加中文標點符號,長按中文句號選字。

Thursday, April 29, 2010

CedIME 1.1.0 更新

解決了一個 force close 問題,
以及幾個實體按鍵在中文模式下沒反應的問題。

CedIME 1.0.9 更新

支援硬體鍵盤的倉頡和速成輸入法。同時按 ALT+Space 切換中英文輸入(和 software keyboard 上的切換中英鍵一樣)

由於我沒有 g1 或 milestone,因此只在 emulator 上試驗過,如果發現有什麼問題歡迎回報 =)

理論上硬體鍵盤支援筆劃輸入法也是可行的,不過我不知道按鍵排列怎樣比較合理,若有需要歡迎提出意見 =)

Update: 發現在中文模式 menu 和 search button 有問題, workaround 係轉回英文模式就應該沒事,今晚會修正
Update: 已修正

Wednesday, April 21, 2010

CedIME 1.0.8 更新

- Fix a minor problem with the Chinese Related Word Candidate List. Now it is hidden as appropriate. (Thanks (-_-)Zzz for reporting the bug)

- Make the app support  high density large screen size. Now the keys should look much clearer on Nexus One, Milestone.

Tuesday, April 20, 2010

CedIME 1.0.7 更新

修正了筆劃輸入法的字典,由於源文件格式的問題,字典裡漏了一個 "日" 字。感謝 brobrobro 報bug

Monday, April 19, 2010

CedIME 1.0.6 更新

# Add _ = into popup punctuation list.

# Fix problem for English where selected candidate word is not capitalized.

# Add zhuyin input method. 新增注音輸入法(由於作者本人對注音完全不熟悉的關係,敬請各位如發現任何問題,請留言提出意見)

註: 此注音輸入法是參考了 Market 上的 "注音倉頡輸入法" open source project 制作的

http://code.google.com/p/android-traditional-chinese-ime/

Saturday, April 17, 2010

CedIME 1.0.5 更新

# Add an option to append a "Space" after selecting a candidate word in English. If the next word typed is a punctuation, will also swap the (space) and (punctuation). This behavior is similar to the Android Keyboard's default behavior.

# Automatically persist the user dictionary of Chinese words.

Feature List is also updated.

Friday, April 16, 2010

CedIME 1.0.4 更新

Fixed/Enhance some minor functionalities.

# Fixed the behavior of the Enter Key when it is displayed as Next, Done.

# Long press on English full-stop will popup a list of English punctuations.

# Long press on Chinese full-stop will popup a list of Chinese punctuations.

# Fixed Symbol Keyboard ALT key light problem.

# Long press on ".com" key will popup a list of popular domains.

# Fix the display of some keys such as "Del" "Enter" "Space" "Shift", etc.

# Both Long press or press twice on "Shift" Key will toggle Caplocks.

# Display Smileys popup for SMS app and GTalk app.

Tuesday, April 13, 2010

CedIME 1.0.3 更新

在使用倉頡和速成時加入使用英文鍵的選項。

Monday, April 12, 2010

CedIME 1.0.2 更新

v1.0.1, v1.0.2 changes:

# For number/symbol keyboard, pressing (number/symbol) + (space/enter) will return to language keyboard.

# Added Quick Input Method (速成)

TODO:
拼音 / 注音輸入法
Hardware Keyboard (由於沒有 G1 或 Milestone, 要研究一下怎麼做才行, 請耐心等一等 =)

Sunday, April 11, 2010

CedIME 基本功能一覽



English auto-correction: 這個功能實在是非常重要。簡單來說,即使你的字母全打錯了,只要大約按到目標字母附近,也應該能夠成功打出你想打的字, 例:


當然,一些常用而中間有 ' 號的字也不用自己打:
遇到字典裡沒有的字怎辦?不用怕,可以把新字存下來 ,只要長按 Candidate List 裡第一個字就可以了。

新字會被存入 Android 的 User Dictionary 裡,下次再輸入時就會出現在 Candidate List,想刪除新字也很簡單,只要到 Settings -> Language & Keyboard -> User Dictionary 裡把字刪除就可以了。



句尾連續按兩下 space 會自動填上 fullstop

中文方面,現支援倉頡,速成,筆劃和注音,而且不用打完所有字根就可以從 Candidate List 裡選字:
也有聯想字功能:

如果聯想字庫裡沒有的字呢?這裡有一個和 HTC Keyboard 類似的功能,就是會存下所有你輸入過的兩字詞,例如我輸入一次:”世界正美麗”,則”世界”,”界正”,”正美”,”美麗”都會被存下來,然後所有這些詞都會被放到聯想字 Candidate List 裡,你下次再輸入同樣的句子就可以快很多:

以上這個功能要留意的是,和英文不同,這些存下的中文詞只是暫時性的,如果你轉換了其他 Keyboard 或者重啓你的 Android,這些暫存的詞就會消失。
從 v1.0.5 開始,中文詞也會被永久存下來。

當然還有其他基本功能包括符號 Keyboard,電話 Keyboard,Landscape Mode Keyboard等等:


還有一些其他的小技巧:
長按句號會彈出一個小鍵盤輸入標點符號。(英中都有)
長按左下角的小鍵盤會進入設定畫面。
按兩下shift鍵或長按shift鍵等於 Caplocks。


基本上我記得的就是這些了,希望能夠幫到大家更方便地使用 Android,同時歡迎大家提出意見 =)

Update 29/4: 新增實體鍵盤支授(倉頡,速成)按 Alt+Space 切換中英模式

計劃中的其他功能:
速成輸入法,注音/ 拼音輸入法,其他小改動,等等。

Saturday, April 10, 2010

CedIME 1.0 發佈到 Android Market

終於將過去一個月的努力成果發佈上 Android Market。

其實本來一直用開 HTC Magic,也有寫其他的app,但是沒有想過寫中文 Keyboard,因為老實說 HTC做的 Keyboard 真的很不錯,要比 android 本身的好。直到一個月前轉用了 Nexus One,找來找去都找不到合心意的中文 Keyboard,總是不及 HTC 的好用,於是把心一橫,用了一個月時間自己寫了一個出來了。雖然還不算完美,但至少HTC Keyboard上我覺得不錯的功能都有了,例如英文的 auto correction, auto completion,以及儲存用戶定義的字。中文方面我個人主要用倉頡或筆劃,所以先把這兩個輸入法加進去(將來還會加其他的,如果有人需要的話),同時也有聯想字和儲存中文詞的功能 (這個功能和英文的不太一樣,如果用過 Magic或 Hero的人應該會了解)。

明天再寫個比較完整的 feature list 供大家參考。