Usuń wszystkie niewykorzystane zasoby z projektu android

Chcę usunąć wszystkie nieużywane układy, ciągi, drawables, kolory, itp z mojego katalogu Android res. Czy są jakieś narzędzia, które dadzą mi listę plików i mogę usunąć z repozytorium i elementy w określonych plikach (np. nieużywane wpisy ciągów), które nie są już używane?

Author: Vadim Kotov, 2011-06-16

16 answers

Możesz łatwo wyszukać niewykorzystane zasoby z Android Studio. Po prostu naciśnij CtrlAltShifti i wpisz " niewykorzystane zasoby " (bez cudzysłowów). To wykona lint. Super prosty sposób na uruchamianie poleceń lint (i innych rzeczy z IDE).

LUB

W Menu Android Studio > Refaktor > Usuń Niewykorzystane Zasoby...

Wybierz zasoby, które chcesz usunąć. Możesz wykluczyć zasoby, które chcesz zachowaj klikając prawym przyciskiem myszy element zasobu.

Użyj do Refactor , aby usunąć wszystkie zasoby naraz.

Update: użyj OpcjaShifti dla mac

 802
Author: bakua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-24 10:04:40

Od ADT 16 można używać Android Lint . To naprawdę niesamowite narzędzie.

Android Lint to nowe narzędzie dla ADT 16 (i Tools 16), które skanuje źródła projektu Android w poszukiwaniu potencjalnych błędów.

Oto kilka przykładów typów błędów, których szuka:

  • brakujące tłumaczenia (i nieużywane tłumaczenia)
  • Problemy z wydajnością układu (wszystkie problemy używane do znalezienia starego narzędzia layoutopt i inne)
  • Nieużywany zasoby
  • niespójne rozmiary tablic (gdy tablice są zdefiniowane w wielu konfiguracjach)
  • Problemy z dostępnością i internacjonalizacją (zakodowane na twardo ciągi znaków, Brak opisu treści itp.)]} Problemy z ikonami (takie jak brak gęstości, duplikaty ikon, niewłaściwe rozmiary itp.)]} Problemy z użytecznością (np. nie określanie typu wejścia w polu tekstowym)
  • oczywiste błędy i wiele innych.

Ma jednak pewne problemy (nie jeśli chcesz usunąć setki rzekomo nieużywanych zasobów, polecam ręcznie skompilować projekt kilka razy podczas usuwania zasobów, aby mieć pewność, że Lint nie usunął czegoś potrzebnego.

 99
Author: Andrei Buneyeu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-15 09:18:12

Ponieważ wsparcie dla ADT w Eclipse zostało zakończone, musimy użyć Android Studio.

W Android Studio 2.0 + użyj Refactor > Remove Unused Resources...

Tutaj wpisz opis obrazka

 41
Author: dieter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-28 20:39:44

[1]}System Gradle build dla Androida obsługuje "kurczenie się zasobów": automatyczne usuwanie zasobów, które są nieużywane w czasie kompilacji w spakowanej aplikacji. Oprócz usuwania zasobów w projekcie, które nie są faktycznie potrzebne w czasie wykonywania, usuwa to również zasoby z bibliotek, w zależności od tego, czy nie są one rzeczywiście potrzebne przez aplikację.

Aby to włączyć dodaj linię shrinkResources true w pliku gradle.

   android {
        ...

        buildTypes {
            release {
                minifyEnabled true //Important step
                shrinkResources true
            }
   }
}

Sprawdź oficjalną dokumentacja tutaj,

Http://tools.android.com/tech-docs/new-build-system/resource-shrinking

 40
Author: Prokash Sarkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-21 06:31:13

Otwieramy narzędzie, które usuwa wszystkie niewykorzystane zasoby w projekcie Androida w oparciu o wyjście lint. Można go znaleźć tutaj: https://github.com/KeepSafe/android-resource-remover

 16
Author: philipp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-22 22:35:23

Uważaj, jeśli używasz wielu smaków podczas uruchamiania lint. Lint może dać fałszywe niewykorzystane zasoby w zależności od wybranego smaku.

 16
Author: MRodrigues,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-06 07:57:03

W Android Studio 2.0 i nowszych w menu wybierz Refactor-- > kliknij Usuń nieużywane zasoby...

(LUB)

Dostępny również Skrót

Naciśnij Ctlr+Alt+Shift + i pojawi się jedno okno dialogowe, a następnie wpisz nieużywane , znajdziesz wiele opcji wybierz i usuń nieużywane zasoby

 8
Author: Ramesh R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-28 05:54:39

W Android Studio,

Analyze - > Run Inspection by Name

(skrót dla Mac shift + command+option + i , Ctrl + Shift + a na Windows/Linux).

I wpisz "niewykorzystane zasoby".

W ten sposób można usunąć nieużywane zasoby, zmienne, symbole ,lokalizację, biblioteki ..itd.

