2011-11-21 11 views
6

Sto cercando di capire cosa succede quando un pulsante viene cliccato su Android. Così ho impostato un paio di punti di interruzione per un semplice clic del pulsante. L'immagine mostra cosa succede quando si fa clic su un pulsante le mie domande sono: (gli eventi generati dalla GUI sono eventi generati come risultato dell'interazione con la GUI ad esempio Button Clic, modifica del testo ecc ...)In che modo Android gestisce gli eventi della GUI?

1- Looper. loop() il ciclo principale per l'applicazione o il looper OS?

2- Dove risiede ViewRootImpl (handler) .dispatchMessage (Message)? Applicazione o sistema operativo?

3- È possibile intercettare gli eventi generati dalla GUI nel looper principale? se sì allora come?

4- Possiamo tranquillamente presumere che tutti gli eventi generati dalla GUI siano gestiti in ViewRootImpl (handler) .handleCallback (Message)?

enter image description here

risposta

2

Is Looper.loop() il ciclo principale per l'applicazione o il crochet OS?

Non so cosa pensi sia il "looper OS". Il Looper viene eseguito nel tuo processo, se questo è ciò che intendi.

Dove risiede ViewRootImpl (handler) .dispatchMessage (Message)? Applicazione o sistema operativo?

Non so cosa pensi che il "sistema operativo" sia in questo contesto. ViewRootImpl è una classe compilata da Dalvik che viene caricata nella tua VM Dalvik e il suo codice viene eseguito all'interno del tuo processo. Altrimenti, non saresti in grado di vederlo nella traccia dello stack.

Posso intercettare gli eventi generati dalla GUI nel looper principale?

Solo modificando il firmware per sostituire varie classi come ViewRootImpl con il proprio codice.

Possiamo tranquillamente presumere che tutti gli eventi generati dalla GUI siano gestiti in ViewRootImpl (handler) .handleCallback (Message)?

Certamente non lo farei. Ad esempio, non tutte le applicazioni utilizzano il framework widget (ad es. I giochi).

Problemi correlati