Hier scheint es falsche Informationen zu geben. Einige Leute berichten, wie der Android Builder-Cache (mit Aufgabe cleanBuildCache
) geleert werden kann, scheinen jedoch nicht zu erkennen, dass dieser Cache unabhängig von Gradles Build-Cache AFAIK ist.
Mein Verständnis ist, dass der Cache von Android vor dem von Gradle liegt (und ihn inspiriert hat), aber ich könnte mich irren. Ob der Android Builder aktualisiert wird / wurde, um Gradles Cache zu verwenden und seinen eigenen zurückzuziehen, weiß ich nicht.
BEARBEITEN: Der Android Builder-Cache ist veraltet und wurde entfernt. Das Android Gradle-Plugin verwendet jetzt stattdessen den Build-Cache von Gradle. Um diesen Cache zu steuern, müssen Sie jetzt mit der generischen Cache-Infrastruktur von Gradle interagieren.
TIPP: Suchen Sie online nach Gradles Cache-Hilfe, ohne das Schlüsselwort "android" zu erwähnen, um Hilfe für den aktuell relevanten Cache zu erhalten.
EDIT 2: Aufgrund der Frage von tir38 in einem Kommentar unten teste ich mit einem Android Gradle Plugin v3.4.2 Projekt. Der Gradle-Cache wird durch org.gradle.caching=true
in aktiviert gradle.properties
. Ich mache ein paar clean build
und das zweite Mal zeigen die meisten Aufgaben FROM-CACHE
als ihren Status, was zeigt, dass der Cache funktioniert.
Überraschenderweise habe ich eine cleanBuildCache
Gradle-Aufgabe und ein <user-home>/.android/build-cache/3.4.2/
Verzeichnis, die beide auf die Existenz eines Android-Builder-Cache hinweisen.
Ich führe aus cleanBuildCache
und das 3.4.2/
Verzeichnis ist weg. als nächstes mache ich noch einen clean build
:
- Nichts hat sich geändert: Die meisten Aufgaben werden
FROM-CACHE
als Status angezeigt und der Build mit Cache-fähigen Geschwindigkeiten abgeschlossen.
- Das
3.4.2/
Verzeichnis wird neu erstellt.
- Das
3.4.2/
Verzeichnis ist leer (außer für 2 versteckte Markierungsdateien mit der Länge Null).
Schlussfolgerungen:
- Das Caching aller normalen Android Builder-Aufgaben wird von Gradle übernommen.
- Durch das Ausführen
cleanBuildCache
wird der Build-Cache in keiner Weise gelöscht oder beeinflusst.
- Dort gibt es noch einen Android Builder Cache. Dies könnte ein Restcode sein, den das Android-Build-Team vergessen hat, zu entfernen, oder es könnte tatsächlich etwas Seltsames zwischenspeichern, das aus irgendeinem Grund nicht auf die Verwendung des Gradle-Caches portiert wurde oder nicht portiert werden kann. (Die Option "kann nicht" ist meiner Meinung nach sehr verbesserungsfähig.)
Als nächstes deaktiviere ich den Gradle-Cache durch Entfernen org.gradle.caching=true
aus gradle.properties
und versuche ein paar von clean build
:
- Die Builds sind langsam.
- Alle Aufgaben zeigen ihren Status als ausgeführt und nicht zwischengespeichert oder aktuell an.
- Das
3.4.2/
Verzeichnis ist weiterhin leer.
Weitere Schlussfolgerungen:
- Es gibt keinen Fallback für den Android Builder-Cache, wenn der Gradle-Cache nicht getroffen werden kann.
- Der Android Builder Cache, zumindest für allgemeine Aufgaben, wurde tatsächlich entfernt, wie ich bereits sagte.
- Das entsprechende Android-Dokument enthält veraltete Informationen. Insbesondere ist der Cache nicht standardmäßig aktiviert, wie dort angegeben, und der Gradle-Cache muss manuell aktiviert werden.
BEARBEITEN 3: Benutzer tir38 hat bestätigt, dass der Android Builder-Cache veraltet ist und mit diesem Fund entfernt wurde . tir38 hat dieses Problem ebenfalls erstellt . Vielen Dank!
Compiler -> Gradle
nicht geändert habeUse in-process build
. nichts mit dem Cache zu tun