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

?

基于Android系統(tǒng)智能終端的藏文輸入法分析與實(shí)現(xiàn)

2014-04-29 09:44張繼偉
網(wǎng)絡(luò)空間安全 2014年4期
關(guān)鍵詞:Android系統(tǒng)軟件開發(fā)

【 摘 要 】 移動(dòng)互聯(lián)網(wǎng)時(shí)代已經(jīng)到來,各種移動(dòng)終端成為了人們交流與溝通的重要工具,然而少數(shù)民族文化信息的傳遞因?yàn)檩斎敕ǖ娜笔Ф艿搅艘欢ǖ南拗疲苿?dòng)和發(fā)展少數(shù)民族文化需要從最基本的文字輸入法開始。針對(duì)以上問題,本文通過對(duì)藏文的特點(diǎn)、藏文文字的組成、國(guó)內(nèi)外對(duì)藏文文字信息編碼等方面進(jìn)行了探討和研究,在此基礎(chǔ)上分析了Android系統(tǒng)輸入法框架IMF的特點(diǎn)、組成及工作原理。最后依據(jù)Android系統(tǒng)輸入法的框架通過使用各種開發(fā)工具和方法,開發(fā)出了一款藏文輸入法,并通過了在Android系統(tǒng)終端上的測(cè)試。文章闡述了藏文在Android系統(tǒng)下輸入法的設(shè)計(jì)思想以及實(shí)現(xiàn)過程,介紹了該技術(shù)的設(shè)計(jì)原理以及流程。

【 關(guān)鍵詞 】 軟件開發(fā);Android系統(tǒng);智能終端應(yīng)用;輸入法框架IMF;藏文輸入法;系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

【 中圖分類號(hào) 】 TP391.14 【 文獻(xiàn)標(biāo)識(shí)碼 】 A

1 引言

隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來,各種信息化應(yīng)用鋪天蓋地,大量的信息在人群間傳遞,而少數(shù)民族文化也需要一展風(fēng)采,藏文化作為中華文化的重要成員,在信息時(shí)代發(fā)展藏民族文化至關(guān)重要,而輸入法是發(fā)展藏文化的基礎(chǔ)的基礎(chǔ)。從移動(dòng)終端來看,Android系統(tǒng)與IOS系統(tǒng)獨(dú)領(lǐng)風(fēng)騷,可惜Android系統(tǒng)自Android 1.5版本到最新的4.0版本都沒有在底層實(shí)現(xiàn)對(duì)藏文的支持,所以很有必要攻堅(jiān)克難打造一款好用的、符合藏語特點(diǎn)的藏文輸入法。

2 Android系統(tǒng)藏文輸入法設(shè)計(jì)與實(shí)現(xiàn)

2.1 Android系統(tǒng)輸入法框架IMF

IMF是input method framework的簡(jiǎn)稱, 它是Android 1.5新添加進(jìn)去的一個(gè)重要功能,用來支持軟鍵盤、各種的輸入法。按照SDK文檔的敘述,一個(gè)IMF結(jié)構(gòu)中包含三個(gè)主要的部分。

input method manager:管理各部分的交互。它是一個(gè)客戶端API,是整個(gè)輸入法框架(IMF)結(jié)構(gòu)的核心,存在于各個(gè)應(yīng)用程序的context中,用來溝通管理所有進(jìn)程間交互的全局系統(tǒng)服務(wù),可以通過Context.getSystemService()來獲取一個(gè)InputMethodManager的實(shí)例。

input method:實(shí)現(xiàn)一個(gè)允許用戶生成文本的獨(dú)立交互模塊。系統(tǒng)綁定一個(gè)當(dāng)前的輸入法。使其創(chuàng)建和生成,決定輸入法何時(shí)隱藏或者顯示它的UI。同一時(shí)間只能有一個(gè)IME運(yùn)行。

client application:通過輸入法管理器控制輸入焦點(diǎn)和IME的狀態(tài)。一次只能有一個(gè)客戶端使用IME。

Android系統(tǒng)的客戶端控件主要是TextView及其子類,客戶端控件是輸入法人機(jī)交互的起點(diǎn),客戶端控件與輸入法服務(wù)和輸入法應(yīng)用都有交互操作。Android系統(tǒng)的輸入法框架為輸入法應(yīng)用定義了一個(gè)基類InputMethodService。InputMethodService提供了一個(gè)輸入法的標(biāo)準(zhǔn)實(shí)現(xiàn)。定義了輸入法生命周期內(nèi)的重要函數(shù),提供給開發(fā)人員進(jìn)行相應(yīng)的處理。輸入法應(yīng)用的生命周期{3}:

