Perché recupera i dati di un'app nativa più velocemente di uno con PhoneGap?

3

So che un'applicazione sviluppata con PhoneGap è più lenta di quella nativa perché su PhoneGap l'intero codice deve essere interpretato in fase di runtime in uno nativo.

Ma qualcuno potrebbe spiegare o ha un buon sito web approfondito che spiega perché un'app nativa recupera dati (un'immagine o testo) da una risorsa web più veloce di un'app con PhoneGap? Entrambe le app gestiscono le connessioni Internet in un altro modo oppure ci sono più dati recuperati da un'app PhoneGap?

    
posta John Brunner 14.05.2013 - 22:01
fonte

1 risposta

4

È un processo di eventi applicativi completamente diverso.

PhoneGap utilizza callback di eventi JavaScript progettati per essere generici su più dispositivi, mentre Android è basato sulle attività che è nativo del sistema operativo. iOS ha qualcosa di simile ma non posso commentarlo.

Android conosce l'attività da avviare quando viene caricata l'applicazione e l'esecuzione di tale attività avviene in tempi relativamente brevi anche per le applicazioni di grandi dimensioni. Considerando che, PhoneGap richiede un browser HTML5 per completare il caricamento, quindi tutti i file JavaScript HTML5 devono essere caricati dal dispositivo e il codice JavaScript deve essere eseguito almeno una volta per inizializzare tutto il codice. Di conseguenza c'è un ritardo visibile nell'avvio delle applicazioni PhoneGap. Ecco perché PhoneGap include una funzione di splash screen durante il caricamento dell'app.

Dopo che un'applicazione PhoneGap è stata avviata, l'intera interfaccia utente è una pagina HTML renderizzata, soggetta a problemi di prestazioni relativi al dispositivo su cui è attiva. Mentre le applicazioni Android native spesso usano il sistema operativo per rendere visibile la loro visualizzazione delle attività. Quindi i miglioramenti nella velocità del sistema operativo si traducono in app più veloci. L'HTML reso da un browser è limitato alla velocità del processore e della GPU.

Le prestazioni dovrebbero essere le stesse quando

  • Le applicazioni possono sfruttare la memoria locale, la memorizzazione nella cache e SQL.
  • Le comunicazioni con il server web avvengono tramite AJAX (JSON, XML o HTML).

Le prestazioni dovrebbero essere diverse

  • Javascript viene utilizzato per eseguire calcoli di grandi dimensioni.
  • L'interfaccia utente visualizza i dati da una grande fonte di dati.
  • Le operazioni di lettura / scrittura sull'archivio locale sono in grandi quantità (ad esempio immagini della videocamera)
  • Tutti gli elementi visivi che coinvolgono l'animazione o la grafica di grandi dimensioni saranno eseguiti più rapidamente in modo nativo.

Hybrid PhoneGab

Non c'è una buona ragione per uno sviluppatore di PhoneGap per lamentarsi delle prestazioni. PhoneGap consente di sviluppare codice per ciascun dispositivo che viene eseguito in modo nativo e può essere eseguito tramite un plug-in in PhoneGap. Il plug-in nativo è esposto all'app PhoneGap come estensione Javascript. Ogni volta che le prestazioni sono un problema, lo sviluppatore ha la possibilità di spostare quel codice su un plugin nativo.

Mentre JavaScript è più lento del codice nativo. Che cosa fa il codice che lo rende così lento? Molto probabilmente è un javascript sbagliato, quindi un difetto nella progettazione di PhoneGap.

Perché PhoneGab?

PhoneGab non è uno sviluppo Android. È HTML5 e personalmente l'SDK di Android può consentirti di ottenere risultati spesso più velocemente rispetto all'implementazione della stessa cosa in HTML. Penso che le persone che hanno forti competenze in HTML / Javascript abbiano aspettative di interfaccia utente molto specifiche, e si ritorceranno contro l'idea degli standard imponenti del sistema operativo.

    
risposta data 14.05.2013 - 22:26
fonte

Leggi altre domande sui tag