485 Stimmen

Entfernen Sie alle ungenutzten Ressourcen aus einem Android-Projekt

Ich möchte alle nicht verwendeten Layouts, Strings, Drawables, Farben usw. aus meinem Android-Verzeichnis entfernen. Gibt es irgendwelche Tools, die mir eine Liste von Dateien geben und ich kann aus meinem Repository und Elemente innerhalb bestimmter Dateien (z. B. unbenutzte String-Einträge) entfernen, die nicht mehr verwendet werden?

4voto

Gabriel Klein Punkte 319

Um string.xml zu überprüfen.

Es ist einfach (zumindest in meiner Version von Eclipse)

In Eclipse für Android (ich habe Version v22.6.2-1085508)

  • Klicken Sie mit der linken Maustaste auf den Projektnamen im "Paket-Explorer".
  • Wählen Sie "Android-Tools".
  • Wählen Sie "Lint ausführen: Auf allgemeine Fehler prüfen".

Wenn Sie nun die Datei strings.xml öffnen, sehen Sie, dass die nicht verwendeten Zeichenfolgen hervorgehoben sind.

Sie können andere mögliche Probleme beheben.

3voto

user1632014 Punkte 31

Vielleicht nützlich Andround Unused Resources ist eine Java-Anwendung, die Ihr Projekt nach ungenutzten Ressourcen durchsucht. Ungenutzte Ressourcen nehmen unnötig Platz weg, verlängern die Build-Zeit und überladen die Autovervollständigungsliste der IDE.

Um es zu verwenden, stellen Sie sicher, dass Ihr Arbeitsverzeichnis das Root-Verzeichnis Ihres Android-Projekts ist, und führen Sie es aus:

java -jar AndroidUnusedResources.jar

https://code.google.com/p/Android-unused-resources/

3voto

Parth Dave Punkte 1966

Bei der Definition von "shrink resources true" können wir auch festlegen, welche Ressourcen wir behalten wollen und welche nicht. Ich habe eine Xml-Datei mit dem Namen keep.xml in den Ordner res/raw eingefügt.

bevor ich weiter gehe, generiere ich ein einzelnes signiertes Build und überprüfe es im Apk-Analyser-Tool, das zeigen wird, dass drawable-xhdpi-v4 messenger_button_send_round_shadow.png hat, das ich für diesen Test entfernen möchte

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
       tools:shrinkMode="strict"
       tools:discard="@drawable/com_facebook_button_icon_blue.png,
       @drawable/com_facebook_button_icon_white.png,
       @drawable/com_facebook_button_like_icon_selected.png,
       @drawable/messenger_button_send_round_shadow.png,
       @drawable/messenger_*"  />

Mit messenger_* werden alle Dateien, die mit dem Namen messenger beginnen, aus dem Drawable-Ordner entfernt, oder andersherum, wenn ich eine bestimmte Datei definiert habe, die entfernt werden soll

auf diese Weise können Sie selbst Dateien aus der Bibliothek entfernen Sie können auch Layouts durch @layout/layout name entfernen wenn die Zeichenfläche von einem Layout verwendet wurde und so....

2voto

Amjad Alwareh Punkte 2598

shift Doppelklicken Sie auf Windows und geben Sie "unused" ein. Remove unused Resources ,
auch

 android {
        buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
            }
   }
}

Wenn Sie diese Einstellungen aktivieren, entfernt AS automatisch ungenutzte Ressourcen.

1voto

Daniel F Punkte 12908

Hier gibt es wirklich ausgezeichnete Antworten, die gute Werkzeuge vorschlagen

Wenn Sie jedoch die Absicht haben, png-Zeichenobjekte (oder andere Bilddateien ), sollten Sie auch in Erwägung ziehen, alle drawable-xxxx-Ordner aus Ihrem Projekt in einen temporären Ordner zu verschieben, dann ein rebuild all durchzuführen und einen Blick auf die Build-Meldungsliste zu werfen, die Ihnen sagen wird, welche Ordner fehlen.

Dies kann besonders nützlich sein, wenn Sie sich einen Überblick darüber verschaffen wollen, welche Ressourcen Sie tatsächlich verwenden und diese vielleicht durch eine Icon-Schriftart oder svg-Ressourcen ersetzen wollen, möglicherweise mit Hilfe der Android-Symbole Bibliothek.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X