當(dāng)用戶觸發(fā)輸入法顯示的時(shí)候(客戶端控件獲得焦點(diǎn)),InputMethodService啟動(dòng)。

1)調(diào)用onCreate() 函數(shù),該函數(shù)在輸入法第一次啟動(dòng)的時(shí)候調(diào)用,適合用來做一些初始化的設(shè)置。

2)調(diào)用onCreateInputView() 函數(shù),在該函數(shù)中創(chuàng)建KeyboardView并返回。

3)調(diào)用onCreateCandidatesView()函數(shù),在該函數(shù)中創(chuàng)建候選區(qū)實(shí)現(xiàn)并返回。

4)調(diào)用onStartInputView()函數(shù)來開始輸入內(nèi)容。

5)輸入結(jié)束后調(diào)用onFinishInput()函數(shù)來結(jié)束當(dāng)前的輸入。

6)如果移動(dòng)到下一個(gè)輸入框則重復(fù)調(diào)用onStartInputView和onFinishInput函數(shù)。

7)在輸入法關(guān)閉的時(shí)候調(diào)用onDestroy() 函數(shù)。

2.2 藏文輸入法實(shí)現(xiàn)

Android系統(tǒng)中藏文輸入法要依據(jù)Android輸入法框架來完成,只不過關(guān)鍵點(diǎn)在于如何將藏文文字實(shí)現(xiàn)展現(xiàn)和輸入。為了能在通信網(wǎng)絡(luò)中順利傳輸以及防范不規(guī)則編碼的出現(xiàn),依據(jù)本文開發(fā)出的藏文輸入法藏文采用Unicode國(guó)際編碼。整個(gè)開發(fā)環(huán)境基于Windows XP系統(tǒng),在開發(fā)過程中使用的工具有Windows XP 自帶計(jì)算器、圖片制作工具M(jìn)icroMedia Fireworks、Eclipse工具(eclipse-java-indigo-win32版本)、jdk 1.6、android-sdk-windows平臺(tái)2.1版本等,而開發(fā)所參考的模型為Android系統(tǒng)開源輸入法實(shí)例。

2.2.1 藏文基本文字編碼轉(zhuǎn)換

藏文(Tibetan)Unicode 編碼表[范圍(0F00-0FFF)共256個(gè)],但藏文文字中30個(gè)輔音字母、4個(gè)元音符號(hào)、以及5個(gè)反寫字母(用以拼外來語)最為常用,大部分常見藏文文字可以由這些基本字組合而成;所以需要將這些基本字根的十六進(jìn)制Unicode編碼進(jìn)行十進(jìn)制的轉(zhuǎn)換,以便能在Android系統(tǒng)中識(shí)別。轉(zhuǎn)換可以使用windows自帶計(jì)算器進(jìn)行轉(zhuǎn)換,部分轉(zhuǎn)換編碼對(duì)應(yīng)關(guān)系如表1。

2.2.2 藏文基本文字輸入法圖片制作

由于Android系統(tǒng)底層沒有對(duì)藏文的支持,如果在開發(fā)中直接使用編碼的話,最后完成的輸入法操作面板為亂碼“□”,界面將會(huì)無法正常使用,而Android系統(tǒng)中的鍵盤文件提供了圖標(biāo)功能,通過圖標(biāo)標(biāo)簽就可以將藏文正常顯示在鍵盤面板上。所以還需要將藏文輔音字、元音字等基本字制作成小圖片,圖片大小可以為17×30像素,格式可以是png或jpg等常見圖片格式,文字制作圖片可以使用FireWorks、PhotoShop等制圖工具,字形可以從該網(wǎng)址查詢http://www.marathon-studios.com/unicode/U0F40/Tibetan_Vowel_Sign_O,每次只需要變化該網(wǎng)址中的粗體部分。endprint

2.2.3 藏文輸入法實(shí)現(xiàn)及測(cè)試驗(yàn)證

在eclipse開發(fā)環(huán)境中將Android系統(tǒng)開源輸入法實(shí)例進(jìn)行工程導(dǎo)入,并將制作的全部藏文圖標(biāo)導(dǎo)入res\drawable目錄下,然后在res\xml目錄下新建鍵盤文件并將前面轉(zhuǎn)換和制作的圖標(biāo)進(jìn)行對(duì)應(yīng),比如:從字形上可以對(duì)應(yīng)的十進(jìn)制為3904和3984,而其對(duì)應(yīng)的圖標(biāo)為圖片a1,代碼如下:

其他藏文基本字以此類推,主要是做好全鍵盤的布局,以方便使用者使用。

