Che ne dici di iniziare ad ascoltare all'avvio dell'applicazione?
Per quanto riguarda l'utilizzo del processore, dipende dalla tua particolare implementazione e dal framework che stai utilizzando.
Se parliamo in generale, indipendentemente da qualsiasi framework, immagino diverse tecniche per ridurre l'utilizzo del processore:
-
Avere una soluzione già incorporata nel framework. Ad esempio MultiTouchScreen
avrebbe un Touched
o WokeUp
evento , che verrà generato ogni volta che l'utente tocca il pannello per la prima volta (o ogni volta, nel qual caso sarebbe utile per annullare l'iscrizione all'evento dopo che è stato generato, per evitare di influire negativamente sulle prestazioni).
-
Gli schermi tattili consumano meno energia rispetto al multitouch. Forse puoi usare il pannello multitouch come schermo tattile fino a toccarlo, e quindi attivare il multitouch.
-
Monitora il pannello a sfioramento a intervalli regolari, l'intervallo è più lungo quando inattivo . Questa tecnica viene utilizzata ad esempio nei mouse laser cordless . Per sprecare meno energia, il mouse controlla la superficie della scrivania sotto ogni 0,5 secondi. se il mouse non si muove per l'ultimo minuto, quindi 1 s. se il mouse è inattivo per cinque minuti, quindi 2 secondi. dopo dieci minuti.
Alcuni punti da notare:
-
Puoi ispirarti a ciò che viene utilizzato da alcune telecamere di sicurezza . Nessuna mozione: non è necessario registrare la scena su diversi FPS; ma quando il frame precedente sembra essere diverso da quello corrente, la fotocamera si riattiva e registra a una velocità FPS maggiore.
-
alcuni e bancomat sembrano utilizzarlo. Ad esempio, in Francia, i chioschi di biglietteria nelle stazioni ferroviarie (schermi tattili, non multitouch) trascorrono di solito alcuni secondi a svegliarsi quando non vengono toccati per un po ', ma sono molto più reattivi quando una persona lo utilizza poco prima di farlo.
-
Lo svantaggio è che l'utente dovrà attendere che l'applicazione si "svegli" . A seconda delle circostanze, questo può dare un'idea di un'app non reattiva o essere veramente frustrante . Ad esempio, nelle stazioni ferroviarie, è piuttosto una cattiva idea avere dei chioschi che trascorrono alcuni secondi prima di rispondere quando un cliente potrebbe essere in ritardo per il suo treno.
-
Devi profilare l'applicazione per avere un'idea di come questo avrà un impatto sulle prestazioni e scegliere un buon rapporto tempo di utilizzo / utilizzo della CPU . Ad esempio, per una telecamera di sicurezza, il rallentamento a un frame al secondo non ha un reale impatto negativo e consente di sprecare molto meno spazio su disco. Per i mouse laser wireless, c'è un enorme vantaggio in termini di consumo energetico, ma anche un non trascurabile inconveniente di reattività dell'utente. Forse per la tua app particolare, non otterrai un consumo eccessivo di energia, ma sarà molto frustrante usare la tua applicazione.
-
Monitora il pannello a sfioramento su risoluzione inferiore . Come se fosse possibile catturare un'immagine da una webcam con risoluzioni diverse, probabilmente c'è la stessa possibilità per le superfici tattili nel framework che usi.
-
Puoi persino immaginare alcune soluzioni più originali. Ad esempio, che dire di un rilevatore di movimento economico (la piccola scatola negli edifici pubblici che attiva un allarme o accende la luce quando entri in una stanza) che risveglierà la superficie tattile ogni volta che un cliente è vicino al pannello a sfioramento?