마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

텍스트 입력에 대해서 내부적으로 어떻게 되는지 궁금합니다

0 추천

안드로이드 키보드 중에 다음의 키보드를 사용할 때,

  • Google 한국어 입력기
  • Android 키보드(AOSP)

안드로이드 os 내부적으로, 다양한 키보드로부터 텍스트 입력을 다르게 받아 들이고 처리하는 과정이 다른데요.

질문 1. 차이가 무엇이고

질문 2. 가능하다면 관련 메소드들의 호출 관계 (어떻게 호출한다거나 막을 수 있는 방법) 를 알고 싶습니다.

Google 한국어 입력기 '한글'의 경우

  1. 한 글자를 입력할 때마다 setComposingText(text, newCursorPosition) 가 호출
  2. 엔터를 눌렀을 경우(IME에서) beginBatchEdit() -> commitText(text, newCursorPosition) -> endBatchEdit() 이 두 번 호출 (처음 commitText의 text는 setComposingText 에 들어왔던 텍스트, 다음은 뉴라인)

Google 한국어 입력기 '영어'의 경우

  1. 한글자를 입력할 때마다 commiText(text, newCursorPosition) 가 호출
  2. 엔터를 눌렀을 경우(IME에서) onKeyDown -> onEditorAction -> onKeyUp 이 호출

Android 키보드(AOSP)

  1. 한 글자를 입력할 때마다 beginBatchEdit() -> commitText(text, newCursorPosition) -> endBatchEdit() 이 호출
  2. 엔터를 눌렀을 경우(IME에서) beginBatchEdit() -> commitText(text, newCursorPosition) -> endBatchEdit() 이 호출 (commitText의 text는 뉴라인)
강동투 (290 포인트) 님이 2015년 8월 16일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...