Od wersji 2.4 Groovy obsługuje Androida. Chcę uruchomić skrypt Groovy osadzony w Javie w mojej aplikacji na Androida.Wykonywanie skryptów Groovy osadzonych w Javie w środowisku wykonawczym dla Androida
Ta strona wyjaśnia, że jest to możliwe: http://melix.github.io/blog/2014/06/grooid2.html
Jedną z trudności w dostosowaniu języka Groovy jest to, jak my powiedział, Groovy jest bardzo dynamiczny język. Jedną z jego możliwości jest wykonywanie skryptów w środowisku wykonawczym. A co jeśli chcemy napisać skrypt Groovy na urządzeniu i wykonać go bezpośrednio na nim? Czy to możliwe? W rzeczywistości, tak, to jest możliwe, biorąc pod uwagę, że skorzystasz z tego procesu:
można mieć aplikację, napisany w Groovy lub nie, ale w końcu, gdy aplikacja jest uruchomiona, masz kod źródłowy Groovy że chcesz chcesz wykonać. Następnie należy skompilować klasy, wywołać dex bezpośrednio na urządzeniu, spakować wynik do pliku JAR w lokalnym systemie plików , a następnie załadować go za pomocą specjalnego programu ładującego klasy. Dlaczego więc jest to możliwe, proces ten jest bardzo złożony, a nie prosty, , ale co ważniejsze, jest dramatycznie wolny.
Jestem podekscytowany, że jest to rzeczywiście możliwe, niezależnie od prędkości. Oto przykładowy projekt tutaj: https://github.com/melix/grooidshell-example.
Niestety nie bardzo rozumiem ten proces. Mam projekt, który jest dość mały, ale nie jestem pewien, gdzie dokładnie patrzeć.
Czy możesz wskazać mi właściwy kierunek wykonywania skryptów Groovy osadzonych w Javie w środowisku wykonawczym dla Androida?
Witam, obecnie próbuję wdrożyć Twoje kroki. Mam problem z linią 136: Nie wiem, jakiej wartości użyć dla argumentu classLoader. W tym przykładzie otrzymuje obiekt klasy ClassLoader podczas inicjowania programu, ale ja tego nie robię. Co mam zrobić z tym argumentem? – Voldemort
Program ładujący klasy pochodzi z działania w tym przykładzie: https://github.com/melix/grooidshell-example/blob/master/GroovyDroid/src/main/java/me/champeau/groovydroid/GroovyActivity.groovy#L35 – blackdrag