国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android平臺(tái)的“字元碼”輸入法研究與實(shí)現(xiàn)

2017-12-11 09:55劉正標(biāo)
電腦知識(shí)與技術(shù) 2017年31期
關(guān)鍵詞:字庫(kù)

劉正標(biāo)

摘要:該文根據(jù)筆者多年對(duì)漢字的字形結(jié)構(gòu)以及筆畫(huà)特點(diǎn)的研究比較和分析,提出了一種將漢字分解為字元,并將字元合理分布到手機(jī)的0-9數(shù)字鍵中,利用數(shù)字鍵進(jìn)行中文輸入的思路和方法;該輸入法的實(shí)現(xiàn)非常適合于那些沒(méi)有學(xué)過(guò)拼音、不了解阿拉伯字母的中老年人進(jìn)行中文輸入;同時(shí)該文的思路也可以應(yīng)用在大部分具有數(shù)字鍵盤(pán)的設(shè)備的中文輸入。

關(guān)鍵詞:字元;中文輸入法;數(shù)字小鍵盤(pán);Android;輸入法框架;字庫(kù)

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)31-0057-02

1 背景

隨著智能手機(jī)對(duì)人們生活的影響越來(lái)越大,利用智能手機(jī)進(jìn)行中文輸入交流已經(jīng)成為了人們生活中不可缺少的內(nèi)容,特別是目前微信和QQ等網(wǎng)絡(luò)通訊軟件已經(jīng)代替了以前傳統(tǒng)短信通訊。因此應(yīng)用于手機(jī)上的中文輸入法軟件顯得尤為重要,也產(chǎn)生了不少各種各樣的手機(jī)中文輸入法,比如基于筆畫(huà)的筆畫(huà)輸入法,基于拼音的拼音輸入法,還有基于各種方言的輸入法也層出不窮。然而對(duì)于廣大沒(méi)學(xué)過(guò)拼音或者不了解阿拉伯字母的中老年人迫切需要一種能用于手機(jī)的簡(jiǎn)單易用的中文輸入軟件。因此,如何利用簡(jiǎn)單的0-9數(shù)字進(jìn)行快速有效的漢字輸入,也是筆者一直研究的課題。本文對(duì)漢字輸入法的規(guī)則和手機(jī)數(shù)字鍵盤(pán)漢字輸入的規(guī)律進(jìn)行研究,提出了一種能應(yīng)用在Android平臺(tái)的基于數(shù)字編碼的形碼中文輸入法以及在Android平臺(tái)上的軟件實(shí)現(xiàn)方法。

2 輸入法開(kāi)發(fā)環(huán)境及相關(guān)技術(shù)

Android 簡(jiǎn)介,Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。

Android IMF,全稱(chēng)為Android Input Method Framework,中文解釋為輸入方法框架。是由google公司提供給用戶(hù)的一種輸入法編程接口,主要由input method manager、input method(IME)、client application三部分組成,分別用來(lái)管理各部分的交互、實(shí)現(xiàn)一個(gè)允許用戶(hù)生成文本的獨(dú)立交互模塊、通過(guò)輸入法管理器控制輸入焦點(diǎn)和IME的狀態(tài)等功能。

Android SDK,全稱(chēng)為Android Software Development Kit,中文解釋為Android軟件開(kāi)發(fā)工具包。是Android平臺(tái)專(zhuān)屬軟件開(kāi)發(fā)工具包。

Eclipse,是開(kāi)放源代碼的、基于Java的一種可擴(kuò)展開(kāi)發(fā)平臺(tái)。它提供了一個(gè)框架和一組服務(wù),通過(guò)插件組件來(lái)構(gòu)建需要的開(kāi)發(fā)環(huán)境。通過(guò)安裝不同的插件Eclipse能支持不同的編程語(yǔ)言,如Java、Python和C++等。Eclipse是目前程序員使用最廣的集成開(kāi)發(fā)工具。

3 字元輸入法實(shí)現(xiàn)及關(guān)鍵技術(shù)

3.1 編碼方式

