- 目前只支援詞音輸入法
- 限 ARM CPU (目前行動裝置 99% 用的 CPU)
啟用 gcin
程式→設定→語言與輸入→鍵盤與輸入法→打勾 gcin → 跳出警告畫面,選 OK。
安裝完成後,在 Android 應用程式如何切換到 gcin 輸入法
- Android 4.x: 在螢幕最上面的狀態列向下滑動拉選單→選擇輸入法→選 gcin
- Android 2.x: 在應用程式的文字輸入區 點不放2秒鐘就會跳出選單→選「輸入法」→選 gcin
目前內定是傳統的「標準」注音鍵盤,建議改成「倚天26鍵注音」會更好用,需要適應一段時間。
edited: 6
|
|
不錯用,很有智慧的樣子,預選詞不少
不過有時預選詞很多,DEL 鍵會跑到螢幕之下,按不到
如果捲動,會按到其他注音的鍵
|
期待 gcin 行列輸入法的實作(應該很快吧),不知和 LIME HD 比之如何?令人期待。
|
劉老大真厲害,沒有想到不同平台上又有新作,得趕緊裝來試試看。
|
guest | 6
gcin android 測試版 |
0
0 | 2013-04-18 | quote | | |
我的手機是 twm a1, android 2.3, 安裝後無法執行 gcin, 有什麼地方需要檢查的?
|
|
不好意思, 是自己手機的問題, 重開個幾次就正常了。很好用, 謝謝 eliu,這樣在
windows, X, android 我都使用同一個輸入法, 剩下 mac osx 了。
|
有新的版本,可以試試看。gtab 罕用字會導致 android jni crash,是 Android 的 bug,所以罕用字全部刪除。
edited: 2
|
eliu |
有新的版本,可以試試看。gtab 罕用字會導致 android jni crash,是 Android 的 bug,所以罕用字全部刪除。
|
Android 目前不支援 CJK Ext-B/C/D,但 Ext-A 範圍的罕用字是支援的。
|
新的版本可以用注音查詢 gtab 輸入法的拆字了,顯示在空白鍵。不過 Android 有 bug,需要 click 空白鍵才會更新顯示,不知道如何克服。
如何切到注音
a1 (英數) → gcin (切換輸入法) → 選擇注音
gtab 輸入標點符號也更方便了。
edited: 4
|
eliu |
新的版本可以用注音查詢 gtab 輸入法的拆字了,顯示在空白鍵。不過 Android 有 bug,需要 click 空白鍵才會更新顯示,不知道如何克服。
如何切到注音
a1 (英數) → gcin (切換輸入法) → 選擇注音
gtab 輸入標點符號也更方便了。
|
新版可以用行列了!讚!
回報兩個問題
行列出現二級簡碼時,空格好像是半形的,排列跟下面的數字沒有對應,要用猜的
在「鍵盤與輸入法」中,gcin 右邊有個感覺像是選項設定的按鈕,按下去,系統會說 gcin 沒有回應
|
coolcd | 行列出現二級簡碼時,空格好像是半形的,排列跟下面的數字沒有對應,要用猜的 |
為什麼要按數字鍵去選呢?直接 touch 候選字不是更直接嗎?除非是用有 實體 keyboard 的機種。對於這種需求,最新的的 gcin .apk 已經有選項可以設定是否要選擇鍵了。
你的 Android device 似乎是 4.x 的版本,有試過 gcin 是可以在 android 4.x 的 emulator 上面執行的。我猜原因可能是 gcin executable 沒有被 update 到,試著把內定輸入法改成 Android 英數,reboot 機器,再改回 gcin。有些機器關機其實是 suspend,所以舊的 gcin 仍然在執行。
edited: 7
|
eliu |
為什麼要按數字鍵去選呢?直接 touch 候選字不是更直接嗎?除非是用有 實體 keyboard 的機種。對於這種需求,最新的的 gcin .apk 已經有選項可以設定是否要選擇鍵了。
|
一方面是整齊美觀,一方面是幫助拆碼
有時候某些字不會拆
看了對應的數字,才知道要怎麼拆
你的 Android device 似乎是 4.x 的版本,有試過 gcin 是可以在 android 4.x 的 emulator 上面執行的。我猜原因可能是 gcin executable 沒有被 update 到,試著把內定輸入法改成 Android 英數,reboot 機器,再改回 gcin。有些機器關機其實是 suspend,所以舊的 gcin 仍然在執行。
|
後來 PO 完再試就 ok 了,不知道為什麼剛裝好時不能打開選項
|
昨天的版本有問題,標準注音鍵盤亂掉了,已經修正。冏
edited: 1
|
guest | 16
華碩TF201,執行不起來 |
0
0 | 2013-05-07 | quote | | |
eliu兄好,
期待android版好久了,非常高興看到eliu開始釋出android版,
安裝在asus TF201,切換輸入法之後,開始輸入文字的「第一個按鍵」,即出現警告
「很抱歉,gcin已停止。」
預設輸入法設定成android鍵盤,重新開機,再設定成gcin;或是預設gcin重新開機都是這個警告。
android版本 4.0.3 ICS
核心版本 2.6.39.5-00003-g2108187
|
有在新開的 Android 4.03 的 emulator 執行過,是可以用的。
如果想要幫忙 debug ,是可以在 Windows 或 Linux install
Anddroid sdk
接上 USB cable,打開 tablet PC 的 debug mode(在設定裡),然後執行 adb logcat 可以看到當在哪裡。
|
使用了一下下,只能說:劉老大辛苦您了。 :)
個人深深覺得:這是 Android 平台最接近「行列輸入法」規格書的輸入法環境。但還是有幾個小建議,提供劉老大參考一下:
- 橫向螢幕的虛擬鍵盤配置,得早點實作才好。雖然在手機上不常使用橫向螢幕,但平板電腦上卻很常用(連接藍牙鍵盤上網或打字的場合下)。當使用 Android 電視棒的場合,螢幕配置更是只有橫向可選。
- 使用注音、行列等輸入法鍵入文字的時候,螢幕上的虛擬鍵盤會垂直跳動(常發生在第一個按鍵上,或是候選字數量增加很多的時候),使得眼睛容易疲累,希望可以獲得解決。
- 希望 gcin 可以實作「行列10」。因為手機螢幕面積有限,所以虛擬鍵盤在實作上,與需數十鍵的注音、倉頡、行列(30)輸入法相較,只需 10 個數字鍵就能輸入文字的「行列10」,有著單鍵面積大、不容易按錯的優點,是最適合手機的輸入法。
|
guest | 19
subject: 華碩TF201,執行不起來 |
0
0 | 2013-05-08 | quote | | |
eliu兄好
我是純使用者,對這方面不懂。
有試試看如下,
1、下載Anddroid sdk,解壓縮,放在目錄D:\adt-bundle-windows-x86-20130219
2、將tf201設定debug模式,開發人員選項,USB偵錯打勾。
3、將TF201,USB線連接到WIN7電腦。檔案總管可以看到,名稱是Transformer Prime TF201
4、在WIN7打開cmd.exe終端機,進入目錄 D:\adt-bundle-windows-x86-20130219\sdk\tools,執行android.bat list targets取得名稱 執行android create avd --target 1 --name android-17 執行emulator-arm.exe -avd android-17 ,win7開啟一個手機摹擬畫面。
5、在tf201,打開connetbot-->su-->執行adb logcat --> 顯示
* daemon not running. starting it now on port 5038
* datmon started successfully *
-waiting for device -
再去開啟gcin,還是失敗,包括要輸入中文的app也會發生錯誤關閉,例如connectbot沒有回應 您要結束嗎?
|
您還真有心,感謝支持。
不要開啟 emulator。debug mode 是直接 USB 連線到你的 tablet 抓 debug 訊息。
改成 debug 後 tablet 好像必須重新開機。
這表示沒有連線成功。
adb devices List of devices attached xxxxxx
會列出機器,如果是空的,就是沒連上。
|
edited: 1
|
因為 Android 支援 CJK Ext-A 字集,所以我做了一個僅包含 CJK Ext-A 字集的「特別版」行列輸入法 .cin 表格和 .gtab 檔案,但不知要如何掛入 Android,可否劉老大指導一二?
.cin 表格和 .gtab 檔案,可於本篇下方下載使用。
|
|
老刀 |
期待 gcin 行列輸入法的實作(應該很快吧),不知和 LIME HD 比之如何?令人期待。
|
最近我嘗試用手機打文字簡訊,發覺過去習慣用鍵盤的輸入法套用在手機上,有點不切實際。本來我用的是大易輸入法,一分鐘打30個字還可以說得過去,但用手機就有點困難了,反而比注音輸入法還要慢!
問題癥結如下:
(1)鍵盤習慣用雙手打字,手機習慣用單手打字。
(2)手指接觸手機虛擬鍵盤的面積比真實鍵盤面積還要小,所以常常打錯格。
像版主 eliu 中文輸入法權威,把各類輸入法從電腦 Linux 作業系統移植到手機 Android 作業系統根本不是難事,但要克服人體先天上的機能就難倒太多人了;也就是說人要是有三隻手就好了,一手固定手機,另兩手鍵盤打字,再不然當扒手也行。
|
gcin 支援寬螢幕的鍵盤了,所以覺得鍵盤的按鍵太小時可以旋轉手機。
|
yawnp0426 |
最近我嘗試用手機打文字簡訊,發覺過去習慣用鍵盤的輸入法套用在手機上,有點不切實際。本來我用的是大易輸入法,一分鐘打30個字還可以說得過去,但用手機就有點困難了,反而比注音輸入法還要慢!
問題癥結如下:
(1)鍵盤習慣用雙手打字,手機習慣用單手打字。
(2)手指接觸手機虛擬鍵盤的面積比真實鍵盤面積還要小,所以常常打錯格。
|
深有同感。所以以我使用的「行列輸入法」為例,因為有「行列10」的衍生變形可用(只使用 10 個數字鍵),只要叫出數字鍵盤即可打宇,可惜目前 gcin 尚未支援「行列10」。
目前我在手機上輸入文字仍以有提供「行列10」的 LIME HD 為主(家中的 Android 電視棒已改用 gcin 為主要輸入環境),尤其適合在捷運和公車上上網聊天、臉書時,一手握住吊環,使用另一手持機、大拇指一指打字,仍可達每分鐘50-60字的速度;所以單鍵面積的大小,對輸入速度絕對會有重要影響。
|
在 desktop 弄10鍵的輸入法好像沒什麼意義,在手機上比較有意義。
|
新的 gcin android 以加入 array10a 的支援。測試了一下, 以前是分類成 ^-v,現在變成要拆成0-9,這邊可能要適應。
|
guest | 29
subject: subject: 華碩TF201,執行不起來 |
0
0 | 2013-05-11 | quote | | |
eliu兄好,
在家裡linux電腦安裝android SDK之後,有找到adb指令,確認連線成功(adb devices有找到設備),adb logcat蒐集到訊息如後,
打開connectbot之後,按下鍵盤按鍵(gcin下,輸入第一個注音符號),所跑出來的警告訊息(很抱歉,gcin已停止。),大約到 (7204)下去2~3行 為止,按下確認按鍵之後就跑出(196)之後那些警告。
D/AndroidRuntime( 7204): Shutting down VM W/dalvikvm( 7204): threadid=1: thread exiting with uncaught exception (group=0x40a601f8) E/AndroidRuntime( 7204): FATAL EXCEPTION: main E/AndroidRuntime( 7204): java.lang.NullPointerException E/AndroidRuntime( 7204): at com.hyperrate.gcin.Gcin.handleCharacter(Gcin.java:776) E/AndroidRuntime( 7204): at com.hyperrate.gcin.Gcin.onKey(Gcin.java:664) E/AndroidRuntime( 7204): at com.hyperrate.gcin.Gcin.translateKeyDown(Gcin.java:464) E/AndroidRuntime( 7204): at com.hyperrate.gcin.Gcin.onKeyDown(Gcin.java:497) E/AndroidRuntime( 7204): at android.view.KeyEvent.dispatch(KeyEvent.java:2599) E/AndroidRuntime( 7204): at android.inputmethodservice.AbstractInputMethodService$AbstractInputMethodSessionImpl.dispatchKeyEvent(AbstractInputMethodService.java:135) E/AndroidRuntime( 7204): at android.inputmethodservice.IInputMethodSessionWrapper.executeMessage(IInputMethodSessionWrapper.java:95) E/AndroidRuntime( 7204): at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:61) E/AndroidRuntime( 7204): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime( 7204): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime( 7204): at android.app.ActivityThread.main(ActivityThread.java:4424) E/AndroidRuntime( 7204): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( 7204): at java.lang.reflect.Method.invoke(Method.java:511) E/AndroidRuntime( 7204): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) E/AndroidRuntime( 7204): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) E/AndroidRuntime( 7204): at dalvik.system.NativeStart.main(Native Method) D/AlarmManager( 196): Added alarm Alarm{417f83c8 type 0 jp.naver.line.android} type:RTC_WAKEUP when: At 13-5-12 上午2:12 repeatInterval: 0h:0m:30.0s D/AlarmManager( 196): Triggered Alarm 417f83c8 RTC_WAKEUP IntentSender{41915560: PendingIntentRecord{41906bd0 jp.naver.line.android startService}} D/AlarmManager( 196): Removed alarm Alarm{417f83c8 type 0 jp.naver.line.android} type:RTC_WAKEUP D/AlarmManager( 196): Added alarm Alarm{41919b28 type 0 jp.naver.line.android} type:RTC_WAKEUP when: At 13-5-12 上午2:12 repeatInterval: 0h:0m:30.0s D/AlarmManager( 196): Removed alarm Alarm{41967a20 type 2 com.google.android.apps.maps} type:ELAPSED_REALTIME_WAKEUP D/AlarmManager( 196): Added alarm Alarm{418414a8 type 2 com.google.android.apps.maps} type:ELAPSED_REALTIME_WAKEUP when: After 5h:17m:46.0s D/dalvikvm( 312): GC_CONCURRENT freed 880K, 69% free 9894K/31367K, paused 3ms+7ms D/AlarmManager( 196): Added alarm Alarm{41919b28 type 0 jp.naver.line.android} type:RTC_WAKEUP when: At 13-5-12 上午2:12 repeatInterval: 0h:0m:30.0s D/AlarmManager( 196): Triggered Alarm 41919b28 RTC_WAKEUP IntentSender{4187da08: PendingIntentRecord{41906bd0 jp.naver.line.android startService}} D/AlarmManager( 196): Removed alarm Alarm{41919b28 type 0 jp.naver.line.android} type:RTC_WAKEUP D/AlarmManager( 196): Added alarm Alarm{418b6a18 type 0 jp.naver.line.android} type:RTC_WAKEUP when: At 13-5-12 上午2:12 repeatInterval: 0h:0m:30.0s I/Process ( 7204): Sending signal. PID: 7204 SIG: 9 W/InputManagerService( 196): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@418dc8e0 I/ActivityManager( 196): Process com.hyperrate.gcin (pid 7204) has died. W/ActivityManager( 196): Scheduling restart of crashed service com.hyperrate.gcin/.Gcin in 5000ms W/InputManagerService( 196): Session failed to close due to remote exception W/InputManagerService( 196): android.os.DeadObjectException W/InputManagerService( 196): at android.os.BinderProxy.transact(Native Method) W/InputManagerService( 196): at com.android.internal.view.IInputMethodSession$Stub$Proxy.finishSession(IInputMethodSession.java:366) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.finishSession(InputMethodManagerService.java:1033) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.clearCurMethodLocked(InputMethodManagerService.java:1045) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.onServiceDisconnected(InputMethodManagerService.java:1065) W/InputManagerService( 196): at android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1073) W/InputManagerService( 196): at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1087) W/InputManagerService( 196): at android.os.Handler.handleCallback(Handler.java:605) W/InputManagerService( 196): at android.os.Handler.dispatchMessage(Handler.java:92) W/InputManagerService( 196): at android.os.Looper.loop(Looper.java:137) W/InputManagerService( 196): at com.android.server.ServerThread.run(SystemServer.java:797) W/InputManagerService( 196): Session failed to close due to remote exception W/InputManagerService( 196): android.os.DeadObjectException W/InputManagerService( 196): at android.os.BinderProxy.transact(Native Method) W/InputManagerService( 196): at com.android.internal.view.IInputMethodSession$Stub$Proxy.finishSession(IInputMethodSession.java:366) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.finishSession(InputMethodManagerService.java:1033) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.clearCurMethodLocked(InputMethodManagerService.java:1045) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.onServiceDisconnected(InputMethodManagerService.java:1065) W/InputManagerService( 196): at android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1073) W/InputManagerService( 196): at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1087) W/InputManagerService( 196): at android.os.Handler.handleCallback(Handler.java:605) W/InputManagerService( 196): at android.os.Handler.dispatchMessage(Handler.java:92) W/InputManagerService( 196): at android.os.Looper.loop(Looper.java:137) W/InputManagerService( 196): at com.android.server.ServerThread.run(SystemServer.java:797) W/InputManagerService( 196): Session failed to close due to remote exception W/InputManagerService( 196): android.os.DeadObjectException W/InputManagerService( 196): at android.os.BinderProxy.transact(Native Method) W/InputManagerService( 196): at com.android.internal.view.IInputMethodSession$Stub$Proxy.finishSession(IInputMethodSession.java:366) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.finishSession(InputMethodManagerService.java:1033) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.clearCurMethodLocked(InputMethodManagerService.java:1049) W/InputManagerService( 196): at com.android.server.InputMethodManagerService.onServiceDisconnected(InputMethodManagerService.java:1065) W/InputManagerService( 196): at android.app.LoadedApk$ServiceDispatcher.doDeath(LoadedApk.java:1073) W/InputManagerService( 196): at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1087) W/InputManagerService( 196): at android.os.Handler.handleCallback(Handler.java:605) W/InputManagerService( 196): at android.os.Handler.dispatchMessage(Handler.java:92) W/InputManagerService( 196): at android.os.Looper.loop(Looper.java:137) W/InputManagerService( 196): at com.android.server.ServerThread.run(SystemServer.java:797) D/dalvikvm( 7287): Late-enabling CheckJNI I/ActivityManager( 196): Start proc com.hyperrate.gcin for service com.hyperrate.gcin/.Gcin: pid=7287 uid=10151 gids={} I/dalvikvm( 7287): Turning on JNI app bug workarounds for target SDK version 10... D/dalvikvm( 116): GC_EXPLICIT freed 37K, 5% free 6533K/6851K, paused 2ms+2ms D/dalvikvm( 7287): Trying to load lib /data/data/com.hyperrate.gcin/lib/libgcinimclient.so 0x410d5dd0 D/dalvikvm( 7287): Added shared lib /data/data/com.hyperrate.gcin/lib/libgcinimclient.so 0x410d5dd0 D/dalvikvm( 7287): No JNI_OnLoad found in /data/data/com.hyperrate.gcin/lib/libgcinimclient.so 0x410d5dd0, skipping init E/gcin ( 7287): conf /data/data/com.hyperrate.gcin/files/config/ D/dalvikvm( 116): GC_EXPLICIT freed <1K, 5% free 6533K/6851K, paused 2ms+2ms D/dalvikvm( 116): GC_EXPLICIT freed <1K, 5% free 6533K/6851K, paused 3ms+7ms E/gcin ( 7287): conf /data/data/com.hyperrate.gcin/files/config/ D/dalvikvm( 7287): GC_CONCURRENT freed 384K, 7% free 6640K/7111K, paused 2ms+2ms E/gcin ( 7287): code 113 E/gcin ( 7287): code 119 E/gcin ( 7287): code 101 E/gcin ( 7287): code 114 E/gcin ( 7287): code 116 E/gcin ( 7287): code 121 E/gcin ( 7287): code 117 E/gcin ( 7287): code 105 E/gcin ( 7287): code 111 E/gcin ( 7287): code 112 E/gcin ( 7287): code 97 E/gcin ( 7287): code 115 E/gcin ( 7287): code 100 E/gcin ( 7287): code 102 E/gcin ( 7287): code 103 E/gcin ( 7287): code 104 E/gcin ( 7287): code 106 E/gcin ( 7287): code 107 E/gcin ( 7287): code 108 E/gcin ( 7287): code 59 E/gcin ( 7287): code 122 E/gcin ( 7287): code 120 E/gcin ( 7287): code 99 E/gcin ( 7287): code 118 E/gcin ( 7287): code 98 E/gcin ( 7287): code 110 E/gcin ( 7287): code 109 E/gcin ( 7287): code 44 E/gcin ( 7287): code 46 E/gcin ( 7287): code 47 E/gcin ( 7287): code 32 E/gcin ( 7287): code 58 E/gcin ( 7287): MyKeyboard --- E/gcin ( 7287): setImeOptions D/
|
最近有更新版本,你是用最新的 GcinAndroid.apk 嗎?因為根據 line number,看起來似乎是舊的。
有可能用新版的之後就好了。
|