Может ли Android приложение работать без Android времени выполнения, как подразумевается в официальном android стеке? - PullRequest
3 голосов
/ 17 января 2020

На самом деле, я всегда верю, что ответ отрицательный: приложение Android должно запускаться в отдельном экземпляре ART (например, Java через JVM) для перевода и удовлетворения кроссплатформенных потребностей.

Тем не менее, я чувствую растерянность из-за фигуры стека android, который помещает Google. То, как он использует dr aws, по-видимому, подразумевает, что инфраструктура API системных приложений + Java может go опускаться через нативные библиотеки c / c ++ без Android времени выполнения. Но я хотел бы возразить, что если Java необходимо вызвать в собственное пространство, Android Runtime (JVM / legacy Dalvik) все еще необходим для интерпретации источника и выполнения вызовов к native через JNI. Простое размещение Java API Framework над собственными библиотеками вводит меня в заблуждение.

Пожалуйста, прокомментируйте и исправьте меня, если что-то является логически неполным или неправильным. Спасибо

https://developer.android.com/guide/platform

1 Ответ

3 голосов
/ 17 января 2020

Я сомневался, что это невозможно. Однако, если вы декомпилируете apk в smali, вы увидите, что smali является более легко читаемым java байтовым кодом. Конвертируйте smali из apk в java исходный код, и вы получите перевод ART * java. Вы можете эмулировать / заменить / воссоздать реализацию Native / ART и все, что ниже, говорит само за себя. Он linux основан на аппаратных атрибутах, которые обеспечивают ввод в ART, извлеченный из C ++ только для использования java при создании системных приложений.

...