2011-11-21 2 views
6

버튼을 안드로이드에서 클릭하면 어떻게되는지 이해하려고합니다. 그래서 나는 간단한 버튼 클릭에 대해 두 개의 중단 점을 설정했습니다. 그림은 버튼을 클릭하면 어떻게되는지 보여줍니다. 내 질문은 다음과 같습니다 (GUI 생성 이벤트는 버튼 클릭, 텍스트 편집 등 GUI와 상호 작용 한 결과로 생성되는 이벤트입니다)android는 GUI 이벤트를 어떻게 처리합니까?

1- 루퍼입니다. loop() 응용 프로그램 또는 OS 루퍼의 기본 루프?

2 ViewRootImpl (처리기) .dispatchMessage (메시지)의 위치는 어디입니까? 응용 프로그램 또는 운영 체제?

3 메인 루퍼에서 GUI로 생성 된 이벤트를 가로 챌 수 있습니까? 그렇다면 어떻게?

4- 모든 GUI 생성 이벤트가 ViewRootImpl (handler) .handleCallback (Message)에서 처리된다고 가정 할 수 있습니까?

enter image description here

답변

2

는 Looper.loop() 프로그램 또는 OS 루퍼의 메인 루프?

"OS 루퍼"에 대해 어떻게 생각하는지 모르겠습니다. Looper이 프로세스에서 실행됩니다.

ViewRootImpl (처리기) .dispatchMessage (메시지)는 어디에 있습니까? 응용 프로그램 또는 운영 체제?

"OS"가이 컨텍스트에 무엇이라고 생각하는지 모르겠습니다. ViewRootImpl은 달빅 (Dalvik)으로 컴파일 된 클래스이며, Dalvik VM에로드되며 코드는 프로세스 내에서 실행됩니다. 그렇지 않으면 스택 추적에서이를 볼 수 없습니다.

메인 루퍼에서 GUI 생성 이벤트를 가로 챌 수 있습니까?

ViewRootImpl과 같은 다양한 클래스를 자신의 코드로 바꾸려면 펌웨어를 수정해야합니다.

모든 GUI 생성 이벤트가 ViewRootImpl (handler) .handleCallback (Message)에서 처리된다고 가정 할 수 있습니까?

나는 확실히 그 가정을하지 않을 것입니다. 예를 들어 모든 애플리케이션이 위젯 프레임 워크 (예 : 게임)를 사용하는 것은 아닙니다.

관련 문제