然后在SoftKeyboard.Java中進(jìn)行新建鍵盤文件的加載,定義全局私有變量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中進(jìn)行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中進(jìn)行鍵盤的點(diǎn)擊切換的代碼開發(fā);以此,便可以完成一個(gè)集藏文、英文字母、數(shù)字、符號(hào)為一體的藏文輸入法。測(cè)試時(shí)可以在Eclipse開發(fā)環(huán)境中新建Android project工程,在工程中使用EditText組件,并將其字體顯示屬性設(shè)置setTypeface(tf),tf是Typeface實(shí)例,需要引入相應(yīng)的藏文字庫,字庫可以選擇微軟的Himalaya字庫,經(jīng)過測(cè)試可以完美的實(shí)現(xiàn)藏文文字的輸入。最終的輸入法界面及測(cè)試如圖2所示。

3 結(jié)束語

該藏文輸入法利用了Android系統(tǒng)輸入法框架,在其基礎(chǔ)之上通過一些方法巧妙的方法實(shí)現(xiàn)了藏文文字的展示及輸入,并且采用了Unicode編碼,符合國(guó)際國(guó)家通信網(wǎng)絡(luò)要求,完全可以在實(shí)際通信網(wǎng)絡(luò)中使用。雖然此輸入法簡(jiǎn)單,但可以作為其他藏文輸入法的基礎(chǔ),在此基礎(chǔ)上可以研究聯(lián)想字詞藏文輸入法和手寫輸入法,并且還可以作為開發(fā)其他少數(shù)民族文字Android系統(tǒng)輸入法的參考。

參考文獻(xiàn)

[1] 藏文 [EB/OL].百度百科.

[2] 吳兵,江荻.藏文國(guó)際編碼的發(fā)展與技術(shù)應(yīng)用[EB/OL].中國(guó)知網(wǎng).

[3] Android平臺(tái)輸入法開發(fā)解析 [EB/OL].百度百科.

[4] 太清-太清撰寫:藏文字母表 [EB/OL].

作者簡(jiǎn)介:

張繼偉(1983-),男,甘肅甘谷人,本科,通信工程師;主要研究方向和關(guān)注領(lǐng)域:軟件設(shè)計(jì)、開發(fā),通信技術(shù)、通信行業(yè)業(yè)務(wù)及應(yīng)用系統(tǒng)、信息化技術(shù)及應(yīng)用。endprint

2.2.3 藏文輸入法實(shí)現(xiàn)及測(cè)試驗(yàn)證

在eclipse開發(fā)環(huán)境中將Android系統(tǒng)開源輸入法實(shí)例進(jìn)行工程導(dǎo)入,并將制作的全部藏文圖標(biāo)導(dǎo)入res\drawable目錄下,然后在res\xml目錄下新建鍵盤文件并將前面轉(zhuǎn)換和制作的圖標(biāo)進(jìn)行對(duì)應(yīng),比如:從字形上可以對(duì)應(yīng)的十進(jìn)制為3904和3984,而其對(duì)應(yīng)的圖標(biāo)為圖片a1,代碼如下:

其他藏文基本字以此類推,主要是做好全鍵盤的布局,以方便使用者使用。

然后在SoftKeyboard.Java中進(jìn)行新建鍵盤文件的加載,定義全局私有變量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中進(jìn)行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中進(jìn)行鍵盤的點(diǎn)擊切換的代碼開發(fā);以此,便可以完成一個(gè)集藏文、英文字母、數(shù)字、符號(hào)為一體的藏文輸入法。測(cè)試時(shí)可以在Eclipse開發(fā)環(huán)境中新建Android project工程,在工程中使用EditText組件,并將其字體顯示屬性設(shè)置setTypeface(tf),tf是Typeface實(shí)例,需要引入相應(yīng)的藏文字庫,字庫可以選擇微軟的Himalaya字庫,經(jīng)過測(cè)試可以完美的實(shí)現(xiàn)藏文文字的輸入。最終的輸入法界面及測(cè)試如圖2所示。

3 結(jié)束語

該藏文輸入法利用了Android系統(tǒng)輸入法框架,在其基礎(chǔ)之上通過一些方法巧妙的方法實(shí)現(xiàn)了藏文文字的展示及輸入,并且采用了Unicode編碼,符合國(guó)際國(guó)家通信網(wǎng)絡(luò)要求,完全可以在實(shí)際通信網(wǎng)絡(luò)中使用。雖然此輸入法簡(jiǎn)單,但可以作為其他藏文輸入法的基礎(chǔ),在此基礎(chǔ)上可以研究聯(lián)想字詞藏文輸入法和手寫輸入法,并且還可以作為開發(fā)其他少數(shù)民族文字Android系統(tǒng)輸入法的參考。

參考文獻(xiàn)

[1] 藏文 [EB/OL].百度百科.

