999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

中文LINUX輸入法引擎標準研究

2008-12-31 00:00:00
跨世紀 2008年11期

【摘要】Linux系統的輸入法存在多種框架和實現,以往的標準化努力沒有給出令人滿意的結果,輸入法引擎(IME)接口標準化采用了新的路線,有助于開發可適用于不同框架的IME。在總結歸納現有輸入法框架基礎上,分析了對IME接口進行標準化的基本原理,詳細說明了IME接口標準的重要特性和設計原則;相關的實體被劃分到4個部分,使用時序圖對不同部分的交互進行了細致的分析,其設計和實踐可供開發符合標準的IME時參考。

【關鍵詞】中文信息處理;輸入法;輸入法引擎;Linux標準化

【中圖號】TP3-0【文獻標示碼】A【文章編號】1005-1074(2008)11-0225-01

1標準化輸入法引擎API

1.1標準化路線的改變以往對輸入法標準化的對象分別是輸入法客戶使用輸入法的API和輸入法框架的工作協議,隨著系統的演進、國際化水平的提高,原有標準已經不再能滿足用戶需求,其約束力也在減弱。中文Linux標準對輸入法標準化對象的選擇,是以往標準認定的屬于特定框架實現內部事務的輸入法引擎API,從輸入法發展情況看,這一全新的標準化路線不僅合理,而且可行。制定一個更好的標準取代現有標準并不容易現實,目前多種XIM 替代框架都在發展,各有優勢和用戶群,用標準形式對競爭前景尚不明朗的技術做出選擇顯然不是明智之舉。此外,XIM協議標準化是為了在單一的框架中允許不同實現,從實踐情況看,這種標準化方式的意義也值得推敲。多種框架并存的現狀可能長期存在,對不同類型系統綜合考慮時更是如此,輸入法引擎API標準化是在這一前提下的合理選擇。此標準化路線的可行性根源在于不同框架下的接口語義是相似的,實際的差異主要來自不同的編程風格和功能劃分,在綜合分析現有框架下輸入法引擎接口的基礎上,提出一個更合理、更完備的API定義是完全可能的。

1.2主要特性設計既然多種輸入法框架并存的現狀必須面對,“框架獨立性”就成為輸入法引擎API標準設計的一個基本出發點。為適應不同框架要求,需要對標準API應具備的能力做出取舍,一些依靠特定框架結構才能實現的特性將不在標準中做出要求,一些只對特定框架才有意義的信息也不通過標準接口暴露給輸入法引擎。輸入法引擎API標準對輸入法應具有的標準界面做出了規定,不是對標準界面的外觀進行具體定義,而是對所需界面元素以及相應功能進行了規范;設計基于領域內的最佳實踐,并充分考慮了動態載入的特性和輸入法引擎個性化的要求。自畫界面支持是標準的重要部分,以前對此沒有進行過有效規范。自畫界面不僅可用于輸入法引擎提供自己的操作界面,而且可用于開發非鍵盤輸入法引擎和各種輸入法輔助工具。支持自畫界面的關鍵是提供輸入法引擎與框架、輔助界面進程與框架之間的雙向通信通道,標準最終定義了一個通用的通信機制。

1.3接口設計的一些原則首先是在保證接口功能語義的前提下盡可能使接口形式簡單直觀,以便輸入法引擎開發者理解和使用;其次是簡化依賴關系,輸入法引擎以模塊形式被框架加載,模塊必須提供一個特定名字的注冊函數作為與框架交換所有信息的入口,模塊對框架不存在依賴關系。這種單向依賴避免了讓不同框架提供同名函數庫的方法可能帶來的二進制兼容問題。另一個原則是讓輸入法引擎模塊包含足夠的自說明信息,這樣可以避免依靠外部配置文件來載入模塊,便于輸入法引擎在不同框架下的部署。

2輸入法引擎API標準概況

2.1設計模型輸入法引擎API設計模型中有4個基本部件:IMM負責載入輸入法引擎模塊并進行管理;IME以模塊形式實現輸入法邏輯;Helper Manager載入輔助模塊并進行管理;Helper以模塊形式實現輔助功能Helper部分最初為自畫界面而設計,后來已超出單純界面的作用,可用于實現各種輔助功能,所以用Helper命名。輸入法引擎API由IMM/IME接口和Helper Manager/Helper接口構成。實際系統中輸入法部件的動態運行機制可以有很大不同,從進程模型看,不同IME在IMM 進程中(如果是庫模式,可能就在應用程序進程中)運行,Helper則一般會在獨立進程中執行,不同Helper進程應該由一個Helper Manager根根進程創建,并在創建過程中建立與框架中其他部分的通信信道,具體過程是各輸入法框架實現定義的,并不反映在標準內容中。

