280 likes | 514 Views
Sample Soft Keyboard source analysis. 안드로이드 서비스 분류. 프레임워크의 시스템 서비스. Core flatform service & hardware service. 부팅시 안드로이드 시스템 서비스 생성 과정. Linux kernel. Java layer. 애플리케이션 서비스 객체에 구현된 onCreate () 를 호출. 스레드간에 메시지를 전달. 액티비티 및 서비스의 생성 및 스케줄링을 담당. DVM 을 초기화하고 구동. 언어 및 입력. Manifest.
E N D
프레임워크의 시스템 서비스 Core flatform service & hardware service
부팅시안드로이드 시스템 서비스 생성 과정 Linux kernel Java layer
애플리케이션 서비스 객체에 구현된 onCreate()를 호출 스레드간에 메시지를 전달 액티비티 및 서비스의 생성 및 스케줄링을 담당 DVM을 초기화하고 구동
Manifest 안드로이드 홈페이지에 나온 내용. 퍼미션을 주어서 시스템에 키보드 등록 .
1. 첫 번째 세팅 화면 ImePreferences 객체에서 이 화면을 구성.
1. 첫 번째 세팅 화면 1 3 2 5 4 String.xml의 내용. locale label 받아옴 5 PreferenceActivity의 onCraete에서 리스트뷰 생성 2 또는 메니페스트의lable에서변경 1 Value = Select input languages 3
2. 두 번째 세팅 화면 InputMethodSettingsImpl의 init()함수의 setOnPreferenceClickListener()에서화면을 구성.
2. 두 번째 세팅 화면 이 화면을 띄우는 함수
3. 기본 키보드 세팅(SoftKeyboard.java) getSystemService()로 inputmethod service 호출 InputMethodService에서 onInitializeInterface()호출하여 UI 초기화
3. 기본 키보드 세팅(LatinKeyboard.java) onInitializeinterface()-> latinkeyboard생성->부모클래스인keyboard클래스에서 createkeyfromxml호출 키보드의 배열과 리소스 메소드
3. 기본 키보드 세팅(LatinKeyboard.java) Createkeyfromxml에서 호출함 키보드의 배열과 리소스 설정
3. 기본 키보드 세팅(LatinKeyboard.java) 키보드 레이아웃의 환경 설정
5. 키 입력(char) 키 입력이 일어났을 때, 공통으로 실행 되는 부분으로, 점이 입력한 키의 안에 있을 경우 감지하는 함수로, 키 값에 따라 호출 빈도가 다르다. onKey() : 입력 값의 종류를 구분 지어주는 메소드(cancel_key, shift_key, character_key등등) 키 입력이 있을 때, res/values/string.xml의 ‘word_separator’ 참조 하는 과정으로 무슨 키를 입력하던 공통 적으로 일어 남.
5. 키 입력(char) ‘q’ 일반 character키 입력의 경우
5. 키 입력 Class Key extends Class LatinKey Call to parent method