en jouant avec Android ART et le fichier de code "natif" .oat/.elf qui est créé lors du processus d'installation de l'application, j'ai remarqué quelque chose d'étrange. Pour ma compréhension, si l'appareil utilise ART (Android> = 5.0), l'application va commencer avec le fichier oat compilé (/ data/dalvik-cache/arm64 /).Android ART - Utilisation du fichier .oat dans/dalvik-cache /?
C'est pourquoi j'ai été un peu surpris en vérifiant les fd d'une application et je n'ai pas trouvé le fichier là-bas. Seul l'apk normal (/data/app//base.apk) est répertorié ici.
Vérifiez cette sortie de mes "ls -l/proc/PID/fd"
donc je pensais que peut-être qu'il est tout simplement pas y figurer. J'ai donc échangé moi-même le fichier oat de cette application en compilant un autre fichier classes.dex avec l'outil dex2oat.
Ainsi, même après avoir modifié le fichier, l'application démarre normalement sans messages ou erreurs étranges (également dans logcat).
Quelle est l'explication pour cela? Quel est le processus détaillé que fait Android lorsque vous démarrez une application sous ART?
J'espère que quelqu'un peut éclaircir ça pour moi. Merci beaucoup.
peut voir que base.odex est mappé en mémoire, si vous imprimez la sortie du fichier 'maps'! – Paschalis