Warum laden App-Updates die gesamte App herunter, anstatt nur „Updates“?

10

Ich finde es ziemlich seltsam, dass zum Aktualisieren einer App in Android (oder sogar iOS) die gesamte App heruntergeladen wird und nicht nur die eigentlichen "Updates".

Der Grund, warum ich das seltsam finde, ist, dass in Windows beim Aktualisieren einer App nur die Aktualisierungsdateien heruntergeladen werden - nicht die gesamte App - was praktischer ist, da dies sowohl Zeit als auch Datennutzung spart.

Dies scheint für die meisten trivial zu sein, aber wenn Sie eine riesige App nur für eine winzige Funktionserweiterung / Fehlerbehebung herunterladen müssen, wird sie zu einer echten PITA.

Hat jemand eine Erklärung, warum dieses Modell implementiert wurde?

Gh0sT
quelle

Antworten:

13

Soweit ich weiß, werden nur die Updates (als "Delta" bezeichnet) auf Jellybean 4.1 und höher heruntergeladen. Natürlich ist die Erstinstallation die vollständige App, aber Updates laden nur die Daten herunter, die sich gegenüber der aktuell installierten Version geändert haben (dh das "Delta" davon). Beim Aktualisieren der meisten Apps wird nichts anderes angezeigt. Es sieht immer noch so aus, als würde die vollständige App heruntergeladen. Bei einigen größeren Apps wird jedoch angezeigt, ob Teile des Downloads "springen", was darauf hinweist, dass nur das Delta angezeigt wird.

Engadget und AndroidCentral haben beide Artikel, die darauf hinweisen, dass der Play Store Delta-Updates bereitstellt

bmdixon
quelle
1
Wie "groß" ist die größere App? Ich meine, ich muss noch den gesamten Temple Run 2 herunterladen, um Usain Bolt zu haben! Trotzdem danke, dass du die Artikel geteilt hast.
Gh0sT
Ich bin mir nicht sicher. Ich weiß, dass für etwas wie Asphalt 6 (das mindestens 1 GB entspricht) nur die Änderungen in der Vergangenheit heruntergeladen wurden. Möglicherweise wird es nur auf große Updates angewendet, oder es war möglicherweise nicht möglich, das Delta für zu generieren das Temple Run 2 Update aus irgendeinem Grund? Sie können das Delta nur erstellen, wenn sich weniger als ein bestimmter Prozentsatz geändert hat. (NB. All dies ist nur meine Gedanken)
BMDixon
Delta sind nicht augenblicklich. Wenn Sie das Update direkt nach dem Push in den Play Store herunterladen, wurde Delta möglicherweise noch nicht generiert. (nur eine Vermutung)
Matthieu Harlé
4

Als Android-Entwickler dachte ich das Gleiche, es war gelinde gesagt frustrierend, weil ich einmal vergessen hatte, eine Codezeile zu ändern, und diese eine Zeile falsch war, was dazu führte, dass die App die Protokollanweisungen links und links ausspuckte richtig.

Diese Frage wurde auf SO gestellt, aber sie ist auch hier zum Thema und ich denke, diese Frage sollte bleiben.

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

Als Android-Entwickler müsste ich davon ausgehen, wie die Software verpackt ist. Jede Android-App wird in eine komprimierte Datei namens an gepackt .apk. Diese Datei enthält den gesamten Code, die Layoutdateien und die Bilder, mit denen die App funktioniert. Es ist schwierig, nur einen Teil einer Datei zu aktualisieren, insbesondere wenn sie komprimiert ist und wenn der Entwickler Sicherheitsfunktionen wie ProGuard aktiviert hat, ist es nahezu unmöglich, einen Patch zu implementieren.

Ich bin sicher, Google hatte auch einige Sicherheitsgründe dafür, Patches nicht zuzulassen. Code-Patches hinterlassen in der Regel unerwartete Sicherheitslücken und Sicherheitslücken.

John
quelle
2
AFAIK-Delta-Updates wurden vor etwa einem halben Jahr in GPlay eingeführt. Und ja, es gibt auch so etwas wie binäre Unterschiede. Grundsätzlich .apkkönnte das auch einfach auf Google-Servern entpackt werden, um zwischen Versionen zu vergleichen und die notwendigen Deltas zu erstellen. Obwohl ich nicht weiß, wie es tatsächlich gemacht wird.
Izzy
Das interessiert mich jetzt sehr. Müssen Sie sich als Entwickler dafür entscheiden oder verwaltet Google dies für Sie?
John
1
@ John Google macht es automatisch, es müssen keine Aktionen vom Entwickler ausgeführt werden.
Onik
-1

Grundsätzlich wird die Datei der Android-Anwendungspaketdatei (* .apk) erstellt, nachdem der App-Code zur Veröffentlichung bereit ist. Diese Datei wird nach dem Kompilieren und Erstellen und aus dem DALVIK-Konvertierungsprozess erstellt.

Diese Datei enthält alle Ressourcen, z. B. Ihre Bilder, Audiodateien, Layouts, Klassen,

Und was Windows betrifft, funktionieren sowohl das .NET Framework als auch das Linux Framework auf unterschiedliche Weise ...

Wenn Sie nur bestimmten Code des ersetzen möchten, können Sie dies in Android tun, aber aus Sicherheitsgründen müssen Sie diese App erneut signieren.

Was DALVIK tut, ist ein irreversibler Prozess. Wenn also eine neue Funktion hinzugefügt wird, wie wird die alte Version darauf zugreifen, ohne es zu wissen?

Aus diesem Grund muss die gesamte App aktualisiert werden, damit sie ordnungsgemäß funktioniert.

Amit Modak
quelle