2016-07-14 2 views
23

Как говорится в названии, мне нужно создать симулированную среду Android в моем приложении. Мне нужно иметь возможность устанавливать приложения в этой среде, не устанавливая их на устройстве.Создайте имитируемую среду Android в своем приложении

Я знаю, что это возможно, потому что this app.

Я искал какое-то время, и я знаю, что приложение делает это, создавая среду Android, но, похоже, я не знаю, как это сделать.

EDIT:

Я нашел другое приложение, которое может сделать это

Parallel Space

+1

Это шов, как это приложение, загружает модули, а не новые приложения. Они просто создали программу для запуска загруженных модулей в одном приложении. – acac97

+0

Я читал, что он создает параллельную среду. –

ответ

1

построить один самостоятельно!

Android построен на Kernal, поэтому делает Linux

Вот ссылка рабочего проекта на github который работает фантастически в среде Linux

Here является документация о том, как он будет построен!

3

Это зависит от того, в какой степени вам нужно запустить приложение и что представляет собой «установка» приложения. Имейте в виду, что файл .apk представляет собой только файл java .jar с некоторыми дополнительными данными, спрятанными в разных местах.

Для запуска частей на Android приложения без установки, вам необходимо

  1. Открыть и разобрать APK. This APKParser class может быть хорошим местом для начала.
  2. Запросить любые разрешения, требуемые для данного приложения, которые не были запрошены вашим приложением. В старых версиях Android вам просто нужно запросить все возможные разрешения для начала, но с более новыми версиями вы можете requestPermissions, чтобы сделать диалог фактического запроса на разрешение, когда это удобно.
  3. Скопируйте classes.dex из приложения в папку с данными. Если он использует какие-либо общие классы, которые вы также используете, вы, вероятно, захотите уничтожить их из файла dex, чтобы у вас не было конфликта с загрузкой классов, а также очень, очень осторожны с загрузчиками классов.
  4. Load the dex file с DexFileLoader.
  5. На этом этапе вы можете загружать практически любой код в apk, но вы не сможете выполнять прямую нагрузку на действия, так как они не определены в вашем AndroidManifest.xml. Вместо этого вам нужно будет создать «фасадную» активность, в которой будет отображаться фактическая активность в отражении, и прокладывает такие вещи, как контекст, в отраженную активность.

Эти шаги, вероятно, должны работать для запуска хотя бы простых приложений без их установки.