Определите, запускает ли приложение двоичный файл AOT (или принудительно) ⇐ Android
-
Anonymous
Определите, запускает ли приложение двоичный файл AOT (или принудительно)
Я разрабатываю тестовое приложение для Android, и мне интересно, можно ли определить, работает ли приложение в режиме интерпретатора, JIT-режиме или режиме AOT-компиляции.
Я не уверен, можно ли это выяснить во время выполнения, или это появляется в журналах logcat, или что-то в этом роде.
В документации Android указано, что приложение может работать либо в режиме AOT-компиляции, либо в режиме интерпретатора или интерпретатора + JIT.
Я запустил команды для ручной компиляции APK:
$ adbshell cmd package compile -m Speed -f my-package Но нет подтверждения того, что приложение, которое я запускаю, использует эту скомпилированную версию, а не версию DEX, или даже что код, который я выполняю после загрузки приложения, является скомпилированным кодом, а не кодом DEX.
>
Я заметил, что папка APK содержит файлы ODEX. В документах говорится, что если доступен файл .oat, он будет запущен (здесь у меня есть файлы .odex, которые, я думаю, одинаковы), но они также говорят что они могут вообще не содержать все методы или код. И вопрос в том... Это где-нибудь записывается?
Есть ли способ проверить, что мой код работает с версией, скомпилированной AOT, или заставить его работать таким образом?
Это сделано исключительно для целей отладки.
Я разрабатываю тестовое приложение для Android, и мне интересно, можно ли определить, работает ли приложение в режиме интерпретатора, JIT-режиме или режиме AOT-компиляции.
Я не уверен, можно ли это выяснить во время выполнения, или это появляется в журналах logcat, или что-то в этом роде.
В документации Android указано, что приложение может работать либо в режиме AOT-компиляции, либо в режиме интерпретатора или интерпретатора + JIT.
Я запустил команды для ручной компиляции APK:
$ adbshell cmd package compile -m Speed -f my-package Но нет подтверждения того, что приложение, которое я запускаю, использует эту скомпилированную версию, а не версию DEX, или даже что код, который я выполняю после загрузки приложения, является скомпилированным кодом, а не кодом DEX.
>
Я заметил, что папка APK содержит файлы ODEX. В документах говорится, что если доступен файл .oat, он будет запущен (здесь у меня есть файлы .odex, которые, я думаю, одинаковы), но они также говорят что они могут вообще не содержать все методы или код. И вопрос в том... Это где-нибудь записывается?
Есть ли способ проверить, что мой код работает с версией, скомпилированной AOT, или заставить его работать таким образом?
Это сделано исключительно для целей отладки.
Мобильная версия