Perché gli aggiornamenti delle app scaricano l'intera app anziché solo "aggiornamenti"?


10

Trovo piuttosto strano che per l'aggiornamento di un'app in Android (o anche iOS) venga scaricata l'intera app anziché solo gli "Aggiornamenti" effettivi.

Il motivo per cui trovo questo strano è perché in Windows durante l'aggiornamento di un'app vengono scaricati solo i file di aggiornamento, non l'intera app, il che è più pratico in quanto consente di risparmiare tempo e utilizzo dei dati.

Ciò sembrerebbe banale per la maggior parte, ma quando devi scaricare un'app enorme solo per una piccola aggiunta di funzionalità / correzione di bug diventa una vera PITA.

Qualcuno ha una spiegazione sul perché questo modello è stato implementato?

Risposte:


13

Per quanto ne so, scarica solo gli aggiornamenti (indicati come "delta") su Jellybean 4.1 e versioni successive. Ovviamente l'installazione iniziale è l'app completa ma gli aggiornamenti scaricano solo i dati che sono cambiati rispetto alla versione installata corrente (ovvero il "delta" di essa). Non vedrai nulla di diverso quando aggiorni la maggior parte delle app, sembrerà comunque che stia scaricando l'app completa ma su alcune app più grandi vedrai se 'saltare' parti del download che indica che sta solo ottenendo il delta.

Engadget e AndroidCentral hanno entrambi articoli che indicano che il Play Store fornisce aggiornamenti delta


1
Quanto è "grande" l'app più grande? Voglio dire, devo ancora scaricare l'intero Temple Run 2 solo per avere Usain Bolt! Comunque grazie per aver condiviso gli articoli.
Gh0sT

Non ne sono sicuro. So che per qualcosa come Asphalt 6 (che è almeno 1 GB) che ha scaricato solo le modifiche in passato.Potrebbe essere che si applica solo a aggiornamenti di grandi dimensioni, o forse non è stato possibile generare il delta per l'aggiornamento di Temple Run 2 per qualche motivo? Possono creare il delta solo quando è cambiata meno di una certa percentuale. (NB. Tutto questo è solo un mio pensiero)
bmdixon

Delta non sono istantanei. Se scarichi l'aggiornamento subito dopo che è stato inviato al Play Store, delta potrebbe non essere stato generato per ora. (solo un'ipotesi)
Matthieu Harlé il

4

Come sviluppatore Android ho pensato la stessa cosa, è stato frustrante dire il minimo perché una volta ho dimenticato di cambiare una riga di codice ed è uscito con quell'unica riga sbagliata, il che ha causato all'app che sputava le dichiarazioni di log rimaste e destra.

Questa domanda è stata posta su SO, ma è anche in tema qui e penso che questa domanda dovrebbe rimanere.

Domanda SO: /programming/18045290/for-mobile-app-updates-why-does-the-entire-app-need-to-be-downloaded-again

Come sviluppatore Android, la mia ipotesi dovrebbe essere il modo in cui il software è impacchettato. Ogni app Android viene impacchettata in un file compresso chiamato un .apk. Questo file contiene tutto il codice, i file di layout e le immagini utilizzate per far funzionare l'app. È difficile aggiornare solo una parte di un file, specialmente quando è compresso e se lo sviluppatore ha abilitate funzionalità di sicurezza come ProGuard, sarebbe quasi impossibile implementare una patch.

Sono sicuro che Google avesse anche alcuni motivi di sicurezza per non consentire le patch. Le patch di codice tendono a lasciare falle e vulnerabilità di sicurezza impreviste.


2
Gli aggiornamenti delta AFAIK sono stati introdotti su GPlay circa mezzo anno fa. E sì, c'è anche qualcosa come diffs binari. Fondamentalmente, .apkpotrebbe anche essere semplicemente decompresso sui server di Google per confrontare tra le versioni e creare i delta necessari. Anche se non so come sia effettivamente fatto.
Izzy

Sono molto interessato a questo ora, devi optare per questo come sviluppatore o Google lo gestisce per te?
Giovanni,

1
@ John Google lo fa automaticamente, lo sviluppatore non deve intraprendere alcuna azione.
onik,

-1

Fondamentalmente il file del pacchetto di applicazioni Android (* .apk) viene creato dopo che il codice dell'app è pronto per la pubblicazione, questo file viene creato dopo la compilazione e la creazione e dal processo di conversione DALVIK,

Questo file contiene tutte le risorse, ad esempio immagini, audio, layout, classi,

E per quanto riguarda Windows, .NET Framework e Linux Framework funzionano entrambi in modo diverso ...

Se vuoi sostituire solo un determinato codice, puoi farlo in Android, ma per sicurezza devi firmare di nuovo quell'app.

Ciò che DALVIK fa è un processo irreversibile, quindi se viene aggiunta una nuova funzione come la vecchia versione accederà a essa senza saperlo ??

Ecco perché richiede l'aggiornamento dell'intera app affinché funzioni e funzioni correttamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.