Processus de mise à jour de l'application -- applications domaine et updates domaine et side-loading domain android en relation problème

App update process



2
vote

problème

français

Ce n'est pas encore clair pour moi ce qui se passe lorsqu'une application est mise à jour.

est la nouvelle application mise à jour simplement "installée" sur "l'ancien entretien des données et du cache de l'ancien? Qu'est-ce qui arrive réellement lors de la mise à jour d'une application?

dans la recherche d'Internet 1 , et SE, je n'ai trouvé aucune information utile (je ne demande pas comment mettre à jour à l'aide de GooglePlay.

PS: Dans les commentaires, Andrewt and Firelord m'a donné des pointeurs utiles et je ressens les informations que je cherchais un centre autour du fonctionnement de Packagemanager et PackageInstaller.

1: Voir par ex. "Comment fonctionne les applications de mise à jour Android" , Comment fonctionne Android App-Update fonctionne , Processus de mise à jour d'application Android expliqua

langue Anglaise

Its not yet clear to me what happens when an app gets updated.

Is the new updated app simply being "installed over" the old one maintaining data and cache from the old one? What actually happens when an app is updated?

In searching internet1, and SE, i found no useful information (I am not asking about how to update using googleplay.

PS: In the comments AndrewT and Firelord actually gave me useful pointers and I feel the informations I was looking for center around the workings of PackageManager and PackageInstaller.


1: See e.g. "how does android update apps", how does android app-update work, android app-update process explained

        
     
     

Liste de réponses

4
 
vote

Il est important de noter que les applications Android ne sont pas installées de la même manière que sur Windows ou sur les systèmes GNU / Linux. L'application fonctionne entièrement à partir du fichier APK. Installation d'une application Pour la première fois inclut les étapes suivantes:

  1. Téléchargez l'APK vers le stockage. Tous les fichiers APK d'applications sont téléchargés vers le même emplacement.

  2. Créez un ID utilisateur pour la nouvelle application. Chaque application dans Android fonctionne dans son propre ID utilisateur Linux. Ceci est pour la sécurité, et c'est comment fonctionne le système d'autorisations.

  3. Créez une DATA DIR pour la nouvelle application. Ceci est initialement vide.

  4. ajoutez l'application à la base de données du téléphone des applications installées. Cette base de données inclut le nom (ID de package) de l'application, le chemin d'accès au fichier APK, l'ID utilisateur, entre autres choses.

C'est tout ce qu'il faut. Ainsi, après cela, il est assez facile de voir comment la mettre à niveau:

  1. Téléchargez le nouveau fichier APK. Ceci est un nouveau fichier au même endroit que tous les autres fichiers APK.

  2. Vérifiez que l'ancien APK peut être mis à niveau vers le nouvel APK. Il vérifie qu'ils étaient tous deux signés par la même clé, afin d'éviter le vol de données et que le nouvel APK n'est pas une version plus ancienne, et quelques autres paramètres de la ManifSest de l'application. Si l'une des vérifications échoue, l'ancien APK ne peut pas être mis à niveau vers le nouvel APK, la mise à niveau s'arrête avec une erreur à ce stade.

  3. Arrêtez l'ancienne version de l'application proprement.

  4. Vérifiez les modifications apportées à l'application (telles que les nouvelles autorisations) et mettez à jour l'ID utilisateur de l'application en conséquence. Mettez à jour la base de données des applications installées pour pointer vers le nouveau fichier APK (et avec d'autres données sur la nouvelle application).

  5. Supprimez l'ancien fichier APK.

Le processus de mise à niveau n'a même pas à regarder le répertoire de données. C'est à l'application de modifier ses données si la nouvelle version utilise un format différent ou autre. (Cela signifie également que c'est à l'application Quelles anciennes versions peuvent être mises à jour proprement sans perte de données.)

Le processus fonctionne de la même manière que vous mettez à niveau l'application via Google Play ou dans un autre App Store ou en cliquant sur le fichier APK ou en utilisant adb install . Quel que soit le front-extrémité que vous utilisez, il passe par le même gestionnaire de paquets. La seule différence est que si vous utilisez une App Store, il conserve probablement également ses propres enregistrements de quelles versions installées, à la fois pour aider le développeur d'applications à comprendre leur base d'utilisateurs, et il peut donc vérifier les futures mises à jour.

 

It's important to note that Android apps don't get installed in the same way as on Windows or on GNU/Linux systems. The app runs entirely from the APK file. Installing an app for the first time includes the following steps:

  1. Download the APK to the storage. All apps' APK files get downloaded to the same location.

  2. Create a user ID for the new app. Each app in Android runs in its own Linux user ID. This is for security, and is how the permissions system works.

  3. Create a data dir for the new app. This is initially empty.

  4. Add the app to the phone's database of installed apps. This database includes the name (package ID) of the app, the path to the APK file, the user ID, amongst other things.

That's all it takes. So after that, it's pretty easy to see how to upgrade it:

  1. Download the new APK file. This is a new file in the same location as all the other APK files.

  2. Check that the old APK can be upgraded to the new APK. It checks that they were both signed by the same key, to avoid data theft, and that the new APK is not an older version, and a few other settings from the app's manifsest. If any of the checks fail so the old APK can't be upgraded to the new APK, the upgrade stops with an error at this point.

  3. Stop the old version of the app cleanly.

  4. Check for changes to the app (such as new permissions) and update the app's user ID accordingly. Update the database of installed apps to point to the new APK file (and with other data about the new app).

  5. Delete the old APK file.

The upgrade process doesn't even have to look at the data directory. It's up to the app to change its data if the new version uses a different format or whatever. (This also means that it's up to the app what old versions can be updated cleanly without losing data.)

The process works the same way whether you're upgrading the app through Google Play, or some other app store, or by clicking on the APK file, or using adb install. Whichever front-end you use, it goes through the same package manager. The only difference is that if you use an app store, it probably also keeps its own record of what versions are installed, both to help the app developer understand their user base, and so it can check for future updates.

 
 
     
     

Questions connexes

5  Copie-t-il un fichier .apk dans / {système, Data} / app suffisant pour installer une application Android?  ( Is copying an apk into system data app sufficient to install an android app ) 
Si non, quoi d'autre se fait sous les couvertures? Aussi, quelles sont les différences lors de l'installation d'applications du marché Android Sideload...

3  Est-il possible d'utiliser un téléphone AT & T pour le développement Android sans enraciner?  ( Is it possible to use an att phone for android development without rooting ) 
Cette question < / a> semble dire qu'il est nécessaire de raconter un téléphone AT & AMP; t Téléphone (comme le Samsung Captivate) afin d'installer des appli...

7  Comment puis-je saisir le portefeuille Google sur mon Verizon Galaxy Nexus?  ( How do i sideload google wallet onto my verizon galaxy nexus ) 
La version Verizon du Samsung Galaxy Nexus est expédié sans Google Wallet. Ceci est ostensiblement parce que Verizon sort avec son propre système de paiemen...

3  Puis-je installer directement des applications non commercialisées sur mon téléphone AT & T (sans PC)?  ( Can i install non market apps on my att phone directly without a pc ) 
J'ai installé des applications non commercialisées sur mon AT & AMP; t captivé en utilisant adb, mais ce serait bien si je pouvais télécharger un APK directem...

140  Pourquoi ne puis-je pas appuyer sur le bouton d'installation lors de l'installation d'applications de sources inconnues?  ( Why cant i press the install button when installing applications from unknown s ) 
J'essaie de faire preuve d'une application, comme on le voit dans l'image ci-dessous. J'ai autorisé l'installation d'applications d'actions appliquées in...

4  Comment puis-je passer à Sideload, c'est-à-dire Installer des applications non commerciales, sur les téléphones AT & T?  ( How do i sideload i e install non market apps on att phones ) 
J'aimerais essayer un logiciel bêta Android que j'ai trouvé en ligne, mais lorsque j'ai essayé de l'installer sur l'appareil, j'ai reçu un message indiquant q...

3  Est-il possible de créer une mise à jour OTA à partir de deux images système?  ( Is it possible to build an ota update from two system images ) 
J'attends avec impatience que quelqu'un capturait le lien de téléchargement de la mise à jour Android 6.0.1 OTA pour le Nexus 6 afin que je puisse le faire dé...

23  Puis-je installer des applications sur téléphone sans utiliser le marché Android?  ( Can i install apps on phone without using the android market ) 
J'ai ce périphérique Huawei qui ne vient pas avec le marché Android installé. Y a-t-il un travail de travail pour cela? Comme dans Comment puis-je installer...

1  Est-ce que la libraire est la même que le clignotant via une récupération personnalisée?  ( Is sideloading same as flashing via custom recovery ) 
Récemment, j'ai chargé la dernière version de Nougat sur mon Nexus 6P. Ce qui était presque identique à la façon dont on irait de clignoter via la récupératio...

4  Impossible d'installer ROM avec ADB Sideload ou d'autres méthodes sur LG G3 D855  ( Unable to install rom with adb sideload or other methods on lg g3 d855 ) 
J'ai un téléphone LG G3 (D855) sur lequel j'avais CyanogenMod 14 et que je voulais passer à des lignesages. J'ai démarré à la récupération, tout essuyé et e...




© 2022 www.demandez.top All Rights Reserved. Questions et réponses Accueil Tous les droits sont réservés