Moja firma zajmuje się rozwojem Androida, a przeszkadzają nam długie cykle kompilacji, dekodowania, pakowania i wdrażania. Biorąc pod uwagę obecny stan Dalvik VM i narzędzi, budowanie czegoś takiego jak JRebel dla Androida byłoby możliwe?Wdrażanie wymiany kodu Hot dla Dalvik
Odpowiedz
JRebel for Android jest teraz w wersji beta i możesz teraz zarejestrować się w zaproszeniu. Mam nadzieję, że tego właśnie pragniemy.
Niedawno otrzymałem dostęp do wersji beta JRebel for Android. I działa już dość szybko: wystarczy, że wykonasz przeładowanie projektu po zmianach, aby uzyskać ~ 20sec. 20 sekund jest znacznie szybszy niż 2 min z Gradle
.
To nadal nie jest kodowanie na żywo dla Android
, ale zespół JRebel
ciężko pracuje nad optymalizacją. Założę się, że stabilne wydanie JRebel for Android
będzie zbliżone do kodowania na żywo.
Btw, istnieją alternatywy dla JRebel for Android
:
- Layout Cast - dość niestabilne w tej chwili, i wymaga
Android 5+
- Buck from Facebook. Nie próbowałem go sam, ale testy porównawcze mówią, że działa on szybciej niż kompilacje
Gradle
. Warte spróbowania.
protify jest stabilny i niezwykle szybki, ale wymaga trochę sprytnego do uruchomienia (https://github.com/pfn/protify). – pfn
Czy mógłbyś w ciągu kilku sekund zdefiniować "bardzo szybko"? Interesuje mnie czas "make-reload". –
Mniej niż 1 sekunda dla trywialnego świata witaj. 10-20 sekund dla dużej aplikacji z zasobami 20 MB, bibliotekami 100kloc i 60 – pfn
1) Określ długo. 2) Co teraz robisz? (tzn. eclipse/maven/gradle what?) –
Używam Eclipse, ale za każdym razem, gdy tworzysz projekt, występuje opóźnienie 15-30 sekund, aby zobaczyć zmiany, które mogą być trywialne (zmiany układu). Czy dynamiczne ładowanie klas jest możliwe, tak jak w JRebel lub [Play!] (Http://www.playframework.com/), aby zmiany były widoczne natychmiast? –
Pochylam się ku nie, ale może ktoś mnie poprawi. Jeśli wdrażasz do emulatora/urządzenia, to tak, będziesz miał trochę opóźnienia, ponieważ przechodzi on przez adb. Twój komputer nie ma bezpośredniego dostępu do maszyny Dalvik VM. Pamiętaj, że twoja kompilacja i pakowanie są różne, a nie wdrażanie plików klas na lokalny serwer internetowy. Jeśli edytujesz tylko układ xml, możesz spróbować użyć narzędzi podglądu układu, aby zobaczyć, jak będzie wyglądał. Jeśli wprowadzam zmiany w kodzie, spodziewam się wspomnianego opóźnienia. –