2.2標準界面的工作流程對使用標準界面的輸入法引擎而言,需要關心的只是IME/IMM接口,進程的主循環在IME之外,IME提供了一系列接口函數,供IMM在不同時機調用。IMM載入IME模塊的過程是最初入口,通過使用系統提供的動態加載函數載入模塊,獲得模塊注冊函數訪問入口,以有效的IMM函數集結構和空白IME函數集結構作為參數調用該注冊函數,IMM和IME雙方即可獲得使用對方功能所需的全部入口。以上載入過程基本也適用于Helper模塊的載入。

IME和IMM 之間的部分典型交互過程以及觸發時機示例如下:①初始化過程。給IME一個初始化自身的機會,IMM完成模塊載入過程后進行。②創建輸入法上下文(IC)。讓IME有機會建立自己的私有IC數據,當輸入法客戶程序要求建立IC時進行。③按鍵處理。當用戶按鍵時進行,讓IME能對按鍵進行處理,實現輸入法邏輯。④界面事件處理。使IME能對IMM標準界面事件做出相應,例如鼠標選擇候選頁翻頁、鼠標操作改變預編輯區光標位置等。

3基于標準的輸入法引擎實現

使用標準界面的輸入法引擎Unicode內碼輸入法,功能是輸入包括替代對(surrogate pair)在內的UTF-16編碼,提交對應字符的UTF-8編碼。由于加入了替代對處理,對預編輯區的顯示和編輯都有較為完整的處理,另外加入了候選列表處理以便測試候選顯示功能。

主站蜘蛛池模板: 亚洲三级电影在线播放| 国产人成在线视频| 成人一级黄色毛片| 无码专区国产精品第一页| 亚洲第一页在线观看| 亚欧成人无码AV在线播放| 成人日韩视频| 国产美女一级毛片| 国产乱人伦AV在线A| 国产欧美日韩资源在线观看 | 中文字幕在线欧美| 国产成人在线无码免费视频| 在线欧美a| 免费毛片网站在线观看| 亚洲av中文无码乱人伦在线r| 国产又粗又爽视频| 欧美在线观看不卡| 日韩小视频网站hq| 国产欧美在线| 天堂成人av| 国产极品美女在线| 国产高清精品在线91| a级毛片网| 亚洲性一区| 国产网友愉拍精品视频| 色偷偷av男人的天堂不卡| 久青草网站| 欧美yw精品日本国产精品| 国产九九精品视频| 日本精品影院| 中国美女**毛片录像在线| 日韩免费中文字幕| 无码国产伊人| 亚洲二区视频| 99er这里只有精品| 亚洲国产精品一区二区高清无码久久 | 114级毛片免费观看| 久996视频精品免费观看| 国产一区免费在线观看| 国产高清无码第一十页在线观看| 91精品国产丝袜| 99久久精品国产麻豆婷婷| 精品五夜婷香蕉国产线看观看| 久久综合国产乱子免费| 午夜无码一区二区三区| 日韩无码视频专区| 亚洲国产av无码综合原创国产| 天天激情综合| 真实国产精品vr专区| 小说区 亚洲 自拍 另类| 99热这里只有精品5| 无码精品一区二区久久久| 中文字幕日韩视频欧美一区| 久久精品aⅴ无码中文字幕| 色综合天天综合中文网| 国产剧情国内精品原创| 免费看久久精品99| 99在线视频免费观看| 成人一级免费视频| 欧美日韩成人| 一本大道香蕉久中文在线播放| 精品人妻一区无码视频| 中文纯内无码H| 亚洲中文字幕无码爆乳| 亚洲精品国产乱码不卡| 99精品免费欧美成人小视频| 亚洲第一在线播放| 欧美精品伊人久久| 全部免费毛片免费播放 | 成人午夜视频网站| 免费一级毛片在线观看| 亚洲全网成人资源在线观看| 亚洲国产中文精品va在线播放 | 白丝美女办公室高潮喷水视频| 亚洲码一区二区三区| 国产色网站| 高清精品美女在线播放| 2018日日摸夜夜添狠狠躁| 亚洲第一视频区| 内射人妻无套中出无码| 国产极品美女在线播放| 国产一级毛片在线|