筆者通過(guò)對(duì)各種漢字輸入法和漢字結(jié)構(gòu)的研究比較之后發(fā)現(xiàn),在設(shè)計(jì)漢字的字元時(shí),除了要考慮到漢字的部首,還要考慮到漢字的形,因此本輸入法根據(jù)組成漢字的字元的記憶特點(diǎn)和使用頻率,將字形和部首進(jìn)行合理設(shè)計(jì),稱(chēng)為“字元碼”,然后將它們按使用頻率分布到0-9這10個(gè)數(shù)字中。

3.2 輸入法設(shè)計(jì)思路

字元碼輸入法設(shè)計(jì)的目的是充分利用數(shù)字簡(jiǎn)單的優(yōu)點(diǎn)來(lái)提高輸入速度,所以在設(shè)計(jì)輸入法時(shí)筆者主要從如下幾個(gè)方面進(jìn)行考慮:

1) 能進(jìn)行詞組輸入,設(shè)計(jì)規(guī)則為:如果是雙字詞取每個(gè)詞的前兩個(gè)字元編碼;如果是三字詞取前兩個(gè)字的首字元編碼以及第三個(gè)字的前兩個(gè)字元的編碼;四字詞則直接從每個(gè)漢字中取一個(gè)編碼;多字詞以及整句設(shè)計(jì)為取前三個(gè)字的第首字編碼和最后一個(gè)字的首字編碼。

2) 能造詞和整句輸入,對(duì)于輸入過(guò)程中經(jīng)常使用的詞或整句,提供造詞功能,將用戶(hù)造的詞加入到用戶(hù)詞庫(kù)中,以方便下次輸入。

3) 能進(jìn)行自動(dòng)調(diào)頻,根據(jù)用戶(hù)的輸入習(xí)慣對(duì)經(jīng)常輸入的重碼字,按使用的頻率自動(dòng)調(diào)整到候選列表的前部。

4) 能進(jìn)行詞語(yǔ)聯(lián)想,詞語(yǔ)聯(lián)想能大大提高手機(jī)輸入速度,因?yàn)楸拒浖蔡峁┝嗽~語(yǔ)聯(lián)想功能。

5) 能進(jìn)行簡(jiǎn)體和繁體字的輸入切換。

3.3 代碼設(shè)計(jì)與實(shí)現(xiàn)

1) 界面實(shí)現(xiàn)

輸入法界面實(shí)現(xiàn)主要采用Android IMF編程,借鑒目前比較流行的手機(jī)輸入法,界面風(fēng)格保持簡(jiǎn)潔、清新、易用。輸入法主界面如圖1所示。

2) 字庫(kù)的設(shè)計(jì)

Android平臺(tái)集成了SQLite作為內(nèi)置數(shù)據(jù)庫(kù),SQLite具有占用資源少的優(yōu)勢(shì),因此本輸入法的字庫(kù)編碼都采用碼表的方式存入SQLite數(shù)據(jù)庫(kù)中。字段結(jié)構(gòu)如下表,其中keys字段存放的是字詞編碼,word字段存放的是對(duì)應(yīng)的字詞,_id字段存放的是調(diào)頻用的優(yōu)先級(jí)。

DROP TABLE "words";

CREATE TABLE "words" (

"keys" TEXT,

"word" TEXT,

"_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL

);

3) 關(guān)鍵技術(shù)代碼

詞語(yǔ)聯(lián)想功能是本輸入法的一大亮點(diǎn),用戶(hù)輸入詞語(yǔ)后通過(guò)查詢(xún)聯(lián)想數(shù)據(jù)庫(kù),判斷該詞語(yǔ)有哪些后續(xù)的聯(lián)想關(guān)聯(lián)詞語(yǔ),讀出這些詞語(yǔ)按優(yōu)先級(jí)顯示在候選窗口,主要代碼如下:

