InputMethodService繼承自AbstractInputMethodService,AbstractInputMethodService繼承自Service。app
首先了解一下InputMethod接口是什麼,看了源代碼中的註釋後,總結以下。InputMethod接口表示一個輸入方式,它可以產生key事件、text,好比數字,郵箱地址,CJK字符,其它語言字符等。它能夠處理不少輸入事件,而且把text發送給指定的application;InputMethod的方法createSession返回一個SessionCallback,SessionCallback能夠被客戶端使用,讓客戶端經過它和輸入法交互。對象
分析一下AbstractInputMethodService。它是一個abstract類,繼承自Service,而且implements KeyEvent.Callback。AbstractInputMethodService類中有私有成員mInputMethod,它屬於InputMethod接口。抽象內部類AbstractInputMethodImpl實現了InputMethod,而mInputMethod引用了這個類的對象。繼承