[2] 吳兵,江荻.藏文國(guó)際編碼的發(fā)展與技術(shù)應(yīng)用[EB/OL].中國(guó)知網(wǎng).

[3] Android平臺(tái)輸入法開發(fā)解析 [EB/OL].百度百科.

[4] 太清-太清撰寫:藏文字母表 [EB/OL].

作者簡(jiǎn)介:

張繼偉(1983-),男,甘肅甘谷人,本科,通信工程師;主要研究方向和關(guān)注領(lǐng)域:軟件設(shè)計(jì)、開發(fā),通信技術(shù)、通信行業(yè)業(yè)務(wù)及應(yīng)用系統(tǒng)、信息化技術(shù)及應(yīng)用。endprint

2.2.3 藏文輸入法實(shí)現(xiàn)及測(cè)試驗(yàn)證

在eclipse開發(fā)環(huán)境中將Android系統(tǒng)開源輸入法實(shí)例進(jìn)行工程導(dǎo)入,并將制作的全部藏文圖標(biāo)導(dǎo)入res\drawable目錄下,然后在res\xml目錄下新建鍵盤文件并將前面轉(zhuǎn)換和制作的圖標(biāo)進(jìn)行對(duì)應(yīng),比如:從字形上可以對(duì)應(yīng)的十進(jìn)制為3904和3984,而其對(duì)應(yīng)的圖標(biāo)為圖片a1,代碼如下:

其他藏文基本字以此類推,主要是做好全鍵盤的布局,以方便使用者使用。

然后在SoftKeyboard.Java中進(jìn)行新建鍵盤文件的加載,定義全局私有變量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中進(jìn)行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中進(jìn)行鍵盤的點(diǎn)擊切換的代碼開發(fā);以此,便可以完成一個(gè)集藏文、英文字母、數(shù)字、符號(hào)為一體的藏文輸入法。測(cè)試時(shí)可以在Eclipse開發(fā)環(huán)境中新建Android project工程,在工程中使用EditText組件,并將其字體顯示屬性設(shè)置setTypeface(tf),tf是Typeface實(shí)例,需要引入相應(yīng)的藏文字庫,字庫可以選擇微軟的Himalaya字庫,經(jīng)過測(cè)試可以完美的實(shí)現(xiàn)藏文文字的輸入。最終的輸入法界面及測(cè)試如圖2所示。

3 結(jié)束語

該藏文輸入法利用了Android系統(tǒng)輸入法框架,在其基礎(chǔ)之上通過一些方法巧妙的方法實(shí)現(xiàn)了藏文文字的展示及輸入,并且采用了Unicode編碼,符合國(guó)際國(guó)家通信網(wǎng)絡(luò)要求,完全可以在實(shí)際通信網(wǎng)絡(luò)中使用。雖然此輸入法簡(jiǎn)單,但可以作為其他藏文輸入法的基礎(chǔ),在此基礎(chǔ)上可以研究聯(lián)想字詞藏文輸入法和手寫輸入法,并且還可以作為開發(fā)其他少數(shù)民族文字Android系統(tǒng)輸入法的參考。

參考文獻(xiàn)

[1] 藏文 [EB/OL].百度百科.

[2] 吳兵,江荻.藏文國(guó)際編碼的發(fā)展與技術(shù)應(yīng)用[EB/OL].中國(guó)知網(wǎng).

[3] Android平臺(tái)輸入法開發(fā)解析 [EB/OL].百度百科.

[4] 太清-太清撰寫:藏文字母表 [EB/OL].

作者簡(jiǎn)介:

張繼偉(1983-),男,甘肅甘谷人,本科,通信工程師;主要研究方向和關(guān)注領(lǐng)域:軟件設(shè)計(jì)、開發(fā),通信技術(shù)、通信行業(yè)業(yè)務(wù)及應(yīng)用系統(tǒng)、信息化技術(shù)及應(yīng)用。endprint

猜你喜歡
Android系統(tǒng)軟件開發(fā)
Android系統(tǒng)上的移動(dòng)互聯(lián)網(wǎng)集成平臺(tái)開發(fā)機(jī)制
Android系統(tǒng)核心管理工具設(shè)計(jì)與實(shí)現(xiàn)
Android下的機(jī)械式電表數(shù)字識(shí)別技術(shù)研究
信息安全環(huán)境下的計(jì)算機(jī)軟件開發(fā)研究
基于GPS和iBeacon的智能校園信息發(fā)布平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
基于增強(qiáng)現(xiàn)實(shí)技術(shù)的導(dǎo)航系統(tǒng)研究
核電廠定期試驗(yàn)管理軟件開發(fā)
FPGA軟件開發(fā)過程中編碼規(guī)范的作用