Wybierz żądaną kontrolę z listy, a następnie wybierz zakres kontroli- > OK Tutaj wpisz opis obrazka

 8
Author: Lins Louis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-03 10:51:23

Uwaga Programiści Android Wear: "Usuń nieużywane zasoby" usunie plik xml, w którym zadeklarujesz nazwę możliwości (res/values/wear.xml) i telefon nie będzie mógł połączyć się z zegarkiem. Spędziłem godziny próbując znaleźć ten błąd w mojej aplikacji.

 6
Author: steliosf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-10 13:31:52

Aby sprawdzić ciąg znaków.xml.

It ' s easy (at least in my version of Eclipse)

W Eclipse dla Androida (mam wersję v22.6.2-1085508)

  • Kliknij lewym przyciskiem myszy na nazwie projektu w"Package explorer"
  • Wybierz "Narzędzia Android".
  • wybierz "Uruchom Lint: Sprawdź typowe błędy".

Teraz, gdy otwierasz struny.xml, zobaczysz, że nieużywany ciąg znaków jest podświetlony.

Możesz naprawić inne potencjalne problemy.

 4
Author: Gabriel Klein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-14 15:17:26

Maybe useful Andround Unused Resources to aplikacja Java, która skanuje twój projekt w poszukiwaniu nieużywanych zasobów. Niewykorzystane zasoby niepotrzebnie zajmują miejsce, wydłużają czas kompilacji i zaśmiecają listę Autouzupełniania IDE.

Aby go użyć, upewnij się, że katalog roboczy jest głównym projektem Androida i uruchom:

Java-jar AndroidUnusedResources.jar

Https://code.google.com/p/android-unused-resources/

 3
Author: user1632014,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-03 08:33:52

Kiedy zdefiniujemy shrink resources true w tym czasie możemy również określić, które zasoby chcemy zachować, a które nie Dodałem plik xml w folderze res / raw o nazwie keep.xml

Zanim przejdziemy dalej Wygeneruj pojedynczą podpisaną kompilację i sprawdź w analizatorze apk narzędzie, które pokaże drawable-xhdpi-v4 ma messenger_button_send_round_shadow.png, który chcę usunąć do tego testu

<?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_*"  />

Wykonując messenger_ * wszystkie pliki zaczynające się od name messenger w folderze drawable zostaną usunięte lub w przeciwnym razie zdefiniowałem konkretny plik do usunięcia

Więc w ten sposób można usunąć Pliki z biblioteki możesz również usunąć układy za pomocą @ layout/layout name jeśli ten drawable został użyty przez layout i tak....

 3
Author: Parth Dave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-26 09:19:59

Są tu naprawdę doskonałe odpowiedzi sugerujące dobre narzędzia

Ale jeśli zamierzasz usunąć png-drawables (lub inne pliki obrazów ), Powinieneś również rozważyć przeniesienie wszystkich folderów drawable-xxxx ze swojego projektu do folderu tymczasowego, następnie wykonaj rebuild all i spójrz na listę wiadomości budowania, która powie ci, których z nich brakuje.

Może to być szczególnie przydatne, jeśli chcesz uzyskać przegląd zasobów, z których efektywnie korzystasz i może zastąpić je czcionką ikon lub zasobami svg, być może za pomocą biblioteki Android Iconics.

 1
Author: Daniel F,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-12 08:36:38

Android Assets Viewer został zaprojektowany, aby pomóc wizualnie sprawdzić grafikę spakowaną (jako rysunki) w Twoim .apk (możesz również przesłać plik zip z folderu res, jeśli wolisz):

Http://www.cellebellum.net/AndroidAssetsViewer/

Więc w przypadku usuwania nieużywanych zasobów, może to działać dobrze w połączeniu z kontrolami Lint, aby pomóc upewnić się, że wszystko, co powinno tam być, jest. Pomaga również zidentyfikować kilka innych potencjalnych problemów z rysunkami: wrong wiaderko, zła grafika itp.

 0
Author: straya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-07 02:54:09

Po uruchomieniu Lint w Android Studio i znalezieniu wszystkich niewykorzystanych zasobów, możesz kliknąć jeden z nich na karcie Inspection. Zawiera pewne szczegóły dotyczące problemu i kilka opcji, aby go naprawić. Jednym z nich jest usunięcie wszystkich niewykorzystanych zasobów. Wybranie tej opcji powoduje usunięcie wszystkich niewykorzystanych zasobów.

 0
Author: rohans310,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-23 20:29:55

W systemie Windows: naciśnij Ctlr + Alt + Shift + i pojawi się jedno okno dialogowe, następnie wpisz nieużywane, znajdziesz liczbę opcji Wybierz i usuń nieużywane zasoby

 0
Author: Ranajit Sawant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-11 14:54:54