1 / 29

Sample Soft Keyboard source analysis

Sample Soft Keyboard source analysis. 안드로이드 서비스 분류. 프레임워크의 시스템 서비스. Core flatform service & hardware service. 부팅시 안드로이드 시스템 서비스 생성 과정. Linux kernel. Java layer. 애플리케이션 서비스 객체에 구현된 onCreate () 를 호출. 스레드간에 메시지를 전달. 액티비티 및 서비스의 생성 및 스케줄링을 담당. DVM 을 초기화하고 구동. Manifest.

terry
Download Presentation

Sample Soft Keyboard source analysis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sample Soft Keyboard source analysis

  2. 안드로이드 서비스 분류

  3. 프레임워크의 시스템 서비스 Core flatform service & hardware service

  4. 부팅시안드로이드 시스템 서비스 생성 과정 Linux kernel Java layer

  5. 애플리케이션 서비스 객체에 구현된 onCreate()를 호출 스레드간에 메시지를 전달 액티비티 및 서비스의 생성 및 스케줄링을 담당 DVM을 초기화하고 구동

  6. Manifest 안드로이드 홈페이지에 나온 내용. 퍼미션을 주어서 시스템에 키보드 등록. 시스템에 있는 키보드 정보 받아올 수 있음.

  7. 언어 및 입력

  8. 1. 첫 번째 세팅 화면 1 3 2 5 4 String.xml의 내용. locale label 받아옴 5 PreferenceActivity의 onCraete에서 리스트뷰 생성 2 또는 메니페스트의lable에서변경 1 Value = Select input languages 3

  9. 1. 첫 번째 세팅 화면 ImePreferences 객체에서 이 화면을 구성.

  10. 2. 두 번째 세팅 화면 이 화면의 Intent 받아옴 이 화면을 띄우는 함수

  11. 2. 두 번째 세팅 화면 InputMethodSettingsImpl의 init()함수의 setOnPreferenceClickListener()에서화면을 구성.

  12. 2. 두 번째 세팅 화면

  13. 2. 두 번째 세팅 화면

  14. 3. 기본 키보드 세팅

  15. 3. 기본 키보드 세팅(SoftKeyboard.java) getSystemService()로 inputmethod service 호출 InputMethodService에서 onInitializeInterface()호출하여 UI 초기화

  16. 3. 기본 키보드 세팅(LatinKeyboard.java) onInitializeinterface()-> latinkeyboard생성->부모클래스인keyboard클래스에서 createkeyfromxml호출 키보드의 배열과 리소스 메소드

  17. 3. 기본 키보드 세팅(LatinKeyboard.java) Createkeyfromxml에서 호출함 키보드의 배열과 리소스 설정

  18. 3. 기본 키보드 세팅(LatinKeyboard.java) 키보드 레이아웃의 환경 설정

  19. 4. 키보드 생성 onStartInput()에서 키보드를 세팅한 후 불림. 현재 키보드 받아옴.

  20. 4. 키보드 생성

  21. 4. 키보드 생성

  22. 5. 키 입력 ~ ~ 중략 입력 방식에는 숫자와 날짜 입력이 주가되는symbol키보드 / 텍스트 입력이 주가되는qwerty키보드 로 나뉘고, 텍스트 입력 방식에서는 비밀번호, URI, E-Mail 입력 등이 있음.

  23. 5. 키 입력(char) ~ ~ 중략 primaryCode를 가진 모든 가능한 대체 키 코드. 기본값은 null 입력 받은 키의 유니코드화 한 값 일반 키 입력 시

  24. 5. 키 입력(char) 키 입력이 일어났을 때, 공통으로 실행 되는 부분으로, 점이 입력한 키의 안에 있을 경우 감지하는 함수로, 키 값에 따라 호출 빈도가 다르다. onKey() : 입력된 키 값의 종류를 구분 지어주는 메소드(cancel_key, shift_key, delete_key, character_key등등) 키 입력이 있을 때, res/values/string.xml의 ‘word_separator’ 참조 하는 과정으로 무슨 키를 입력하던 공통 적으로 일어 남. 입력 키 값에 참조한 문자들이 있는지 여부를 boolean형으로 반환.

  25. 5. 키 입력(char) 일반 character키 입력의 경우호출 되며, Shift키 눌림 여부를 판단하여 키 코드 값을 소문자에서 대문자로 바꿔준다. 만약텍스트 입력 Activity라면 후보키 갱신 함수를 호출. 입력 키가 알파벳인지, 숫자 및 특수문자 인지 구분 현재 Activity의 입력 방식이 일반적인 텍스트 입력 방식일 때, 호출 되는 함수들로써 현재 후보키 창을 지속적으로 갱신해주는 기능 (= 입력 키가 숫자나 특수문자일 때,후보키 창을 호출하지 않음.)

  26. 5. 키 입력(cancel) ~~~중략 취소 키 입력 시

  27. 5. 키 입력(cancel) 모든 키 입력 시 발생하는 공통 부분

  28. 5. 키입력 call 반환된 int array의 길이만큼 isInside()를 호출 스크린 터치 시 그곳의 좌표를 가져오고, 모션 이벤트를 변환하는 과정.

  29. 5. 키 입력 액티비티 및 서비스의 생성 및 스케줄링을 담당 DVM을 초기화하고 구동

More Related