【 摘 要 】 移動互聯(lián)網(wǎng)時代已經到來,各種移動終端成為了人們交流與溝通的重要工具,然而少數(shù)民族文化信息的傳遞因為輸入法的缺失而受到了一定的限制,推動和發(fā)展少數(shù)民族文化需要從最基本的文字輸入法開始。針對以上問題,本文通過對藏文的特點、藏文文字的組成、國內外對藏文文字信息編碼等方面進行了探討和研究,在此基礎上分析了Android系統(tǒng)輸入法框架IMF的特點、組成及工作原理。最后依據(jù)Android系統(tǒng)輸入法的框架通過使用各種開發(fā)工具和方法,開發(fā)出了一款藏文輸入法,并通過了在Android系統(tǒng)終端上的測試。文章闡述了藏文在Android系統(tǒng)下輸入法的設計思想以及實現(xiàn)過程,介紹了該技術的設計原理以及流程。
【 關鍵詞 】 軟件開發(fā);Android系統(tǒng);智能終端應用;輸入法框架IMF;藏文輸入法;系統(tǒng)設計與實現(xiàn)
【 中圖分類號 】 TP391.14 【 文獻標識碼 】 A
1 引言
隨著移動互聯(lián)網(wǎng)時代的到來,各種信息化應用鋪天蓋地,大量的信息在人群間傳遞,而少數(shù)民族文化也需要一展風采,藏文化作為中華文化的重要成員,在信息時代發(fā)展藏民族文化至關重要,而輸入法是發(fā)展藏文化的基礎的基礎。從移動終端來看,Android系統(tǒng)與IOS系統(tǒng)獨領風騷,可惜Android系統(tǒng)自Android 1.5版本到最新的4.0版本都沒有在底層實現(xiàn)對藏文的支持,所以很有必要攻堅克難打造一款好用的、符合藏語特點的藏文輸入法。
2 Android系統(tǒng)藏文輸入法設計與實現(xiàn)
2.1 Android系統(tǒng)輸入法框架IMF
IMF是input method framework的簡稱, 它是Android 1.5新添加進去的一個重要功能,用來支持軟鍵盤、各種的輸入法。按照SDK文檔的敘述,一個IMF結構中包含三個主要的部分。
input method manager:管理各部分的交互。它是一個客戶端API,是整個輸入法框架(IMF)結構的核心,存在于各個應用程序的context中,用來溝通管理所有進程間交互的全局系統(tǒng)服務,可以通過Context.getSystemService()來獲取一個InputMethodManager的實例。
input method:實現(xiàn)一個允許用戶生成文本的獨立交互模塊。系統(tǒng)綁定一個當前的輸入法。使其創(chuàng)建和生成,決定輸入法何時隱藏或者顯示它的UI。同一時間只能有一個IME運行。
client application:通過輸入法管理器控制輸入焦點和IME的狀態(tài)。一次只能有一個客戶端使用IME。
Android系統(tǒng)的客戶端控件主要是TextView及其子類,客戶端控件是輸入法人機交互的起點,客戶端控件與輸入法服務和輸入法應用都有交互操作。Android系統(tǒng)的輸入法框架為輸入法應用定義了一個基類InputMethodService。InputMethodService提供了一個輸入法的標準實現(xiàn)。定義了輸入法生命周期內的重要函數(shù),提供給開發(fā)人員進行相應的處理。輸入法應用的生命周期{3}:
當用戶觸發(fā)輸入法顯示的時候(客戶端控件獲得焦點),InputMethodService啟動。
1)調用onCreate() 函數(shù),該函數(shù)在輸入法第一次啟動的時候調用,適合用來做一些初始化的設置。
2)調用onCreateInputView() 函數(shù),在該函數(shù)中創(chuàng)建KeyboardView并返回。
3)調用onCreateCandidatesView()函數(shù),在該函數(shù)中創(chuàng)建候選區(qū)實現(xiàn)并返回。
4)調用onStartInputView()函數(shù)來開始輸入內容。
5)輸入結束后調用onFinishInput()函數(shù)來結束當前的輸入。
6)如果移動到下一個輸入框則重復調用onStartInputView和onFinishInput函數(shù)。
7)在輸入法關閉的時候調用onDestroy() 函數(shù)。
2.2 藏文輸入法實現(xiàn)
Android系統(tǒng)中藏文輸入法要依據(jù)Android輸入法框架來完成,只不過關鍵點在于如何將藏文文字實現(xiàn)展現(xiàn)和輸入。為了能在通信網(wǎng)絡中順利傳輸以及防范不規(guī)則編碼的出現(xiàn),依據(jù)本文開發(fā)出的藏文輸入法藏文采用Unicode國際編碼。整個開發(fā)環(huán)境基于Windows XP系統(tǒng),在開發(fā)過程中使用的工具有Windows XP 自帶計算器、圖片制作工具MicroMedia Fireworks、Eclipse工具(eclipse-java-indigo-win32版本)、jdk 1.6、android-sdk-windows平臺2.1版本等,而開發(fā)所參考的模型為Android系統(tǒng)開源輸入法實例。
2.2.1 藏文基本文字編碼轉換
藏文(Tibetan)Unicode 編碼表[范圍(0F00-0FFF)共256個],但藏文文字中30個輔音字母、4個元音符號、以及5個反寫字母(用以拼外來語)最為常用,大部分常見藏文文字可以由這些基本字組合而成;所以需要將這些基本字根的十六進制Unicode編碼進行十進制的轉換,以便能在Android系統(tǒng)中識別。轉換可以使用windows自帶計算器進行轉換,部分轉換編碼對應關系如表1。
2.2.2 藏文基本文字輸入法圖片制作
由于Android系統(tǒng)底層沒有對藏文的支持,如果在開發(fā)中直接使用編碼的話,最后完成的輸入法操作面板為亂碼“□”,界面將會無法正常使用,而Android系統(tǒng)中的鍵盤文件提供了圖標功能,通過圖標標簽就可以將藏文正常顯示在鍵盤面板上。所以還需要將藏文輔音字、元音字等基本字制作成小圖片,圖片大小可以為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 藏文輸入法實現(xiàn)及測試驗證
在eclipse開發(fā)環(huán)境中將Android系統(tǒng)開源輸入法實例進行工程導入,并將制作的全部藏文圖標導入res\drawable目錄下,然后在res\xml目錄下新建鍵盤文件并將前面轉換和制作的圖標進行對應,比如:從字形上可以對應的十進制為3904和3984,而其對應的圖標為圖片a1,代碼如下:
其他藏文基本字以此類推,主要是做好全鍵盤的布局,以方便使用者使用。
然后在SoftKeyboard.Java中進行新建鍵盤文件的加載,定義全局私有變量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中進行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中進行鍵盤的點擊切換的代碼開發(fā);以此,便可以完成一個集藏文、英文字母、數(shù)字、符號為一體的藏文輸入法。測試時可以在Eclipse開發(fā)環(huán)境中新建Android project工程,在工程中使用EditText組件,并將其字體顯示屬性設置setTypeface(tf),tf是Typeface實例,需要引入相應的藏文字庫,字庫可以選擇微軟的Himalaya字庫,經過測試可以完美的實現(xiàn)藏文文字的輸入。最終的輸入法界面及測試如圖2所示。
3 結束語
該藏文輸入法利用了Android系統(tǒng)輸入法框架,在其基礎之上通過一些方法巧妙的方法實現(xiàn)了藏文文字的展示及輸入,并且采用了Unicode編碼,符合國際國家通信網(wǎng)絡要求,完全可以在實際通信網(wǎng)絡中使用。雖然此輸入法簡單,但可以作為其他藏文輸入法的基礎,在此基礎上可以研究聯(lián)想字詞藏文輸入法和手寫輸入法,并且還可以作為開發(fā)其他少數(shù)民族文字Android系統(tǒng)輸入法的參考。
參考文獻
[1] 藏文 [EB/OL].百度百科.
[2] 吳兵,江荻.藏文國際編碼的發(fā)展與技術應用[EB/OL].中國知網(wǎng).
[3] Android平臺輸入法開發(fā)解析 [EB/OL].百度百科.
[4] 太清-太清撰寫:藏文字母表 [EB/OL].
作者簡介:
張繼偉(1983-),男,甘肅甘谷人,本科,通信工程師;主要研究方向和關注領域:軟件設計、開發(fā),通信技術、通信行業(yè)業(yè)務及應用系統(tǒng)、信息化技術及應用。endprint
2.2.3 藏文輸入法實現(xiàn)及測試驗證
在eclipse開發(fā)環(huán)境中將Android系統(tǒng)開源輸入法實例進行工程導入,并將制作的全部藏文圖標導入res\drawable目錄下,然后在res\xml目錄下新建鍵盤文件并將前面轉換和制作的圖標進行對應,比如:從字形上可以對應的十進制為3904和3984,而其對應的圖標為圖片a1,代碼如下:
其他藏文基本字以此類推,主要是做好全鍵盤的布局,以方便使用者使用。
然后在SoftKeyboard.Java中進行新建鍵盤文件的加載,定義全局私有變量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中進行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中進行鍵盤的點擊切換的代碼開發(fā);以此,便可以完成一個集藏文、英文字母、數(shù)字、符號為一體的藏文輸入法。測試時可以在Eclipse開發(fā)環(huán)境中新建Android project工程,在工程中使用EditText組件,并將其字體顯示屬性設置setTypeface(tf),tf是Typeface實例,需要引入相應的藏文字庫,字庫可以選擇微軟的Himalaya字庫,經過測試可以完美的實現(xiàn)藏文文字的輸入。最終的輸入法界面及測試如圖2所示。
3 結束語
該藏文輸入法利用了Android系統(tǒng)輸入法框架,在其基礎之上通過一些方法巧妙的方法實現(xiàn)了藏文文字的展示及輸入,并且采用了Unicode編碼,符合國際國家通信網(wǎng)絡要求,完全可以在實際通信網(wǎng)絡中使用。雖然此輸入法簡單,但可以作為其他藏文輸入法的基礎,在此基礎上可以研究聯(lián)想字詞藏文輸入法和手寫輸入法,并且還可以作為開發(fā)其他少數(shù)民族文字Android系統(tǒng)輸入法的參考。
參考文獻
[1] 藏文 [EB/OL].百度百科.
[2] 吳兵,江荻.藏文國際編碼的發(fā)展與技術應用[EB/OL].中國知網(wǎng).
[3] Android平臺輸入法開發(fā)解析 [EB/OL].百度百科.
[4] 太清-太清撰寫:藏文字母表 [EB/OL].
作者簡介:
張繼偉(1983-),男,甘肅甘谷人,本科,通信工程師;主要研究方向和關注領域:軟件設計、開發(fā),通信技術、通信行業(yè)業(yè)務及應用系統(tǒng)、信息化技術及應用。endprint
2.2.3 藏文輸入法實現(xiàn)及測試驗證
在eclipse開發(fā)環(huán)境中將Android系統(tǒng)開源輸入法實例進行工程導入,并將制作的全部藏文圖標導入res\drawable目錄下,然后在res\xml目錄下新建鍵盤文件并將前面轉換和制作的圖標進行對應,比如:從字形上可以對應的十進制為3904和3984,而其對應的圖標為圖片a1,代碼如下:
其他藏文基本字以此類推,主要是做好全鍵盤的布局,以方便使用者使用。
然后在SoftKeyboard.Java中進行新建鍵盤文件的加載,定義全局私有變量private LatinKeyboard mQwertyKeyboard;在onInitializeInterface()方法中進行初始化mQwertyKeyboard = new LatinKeyboard(this, R.xml.qwerty)。最后在onKey(int primaryCode, int[] keyCodes)方法中進行鍵盤的點擊切換的代碼開發(fā);以此,便可以完成一個集藏文、英文字母、數(shù)字、符號為一體的藏文輸入法。測試時可以在Eclipse開發(fā)環(huán)境中新建Android project工程,在工程中使用EditText組件,并將其字體顯示屬性設置setTypeface(tf),tf是Typeface實例,需要引入相應的藏文字庫,字庫可以選擇微軟的Himalaya字庫,經過測試可以完美的實現(xiàn)藏文文字的輸入。最終的輸入法界面及測試如圖2所示。
3 結束語
該藏文輸入法利用了Android系統(tǒng)輸入法框架,在其基礎之上通過一些方法巧妙的方法實現(xiàn)了藏文文字的展示及輸入,并且采用了Unicode編碼,符合國際國家通信網(wǎng)絡要求,完全可以在實際通信網(wǎng)絡中使用。雖然此輸入法簡單,但可以作為其他藏文輸入法的基礎,在此基礎上可以研究聯(lián)想字詞藏文輸入法和手寫輸入法,并且還可以作為開發(fā)其他少數(shù)民族文字Android系統(tǒng)輸入法的參考。
參考文獻
[1] 藏文 [EB/OL].百度百科.
[2] 吳兵,江荻.藏文國際編碼的發(fā)展與技術應用[EB/OL].中國知網(wǎng).
[3] Android平臺輸入法開發(fā)解析 [EB/OL].百度百科.
[4] 太清-太清撰寫:藏文字母表 [EB/OL].
作者簡介:
張繼偉(1983-),男,甘肅甘谷人,本科,通信工程師;主要研究方向和關注領域:軟件設計、開發(fā),通信技術、通信行業(yè)業(yè)務及應用系統(tǒng)、信息化技術及應用。endprint