高效的觸摸屏文本輸入系統(tǒng)及方法
【專利摘要】本發(fā)明涉及一種高效的觸摸屏文本輸入系統(tǒng)及方法,其中所述的系統(tǒng)包括觸點檢測模塊、查詢模塊、結(jié)果輸出模塊,并引入了線程管理模塊,使得系統(tǒng)在觸點檢測模塊檢測到觸摸按下時,通過開啟輔助線程,在輔助線程中對用戶的輸入字符及候選詞進行查詢,同時主線程持續(xù)檢測是否存在觸摸抬起,充分利用了觸摸按下及觸摸抬起之間的時間間隔。當(dāng)主線程中觸點檢測模塊檢測到觸摸抬起后,則從輔助線程中獲取本次查詢結(jié)果并輸出。采用該種結(jié)構(gòu)的高效的觸摸屏文本輸入系統(tǒng)及方法,系統(tǒng)結(jié)構(gòu)簡單,用戶的輸入速度提高了40%至50%,減少了用戶輸入中的卡頓現(xiàn)象,提高了人機交互水平,優(yōu)化了用戶的輸入體驗,應(yīng)用范圍廣泛。
【專利說明】
高效的觸摸屏文本輸入系統(tǒng)及方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及電子產(chǎn)品應(yīng)用,具體是指一種高效的觸摸屏文本輸入系統(tǒng)及方法。
【背景技術(shù)】
[0002]如今,智能手機、平板電腦等便攜式電子設(shè)備日益普及,作為基本的人機交互工具,輸入法直接影響著人們在使用這些電子設(shè)備的用戶體驗。
[0003]在輸入法應(yīng)用中,用戶輸入非常密集,每兩次輸入的時間間隔平均在幾十至一兩百毫秒。在獲取輸入信號之后,處理器將每一次輸入信號匹配成對應(yīng)的字符,并通過一定的算法在字典中根據(jù)輸入的字符進行查詢或預(yù)測等操作,獲得對應(yīng)的輸入結(jié)果。在不同的輸入法中,還會執(zhí)行一些改善用戶體驗的反饋操作,例如對于用戶按下的按鍵或劃過的軌跡進行高亮,或?qū)⒑蜻x詞中用戶剛剛輸入的字符采用特定的顏色進行顯示,或根據(jù)用戶剛剛輸入的字符對更新的候選詞進行排序等等。
[0004]然而,請參閱圖1所示,為現(xiàn)有技術(shù)的一次點擊手勢的處理過程示意圖。現(xiàn)有技術(shù)中針對一次點擊手勢,系統(tǒng)開啟主線程對用戶操作進行檢測。當(dāng)系統(tǒng)首先檢測到觸摸按下,然后再檢測到觸摸抬起后,才會針對本次點擊進行查詢,即確定觸摸按下與觸摸抬起為一次點擊后,系統(tǒng)才會根據(jù)本次點擊在字典中進行查詢,最后將查詢的結(jié)果進行顯示。然而為了提高輸入的智能化程度和準(zhǔn)確性,輸入法中字典的體積越來越大,例如,觸寶輸入法中字典體積達到十幾兆。龐大的字典體積使得處理器在字典中進行查詢或預(yù)測等操作的時間變得更長,這就造成了輸入結(jié)果的響應(yīng)速度變得越來越慢。在輸入法這種工具性應(yīng)用軟件中,用戶對結(jié)果的響應(yīng)速度非常敏感,當(dāng)輸入結(jié)果的反應(yīng)速度達到過0.5?I秒時,用戶會形成卡頓的印象,遲緩的響應(yīng)速度極大的影響了用戶體驗。
[0005]針對輸入結(jié)果的反應(yīng)速度與輸入準(zhǔn)確性之間的矛盾,業(yè)界也提出了一些解決方案,嘗試在這兩者之間進行平衡。例如,有一種方案提出了細胞詞庫的概念,通過將較大體量的詞庫分解成多個小體量的詞庫,試圖解決這個問題。這種方案需要用戶提前選擇待使用的詞庫,并且只有在用戶僅選擇為數(shù)不多的小詞庫的前提下才能夠在不影響輸入準(zhǔn)確性的前提下提高輸入結(jié)果的反應(yīng)速度。然而,在大多數(shù)輸入情況下,用戶在輸入的時候無法得知待輸入的字詞屬于哪一個詞庫,從而無法提前對詞庫進行選擇,而選擇所有的小詞庫相當(dāng)于選擇了整體的大詞庫,并不能提高輸入結(jié)果的反應(yīng)速度,甚至基于不同小詞庫的構(gòu)造方式,反而會進一步造成反應(yīng)速度變慢。
[0006]因此,有必要提供一種方法和裝置,改善輸入結(jié)果反應(yīng)速度和輸入準(zhǔn)確性之間存在的矛盾。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點,提供了一種能夠提高用戶的輸入速度、同時確保輸入準(zhǔn)確性的高效的觸摸屏文本輸入系統(tǒng)及方法。
[0008]為了實現(xiàn)上述目的,本發(fā)明的高效的觸摸屏文本輸入系統(tǒng)及方法具有如下構(gòu)成:
[0009]根據(jù)本發(fā)明的一部分,該高效的觸摸屏文本輸入系統(tǒng)包括:
[0010]觸點檢測模塊,用以檢測所述的觸摸屏上是否存在觸摸按下及觸摸抬起;
[0011]線程管理模塊,用以當(dāng)所述的觸點檢測模塊檢測到所述的觸摸屏上存在觸摸按下時,開啟輔助線程;
[0012]查詢模塊,用以在所述輔助線程中根據(jù)所述觸點觸摸按下的區(qū)域,在字典庫中查詢用戶的輸入字符和/或候選詞;
[0013]結(jié)果輸出模塊,用以當(dāng)所述的觸點檢測模塊檢測到所述的觸摸屏上存在觸摸抬起時,輸出所述的查詢模塊所查詢到的用戶的輸入字符和/或候選詞,以及當(dāng)所述的觸點檢測模塊未檢測到所述的觸摸屏上存在觸摸抬起時,放棄所述的查詢模塊所查詢到的結(jié)果。
[0014]進一步地,當(dāng)所述觸點檢測模塊檢測到存在觸摸抬起時,所述觸點檢測模塊進一步判斷該觸摸按下與對應(yīng)該觸摸按下的觸摸抬起是否構(gòu)成一次點擊。
[0015]根據(jù)本發(fā)明的一部分,本發(fā)明還涉及一種高效的觸摸屏文本輸入方法,其主要特點是,所述的方法包括主線程處理過程及輔助線程處理過程:
[0016]所述的主線程處理過程包括:
[0017]檢測觸摸屏上是否存在觸摸按下;
[0018]當(dāng)存在所述觸摸按下時,則開啟至少一條與所述觸摸按下對應(yīng)的輔助線程;
[0019]檢測所述的觸摸屏上是否存在觸摸抬起;
[0020]當(dāng)存在所述觸摸抬起時,則從所述輔助線程獲得根據(jù)本次輸入進行查詢的字符和/或候選詞,并輸出該查詢結(jié)果;當(dāng)不存在觸摸抬起時,則放棄本次所述的輔助線程中的查詢結(jié)果;
[0021]所述的輔助線程處理過程包括:
[0022]根據(jù)所述的觸點觸摸按下的區(qū)域,在字典庫中查詢對應(yīng)的輸入字符和/或候選詞,并且當(dāng)存在所述觸摸抬起時,發(fā)送所查詢到的結(jié)果至主線程處理過程。
[0023]進一步地,檢測是否存在觸摸抬起進一步包括:當(dāng)存在觸摸抬起時,判斷所述的觸摸按下與該觸摸抬起是否組成一次點擊。
[0024]采用了該發(fā)明中的高效的觸摸屏文本輸入系統(tǒng)及系統(tǒng),與現(xiàn)有技術(shù)相比,具有以下有益效果:
[0025]請參閱圖12a和12b所示,為本發(fā)明與現(xiàn)有技術(shù)的技術(shù)效果的對比圖,其中現(xiàn)有技術(shù)中觸摸按下和觸摸抬起的時間間隔一般為100ms,在觸摸抬起后再開始進行查詢,也就是說,用戶不得不在觸摸抬起之后等待查詢過程完成才能獲得反饋,從而使得用戶體驗受到數(shù)據(jù)庫查詢速度甚至網(wǎng)絡(luò)聯(lián)網(wǎng)速度的限制,常常產(chǎn)生卡頓或延遲。而本發(fā)明中通過開啟輔助線程,在觸摸按下后同步進行查詢,當(dāng)觸摸抬起時,查詢結(jié)果已經(jīng)得到,用戶可以即時獲得反饋。即使數(shù)據(jù)庫再龐大或聯(lián)網(wǎng)速度很慢,使得花費了超出正常數(shù)倍的時間進行查詢,但由于查詢與用戶觸摸屏幕同步進行,對于用戶而言,整個輸入的體驗仍然是極為流暢的。在每次點擊的過程中,用戶的輸入速度整整提高了 40%至50%,提高了用戶的輸入速度及人機交互水平。另外,值得注意的是,現(xiàn)有技術(shù)中每次點擊手勢的整體耗時有4.29%在150ms以上,而采用本發(fā)明后,只有2.5%的點擊手勢超過150ms,整整下降了一倍,優(yōu)化了用戶的輸入體驗。此外,現(xiàn)有技術(shù)中為了提高點擊速度使用了大量的緩存,但是對于提高點擊速度并未有明顯的影響,而采用本發(fā)明的技術(shù)方案,能夠減少緩存,釋放內(nèi)存,提高系統(tǒng)的整體運行水平。
【附圖說明】
[0026]圖1為現(xiàn)有技術(shù)的一次點擊手勢的處理過程示意圖。
[0027]圖2a為本發(fā)明的高效的觸摸屏文本輸入系統(tǒng)一種實施方式的結(jié)構(gòu)示意圖。
[0028]圖2b為本發(fā)明的觸點檢測模塊一種實施方式的結(jié)構(gòu)示意圖。
[0029]圖3為本發(fā)明的高效的觸摸屏文本輸入系統(tǒng)另一種實施方式的結(jié)構(gòu)示意圖。
[0030]圖4為本發(fā)明的高效的觸摸屏文本輸入方法一種實施方式的步驟流程圖。
[0031]圖5a至5d為本發(fā)明的一種實施方式中UI控制模塊控制觸摸屏中鍵盤示意圖示意圖。
[0032]圖6為本發(fā)明的高效的觸摸屏文本輸入方法另一種實施方式的步驟流程圖。
[0033]圖7為本發(fā)明的一種實施方式中存在多個觸摸按下時系統(tǒng)主線程及輔助線程的示意圖。
[0034]圖8為本發(fā)明的一種實施方式中對于同一觸摸按下存在多個輔助線程時系統(tǒng)主線程及輔助線程的示意圖。
[0035]圖9為本發(fā)明的一種實施方式中字典庫的一種優(yōu)選的結(jié)構(gòu)示意圖。
[0036]圖10為本發(fā)明高效的觸摸屏文本輸入方法的一種實施方式中判斷觸摸按下及觸摸抬起是否為一次點擊的步驟流程圖。
[0037]圖11為本發(fā)明高效的觸摸屏文本輸入方法的一種實施方式中步驟S14的步驟流程圖。
[0038]圖12a為本發(fā)明的一種實施方式與現(xiàn)有技術(shù)一次點擊消耗時間的對比圖。
[0039]圖12b為本發(fā)明的一種實施方式與現(xiàn)有技術(shù)一次點擊消耗時間的另一對比圖。
【具體實施方式】
[0040]為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例來進行進一步的描述。
[0041 ] 在詳細說明根據(jù)本發(fā)明的實施例前,應(yīng)該注意到的是,所述的實施例主要在于與向終端中輸入文本有關(guān)的方法步驟和系統(tǒng)的組合。因此,所述的系統(tǒng)和方法步驟已經(jīng)在附圖中通過常規(guī)符號在適當(dāng)?shù)奈恢帽硎境鰜砹?,并且只示出了與理解本發(fā)明的實施例有關(guān)的細節(jié),以免因?qū)τ诘靡嬗诒景l(fā)明的本領(lǐng)域普通技術(shù)人員而言顯而易見的那些細節(jié)而模糊了本公開內(nèi)容。
[0042]在本文中,諸如左和右,上和下,前和后,第一和第二之類的關(guān)系術(shù)語僅僅用來區(qū)分一個實體或動作與另一個實體或動作,而不一定要求或暗示這種實體或動作之間的任何實際的這種關(guān)系或順序。術(shù)語“包括”、“包含”或任何其他變體旨在涵蓋非排他性的包含,由此使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包含這些要素,而且還包含沒有明確列出的其他要素,或者為這種過程、方法、物品或者設(shè)備所固有的要素。
[0043]請參閱圖2a所示,本發(fā)明的高效的觸摸屏文本輸入系統(tǒng)包括觸點檢測模塊1、線程管理模塊2、查詢模塊4以及結(jié)果輸出模塊3。
[0044]其中,本發(fā)明的觸點檢測模塊I是用于檢測所述的觸摸屏上是否存在觸摸按下或觸摸抬起,所述的觸摸按下和對應(yīng)于該觸摸按下的觸摸抬起結(jié)合在一起組成一次點擊。當(dāng)觸點檢測模塊I檢測到存在觸摸按下時,所述的線程管理模塊2就會開啟至少一個輔助線程,通過查詢模塊4對本次觸摸按下進行查詢,并且當(dāng)觸點檢測模塊I檢測到與本次觸摸按下相對應(yīng)的觸摸抬起時,通過結(jié)果輸出模塊3輸出輔助線程中的查詢結(jié)果。
[0045]在一些實施方式中,當(dāng)觸點檢測模塊I再次檢測到用戶的觸摸按下時輔助線程中尚未出現(xiàn)針對前一次觸摸按下的查詢結(jié)果,這時線程管理模塊2可開啟另外的輔助線程,查詢對應(yīng)于用戶的第二次觸摸按下的輸入字符。
[0046]依次類推,本發(fā)明的高效的觸摸屏文本輸入系統(tǒng)中可以存在多個輔助線程以提高觸摸屏文本輸入效率,其中,所述的輔助線程是相對于主線程而言的,主線程可適于分發(fā)事件給構(gòu)件,例如,可包括檢測觸摸屏上是否存在觸摸按下或觸摸抬起,以及在檢測到觸摸按下時開啟輔助線程,在檢測到觸摸抬起時輸出輔助線程中查詢到的輸入字符,還可包括繪制事件,改變屏幕指定區(qū)域的亮度或顏色,而輔助線程則適于根據(jù)觸摸屏上的觸摸按下查詢對應(yīng)于該觸摸按下的輸入字符,并將查詢結(jié)果通過結(jié)果輸出模塊3進行輸出。
[0047]在一種優(yōu)選地實施例中,請參閱圖2b所示,本發(fā)明中的觸點檢測模塊I可包括檢測單元102、驅(qū)動單元101及觸摸屏控制單元103,驅(qū)動單元101用以向所述的觸摸屏中的驅(qū)動線添加驅(qū)動信號,檢測單元102在檢測到觸點位置(即觸摸按下時的位置)后,將該檢測到的觸點位置發(fā)送至觸摸屏控制單元103 ;而觸摸屏控制單元103適于從檢測單元102上接收觸點位置,并將它轉(zhuǎn)換成觸點坐標(biāo),再送給查詢模塊4。
[0048]現(xiàn)有技術(shù)中,在用戶輸入字符的過程中,觸摸按下、觸摸抬起以及查詢都是在同一個線程中進行的,即現(xiàn)有技術(shù)中當(dāng)檢測到存在觸摸抬起并且檢測到存在對應(yīng)的觸摸抬起之后,才會在同一個線程中針對本次觸摸按下及與對應(yīng)的觸摸抬起所組成的一次點擊,查詢與之相對應(yīng)的輸入字符,而隨著字典庫體積的日益膨脹,在字典庫中進行查詢耗時也越來越久,這就使得每一次點擊輸入的響應(yīng)速度變得越來越慢。而本發(fā)明通過引入了線程管理模塊2,通過開啟多個輔助線程,每一個輔助線程對本次觸摸按下所對應(yīng)的用戶的輸入字符進行查詢。此外,在不同的實施方式中,由于輸入法中字典庫的不同,對于同一個觸摸按下,具有不同結(jié)構(gòu)的字典庫的系統(tǒng)還可以開啟不同數(shù)目的輔助線程,例如,在一種優(yōu)選的實施例中,字典庫分為多個子庫,這時對于用戶的一個觸摸按下,系統(tǒng)會根據(jù)該觸摸按下的位置開啟多條輔助線程,同時查詢不同的子庫,加快查詢速度,以保證在觸摸抬起時,查詢模塊4已經(jīng)查詢出用戶的輸入字符,提高人機交互水平。
[0049]在另一種實施方式中,線程管理模塊2還可進一步包括:對多個輔助線程進行管理。例如,當(dāng)存在多個輔助線程一起工作時,當(dāng)其中一個輔助線程中進行查詢的查詢時間超過第一閾值時,線程管理模塊2可以將該線程及在該線程之后開啟的一個線程進行合并,以提高查詢效率。在一種實施方式中,所述的第一閾值為100ms,也可由用戶進行自行設(shè)置。
[0050]在一種優(yōu)選的實施例中,參考圖3,系統(tǒng)還可包括UI控制模塊5,用以當(dāng)觸點檢測模塊I檢測到觸摸屏上存在觸摸按下時,控制觸點觸摸按下的區(qū)域的狀態(tài)改變,以及當(dāng)觸點檢測模塊I檢測到所述的觸摸屏上存在觸摸抬起時,控制觸點觸摸按下的區(qū)域恢復(fù)原始狀態(tài)。其中,所述的狀態(tài)改變可以為所述的觸點觸摸按下的區(qū)域亮度改變或顏色改變。通過在存在觸摸按下時改變觸點接觸區(qū)域的狀態(tài),能夠讓用戶對自己所輸入的字符有一個直觀的感受,使其可以清楚的將按下的位置與其想要輸入字符聯(lián)系起來,因此,此處只要是可以區(qū)分觸摸按下的區(qū)域與未觸摸按下的區(qū)域即可,而并不局限于該觸摸按下的區(qū)域亮度改變或顏色改變。
[0051]當(dāng)開啟輔助線程后,查詢模塊4根據(jù)當(dāng)前觸摸按下的區(qū)域查詢用戶的輸入字符,其中需要注意的是,所述的查詢模塊4適于對本地字典或通過通信模塊(圖中未示出)對部署于云端的字典進行查詢。此處,所述觸摸屏為廣義上的觸摸屏,會顯示不同語音或不同布局的軟鍵盤,并且軟鍵盤中各個字符的位置信息對應(yīng)于觸摸屏中各個觸點的位置,所以查詢模塊4可根據(jù)觸點坐標(biāo),在字典庫中進行查詢,獲得對應(yīng)的輸入字符,或進一步根據(jù)用戶之前的輸入內(nèi)容,獲得對應(yīng)的候選詞。
[0052]在一種實施方式中,結(jié)果輸出模塊3,用以當(dāng)所述的觸點檢測模塊I檢測到所述的觸摸屏上存在觸摸抬起時,輸出所述的查詢模塊4所查詢到的用戶的輸入字符或候選詞,以及當(dāng)所述的觸點檢測模塊I未檢測到所述的觸摸屏上存在觸摸抬起時,放棄所述的查詢模塊4所查詢到的用戶的輸入字符或候選詞。在另一種實施方式中,當(dāng)觸點檢測模塊I檢測到的觸摸按下與觸摸抬起不構(gòu)成一次點擊時,或當(dāng)觸點檢測模塊I所檢測到的觸摸抬起與觸摸按下之間的時間間隔超出設(shè)定時間閾值時,例如100ms,觸點檢測模塊I模擬觸摸抬起信號,并將該信號發(fā)送至結(jié)果輸出模塊3,使得結(jié)果輸出模塊3從查詢模塊4獲取查詢的結(jié)果,并進行輸出。
[0053]請參閱圖4所示,在本發(fā)明高效的觸摸屏文本輸入方法的一種實施方式中,所述的方法包括主線程處理過程及輔助線程處理過程:
[0054]所述的主線程處理過程包括:
[0055]Sll:所述的觸點檢測模塊I檢測所述的觸摸屏上是否存在觸摸按下;
[0056]S12:當(dāng)所述的觸摸屏上存在觸摸按下時,則所述的線程管理模塊2開啟輔助線程;
[0057]S13:所述的觸點檢測模塊I檢測所述的觸摸屏上是否存在觸摸抬起;當(dāng)存在觸摸抬起時,通知輔助線程并進入步驟S14,當(dāng)不存在觸摸抬起時,進入步驟S15 ;
[0058]S14:當(dāng)所述的觸摸屏上存在觸摸抬起時,則所述的結(jié)果輸出模塊3輸出所述的輔助線程中所查詢到的用戶的輸入字符和/或候選詞;
[0059]S15:當(dāng)所述的觸摸屏上不存在觸摸抬起時,則所述的結(jié)果輸出模塊3放棄本次所述的輔助線程中所查詢到的用戶的輸入字符和/或候選詞。
[0060]所述的輔助線程處理過程包括:
[0061]S21:所述的查詢模塊4根據(jù)所述的觸點觸摸按下的區(qū)域查詢用戶的輸入字符和/或與輸入字符相對應(yīng)的候選詞。
[0062]S22,當(dāng)檢測到存在觸摸抬起時,將所查詢到的用戶的輸入字符和/或候選詞發(fā)送至結(jié)果輸出模塊3。
[0063]為了詳細地說明本發(fā)明的高效的觸摸屏文本輸入方法,在此,給出本發(fā)明中所涉及的各個步驟的優(yōu)選的實施例,但需要注意的是,下文中所給出的本發(fā)明所涉及的各個步驟的優(yōu)選的實施例并不能作為對本發(fā)明的限制。
[0064]對于步驟S11,所述的觸點檢測模塊I檢測所述的觸摸屏上是否存在觸摸按下,所述的觸摸屏可以為四線電阻屏、聲波屏、五線電阻屏、紅外屏、電容屏的,該觸摸屏所在的終端可以是手機、平板電腦、移動電腦等便攜式移動終端,也可以是電視、臺式機、機頂盒等不易于攜帶的終端。
[0065]在步驟S12中,當(dāng)所述的觸摸屏上存在觸摸按下時,開啟一個對應(yīng)的輔助線程。在一種實施方式中,步驟S12具體可包括:創(chuàng)建一個Thread對象,通過Looper來處理消息隊列,并將內(nèi)置了 Runnable接口對象作為創(chuàng)建Thread對象的參數(shù);當(dāng)輔助線程被開啟時,調(diào)用Thread類的start方法啟動該線程,通過執(zhí)行Runnable的run O方法完成輔助線程對應(yīng)的操作。
[0066]此外,步驟S12還可包括:控制觸摸屏觸點區(qū)域的狀態(tài)變化。參考圖5a至5(!所示,當(dāng)所述的觸摸屏上存在觸摸按下,則所述的UI控制模塊5控制所述的觸點觸摸按下的區(qū)域的狀態(tài)改變,其中所述的狀態(tài)改變可以為變亮或改變顏色。此處,觸摸按下的區(qū)域具體是指觸摸屏上顯示的鍵盤中觸摸按下的字符鍵,例如,請參閱圖5a中,圖示雙鍵鍵盤布局包含了 26個英文字母,數(shù)字、符號和空格鍵,且每個按鍵可代表兩到三個字符,則當(dāng)觸摸按下的區(qū)域為字符“w”時,由于“w”和“q”、“ ; ”在同一個按鍵上,則該“qw”鍵701 (此處由于“w”和“q”在同一個按鍵上,所以稱此鍵為“qw”鍵)變亮或改變顏色;請參閱圖5b所示的QWERTY全鍵盤布局或如圖5c所示的AZERTY全鍵盤布局,每個按鍵代表一個字符,兩個鍵之間可有數(shù)字和符號,則當(dāng)觸摸按下的區(qū)域為字符“w”時,則該字符“w”所在的位置801變亮或改變顏色;請參閱圖5d所示,在一種常見的簡縮示鍵盤布局中,當(dāng)觸摸按下的區(qū)域為字符“r ”時,由于“P ”、“ q”、“r ”、“ s ”和“ 7 ”處于同一個鍵中,所以此時該包含“P ”、“ q”、“r ”、“ s ”和“ 7 ”的鍵“pqrs鍵” 901 (此處由于“P ”、“ q”、“r ”、“ s ”和“ 7 ”在同一個按鍵上,所以稱此鍵為“pqrs7”鍵)變亮或顏色改變。所述的UI控制模塊5進一步包括根據(jù)當(dāng)前的鍵盤布局,以及根據(jù)用戶的觸摸按下的當(dāng)前位置,控制觸摸屏中軟鍵盤對應(yīng)區(qū)域的變亮、變暗或者顏色的改變。
[0067]在另一種實施方式中,請參閱圖6所示,在所述主線程處理過程中,當(dāng)不存在觸摸抬起時,進入步驟S35,其中步驟S35包括:模擬觸摸抬起的信號,并將該模擬的信號返回至步驟S13,從而對每一個用戶的輸入信號查詢對應(yīng)的字符和/或候選詞,并對其進行輸出。
[0068]圖7為在本發(fā)明的有一種實施方式中,當(dāng)存在多觸摸按下時,系統(tǒng)主線程及輔助線程的處理過程示意圖。在用戶多指操作輸入時或者在密集型輸入的情況下,其中,觸點檢測模塊I已經(jīng)檢測到一個觸摸按下(第一觸摸按下),并開啟了第一輔助線程,在第一輔助線程查詢的過程中,所述的主線程還未檢測到與第一觸摸按下相對應(yīng)的觸摸抬起時,主線程中的觸點檢測模塊I又檢測到第二個觸摸按下(第二觸摸按下),這時線程管理模塊2又開啟了第二輔助線程,在主線程中觸點檢測模塊I又檢測到第二次觸摸抬起(第二觸摸抬起)時,但此時還未檢測到第一次觸摸抬起,這時,系統(tǒng)則會向觸點檢測模塊I發(fā)送與第一輔助線程中所查詢的觸摸按下相對應(yīng)的觸摸抬起的信號,當(dāng)觸點檢測模塊I接收到該觸摸抬起的信號時,則會認(rèn)為與第一輔助線程中所查詢的觸摸按下組成一次點擊的觸摸抬起已經(jīng)完成,這樣查詢模塊4輸出在第一輔助線程中的查詢結(jié)果及查詢模塊4在第二輔助線程中的查詢結(jié)果。在某些實施方式中,當(dāng)開啟第一輔助線程或第二輔助線程時,還包括將觸摸按下對應(yīng)的區(qū)域進行高亮,并且,當(dāng)輔助線程結(jié)束時,觸摸按下區(qū)域的高亮消失。
[0069]另外,參閱圖8所示,在本發(fā)明高效的觸摸屏文本輸入方法的某些實施方式中,還可以開啟多個輔助線程。例如,當(dāng)有多個字典庫時,可以對于同一個觸摸按下開啟多個輔助線程;也可以對同一個觸摸按下,在同一個字典庫中開啟多個輔助線程。在一種實施例中,當(dāng)鍵盤的格局為例如圖5d所示的簡縮示鍵盤布局時,當(dāng)用戶觸摸按下的位置為“abc”鍵,這時用戶當(dāng)前這一個觸摸按下對應(yīng)的字母可為“a”或“b”或“C”。在另一種實施例中,可根據(jù)用戶當(dāng)前輸入進行系統(tǒng)糾錯,例如根據(jù)當(dāng)前鍵盤布局,將用戶觸摸按下區(qū)域?qū)?yīng)的按鍵及其所有相鄰按鍵,或指定方向的一個或多個相鄰按鍵上對應(yīng)的字母作為與用戶當(dāng)前觸摸按下對應(yīng)的字母。在這些情況下,由于同一個觸摸按下中對應(yīng)多個字符,所以線程管理模塊2對應(yīng)每一個字符開啟多個輔助線程,以加快查詢過程,提高用戶的體驗。參考圖8,其中同一個觸摸按下對應(yīng)三個輔助線程,分別是第一輔助線程、第二輔助線程以及第三輔助線程,其中,每個輔助線程分別將觸摸按下位置對應(yīng)按鍵上的一個字母與用戶輸入歷史相結(jié)合,查詢對應(yīng)的候選詞。
[0070]在某些實施例中,還可以根據(jù)用戶的隨后的輸入,關(guān)閉其中某些輔助線程,例如,當(dāng)用戶輸入的下一個或者多個字符時,根據(jù)字典庫中可以判斷不存在該單詞或者在系統(tǒng)自動糾錯后,字典庫中不存在與該單詞相對應(yīng)的單詞,而此時用戶還在繼續(xù)輸入,則系統(tǒng)會關(guān)閉該輔助線程,但仍舊維持其他的輔助線程的進行。此外,當(dāng)用戶在其它連續(xù)點擊時,即連續(xù)有多個觸摸按下時,這時系統(tǒng)可以針對多個觸摸按下分別開啟多個輔助線程,以加快查詢過程,提高用戶的體驗度。
[0071]在所述的輔助線程處理過程中,當(dāng)存在用戶的觸摸按下時,所述的查詢模塊4根據(jù)所述的觸點觸摸按下的區(qū)域,在字典庫中進行查詢,獲得用戶的輸入字符以及與輸入字符相對應(yīng)的候選詞,并將所查詢到的用戶的輸入字符及候選詞發(fā)送至結(jié)果輸出模塊3。其中,所述字典庫可包括本地字典庫和/或部署于云端的字典庫。在一種實施例中,步驟S21可包括設(shè)置先對本地字典庫進行查詢,當(dāng)沒有結(jié)果時,才在云端字典庫進行查詢,或反之。在另一種實施例中,步驟S21可包括檢測網(wǎng)絡(luò)狀態(tài),當(dāng)網(wǎng)絡(luò)狀態(tài)符合設(shè)定條件時,例如為wifi狀態(tài)下,則開啟云端字典庫的查詢,否則僅在本地字典庫進行查詢。
[0072]由于查詢步驟通常耗時較長,在某些實施方式中,步驟S22進一步可包括:當(dāng)接收到主線程傳遞的存在觸摸抬起的信號時,查詢模塊4等待第一時間間隔之后,再將查詢結(jié)果發(fā)送至結(jié)果輸出模塊3。其中,所述第一時間間隔可設(shè)置為小于等于60ms,從而避免給用戶造成卡頓的感覺。
[0073]其中,在某些實施方式中,步驟S21可進一步包括:根據(jù)所述觸點觸摸按下的區(qū)域,獲得輸入字符;根據(jù)輸入字符,在字典庫中查詢,獲得候選詞。
[0074]其中,所述觸點觸摸按下的區(qū)域?qū)?yīng)的輸入字符可包括觸摸按下區(qū)域?qū)?yīng)按鍵上所分配的字符,也可包括根據(jù)觸摸按下區(qū)域進行系統(tǒng)糾錯所獲得的字符。在進行系統(tǒng)糾錯時,系統(tǒng)根據(jù)鍵盤的布局以及用戶已經(jīng)輸入的文本,對用戶當(dāng)前輸入的字符進行合理的預(yù)測,例如當(dāng)鍵盤的布局為如圖5b所示的QWERTY鍵盤時,當(dāng)用戶在中文全拼輸入法中,輸入“q”后,緊接著輸入“k”,基于漢語拼音中并不存在“qk”的字節(jié),另外結(jié)合當(dāng)前鍵盤布局中,與“k”相連的字符包括“U”、“ i ”、“O”、“ I ”、“m”、“n”、“b”、“ j ”,根據(jù)漢語拼音的語法特點,可以推測用戶輸入存在錯誤,用戶應(yīng)該輸入的是“u”或“i”而非“k”,從而在查詢的時候,直接根據(jù)糾錯結(jié)果,即“qu”或“qi”進行查詢。另外該系統(tǒng)糾錯可以根據(jù)觸摸按下區(qū)域?qū)?yīng)按鍵的所有相鄰鍵進行糾錯,或者指定方向的相鄰按鍵進行糾錯,也可以根據(jù)用戶輸入習(xí)慣自行進行設(shè)置。
[0075]請參閱圖9所示,圖9為字典庫的一種優(yōu)選的結(jié)構(gòu)示意圖,在一種優(yōu)選的實施方式中,單詞分別以樹狀結(jié)構(gòu)排列在字典庫中,如圖9所示,在樹狀結(jié)構(gòu)形成的字典中的每一個節(jié)點N1-1,N1-2…N1-m代表一個字符,其中i代表該節(jié)點在樹中的深度(第i層)。位于第i層的節(jié)點代表了單詞的第i個字符。m代表了該層中的字符總數(shù),例如在英語中有26個字母,則m可以不超過26 ;如果字典內(nèi)可以包含由其他符號組成的單詞,如don’t,則m可以大于26。這些節(jié)點由路徑P1-j-1,P1-j-2,…,P1-j-m連接起來,其中i_j代表該路徑所連接父節(jié)點為N1-j。從根節(jié)點向下到達某一節(jié)點的路徑所途徑的節(jié)點序列,稱為該節(jié)點(或該路徑)的字符序列。如果一個節(jié)點的字符序列是字典中的一個單詞,則稱該節(jié)點為單詞節(jié)點。如果某一條路徑不存在,則代表該路徑的字符序列在字典中不存在。例如,英語單詞apple所對應(yīng)的節(jié)點,就是從根節(jié)點向下順序?qū)ふ夜?jié)點a-p-p-1-e。其中第I個字母a所對應(yīng)的節(jié)點在樹的第I層,第2個字母P的節(jié)點在樹的第2層,而最后一個字母e的節(jié)點是單詞節(jié)點,其字符序列就是“apple”。這種樹狀結(jié)構(gòu)的字典庫可以快速地找到一個特定的字母序列是否是字典里的一個單詞,以及該單詞對應(yīng)的節(jié)點。
[0076]每一個單詞節(jié)點可對應(yīng)于一個單詞對象,但單詞對象的數(shù)據(jù)結(jié)構(gòu)是獨立于詞典結(jié)構(gòu)的。根據(jù)某些實施方式,一個單詞對象可包含以下信息:單詞的統(tǒng)計詞頻,相關(guān)詞,上下文關(guān)聯(lián)規(guī)則,替代格式等。其中,單詞的統(tǒng)計詞頻可以來自于對常用語料的統(tǒng)計,也可來自于對于用戶輸入習(xí)慣的統(tǒng)計。單詞的統(tǒng)計詞頻可以用一個數(shù)值表示,例如數(shù)字I到8,8代表最常用的詞,I代表最不常用的詞。統(tǒng)計詞頻可成為候選詞優(yōu)先級排序的一個重要考慮因素。在不考慮其他因素時,詞頻越高,單詞的優(yōu)先級就越高。
[0077]其中,單詞的相關(guān)詞是指與該單詞相關(guān)聯(lián)的單詞,例如名詞的復(fù)數(shù)形式,動詞的不同時態(tài),該詞的不同詞性等等。例如英文單詞“jump”的相關(guān)詞包括“jumps”,“jumping”,“jumped”等。具體來說,根據(jù)某些實施方式,相關(guān)詞列表可以用指針方式實現(xiàn),即一個單詞對象可以指向其相關(guān)聯(lián)的其他單詞對象。根據(jù)在字典庫中的查找結(jié)果獲得相關(guān)詞,可以方便用戶從一個單詞快速選擇其關(guān)聯(lián)的單詞。例如當(dāng)用戶看到“jump”出現(xiàn)在候選詞中時,可以通過某種事先指定的動作(例如在單詞上向下滑動)讓系統(tǒng)顯示出所有的相關(guān)詞,并從中選擇。根據(jù)某些實施方式,步驟S21中根據(jù)輸入字符獲得候選的單詞還可進一步包括,根據(jù)所述的候選詞,獲得與其關(guān)聯(lián)的相關(guān)詞。
[0078]此外,上下文關(guān)聯(lián)規(guī)則包含了該單詞的常見短語搭配、語法準(zhǔn)則等與上下文環(huán)境相關(guān)的信息。例如,單詞“l(fā)ook”的上下文關(guān)聯(lián)規(guī)則可包含常見短語搭配“l(fā)ook at”,“l(fā)ookforward to”,“l(fā)ook for”等。又如,單詞“am”的上下文關(guān)聯(lián)規(guī)則可包含常見短語搭配“I am”等。又如,單詞“of”的上下文關(guān)聯(lián)規(guī)則可包含語法規(guī)則:“其后跟的詞應(yīng)為名詞或動名詞”。有了這些信息后,系統(tǒng)即可通過上下文智能判斷候選詞的優(yōu)先級。根據(jù)某些實施方式,步驟S21中根據(jù)輸入字符獲得候選的單詞還可進一步包括,根據(jù)上下文,獲得與所述輸入字符關(guān)聯(lián)的候選詞。
[0079]其中,上下文關(guān)聯(lián)規(guī)則在相關(guān)詞之間中也可以互相生效。例如,當(dāng)上下文關(guān)聯(lián)規(guī)則中有“l(fā)ook forward to”時,文中即使出現(xiàn)“l(fā)ooking”也可以關(guān)聯(lián)到“forward to,,,因為“l(fā)ooking”是“l(fā)ook”的相關(guān)詞。替代格式是單詞的某種關(guān)聯(lián)表現(xiàn)形式,例如“asap”是“as soon as possible”的縮寫形式,那么如果用戶輸入了 “asap”,系統(tǒng)可以自動對應(yīng)到“as soon as possible,,。因此 “as soon as possible” 就是單詞對象“asap” 的替代格式。又如,用戶輸入“dont”能自動糾正為“don’ t”,因為單詞對象“dont”上含有替代格式“don’t”。此時單詞對象“dont”實際上是一種索引。當(dāng)一個單詞有替代格式時,候選詞模塊可以優(yōu)先將替代格式輸出。
[0080]根據(jù)上述的字典庫的結(jié)構(gòu)及每個單詞對象的數(shù)據(jù)結(jié)構(gòu)(即單詞的統(tǒng)計詞頻,相關(guān)詞,上下文關(guān)聯(lián)規(guī)則,替代格式等),步驟S21中,所述根據(jù)輸入字符在字典庫中查詢并獲得候選詞進一步還可包括:查詢模塊4在查詢用戶的某一個的觸摸按下所對應(yīng)的字符時,對下一個觸摸按下進行預(yù)測。例如,當(dāng)?shù)谝粋€觸摸按下的查詢結(jié)果為“s”時,在第二個觸摸按下還未到來之前,查詢模塊4對下一個觸摸按下進行預(yù)測。例如,查詢模塊4根據(jù)在字典庫中查詢的結(jié)果,預(yù)測用戶最有可能輸入的單詞為“save”,“surprise”,“see”等;根據(jù)這些預(yù)測的結(jié)果,查詢模塊4獲得對下一個觸摸按下區(qū)域?qū)?yīng)字符的預(yù)測結(jié)果,即字符“a” “u” “e”等。這時,當(dāng)觸點檢測模塊I檢測到下一個觸摸按下到來時,則查詢模塊4首先根據(jù)上一個觸摸按下的查詢預(yù)測結(jié)果對本次觸摸按下進行查詢,這樣可以加快查詢的速度,提高候選詞的顯示速度等,有利于人機交互水平的提高。
[0081]對于步驟S13,所述的觸點檢測模塊I檢測所述的觸摸屏上是否存在觸摸抬起;由于一次點擊手勢是由觸摸按下和觸摸抬起組成,現(xiàn)有技術(shù)中是在觸摸抬起后才對觸摸按下區(qū)域?qū)?yīng)的字符或候選詞進行查詢,而本發(fā)明通過在觸摸按下后,開啟輔助線程并立即在輔助線程中進行查詢,并且通過主線程判斷是否存在觸摸抬起,當(dāng)存在觸摸抬起時,則輸出本次查詢結(jié)果,大大地提升了用戶的輸入速度,改善了人機交互體驗。
[0082]其中,在檢測到與本次觸摸按下相對應(yīng)的觸摸抬起時,所述的UI控制模塊5將本次檢測到觸摸抬起時狀態(tài)發(fā)生改變的區(qū)域的狀態(tài)變回至未檢測到觸摸抬起時的狀態(tài),以表示本次點擊結(jié)束,例如,使得高亮的區(qū)域不再高亮,或者使顏色發(fā)生了改變的區(qū)域重新恢復(fù)之前的顏色。此外,為了提高用戶的體驗度,在高亮的區(qū)域,或者改變顏色的區(qū)域變回至未檢測到觸摸抬起時的狀態(tài)時,所述的結(jié)果輸出模塊3輸出本次查詢的結(jié)果,這樣可以給用戶一種流暢的感覺。另外,在另一種實施方式中,由于本次查詢過程被并入至其隨后的查詢過程中,在本次觸摸按下的高亮的區(qū)域,或者改變顏色的區(qū)域變回至未檢測到觸摸抬起時的狀態(tài)時,并未輸出本次觸摸按下的字符串,但是在其后的一個觸摸按下所對應(yīng)的高亮的區(qū)域,或者改變顏色的區(qū)域變回至未檢測到觸摸抬起時的狀態(tài)時,輸出本次及本次其后所對應(yīng)的字符及候選詞,在該種情況下,雖然輸入字符串延緩顯示,但是候選詞的顯示還是正常的,并不影響用戶的輸入速度。
[0083]在一種實施方式中,步驟S13進一步還包括:判斷所述觸摸按下以及觸摸抬起是否為一次點擊。請參閱圖10所示,具體包括:
[0084]S131:所述的觸點檢測模塊I檢測所述的觸摸屏上是否存在觸摸抬起;
[0085]S132:當(dāng)所述的觸摸屏上存在觸摸抬起時,則所述的觸點檢測模塊I判斷所述的觸摸按下與觸摸抬起是否組成一次點擊;
[0086]其中,步驟S132可包括:檢測觸摸按下和觸摸抬起的位置是否發(fā)生變化,或檢測觸摸按下與觸摸抬起之間的時間間隔是否超過設(shè)定的時間間隔。由于存在觸點滑動的情況,即雖然系統(tǒng)檢測到觸摸按下和觸摸抬起,但是當(dāng)觸摸按下和觸摸抬起的位置發(fā)生了改變,例如觸摸按下和觸摸抬起位于不同的鍵上,或者當(dāng)觸摸按下和觸摸抬起之間的時間間隔超過設(shè)定的時間間隔,例如雖然觸摸按下和觸摸抬起位于同一個鍵上,但是觸摸按下和觸摸抬起之間的時間間隔不符合一次點擊中觸摸按下和觸摸抬起之間的時間間隔范圍時,則該觸摸按下和觸摸抬起并未組成一次點擊。
[0087]當(dāng)所述的觸摸按下與觸摸抬起組成一次點擊時,則繼續(xù)步驟S14,返回所述的觸摸屏上存在觸摸抬起的結(jié)果。例如,請結(jié)合圖5b所示,當(dāng)觸點位于鍵“w”時,觸點檢測模塊I檢測到觸摸按下,一定時間間隔后,觸點檢測模塊I檢測到觸摸抬起;本次觸摸按下和觸摸抬起觸點都位于鍵,且觸摸按下和觸摸抬起之間的時間間隔符合一次點擊中觸摸按下和觸摸抬起之間的時間間隔的范圍,則返回所述的觸摸屏上存在觸摸抬起的結(jié)果。
[0088]當(dāng)所述的觸摸按下與觸摸抬起未組成一次點擊時,則繼續(xù)步驟S15,返回所述的觸摸屏上不存在觸摸抬起的結(jié)果。例如,請結(jié)合圖5b所示,當(dāng)觸摸按下位于“w”鍵,而觸摸抬起位于“t”鍵,則本次觸摸按下和觸摸抬起不能組成一次點擊;在某些實施方式中,觸摸按下和觸摸抬起雖然都位于同一個鍵上,例如“W”,但是由于觸摸按下和觸摸抬起之間的時間間隔超過或者小于一次點擊的時間間隔的范圍,則返回觸摸屏上不存在觸摸抬起的結(jié)果。
[0089]當(dāng)所述的觸摸屏上不存在觸摸抬起時,則執(zhí)行步驟S15或步驟S35,返回所述的觸摸屏上不存在觸摸抬起的結(jié)果。在某些實施方式中,雖然觸點檢測模塊I檢測到觸摸按下,但觸點檢測模塊I并未檢測到觸摸抬起,例如在用戶長按某一鍵,例如“w”的時候,觸點檢測模塊I則不會檢測到觸摸抬起,此時返回觸摸屏上不存在觸摸抬起的結(jié)果。另外,結(jié)合圖6,當(dāng)觸點檢測模塊I檢測到第一次觸摸按下后,并未檢測到對應(yīng)該第一次觸摸按下的觸摸抬起,而是檢測到第二次觸摸按下,以及與第二次觸摸按下相對應(yīng)的觸摸抬起,則系統(tǒng)會執(zhí)行步驟S35,向觸點檢測模塊I發(fā)送對應(yīng)于第一次觸摸按下的觸摸抬起的信號,以使得結(jié)果輸出模塊3輸出對應(yīng)于第一次觸摸按下和第二次觸摸按下的查詢結(jié)果。
[0090]其中,通常將一次觸摸按下及一次觸摸抬起的時間間隔達到10ms左右時,認(rèn)為該觸摸按下和觸摸抬起構(gòu)成一次點擊手勢,當(dāng)然不同的觸摸屏其時間間隔不一定相同,所以此處可以由終端制造商在終端出廠前進行設(shè)置,也可以是用戶根據(jù)自己的輸入的習(xí)慣及速度進行設(shè)置,但是此處的設(shè)置值必須大于或者等于觸摸按下與觸摸抬起能組成一次點擊手勢的最短時間。另外,為了與按住手勢相區(qū)分,觸摸按下和觸摸抬起之間的時間間隔也不能超過一定的時間間隔,此處觸摸按下和觸摸抬起之間的時間間隔的設(shè)置也與觸摸屏的靈敏度有關(guān)。
[0091]請參閱圖11,在本發(fā)明一種實施方式中,步驟S14具體包括:
[0092]S141:所述的結(jié)果輸出模塊3判斷所述的查詢模塊4是否已查詢到本次用戶的輸入字符及候選詞;
[0093]S142:當(dāng)所述的查詢模塊4已查詢到本次用戶的輸入字符及候選詞時,則所述的結(jié)果輸出模塊3輸出本次輔助線程中所查詢到的用戶的輸入字符及候選詞。
[0094]S143:當(dāng)所述的查詢模塊4尚未查詢到本次用戶的輸入字符及候選詞時,則所述的結(jié)果輸出模塊3判斷所述的查詢模塊4的本次查詢的時間是否超過第一閾值。
[0095]S144:當(dāng)所述的查詢模塊4的本次查詢的時間超過第一閾值時,則所述的線程管理模塊2判斷是否還存在其他的正在處理的輔助線程;
[0096]S145:當(dāng)還存在其他的正在處理的輔助線程時,則所述的查詢模塊4將本次查詢的輔助線程與其他的正在處理的輔助線程合并后繼續(xù)查詢;
[0097]S146:當(dāng)不存在其他的正在處理的輔助線程時,則所述的查詢模塊4重新進行查詢;
[0098]S147:當(dāng)所述的查詢模塊4的本次查詢的時間未超過第一閾值時,則所述的結(jié)果輸出模塊3等待所述的查詢模塊4查詢本次用戶的輸入字符及候選詞。
[0099]其中,本發(fā)明輔助線程中的查詢在觸摸抬起后還未完成,則所述的結(jié)果輸出模塊3則需要判斷查詢時間是否超過第一閾值,即系統(tǒng)所允許的查詢過程的最大的時間,超過該第一閾值,則認(rèn)為本次查詢不成功,當(dāng)還存在其他正在運行的輔助線程時,該輔助線程查詢的內(nèi)容可以與緊隨在該輔助線程后的一正在運行的輔助線程合并,這樣查詢模塊4可以根據(jù)兩次輸入的字符進行查詢,以加快查詢速度。其中,可設(shè)置該第一閾值為50ms-80ms。
[0100]需要指出的是,本發(fā)明所描述的系統(tǒng)和方法可以運用于除英語外的其他語種。本發(fā)明所描述的系統(tǒng)和方法還可以應(yīng)用于其他鍵盤等,術(shù)語“鍵盤”是廣義定義的,包括任何具有確定區(qū)域的輸入部件,包含但不局限于硬件機械式鍵盤、硬件感應(yīng)式鍵盤、觸摸屏上的軟件鍵盤等。本發(fā)明的實施例默認(rèn)以觸摸屏上的軟件鍵盤為例說明,但本領(lǐng)域的普通技術(shù)人員可以理解,本發(fā)明所提及的方法和系統(tǒng)也可以應(yīng)用于硬件鍵盤。
[0101]采用了該發(fā)明中的高效的觸摸屏文本輸入系統(tǒng)及方法,與現(xiàn)有技術(shù)相比,具有以下有益效果:
[0102]第一,請參閱圖12a和12b所示,為本發(fā)明與現(xiàn)有技術(shù)的對比圖,其中現(xiàn)有技術(shù)中觸摸按下和觸摸抬起的時間間隔一般為100ms,在觸摸抬起后再開始進行查詢,也就是說,用戶不得不在觸摸抬起之后等待查詢過程完成才能獲得反饋,從而使得用戶體驗受到數(shù)據(jù)庫查詢速度甚至網(wǎng)絡(luò)聯(lián)網(wǎng)速度的限制,常常產(chǎn)生卡頓或延遲。而本發(fā)明中通過開啟輔助線程,在觸摸按下后同步進行查詢,當(dāng)觸摸抬起時,查詢結(jié)果已經(jīng)得到,用戶可以即時獲得反饋。在另一種實施方式中,即使數(shù)據(jù)庫再龐大或聯(lián)網(wǎng)速度很慢,使得查詢模塊4花費了超出正常數(shù)倍的時間進行查詢,但由于其在用戶觸摸抬起時完成了查詢,對于用戶而言,整個輸入的體驗仍然是極為流暢的。因此在每次點擊的過程中,采用本發(fā)明,使得用戶的輸入速度整整提高了 40%至50%,同時也有效地增強了人機交互水平。另外,值得注意的是,現(xiàn)有技術(shù)中每次點擊手勢的整體耗時有4.29 %在150ms以上,而采用本發(fā)明后,只有2.5 %的點擊手勢超過150ms,整整下降了一倍,優(yōu)化了用戶的輸入體驗。
[0103]第二,對于內(nèi)存,現(xiàn)有技術(shù)中為了提高點擊速度使用了大量的cache,但是對于提高點擊速度并未有明顯的影響,而采用本發(fā)明的技術(shù)方案,可以減少部分cache,釋放內(nèi)存,提高系統(tǒng)的整體運行水平。
[0104]在此說明書中,本發(fā)明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限制性的。
【主權(quán)項】
1.一種高效的觸摸屏文本輸入系統(tǒng),其特征在于,所述的系統(tǒng)包括: 觸點檢測模塊,用以檢測所述的觸摸屏上是否存在觸摸按下及觸摸抬起; 線程管理模塊,用以當(dāng)所述的觸點檢測模塊檢測到所述的觸摸屏上存在觸摸按下時,開啟輔助線程; 查詢模塊,用以在所述輔助線程中根據(jù)所述觸點觸摸按下的區(qū)域,在字典庫中查詢用戶的輸入字符和/或候選詞; 結(jié)果輸出模塊,用以當(dāng)所述的觸點檢測模塊檢測到所述的觸摸屏上存在觸摸抬起時,輸出所述的查詢模塊所查詢到的用戶的輸入字符和/或候選詞,以及當(dāng)所述的觸點檢測模塊未檢測到所述的觸摸屏上存在觸摸抬起時,放棄所述的查詢模塊所查詢到的結(jié)果。2.根據(jù)權(quán)利要求1所述的高效的觸摸屏文本輸入系統(tǒng),其特征在于,當(dāng)所述觸點檢測模塊檢測到存在觸摸抬起時,所述觸點檢測模塊進一步判斷該觸摸按下與對應(yīng)該觸摸按下的觸摸抬起是否構(gòu)成一次點擊。3.根據(jù)權(quán)利要求2所述的高效的觸摸屏文本輸入系統(tǒng),其特征在于,所述觸點檢測模塊進一步檢測所述觸摸按下與觸摸抬起的位置是否發(fā)生變化,或檢測觸摸按下與觸摸抬起之間的時間間隔是否超過預(yù)定時間間隔。4.根據(jù)權(quán)利要求1所述的高效的觸摸屏文本輸入系統(tǒng),其特征在于,根據(jù)包含多個子庫或支路的字典庫,所述線程管理模塊對于同一個觸摸按下,開啟多條輔助線程同時進行查詢。5.根據(jù)權(quán)利要求1所述的高效的觸摸屏文本輸入系統(tǒng),其特征在于,當(dāng)存在多個輔助線程一起工作,并且其中一個輔助線程中所述查詢模塊進行查詢的查詢時間超過第一閾值時,所述線程管理模塊將該線程與在該線程之后開啟的一個線程進行合并。6.根據(jù)權(quán)利要求1所述的高效的觸摸屏文本輸入系統(tǒng),其特征在于,當(dāng)所述觸點檢測模塊依次檢測到第一次觸摸按下、第二次觸摸按下、第二次觸摸抬起之后,仍未檢測到對應(yīng)所述第一次觸摸按下的觸摸抬起,則模擬對應(yīng)于第一次觸摸按下的觸摸抬起的信號,并發(fā)送至對應(yīng)的輔助線程。7.根據(jù)權(quán)利要求1所述的高效的觸摸屏文本輸入系統(tǒng),其特征在于,所述的系統(tǒng)還包括UI控制模塊,用以當(dāng)所述的觸點檢測模塊檢測到所述的觸摸屏上存在觸摸按下時,控制觸點觸摸按下的區(qū)域的狀態(tài)改變,以及當(dāng)所述的觸點檢測模塊檢測到所述的觸摸屏上存在觸摸抬起時,控制觸點觸摸按下的區(qū)域恢復(fù)原始狀態(tài)。8.根據(jù)權(quán)利要求1所述的高效的觸摸屏文本輸入系統(tǒng),其特征在于,所述字典庫進一步部署在云端,所述的系統(tǒng)還包括通信模塊,所述的查詢模塊用以通過所述的通信模塊對云端的字典庫進行查詢。9.一種高效的觸摸屏文本輸入方法,其特征在于,所述的方法包括主線程處理過程及輔助線程處理過程: 所述的主線程處理過程包括: 檢測觸摸屏上是否存在觸摸按下; 當(dāng)存在所述觸摸按下時,則開啟至少一條與所述觸摸按下對應(yīng)的輔助線程; 檢測所述的觸摸屏上是否存在觸摸抬起; 當(dāng)存在所述觸摸抬起時,則從所述輔助線程獲得根據(jù)本次輸入進行查詢的字符和/或候選詞,并輸出該查詢結(jié)果;當(dāng)不存在觸摸抬起時,則放棄本次所述的輔助線程中的查詢結(jié)果; 所述的輔助線程處理過程包括: 根據(jù)所述的觸點觸摸按下的區(qū)域,在字典庫中查詢對應(yīng)的輸入字符和/或候選詞,并且當(dāng)存在所述觸摸抬起時,發(fā)送所查詢到的結(jié)果至主線程處理過程。10.根據(jù)權(quán)利要求9所述的高效的觸摸屏文本輸入方法,其特征在于,所述檢測是否存在觸摸抬起進一步包括:當(dāng)存在觸摸抬起時,判斷所述的觸摸按下與該觸摸抬起是否組成一次點擊。11.根據(jù)權(quán)利要求10所述的高效的觸摸屏文本輸入方法,其特征在于,所述判斷觸摸按下與觸摸抬起是否組成一次點擊包括:檢測所述觸摸按下與觸摸抬起的位置是否發(fā)生變化,或檢測觸摸按下與觸摸抬起之間的時間間隔是否超過預(yù)定時間間隔。12.根據(jù)權(quán)利要求9所述的高效的觸摸屏文本輸入方法,其特征在于,根據(jù)同一個觸摸按下的區(qū)域,開啟多條輔助線程同時進行查詢。13.根據(jù)權(quán)利要求9所述的高效的觸摸屏文本輸入方法,其特征在于,當(dāng)尚未查詢到與本次觸摸按下對應(yīng)的字符和/或候選詞時,判斷本次查詢的時間是否超過第一閾值,若超過且存在其他的正在處理的輔助線程,則將本次查詢的輔助線程與其他的正在處理的輔助線程合并后繼續(xù)查詢;當(dāng)不存在其他的正在處理的輔助線程時,則重新進行查詢。14.根據(jù)權(quán)利要求9所述的高效的觸摸屏文本輸入方法,其特征在于,還包括:當(dāng)所述的觸摸屏上存在觸摸按下時,改變所述的觸點觸摸按下的區(qū)域的狀態(tài);以及當(dāng)存在觸摸抬起時,將狀態(tài)發(fā)生改變的觸點觸摸按下區(qū)域恢復(fù)原始狀態(tài)。15.根據(jù)權(quán)利要求9所述的高效的觸摸屏文本輸入方法,其特征在于,所述輔助線程進一步包括對部署在云端的字典庫進行查詢。
【文檔編號】G06F17/30GK105988704SQ201510095074
【公開日】2016年10月5日
【申請日】2015年3月3日
【發(fā)明人】甘露
【申請人】上海觸樂信息科技有限公司