Ответ 1
Это зависит от того, в какой степени вам нужно запустить приложение и что представляет собой "установка" приложения. Имейте в виду, что файл .apk
представляет собой только файл java .jar
с некоторыми дополнительными данными, спрятанными в разных местах.
Чтобы запустить часть приложения Android без его установки, вам нужно
- Откройте и проанализируйте apk. Этот класс APKParser может быть хорошим местом для начала.
- Запросить любые разрешения, требуемые для приложения, о которых не было запрошено вашим приложением. В более старых версиях Android вам просто нужно запросить все возможные разрешения для начала, но с более новыми версиями вы можете
requestPermissions
, чтобы диалог запроса на доступ при удобстве. - Скопируйте classes.dex из приложения в папку с данными. Если он использует какие-либо общие классы, которые вы также используете, вы, вероятно, захотите их уничтожить из файла dex, чтобы у вас не было конфликта загрузки классов, а также очень, очень осторожны с загрузчиками классов.
- Загрузите файл dex с помощью DexFileLoader.
- На этом этапе вы можете загружать практически любой код в apk, но вы не сможете выполнять прямую нагрузку на действия, так как они не определены в вашем
AndroidManifest.xml
. Вместо этого вам нужно будет создать "фасадную" активность, в которой будет отображаться фактическая активность в отражении, и прокладывает такие вещи, как контекст, в отраженную активность.
Эти шаги, вероятно, должны работать для запуска хотя бы простых приложений без их установки.