J'essaie de comprendre les différences spécifiques entre les temps d'exécution Dalvik et ART. Je me rends compte que ART n'utilise plus la machine virtuelle Dalvik, cependant, l'une des premières choses que j'ai remarquées après l'installation de l'aperçu Android L était que le processus zygote est toujours en cours d'exécution. S'ils se sont vraiment débarrassés de la machine virtuelle Dalvik, cela ne rendrait-il pas le processus zygote inutile? De plus, après avoir inspecté le code source publié via AOSP, une grande partie de Dalvik demeure.
dalvik
art
5.0-lollipop
John
la source
la source
Réponses:
Zygote n'est pas vraiment lié à Dalvik, c'est juste un processus d'initialisation. Zygote est la méthode utilisée par Android pour démarrer les applications. Plutôt que d'avoir à démarrer chaque nouveau processus à partir de zéro, de charger à nouveau le système entier et le cadre Android à chaque fois que vous souhaitez démarrer une application, il effectue ce processus une fois, puis s'arrête à ce stade, avant que Zygote n'ait fait quoi que ce soit spécifique à l'application . Ensuite, lorsque vous souhaitez démarrer une application, le processus Zygote bifurque et le processus enfant continue là où il s'était arrêté, en chargeant l'application elle-même dans la machine virtuelle.
Bien que cette méthode ait été initialement conçue pour Dalvik, il n'y a aucune raison pour que ART ne se comporte pas exactement de la même manière. Il n'a pas besoin de compiler JIT pendant leur exécution, mais il a encore beaucoup de choses Java indépendantes de l'application à charger (c'est-à-dire tout le framework Android), il est donc logique d'utiliser le même fork-when- méthode chargée pour démarrer de nouveaux processus.
Il est naturel sur un projet si important qu'il y aurait d'autres restes de Dalvik qui sont toujours utiles dans un monde post-Dalvik, donc vous ne devriez pas être surpris qu'il y ait un autre code qui a été écrit à l'origine pour faire partie de ou pour travailler avec Dalvik, qui est toujours là pour ART à utiliser.
la source