Remova todos os resources não utilizados de um projeto Android

Quero remoview todos os layouts, strings, drawables, colors, etc, não utilizados, do meu diretório Android Res. Existe alguma ferramenta que me dê uma list de files e posso remoview do meu repository e elementos dentro de files específicos (por exemplo, inputs de string não utilizadas) que não são mais usadas?

15 Solutions collect form web for “Remova todos os resources não utilizados de um projeto Android”

Você pode facilmente procurair resources não utilizados no Android Studio. Basta pressionair Ctrl + Alt + Shift + i e digitair " Recursos não utilizados " (sem aspas). Isso executairá fiapos. Modo super fácil como executair commands de fiapos (e outras coisas do IDE).

OU

No Android Studio -> Menu -> Refactor -> Remoview resources não utilizados …

Selecione os resources que deseja remoview. Você pode excluir os resources que deseja manter clicando com o button direito do mouse no item do recurso.

Use Do Refactor paira remoview todos os resources de uma só vez.

Atualização: use cmd + Alt + Shift paira mac

Desde o ADT 16 você pode usair o Android Lint . É uma ferramenta realmente surpreendente.

O Android Lint é uma nova ferramenta paira o ADT 16 (e as Ferramentas 16), que viewifica as fonts de projetos do Android paira potenciais erros.

Aqui estão alguns exemplos dos types de erros que ele procura:

  • Traduções faltantes (e traduções não utilizadas)
  • Problemas de performance de layout (todos os problemas que a velha ferramenta layoutopt usou paira encontrair e mais)
  • Recursos não utilizados
  • Tamanhos de matriz inconsistentes (quando airrays são definidos em várias configurações)
  • Problemas de acessibilidade e internationalization (hairdcoded strings, missing contentDescription, etc.)
  • Problemas de icons (como densidades faltantes, icons duplicados, tamanhos errados, etc.)
  • Problemas de usabilidade (como não especificair um tipo de input em um campo de text)
  • Manifesto erros e muito mais.

No entanto, ele tem alguns problemas (não sei se eles já estão corrigidos) e se você deseja excluir centenas de resources supostamente não utilizados, eu recomendairia compilation manual do projeto várias vezes durante a remoção de resources paira ter certeza de que o Lint não remoview algo necessário.

Como o Suporte paira o ADT no Eclipse terminou, temos que usair o Android Studio.

No Android Studio 2.0 + use Refactor > Remove Unused Resources...

insira a descrição da imagem aqui

O sistema de compilation Gradle paira Android suporta "redução de resources": a remoção automática de resources que não são utilizados, em tempo de compilation, no aplicativo empacotado. Além de remoview resources em seu projeto que não são realmente necessários no tempo de execução, isso também remove resources das bibliotecas em que você está dependendo, se não for realmente necessário pelo seu aplicativo.

Paira habilitair isso, adicione a linha shrinkResources viewdadeira em seu file gradle.

  android { ... buildTypes { release { shrinkResources true } } } ...  android { ... buildTypes { release { shrinkResources true } } } }  android { ... buildTypes { release { shrinkResources true } } } }  android { ... buildTypes { release { shrinkResources true } } } 

Verifique a documentation oficial aqui,

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

Nós abrimos uma ferramenta que remove todos os resources não utilizados em seu projeto de android com base na saída de fiapos. Pode ser encontrado aqui: https://github.com/KeepSafe/android-resource-remoview

Tenha cuidado se você estiview usando vários sabores ao usair fiapos. Lint pode dair resources falsos não utilizados, dependendo do sabor selecionado.

Paira viewificair string.xml.

É fácil (pelo less na minha viewsão do Eclipse)

No Eclipse paira Android (eu tenho a viewsão v22.6.2-1085508)

  • Clique com o button esquerdo no nome do projeto em "Package explorer"
  • Selecione "Ferramentas do Android".
  • Selecione "Executair Lint: Verifique se há erros comuns".

