29
Sample Soft Keyboard source analysis

Sample Soft Keyboard source analysis

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Sample Soft Keyboard  source  analysis

Sample Soft Keyboard source analysis

Page 2: Sample Soft Keyboard  source  analysis

안드로이드 서비스 분류

Android service

System service

Java system ser-vice

Core platform service

Hardware ser-vice

Native system service

Application ser-vice

Local service

Remote service

Page 3: Sample Soft Keyboard  source  analysis

프레임워크의 시스템 서비스

Core flatform service & hard-

ware service

Page 4: Sample Soft Keyboard  source  analysis

부팅시 안드로이드 시스템 서비스 생성 과정

init zygote System server

Java sys-tem service

Linux ker-nel Java layer

Page 5: Sample Soft Keyboard  source  analysis

액티비티 및 서비스의 생성 및 스케줄링을

담당

스레드간에 메시지를 전달

DVM 을 초기화하고 구동

애플리케이션 서비스 객체에 구현된 on-Create() 를 호출

Page 6: Sample Soft Keyboard  source  analysis

언어 및 입력

Page 7: Sample Soft Keyboard  source  analysis

Manifest

안드로이드 홈페이지에 나온 내용 .퍼미션을 주어서 시스템에 키보드 등록 .

Page 8: Sample Soft Keyboard  source  analysis

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

Page 9: Sample Soft Keyboard  source  analysis

1. 첫 번째 세팅 화면1

2 3

45

1 또는 메니페스트의 lable 에서 변경

5String.xml 의 내용 .locale label 받아옴

3

2 PreferenceActivity 의 onCraete 에서 리스트뷰 생성

Value = Select input languages

Page 10: Sample Soft Keyboard  source  analysis

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

Page 11: Sample Soft Keyboard  source  analysis

2. 두 번째 세팅 화면

Page 12: Sample Soft Keyboard  source  analysis

2. 두 번째 세팅 화면

Page 13: Sample Soft Keyboard  source  analysis

2. 두 번째 세팅 화면

이 화면을 띄우는 함수

Page 14: Sample Soft Keyboard  source  analysis

3. 기본 키보드 세팅

Page 15: Sample Soft Keyboard  source  analysis

3. 기본 키보드 세팅

getSystemService() 로 서비스 실행

InputMethodService에서 onInitializeInter-

face() 호출하여 UI 초기화

Page 16: Sample Soft Keyboard  source  analysis

3. 기본 키보드 세팅

onInitializeinterface()-> latinkeyboard 생성 ->keyboard 클래스에서 createkeyfromxml 호출

키보드의 리소스와 배열 설정

Page 17: Sample Soft Keyboard  source  analysis

3. 기본 키보드 세팅

Createkeyfromxml 에서 호출함

Page 18: Sample Soft Keyboard  source  analysis

3. 기본 키보드 세팅

onInitializeinterface()-> latinkeyboard 생성하여 호출

Page 19: Sample Soft Keyboard  source  analysis

4. 키보드 생성

Page 20: Sample Soft Keyboard  source  analysis

4. 키보드 생성

Page 21: Sample Soft Keyboard  source  analysis

4. 키보드 생성

Page 22: Sample Soft Keyboard  source  analysis

5. 키 입력

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

~~

~

중략

Page 23: Sample Soft Keyboard  source  analysis

5. 키 입력 (char)

~~

~

중략

일반 키 입력 시

입력 받은 키의 유니코드화 한 값

primaryCode 를 가진 모든 가능한 대체 키 코드 .

기본값은 null

Page 24: Sample Soft Keyboard  source  analysis

5. 키 입력 (char)

키 입력이 일어났을 때 , 공통으로 실행 되는 부분으로 , 점이 입력한 키의 안에 있을 경우 감지하는 함수로 , 키 값에 따라 호출 빈도가 다르다 .

키 입력이 있을 때 , res/values/string.xml 의 ‘ word_separator’ 참조 하는 과정으로 무슨 키를 입력하던 공통 적으로 일어 남 . 입력 키 값에 참조한 문자들이 있는지 여부를 boolean형으로 반환 .

onKey() : 입력된 키 값의 종류를 구분 지어주는 메소드 (cancel_key, shift_key, delete_key, character_key 등등 )

Page 25: Sample Soft Keyboard  source  analysis

5. 키 입력 (char)

일반 character 키 입력의 경우 호출 되며 , Shift 키 눌림 여부를 판단하여 키 코드 값을 소문자에서 대문자로 바꿔준다 . 만약 텍스트 입력 Activity 라면 후보키 갱신 함수를 호출 .

입력 키가 알파벳인지 , 숫자 및 특수문자 인지 구분

현재 Activity 의 입력 방식이 일반적인 텍스트 입력 방식일 때 , 호출 되는 함수들로써 현재 후보키 창을 지속적으로 갱신해주는 기능 (= 입력 키가 숫자나 특수문자일 때 , 후보키 창을 호출하지 않음 .)

Page 26: Sample Soft Keyboard  source  analysis

5. 키 입력 (cancel)

~~

~

중략

취소 키 입력 시

Page 27: Sample Soft Keyboard  source  analysis

5. 키 입력 (cancel)

모든 키 입력 시 발생하는 공통 부분

Page 28: Sample Soft Keyboard  source  analysis

5. 키 입력

스크린 터치 시 그곳의 좌표를 가져오고 , 모션 이벤트를 변환하는 과정 .

call반환된 int array 의 길이만큼 isInside() 를 호출

Page 29: Sample Soft Keyboard  source  analysis

5. 키 입력

액티비티 및 서비스의 생성 및 스케줄링을 담당

DVM 을 초기화하고 구동