Meine Firma macht eine Menge Android-Entwicklung und wir sind durch die langen kompilieren, Dex, Paket, Bereitstellung Zyklen behindert. Angesichts des aktuellen Stands der Dalvik-VM und der Tools ist es möglich, so etwas wie JRebel für Android zu erstellen?Implementieren Hot-Code-Swap für Dalvik
Antwort
JRebel for Android ist jetzt in der Betaversion und Sie können sich jetzt für eine Einladung anmelden. Hoffentlich wird das was wir beide wollen.
Ich habe die JRebel for Android Beta-Zugriff nicht lange her. Und es funktioniert schon ziemlich schnell: es tooks ~ 20sec, um das Projekt nach Änderungen neu zu laden. 20 sec ist viel schneller als 2 min mit Gradle
.
Es ist immer noch nicht Live-Codierung für Android
, aber JRebel
Team arbeitet hart an Optimierungen. Ich wette, dass stabile Version von JRebel for Android
wird in der Nähe von Live-Codierung sein.
BTW, gibt es Alternativen für die JRebel for Android
:
- Layout Cast - ziemlich instabil im Moment, und erfordert
Android 5+
- Buck from Facebook. Ich habe es nicht selbst versucht, aber Benchmarks sagen, dass es schneller funktioniert als
Gradle
baut. Einen Versuch wert.
protify ist stabil und extrem schnell, benötigt aber ein wenig Erfahrung (https://github.com/pfn/protify). – pfn
Können Sie bitte in Sekundenschnelle "extrem schnell" definieren? Ich interessiere mich für "make-reload" Zeit. –
Unter 1 Sekunde für eine triviale Hallo Welt. 10-20 Sekunden für eine große App mit 20MB Ressourcen, 100Kloc und 60 Bibliotheken – pfn
- 1. Speicherbedarf für "kurze" Felder in Dalvik?
- 2. dynamische Generierung Dalvik Bytecode in einen laufenden Dalvik/Android-Anwendung
- 3. Wie @VIL in Dalvik bycode
- 4. Android Exploit dalvik Klassen: Einstellungen
- 5. plötzlich bekommen Dalvik Fehler wie nicht in der Lage für
- 6. Unterstützen DEX und Dalvik Java-Binärkompatibilität?
- 7. Wie führe ich Dalvik Op-Codes aus?
- 8. Dalvik-Transformation mit falschem Invoke-Opcode
- 9. Bedeutung von Dalvik VM VFY Codes
- 10. Browser sendet "Dalvik" als User-Agent
- 11. Hinzufügen neuer Register auf Dalvik bytecode
- 12. Android - Verifizierung fehlgeschlagen auf Klasse ART/Dalvik
- 13. Android dalvik Garbage Collection kann abstürzen?
- 14. Dalvik VM konnte mehrere Methoden nicht finden
- 15. Stack Korruption erkannt, Dalvik VM Absturz
- 16. Was sind die Dalvik-Thread-Zustände?
- 17. Unterstützt Dalvik (Android JVM) Hot Code ersetzen?
- 18. Dalvik VM gibt Fehler während org.apache.commons.collections.CollectionUtils
- 19. Dalvik Debugging ausgedrückt über Live-Maschine:
- 20. Selbst kompilierte dalvik lädt keine geteilten Bibliotheken
- 21. Implementieren + Selektor für IE6
- 22. Implementieren der Sicherheit für Sitzungen
- 23. implementieren Jsonp-Anfrage für Python
- 24. Implementieren eines HierarchicalDataBoundControl für ASP.NET
- 25. Implementieren Suchfilter für alle Spalten
- 26. Pager-Steuerelement für Gridview implementieren?
- 27. Implementieren von getMaxAmplitude für audioRecord
- 28. Implementieren für alle Klassen BsonIgnoreExtraElements
- 29. effizient takeByKey für Funken implementieren
- 30. Verwendet der Android Dalvik Vm die Escape-Analyse-Optimierung?
1) Lang definieren. 2) Was machst du jetzt? (d. h. Eclipse/Maven/Gradle What?) –
Ich benutze Eclipse, aber es gibt 15-30 Sekunden Verzögerung jedes Mal, wenn Sie das Projekt erstellen, um Änderungen zu sehen, die trivial sein können (Layoutänderungen). Kann dynamisches Classloading wie in JRebel oder [Play!] (Http://www.playframework.com/) genutzt werden, um Änderungen sofort sichtbar zu machen? –
Ich bin auf Nein gelehnt, aber vielleicht wird mich jemand korrigieren. Wenn Sie auf Emulator/Gerät bereitstellen, dann ja, Sie haben etwas Verzögerung, wie es über adb geht. Ihr PC hat keinen direkten Zugriff auf die Dalvik VM. Denken Sie daran, dass Sie Cross-Compiling und Paketierung durchführen und keine Klassendateien auf einem lokalen Webserver bereitstellen. Wenn Sie nur das XML-Layout bearbeiten, können Sie versuchen, die Layout-Vorschau-Tools zu verwenden, um zu sehen, wie es aussehen wird. Wenn ich Codeänderungen mache, erwarte ich die erwähnte Verzögerung. –