2016-07-14 11 views
23

Come dice il titolo, ho bisogno di creare un ambiente Android simulato all'interno della mia app. Devo essere in grado di installare applicazioni su questo ambiente senza installarle sul dispositivo.Creare un ambiente Android simulato all'interno della mia applicazione

So che è possibile perché this app lo fa.

Sono stato alla ricerca di un po 'e so che l'app lo fa creando un ambiente Android, ma non mi sembra di trovare un vantaggio su come farlo.

EDIT:

ho trovato un altro app che può farlo

Parallel Space

+1

Sembra che questa app abbia scaricato moduli, non nuove app. Hanno appena creato un programma per eseguire i moduli scaricati nella stessa app. – acac97

+0

Ho letto che crea ambiente parallelo. Controlla la modifica –

risposta

1

costruire uno voi stessi!

Android è costruito su Kernal, così fa un Linux

Ecco un link ad un progetto di lavoro sulla github che funziona fantastico in un ambiente Linux

Here è la documentazione su come è fatto!

3

Dipende dal grado di esecuzione dell'app e da ciò che costituisce "l'installazione" dell'applicazione. Tieni presente che un file .apk è solo un file java .jar con alcuni dati aggiuntivi nascosti in vari punti.

Al fine di eseguire porzioni di un'applicazione Android senza installarlo, si avrà bisogno di

  1. Aprire e analizzare l'apk. This APKParser class potrebbe essere un buon punto di partenza.
  2. Richiedi le autorizzazioni richieste dall'app in questione che non sono già state richieste dalla tua app. Nelle versioni precedenti di Android dovresti semplicemente richiedere tutte le autorizzazioni possibili per iniziare, ma con le versioni più recenti puoi fare requestPermissions per rendere la finestra di dialogo di richiesta di autorizzazione effettiva quando conveniente.
  3. Copia il classes.dex dall'applicazione nella tua cartella di dati. Se usa delle classi comuni che usi anche tu, probabilmente vorrai bombardarle dal file dex in modo da non avere conflitti di caricamento di classe, o essere molto, molto cauto con i programmi di caricamento di classe.
  4. Load the dex file con un DexFileLoader.
  5. A questo punto è possibile caricare praticamente qualsiasi codice nell'apk, ma non sarà possibile eseguire un carico diretto delle attività, poiché non sono definite nel proprio AndroidManifest.xml. Invece, è necessario creare un'attività "facciata" che ospita l'attività effettiva in riflessione e collega elementi come il contesto all'attività riflessa.

Questi passaggi dovrebbero probabilmente funzionare per eseguire almeno semplici app senza installarle.

Problemi correlati