Introdução ao android-resource-remover
O android-resource-remover é uma ferramenta baseada na saída do Android Lint que automatiza a remoção de recursos não utilizados em aplicativos Android, ajudando a reduzir o tamanho do APK e manter o projeto organizado. Este guia detalha os parâmetros práticos e técnicas avançadas para uso eficiente.
Instalação via Pip
Para instalar a ferramenta, execute o seguinte comando no terminal:
pip install android-resource-remover
Após a instalação, o comando android-resource-remover estará disponível no sistema.
Uso Básico e Recomendações
Execute o comando no diretório raiz do projeto Android para iniciar a limpeza automática:
android-resource-remover
Devido a dependências entre recursos, é aconselhável rodar a ferramenta múltiplas vezes (por exemplo, 3 ou 4 vezes) para garantir a remoção completa de todos os recursos não utilizados, considerando que referências indiretas podem persistir após a primeira execução.
Parâmetros Principais e Configurações
A ferramenta oferece diversos parâmetros para personalizar o comportamento:
- --help: Exibe informações de ajuda detalhadas. Exemplo:
android-resource-remover --help - --lint: Especifica o caminho para o executável do Lint, caso não esteja no PATH. Exemplo:
android-resource-remover --lint "/caminho/para/android-sdk/tools/lint" - --app: Define o diretório do aplicativo Android quando o comando é executado fora da raiz do projeto. Exemplo:
android-resource-remover --app "/caminho/para/seu/app" - --xml: Utiliza um relatório XML existente do Lint (gerado, por exemplo, via Gradle) para direcionar a limpeza. Exemplo:
android-resource-remover --xml "build/outputs/relatorio-lint.xml" - --ignore-layouts: Ignora arquivos de layout durante a limpeza, mesmo que não estejam em uso. Útil para preservar layouts específicos.
Técnicas Avançadas e Integração
Para projetos baseados em Gradle, integre a verificação do Lint com a limpeza de recursos em uma única etapa:
./gradlew clean build :lint && android-resource-remover --xml build/outputs/relatorio-lint.xml
Automatize o processo em pipelines de CI/CD com um script iterativo para garantir limpeza robusta:
# Executa a ferramenta repetidamente para lidar com dependências complexas
for tentativa in {1..3}; do
android-resource-remover --xml build/outputs/relatorio-lint.xml
done
Resolução de Problemas Comuns
Se ocorrerem erros de compilação como referências a IDs de recursos não encontrados após a limpeza, verifique e remova manualmente as referências restantes no código-fonte. Para problemas de instalação da dependência lxml em sistemas como macOS, tente:
CFLAGS="-I/usr/local/opt/libxml2/include" pip install lxml
Ou instale as bibliotecas do sistema com brew install libxml2 libxslt.
Princípios de Funcionamento
A ferramenta analisa relatórios XML do Android Lint, focando em problemas como UnusedResources (recursos não utilizados) e ExtraTranslation (traduções desnecessárias). Com base nisso, ela pode excluir arquivos inteiros ou itens esppecíficos dentro de arquivos, como entradas em strings.xml.
Práticas Recomendadas
Para uma limpeza segura e eficaz:
- Realize um backup do projeto antes da primeira execução.
- Execute a ferramenta múltiplas vezes consecutivas para cobrir dependências transitórias.
- Versione as alterações usando um sistema de controle de versão para rastrear remoções.
- Inclua a limpeza de recursos em ciclos de desenvolvimento regulares, especialmente antes de lançamentos principais.