D'après mon expérience, ce problème se produit généralement à la suite de permissions défectueuses (ou incorrectes) dans le cache dalvik.
Comment fonctionne l'optimisation ?
Lorsque le système Android "optimise les applications/le système", il crée une version optimisée de chaque application. Ce processus permet à chaque application de démarrer aussi le plus rapidement possible avec la nouvelle version d'Android.
Lorsqu'un .apk
est ajouté à un système Android, il est converti en un fichier odex (Optimised Dalvik Executable) dont la fonction principale est de gagner de l'espace. Contrairement au fichier odexed, un fichier deodexed a essentiellement toutes les parties assemblées en un seul endroit dans classes.dex
(seulement l'exécutable Dalvik)
Android utilise Android Runtime (ART) pour l'exécution des applications (dans les versions antérieures de l'application). versions d'Android - Machine virtuelle Dalvik pour maintenir le retour en arrière ART utilise le même bytecode d'entrée que Dalvik, fourni par le biais d'un code standard. par le biais de la norme .dex
en tant que partie des fichiers APK, tandis que l'option .odex
sont remplacés par des fichiers ELF (Executable and Linkable Format). ).
Maintenant, lorsqu'un système basé sur Android démarre, le cache dalvik de l'application Dalvik VM est construit à l'aide de ces fichiers .odex, ce qui permet au système d'exploitation d'apprendre à l'avance quelles sont les applications qui seront utilisées. d'apprendre à l'avance quelles applications seront chargées, et ainsi d'accélérer le processus de démarrage.
Situations dans lesquelles le problème se pose
-
Après une mise à jour d'une version d'Android, le problème peut apparaître si le système Android essaie de créer un nouveau cache dalvik pour les applications mais qu'il a toujours l'"ancien cache" pour une telle application, et essaie donc de créer constamment un nouveau cache par-dessus l'ancien.
-
Un fichier odex "utilisé" est toujours présent même si l'application en question a été supprimée. Certaines applications (par exemple Link2sd, Lucky Patcher, Titanium backup etc) qui intègrent le cache dalvik dans la partition système peuvent causer de tels problèmes. Dans un cas, cela s'est produit lorsque Titanium backup a créé un patch qui a créé un cache dalvik dans la partition système. .odex
dans /system/apps
. ce problème a résulté.
-
L'enracinement/désenracinement de l'appareil peut entraîner la modification des données dans le cache dalvik d'une certaine application, de sorte que lorsque le changement d'état se produit (de l'enracinement ou du désenracinement à l'inverse), il continue à essayer d'effectuer l'optimisation de l'application ou des applications.
Corrections possibles
- Effacement des données et du cache
Non. Vous pouvez essayer d'effacer votre partition cache :
-
Éteignez votre appareil
-
Appuyez sur une combinaison de Vol + + Vol - + Power key et maintenez-les enfoncées.
-
Ne libérez que le Power lorsque l'appareil vibre
-
Relâchez les autres boutons lorsque le Menu de récupération L'écran apparaît
-
Utilisation de la Vol + / Vol - pour naviguer, sélectionnez Effacer la partition cache
-
Appuyez sur le bouton Power key qui agira comme la touche Entrée de votre clavier.
-
Attendez que le processus se termine.
-
Vous pouvez ensuite redémarrer l'appareil et voir si vos problèmes sont résolus.
- Réinitialisation des autorisations du cache dalvik
Un autre utilisateur a proposé un explication concise :
Ce problème est causé lorsqu'il y a .odex
fichiers dans /data/app
que les permissions soient définies de manière à ce que le système ne puisse pas y écrire pendant le processus d'optimisation.
Dans ce cas, la définition de permissions correctes peut résoudre ce problème :
- Définir les permissions correctes, c'est-à-dire
rw- r-- r--
pour les fichiers odex dans /data/app
( ou /system/app
) dossier
Plusieurs utilisateurs ont suggéré d'utiliser cette méthode en employant un explorateur de fichiers pour supprimer le dossier :
Utilisez un explorateur de fichiers avec un accès Root ou un shell adb et supprimez le fichier dossier dalvik-cache qui se trouve dans /data
(o rm -r -f /data/dalvik-cache
à partir du shell adb)
-
Désinstallation d'une ou de plusieurs applications problématiques
- Essayez de vous débarrasser des coupables potentiels, en particulier ceux qui nécessitent Root, en désinstallant simplement ces applications.
- Vous pouvez également essayer de désintoxiquer les applications avec un outil approprié, afin de permettre à la machine virtuelle Android de réoptimiser les applications au prochain redémarrage.
Pour de nombreux utilisateurs, c'est le fichier odex de l'application Titanium Backup qui cause le problème. problème mais il peut y avoir d'autres programmes.
-
Remplacer la ROM stock
- Si aucune de ces solutions ne semble résoudre le problème, alors vous avez la plus grande probabilité de résoudre le problème en réinitialisant votre appareil avec la ROM stock.
- Obtenez le fichier ROM stock approprié et reflasher pour effacer essentiellement tout et réécrire les partitions avec des "données fraîches". Attention, sauvegardez d'abord les données importantes !
Références