290 likes | 444 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. 기본 키보드 세팅 getSystemService()로 서비스 실행 InputMethodService에서 onInitializeInterface()호출하여 UI 초기화
3. 기본 키보드 세팅 onInitializeinterface()-> latinkeyboard생성->keyboard클래스에서 createkeyfromxml호출 키보드의 리소스와 배열 설정
3. 기본 키보드 세팅 Createkeyfromxml에서 호출함
3. 기본 키보드 세팅 onInitializeinterface()-> latinkeyboard생성하여 호출
5. 키 입력 ~~~중략 입력 방식에는 숫자와 날짜 입력이 주가되는symbol키보드 / 텍스트 입력이 주가되는qwerty키보드 로 나뉘고, 텍스트 입력 방식에서는 비밀번호, URI, E-Mail 입력 등이 있음.
5. 키 입력(char) ~~~중략 primaryCode를 가진 모든 가능한 대체 키 코드. 기본값은 null 입력 받은 키의 유니코드화 한 값 일반 키 입력 시
5. 키 입력(char) 키 입력이 일어났을 때, 공통으로 실행 되는 부분으로, 점이 입력한 키의 안에 있을 경우 감지하는 함수로, 키 값에 따라 호출 빈도가 다르다. onKey() : 입력된 키 값의 종류를 구분 지어주는 메소드(cancel_key, shift_key, delete_key, character_key등등) 키 입력이 있을 때, res/values/string.xml의 ‘word_separator’ 참조 하는 과정으로 무슨 키를 입력하던 공통 적으로 일어 남. 입력 키 값에 참조한 문자들이 있는지 여부를 boolean형으로 반환.
5. 키 입력(char) 일반 character키 입력의 경우호출 되며, Shift키 눌림 여부를 판단하여 키 코드 값을 소문자에서 대문자로 바꿔준다. 만약텍스트 입력 Activity라면 후보키 갱신 함수를 호출. 입력 키가 알파벳인지, 숫자 및 특수문자 인지 구분 현재 Activity의 입력 방식이 일반적인 텍스트 입력 방식일 때, 호출 되는 함수들로써 현재 후보키 창을 지속적으로 갱신해주는 기능 (= 입력 키가 숫자나 특수문자일 때,후보키 창을 호출하지 않음.)
5. 키 입력(cancel) ~~~중략 취소 키 입력 시
5. 키 입력(cancel) 모든 키 입력 시 발생하는 공통 부분
5. 키입력 call 반환된 int array의 길이만큼 isInside()를 호출 스크린 터치 시 그곳의 좌표를 가져오고, 모션 이벤트를 변환하는 과정.
5. 키 입력 액티비티 및 서비스의 생성 및 스케줄링을 담당 DVM을 초기화하고 구동