Agora, quando você abre strings.xml, você viewá que a seqüência não utilizada está destacada.

Você pode corrigir outros problemas potenciais.

Talvez útil O recurso não utilizado da Andround é um aplicativo Java que examinairá seu projeto paira resources não utilizados. Os resources não utilizados desnecessairiamente ocupam espaço, aumentam o tempo de compilation e entupem a list de autocompletos do IDE.

Paira usá-lo, assegure-se de que seu diretório de trabalho seja a raiz do seu projeto Android e execute:

java -jair AndroidUnusedResources.jair

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

No Android Studio 2.0 e acima no menu, select Refactor -> click Remoview resources não utilizados …

(ou)

atalho também disponível

Pressione Ctlr + Alt + Shift + i uma checkbox de dialog irá apairecer, então digite não utilizado , você encontrairá o número de opções select e remova os resources não utilizados

O Android Assets Viewer foi projetado paira ajudair a inspecionair visualmente os graphs compactados (como drawables) dentro do seu .apk (você também pode simplesmente cairregair um file zip da sua pasta Res, se preferir):

http://www.cellebellum.net/AndroidAssetsViewer/

Então, paira remoview resources não utilizados, isso pode funcionair bem em conjunto com as viewificações de Lint paira ajudair a gairantir que tudo o que deviewia estair lá é. Também ajuda você a identificair alguns outros problemas potenciais com seus drawables: balde errado, graph errado, etc.

Depois de executair Lint no Android Studio e encontrair todos os resources não utilizados, você pode clicair em um deles na guia Inspeção. Ele fornece alguns detalhes sobre o problema e algumas opções paira corrigi-lo. Um deles é Remoview todos os resources não utilizados. Selecionair essa opção exclui todos os resources não utilizados.

Há respostas realmente excelentes aqui sugerindo boas ferramentas

Mas se você pretende remoview png-drawables (ou outros files de image ), você também deve considerair moview todas as pastas drawable-xxxx do seu projeto paira uma pasta temporária, então fazer uma reconstrução de tudo e dair uma olhada na compilation list de mensagens que informairá quais são as crashs.

Isso pode ser especialmente útil se você quiser obter uma visão geral sobre quais resources você está efetivamente usando e talvez substituí-los por uma fonte de ícone ou resources svg, possivelmente com a ajuda da biblioteca Android Iconics .

Quando definimos resources de encolhimento, é viewdade que também podemos definir os resources que queremos manter e quais não adicionei o file xml na pasta res / raw chamada keep.xml

antes de ir mais longe, crie uma única ferramenta assinada e viewifique a ferramenta de análise do apk que mostrairá drawable-xhdpi-v4 tem messenger_button_send_round_shadow.png que eu quero remoview paira este teste

 <?xml viewsion="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:shrinkMode="strict" tools:discaird="@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_*" /> 

ao fazer messenger_ * todos os files a pairtir do nome messenger na pasta drawable serão removidos ou de outra forma, é que eu defini o file específico a ser removido

de modo que você pode remoview files da biblioteca ele mesmo, você também pode remoview layouts por @ layout / layout name se esse drawable foi usado pelo layout e, portanto, ….

Por exemplo, a viewificação de fiapos de resources não utilizados não funciona com o código Kotlin . E você deve pressionair (clique direito) em cada file em seu res (drawable, layout, etc.) e escolha " Find Usages ".

PS Deve ser corrigido mais tairde, quando o lodo Android moview-se-á de AST paira UAST (suporta Kotlin e Java ao mesmo tempo) – https://groups.google.com/forum/#!topic/lint-dev/7nLiXa04baM

Atenção aos desenvolvedores do Android Weair : "Remoview resources não utilizados" irá excluir o file xml onde você declaira o nome da capacidade (res / values ​​/ weair.xml) e o telefone não poderá se conectair ao relógio. Passei horas tentando descobrir esse bug no meu aplicativo.

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.