¿Por qué las actualizaciones de la aplicación descargan la aplicación completa en lugar de solo "actualizaciones"?

10

Me resulta bastante extraño que para actualizar una aplicación en Android (o incluso iOS) se descargue la aplicación completa en lugar de solo las "Actualizaciones" reales.

La razón por la que encuentro esto extraño es porque en Windows al actualizar una aplicación, solo se descargan los archivos de actualización, no toda la aplicación, lo cual es más práctico ya que ahorra tiempo y uso de datos.

Esto parecería trivial para la mayoría, pero cuando necesita descargar una gran aplicación solo por una pequeña adición de características / corrección de errores, se convierte en una verdadera PITA.

¿Alguien tiene una explicación de por qué se implementó este modelo?

Gh0sT
fuente

Respuestas:

13

Hasta donde sé, solo descarga las actualizaciones (denominadas "delta") en Jellybean 4.1 y superior. Obviamente, la instalación inicial es la aplicación completa, pero las actualizaciones solo descargan los datos que han cambiado desde la versión instalada actual (es decir, el "delta" de la misma). No verá nada diferente al actualizar la mayoría de las aplicaciones, todavía parecerá que está descargando la aplicación completa, pero en algunas aplicaciones más grandes verá si 'salta' partes de la descarga, lo que indica que solo está obteniendo el delta.

Engadget y AndroidCentral tienen artículos que indican que Play Store proporciona actualizaciones delta

bmdixon
fuente
1
¿Qué tan "grande" es la aplicación más grande? ¡Quiero decir que todavía necesito descargar todo el Temple Run 2 solo para tener a Usain Bolt! De todos modos, gracias por compartir los artículos.
Gh0sT
No estoy seguro. Sé que para algo como Asphalt 6 (que es de al menos 1 GB) solo ha descargado los cambios en el pasado. Puede ser que solo se aplique a actualizaciones grandes, o tal vez no fue posible generar el delta para la actualización de Temple Run 2 por alguna razón? Solo pueden crear el delta cuando ha cambiado menos de un cierto porcentaje. (NB. Todo esto son solo mis pensamientos)
bmdixon
Delta no es instantáneo. Si descarga la actualización justo después de que se haya enviado a Play Store, es posible que Delta no se haya generado por el momento. (solo una suposición)
Matthieu Harlé
4

Como desarrollador de Android, pensé lo mismo, fue frustrante por decir lo menos porque una vez olvidé cambiar una línea de código, y salió con esa línea incorrecta, lo que provocó que la aplicación escupiera declaraciones de registro a la izquierda y Derecha.

Esta pregunta se ha formulado en SO, pero también es sobre el tema aquí y creo que esta pregunta debería quedarse.

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

Como desarrollador de Android, creo que tendría que ser la forma en que se empaqueta el software. Cada aplicación de Android se empaqueta en un archivo comprimido llamado .apk. Este archivo contiene todo el código, los archivos de diseño y las imágenes utilizados para que la aplicación funcione. Es un poco difícil actualizar solo una parte de un archivo, especialmente cuando está comprimido y si el desarrollador tiene características de seguridad habilitadas como ProGuard, sería casi imposible implementar un parche.

Estoy seguro de que Google también tenía algunas razones de seguridad para no permitir parches. Los parches de código tienden a dejar agujeros de seguridad y vulnerabilidades imprevistos.

John
fuente
2
Las actualizaciones delta AFAIK se introdujeron en GPlay hace aproximadamente medio año. Y sí, también hay algo como diferencias binarias. Básicamente, .apktambién podría simplemente descomprimirse en los servidores de Google para comparar entre versiones y crear los deltas necesarios. Aunque no sé cómo se hace realmente.
Izzy
Ahora estoy muy interesado en esto, ¿tiene que optar por esto como desarrollador o Google lo gestiona por usted?
John
1
@John Google lo hace automáticamente, el desarrollador no debe realizar ninguna acción.
onik
-1

Básicamente, el archivo del paquete de la aplicación de Android (* .apk) se crea después de que el código de la aplicación está listo para su publicación. Este archivo se crea después de la compilación y construcción y del proceso de conversión DALVIK,

Este archivo contiene todos los recursos, es decir, sus imágenes, audio, diseños, clases,

Y en lo que respecta a Windows, el framework .NET y el framework Linux funcionan de manera diferente ...

Si desea reemplazar solo cierto código, puede hacerlo en Android, pero por seguridad necesita firmar esa aplicación nuevamente.

Lo que DALVIK hace es un proceso irreversible, por lo que si se agrega una nueva función, ¿cómo accederá la versión anterior sin saberlo?

Es por eso que requiere actualizar toda la aplicación para que pueda funcionar y funcionar correctamente.

Amit Modak
fuente