¿Qué es una "instalación parcial de la aplicación" a través de adb?

Android adbtiene una "instalación de aplicación parcial" :

$ adb install
Android Debug Bridge version 1.0.32
...

  adb install [-lrtsd] <file>
  adb install-multiple [-lrtsdp] <file...>
                               - push this package file to the device and install it
                                 (-l: forward lock application)
                                 (-r: replace existing application)
                                 (-t: allow test packages)
                                 (-s: install application on sdcard)
                                 (-d: allow version code downgrade)
                                 (-p: partial application install)

El aviso -pes "instalación parcial de la aplicación" .

¿Qué es una instalación parcial de la aplicación?

Respuestas (1)

Supongo que la instalación parcial de la aplicación -p: es para instalar paquetes que son una actualización de un paquete existente pero que no son independientes en sí mismos, más o menos cómo Play Store actualiza una aplicación usando actualizaciones delta o inteligentes.

-prequiere que exista un paquete base y su nombre se pase junto a él, de lo contrario arrojará el error

Error: java.lang.IllegalArgumentException: Missing inherit package name

Si el APK que está pasando no es una actualización incremental de un paquete existente ( PACKAGE), terminaría con

Failed to finalize session
Failure [INSTALL_FAILED_INVALID_APK: Missing existing base package for PACKAGE]

No tengo ninguna actualización incremental, por lo que no puedo verificar mi propio reclamo, ni tengo ninguna otra evidencia sólida para el reclamo completo además de estos dos:

Un comentario en Tema: 1134353002 hilo

Las divisiones no son .apks normales y solo se pueden instalar a través de "adb install-multiple"

Y este fragmento de código mencionado en el código fuente de PackageInstallerSession.java

demás {
  // Partial installs must be consistent with existing install 
  aplicación ApplicationInfo final = mPm.getApplicationInfo(mPackageName, 0, userId);
  si (aplicación == nulo) {
      lanza una nueva excepción PackageManager( INSTALL_FAILED_INVALID_APK, " Missing existing base package for " + mPackageName);
  }
Brevemente, esta cita es suficiente: "adb install-multiple"