Beschleunigen Sie die Buildzeit für Android-Projekte in IntelliJ IDEA
Ich Frage mich, ob es irgendeinen Weg gibt, wie man skip packaging and dexing
in IntelliJ IDEA wie in Eclipse und ADT. Es ist Additional VM Options
Feld in Android-DX-Compiler Abschnitt in IntelliJ Preferences
vielleicht könnte dies ein Weg sein, wie Sie. Ich würde auch schätzen, anderen Tipps, wie die Geschwindigkeit IntelliJ Android-Projekt erstellen.
InformationsquelleAutor der Frage sealskej | 2012-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
In den Eclipse-Einstellungen, der vollständige name von
skip packaging and dexing
auf die Sie sich beziehen, istSkip packaging and dexing until export or launch. (Speeds up automatic builds on file save)
das ist ein feature Hinzugefügt, da ADT 12 in orde zu Adresse Eclipse-inkrementelle Kompilierung problem (die slow-down-Entwicklung auf Eclipse), überprüfen Sie die Revisionen 12.0.0 (Juli 2011) und dieser link für weitere Informationen, Beachten Sie, dass Verpackung und dexing sind grundlegende Schritt beim Debuggen/ausführen Projekt unabhängig davon, welche IDE (oder nicht), die Sie verwenden.Als CrazyCoder erwähnt in seinem Kommentar, IntelliJ nicht unterstützt Eclipse-wie inkrementelle Kompilierung und Probleme Bereich standardmäßig in einem anderen Wort, ist es nicht automatisch kompilieren Sie Ihr Projekt, wenn die Datei geändert. Also das ist wirklich kein Problem noch Features in IntelliJ.
Ihren build-Prozess Engpass kommt wohl von anderer Stelle. AFAIK in einem mittleren Projekt, das die meiste Zeit build-Prozess verbringen Sie auf kompilieren von Ressourcen (AAPT Befehl, check-out build-Prozess-Diagramm). Einige kluge Leute aus dem xdadevelopers gefunden, die zu Engpässen und erstellen einer Update-version von AAPT:
http://forum.xda-developers.com/showthread.php?t=1907281
Ich verwende es selbst, und ich würde sagen, die Geschwindigkeit zu steigern, ist feelable in Eclipse zu beachten, dass es nur zu steigern, die AAPT Schritt, nicht die Verpackung ad dexing. Wenn Sie InteliJ, ist es wahrscheinlich nicht viel helfen, da muss es nicht kompilieren Sie das Projekt ziemlich oft.
InformationsquelleAutor der Antwort yorkw
Ich bin mit IntelliJ 12. Ich habe Zeit gewonnen bereitstellen und ausführen von Android-apps ermöglicht IntelliJ "Stellen Projekt automatisch". Um es zu aktivieren, gehen Sie einfach auf Vorlieben -> Compiler und aktivieren Sie "Projekt erstellen automatisch". Im gleichen Fenster überprüfen "Kompilieren unabhängige Module parallel".
Aktivieren "Projekt automatisch" können Sie überspringen "Machen" die Aufgabe vor, ein Android-Anwendung zu starten. Sie können entfernen Sie es in "Run/Debug Configurations", wählen Sie Ihre Android-Anwendung und entfernen "Machen" Aufgabe "Vor dem Start" Abschnitt.
InformationsquelleAutor der Antwort Jake Andreu
Ich habe keine Lösung, aber ich habe eine Erklärung, warum es gibt eine riesige Zusammenstellung Zeitdifferenz zwischen Eclipse und IntelliJ. Weil es ist. Wann immer Sie sind abhängig von externen Modulen oder Bibliotheken: IntellIJ immer DEX ' abhängigen Module. Eclipse scheint das caching.
Ich auch erlebt hatte, dieser riesige Unterschied in einem meiner Projekte. Ich habe einige grundlegende timing-tests gemacht und herausgefunden, dass mein Projekt, das in 40 Sekunden in IntellIJ dauerte nur 20 in Eclipse. Eine Menge Zeit wurde damit verbracht, in den Prozess, wo IntelliJ hat den status Ausführung DEXso ist dies, wie ich fand, diese Frage. Ich habe dann gesucht, um eine genauere und reproduzierbare experiment, und das ist, was ich gefunden habe.
Projekt-setup
*) Ich hätte jedem Modul hier, aber das war ein gutes Beispiel, weil es a) ziemlich groß und b) ist ein Android-Modul, was bedeutet, ich muss link es als ein Android-Projekt und nicht nur als JAR als dbm schlage vor, in einem Beitrag oben.
Ich Hinzugefügt die Protokollierung-code in die
onCreate
Methode derMainActivity.java
(die Start-Aktivität "HelloWorld"), die auch als eine Methode bezeichnet, in AndEngine, die auch protokolliert eine Linie. (Ich modifizierte Konstruktor vonSoundManager
zur Ausgabe einer Zeile und bezeichnet den Konstruktor vonMainActivity.java
). Dies erlaubte mir, um zu sehen, wenn die Anwendung fertig war die Bereitstellung und das hatte Sie auch ordnungsgemäß bereitgestellt.Ich habe dann die folgenden änderungen und zeitgesteuerte jeder von Ihnen drei mal in jede IDE:
Habe ich die manuelle timings mit einem standard-Stoppuhr und dann gerundet, oben/unten, um die nächste Sekunde. Ich habe drei Terminen in jedem Fall und berechnet das arithmetische Mittel.
Die Ergebnisse:
Hinweis: ich nicht mit einem separaten sub-Spalte für "Ausführen DEX" in Eclipse weil es einfach die Ausgänge "machen" oder "erfrischend " Arbeitsbereich" in den gesamten build-Prozess.
Beim ausführen aus Eclipse heraus können Sie sehen, aus den zahlen, die ich Zeit sparen, wenn ich nur ändern Sie die main-Modul, das wie erwartet. Aber in IntelliJ compile-Zeit ist in beiden Fällen identisch!
Fazit:
IntelliJ hat eine Menge von unnützen DEX ' Ing. Wenn jemand weiß, ob das konfigurierbar ist, ich denke, wir würden lösen, was ich glauben, ist die Ursache des Problems.
InformationsquelleAutor der Antwort Nilzor
Manchmal, wenn ich große externe jar auf mein (Eclipse) Projekt zu verlangsamen scheint der build-Prozess deutlich.
Habe ich jedoch bemerkt, dass anstelle der Zugabe die Gläser wie gewohnt (
Project -> Properties -> Java Build Path -> Libraries -> Add External JARs...
) kann man einen Benutzer hinzufügen Bibliothek statt (Project -> Properties -> Java Build Path -> Libraries -> Add Library... -> User Library
) und fügen Sie die externen JARs in dieser Bibliothek statt.Diese haben bisher immer gelöst, meine große-Gläser-bauen-mal-Fragen. Einige intelligente Jungs haben mir auch erklärt, warum dies so ist, aber leider weiß ich wirklich nicht die Erklärung. Ich habe keine Erfahrung mit IntelliJ - ich weiß nicht, ob das überhaupt zutreffend in deinem Fall, dennoch könnte man weitere Ideen von hier...
InformationsquelleAutor der Antwort dbm