2016-07-14 14 views
23

Jak mówi tytuł, muszę utworzyć symulowane środowisko Android w mojej aplikacji. Muszę mieć możliwość instalowania aplikacji w tym środowisku bez instalowania ich na urządzeniu.Tworzenie symulowanego środowiska Android w mojej aplikacji

Wiem, że to możliwe, ponieważ robi to this app.

Szukałem od jakiegoś czasu i wiem, że aplikacja to robi, tworząc środowisko Android, ale wydaje się, że nie znalazłem wskazówki, jak to zrobić.

EDIT:

znalazłem inną aplikację, która może to zrobić

Parallel Space

+1

To szew jak ta aplikacja pobiera moduły, a nie nowe aplikacje. Właśnie stworzyli program do uruchamiania pobranych modułów w tej samej aplikacji. – acac97

+0

Przeczytałem, że tworzy on środowisko równoległe. Sprawdź edycję –

Odpowiedz

1

zbudować samemu!

Android jest zbudowany na Kernal, więc robi Linux

Tu jest link do projektu roboczego na github który działa fantastyczny w środowisku Linux

Here jest dokumentacja, w jaki sposób jest zbudowany!

3

To zależy od tego, w jakim stopniu musisz uruchomić aplikację i co stanowi "instalacja" aplikacji. Należy pamiętać, że plik .apk to tylko plik Java .jar z dodatkowymi danymi schowanymi w różnych miejscach.

W celu uruchomienia części aplikacji Android bez instalowania go, trzeba będzie

  1. Otwórz i analizowania apk. This APKParser class może być dobrym miejscem do rozpoczęcia.
  2. Poproś o wszelkie uprawnienia wymagane przez aplikację, które nie są już wymagane przez aplikację. W starszych wersjach Androida po prostu trzeba zażądać wszystkich możliwych pozwoleń, ale w nowszych wersjach można requestPermissions, aby okno dialogowe żądania uprawnień było wygodne.
  3. Skopiuj pliki classes.dex z aplikacji do swojego folderu z danymi. Jeśli używa klas, z których również korzystasz, prawdopodobnie będziesz chciał je usunąć z pliku dex, aby nie było konfliktu ładowania klas, lub bądź bardzo, bardzo ostrożny przy ładowaniu klasy.
  4. Load the dex file z DexFileLoader.
  5. W tym momencie możesz załadować prawie dowolny kod w pliku APK, ale nie będziesz w stanie wykonać prostego obciążenia działań, ponieważ nie są one zdefiniowane w twoim AndroidManifest.xml. Zamiast tego musisz utworzyć "elewację" Aktywność, która zawiera rzeczywistą aktywność w odbiciu i umieszcza takie rzeczy jak kontekst w odzwierciedlanej Aktywności.

Te kroki powinny prawdopodobnie działać, aby uruchomić co najmniej proste aplikacje bez ich instalowania.

Powiązane problemy