O aplicativo antigo é desinstalado quando é atualizado?

11

Quero saber quando uma atualização está disponível para um aplicativo, obviamente, existe um novo apk. Então, é que o apk antigo é desinstalado e o novo apk é instalado?

Ankit
fonte

Respostas:

16

Não exatamente, não. Quando você desinstala um pacote, ele também remove outros dados relacionados a esse pacote: por exemplo, os dados particulares do aplicativo, seus dados no cartão SD, suas preferências padrão para esse aplicativo. Ele também informa aos outros aplicativos interessados ​​que você o removeu por meio de uma transmissão de intenção . Outros aplicativos que recebem essa transmissão podem executar outras ações com base nisso: por exemplo, um iniciador (aplicativo na tela inicial) removeria atalhos e widgets da área de trabalho desse aplicativo, pois eles não funcionarão mais.

Quando um pacote é atualizado (ou seja, substituído por um novo arquivo APK com o mesmo nome de pacote e um código de versão posterior), a versão antiga é interrompida, para que nada do aplicativo esteja em execução. O arquivo APK antigo é removido e o novo o substitui, mas as outras ações de desinstalação não são executadas: os dados do aplicativo particular e as preferências padrão são mantidos, e a transmissão da desinstalação não é enviada. Em vez disso, é transmitida uma intenção diferente para informar aos aplicativos interessados ​​que o pacote foi atualizado.

Portanto, enquanto o arquivo APK antigo é removido, o efeito de uma atualização é bem diferente de desinstalar o pacote antigo e instalar o novo.

No Google Play, a situação pode ser um pouco diferente se o desenvolvedor tiver ativado atualizações delta (chamadas atualizações inteligentes do Google).

Em uma atualização delta, apenas as alterações entre as duas versões são baixadas e aplicadas ao APK existente. Por exemplo, se você tem um aplicativo com 15 MB de tamanho e o desenvolvedor decide alterar a imagem de plano de fundo, não precisa baixar o aplicativo inteiro novamente, basta baixar o delta (diferença), que inclui o novo imagem. O APK antigo é duplicado, o novo conteúdo é injetado na cópia do APK antigo e, se for bem-sucedido, o APK antigo é removido. O resultado final é o APK atualizado.

Dan Hulme
fonte
Essa é uma resposta clara! Você pode dizer como remover os dados antigos do aplicativo na instalação da nova atualização?
lifeLongLearner
@lifeLongLearner Basta usar o botão "limpar dados" nas Configurações, da mesma forma que em qualquer outro momento.
Dan Hulme