public void pickSuggestionManually(int index,CharSequence mSelectedString) {

if (mCompletionOn && mCompletions != null && index >= 0

&& index < mCompletions.length) {

CompletionInfo ci = mCompletions[index];

getCurrentInputConnection().commitCompletion(ci);

if (mCandidateView != null) {

mCandidateView.clear();

}

updateShiftKeyState(getCurrentInputEditorInfo());

}else if(mComposing.length()>0||(mWordTemp!=null&& mWordTemp.length() == 1) ) {

CharSequence mSelectedString_temp = null;

if(((mSelectedString.toString()).substring(0, 1).matches("[\u4e00-\u9fa5]+"))&& mSelectedString.length()>1){

mSelectedString_temp=mSelectedString.subSequence(1, mSelectedString.length());

}else{

mSelectedString_temp = mSelectedString;

}

getCurrentInputConnection().commitText(mSelectedString_temp, 1);

mWordTemp = mSelectedString.toString();

if(mWordTemp.length() == 1){

updateCandidates();

}else{

mCandidateView.clear();

mWordTemp = null;

}

}

4 結(jié)束語(yǔ)

本文從漢字的字形和結(jié)構(gòu)出發(fā),研究了一種基于阿拉數(shù)字0-9編碼的簡(jiǎn)便輸入法,并在流行的Android平臺(tái)上將其實(shí)現(xiàn)。該輸入法設(shè)計(jì)模塊包括有簡(jiǎn)繁輸入功能、詞組輸入功能、詞語(yǔ)聯(lián)想功能以及用戶(hù)造詞功能。整個(gè)輸入設(shè)計(jì)簡(jiǎn)單實(shí)用,人機(jī)界面友好,字詞庫(kù)豐富。雖然說(shuō)字元碼輸入法的在 Android 平臺(tái)已經(jīng)實(shí)現(xiàn)的大部分功能,但是由于本人時(shí)間和精力有限,本系統(tǒng)將來(lái)仍需要進(jìn)行各方面的完善。

參考文獻(xiàn):

[1] 王岳. Android 平臺(tái)中文輸入法的設(shè)計(jì)和實(shí)現(xiàn)[D]. 蘇州: 蘇州大學(xué), 2012.

[2] Android.維基百科, 自由的百科全書(shū)[EB/OL]. http://zh.wikipedia.org/wiki/Android.

[3] Android 系統(tǒng)的架構(gòu)基礎(chǔ)知識(shí)[EB/OL]. http://www.android-study.com/jichuzhishi/550.html.

[4] 陳友亮. 基于 Android 平臺(tái)輸入法設(shè)計(jì)和聯(lián)想功能實(shí)現(xiàn)[D]. 汕頭: 汕頭大學(xué): 2012.

[5] 陳欽梧. 新音形輸入法的設(shè)計(jì)及其在 Android 平臺(tái)上的實(shí)現(xiàn)[D]. 汕頭: 汕頭大學(xué), 2012.

[6] 陳欽梧, 彭小忠. 新音形編碼漢字輸入法設(shè)計(jì)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2014, 50(1):36-40.

猜你喜歡
字庫(kù)
No.2 喜茶聯(lián)合漢儀字庫(kù)推出微型書(shū)和書(shū)簽
某型號(hào)產(chǎn)品的字庫(kù)遷移優(yōu)化設(shè)計(jì)
老家的惜字庫(kù)
相同字庫(kù)條件下激光打印文件特征的變化規(guī)律和特點(diǎn)
再議字庫(kù)知識(shí)產(chǎn)權(quán)保護(hù)
云南省| 宣恩县| 宣城市| 阿鲁科尔沁旗| 临湘市| 连州市| 盘锦市| 天等县| 搜索| 岳阳县| 岳西县| 黑水县| 玉龙| 突泉县| 湖州市| 高邮市| 普陀区| 上虞市| 罗源县| 林甸县| 鸡东县| 霍州市| 杭锦后旗| 乌兰浩特市| 河南省| 宁陵县| 义乌市| 碌曲县| 临清市| 治多县| 万安县| 阿克陶县| 西畴县| 青冈县| 壤塘县| 高雄市| 龙口市| 和田市| 吴旗县| 炉霍县| 蓬莱市|