Pourquoi les mises à jour de l'application téléchargent-elles l'intégralité de l'application au lieu des seules «mises à jour»?

10

Je trouve plutôt étrange que pour mettre à jour une application dans Android (ou même iOS), l'application entière soit téléchargée au lieu des seules "Mises à jour" réelles.

La raison pour laquelle je trouve cela étrange est que dans Windows lors de la mise à jour d'une application, seuls les fichiers de mise à jour sont téléchargés - pas l'application entière - ce qui est plus pratique car il permet d'économiser du temps et de l'utilisation des données.

Cela semblerait trivial pour la plupart, mais lorsque vous devez télécharger une énorme application juste pour un petit ajout de fonctionnalité / correction de bogue, cela devient un véritable PITA.

Quelqu'un a-t-il une explication sur la raison pour laquelle ce modèle a été mis en œuvre?

Gh0sT
la source

Réponses:

13

Pour autant que je sache, il ne télécharge que les mises à jour (appelées "delta") sur Jellybean 4.1 et supérieur. De toute évidence, l'installation initiale est l'application complète, mais les mises à jour téléchargent uniquement les données qui ont changé depuis la version installée actuelle (c'est-à-dire le "delta" de celle-ci). Vous ne verrez rien de différent lors de la mise à jour de la plupart des applications, il semblera toujours qu'il télécharge l'application complète, mais sur certaines applications plus grandes, vous verrez si des parties du téléchargement `` sautent '', ce qui indique qu'il ne fait qu'obtenir le delta.

Engadget et AndroidCentral ont tous deux des articles indiquant que le Play Store fournit des mises à jour delta

bmdixon
la source
1
Quelle est la taille de l'application la plus grande? Je veux dire que j'ai encore besoin de télécharger l'intégralité de Temple Run 2 juste pour avoir Usain Bolt! Quoi qu'il en soit, merci d'avoir partagé les articles.
Gh0sT
Je ne suis pas sûr. Je sais que pour quelque chose comme Asphalt 6 (qui fait au moins 1 Go), il n'a téléchargé que les modifications dans le passé.Il se peut qu'il ne soit appliqué qu'aux mises à jour importantes, ou peut-être qu'il n'était pas possible de générer le delta pour la mise à jour de Temple Run 2 pour une raison quelconque? Ils ne peuvent créer le delta que lorsque moins d'un certain pourcentage a changé. (NB. Tout cela n'est que mes pensées)
bmdixon
Delta n'est pas instantané. Si vous téléchargez la mise à jour juste après l'avoir envoyée sur le Play Store, delta n'a peut-être pas été généré pour l'instant. (juste une supposition)
Matthieu Harlé
4

En tant que développeur Android, je pensais la même chose, c'était pour le moins frustrant, car une fois j'ai oublié de changer une ligne de code, et il s'est mal passé avec cette seule ligne, ce qui a fait que l'application a craché les instructions de journal à gauche et droite.

Cette question a été posée sur SO, mais elle est également sur le sujet ici et je pense que cette question devrait rester.

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

En tant que développeur Android, je devrais être la façon dont le logiciel est conditionné. Chaque application Android est compressée dans un fichier compressé appelé .apk. Ce fichier contient tout le code, les fichiers de mise en page et les images utilisés pour faire fonctionner l'application. Il est assez difficile de mettre à jour une partie d'un fichier, surtout lorsqu'il est compressé et si le développeur a des fonctionnalités de sécurité activées comme ProGuard, il serait presque impossible d'implémenter un correctif.

Je suis sûr que Google avait également des raisons de sécurité pour ne pas autoriser les correctifs. Les correctifs de code ont tendance à laisser des failles de sécurité et des vulnérabilités imprévues.

John
la source
2
Les mises à jour AFAIK delta ont été introduites dans GPlay il y a environ six mois. Et oui, il y a aussi quelque chose comme les différences binaires. Fondamentalement, le .apkpourrait également être simplement déballé sur les serveurs Google pour comparer les versions et créer les deltas nécessaires. Bien que je ne sache pas comment cela se fait réellement.
Izzy
Cela m'intéresse beaucoup maintenant, devez-vous y adhérer en tant que développeur ou Google gère-t-il cela pour vous?
John
1
@John Google le fait automatiquement, aucune action ne doit être entreprise par le développeur.
onik
-1

Fondamentalement, le fichier de package d'application Android (* .apk) est créé après que le code de l'application est prêt à être publié, ce fichier est créé après la compilation et la construction et à partir du processus de conversion DALVIK,

Ce fichier contient toutes les ressources, à savoir vos images, audio, mises en page, classes,

Et en ce qui concerne les fenêtres, le framework .NET et le framework Linux fonctionnent tous deux de manière différente ...

Si vous souhaitez remplacer uniquement certains codes du, vous pouvez le faire dans Android, mais pour des raisons de sécurité, vous devez à nouveau signer cette application.

Ce que fait DALVIK est un processus irréversible, donc si une nouvelle fonction est ajoutée, comment l'ancienne version y accédera sans le savoir ??

C'est pourquoi il nécessite de mettre à jour l'application entière pour qu'elle puisse fonctionner et fonctionner correctement.

Amit Modak
la source