https://github.com/keepsafe/android-resource-remover
A simple utility to remove unused resources in your Android app to lower the size of the APK. It's based on the Android lint tool output.
https://github.com/keepsafe/android-resource-remover
Last synced: about 1 year ago
JSON representation
A simple utility to remove unused resources in your Android app to lower the size of the APK. It's based on the Android lint tool output.
- Host: GitHub
- URL: https://github.com/keepsafe/android-resource-remover
- Owner: KeepSafe
- License: apache-2.0
- Created: 2014-02-13T18:55:12.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2022-07-06T19:50:41.000Z (almost 4 years ago)
- Last Synced: 2025-05-15T14:08:13.703Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 101 KB
- Stars: 1,285
- Watchers: 62
- Forks: 161
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/KeepSafe/android-resource-remover)

android-resource-remover
========================
android-resource-remover is utility that removes unused resources reported by [Android Lint](http://developer.android.com/tools/help/lint.html) from your project. The goal is to reduce your APK size and keep the app clean from unused stuff.
## Getting started
Requirements:
* Python >= 2.7.*
* ADT >= 16
To install run:
pip install android-resource-remover
## Usage - general
Open the directory where your app is located and run
```
android-resource-remover
```
Android resources have dependencies to each other. This means that after running resource-remover the first time, it will clean up unused resources file that hold a reference to other resources. You can run this resource remover multiple times until there is no more unused resources to be removed. We've been running it up to 4 times in a row.
### Use with gradle
`android-resource-remover` is build on top of android lint. If you have a gradle project you have to run lint within your gradle build scripts and then use the `lint-result.xml` as the input file for `android-resource-remover`
e.g.
./gradlew clean build :lint && android-resource-remover --xml build/outputs/lint-results.xml
### Options
#### --help
Prints help message.
#### --lint
Full path to the lint tool like: `d:\Dev\Android SDK\tools\lint`
This will be executed as the lint command. If not provided it assumes the lint command in available and runs: `lint`
#### --app
Full path to the android app like: `d:\Dev\My_Android_App`
If not provided it assumes the current directory is the app's root directory.
#### --xml
Use existing lint result. If provided lint won't be run.
#### --ignore-layouts
Ignore layout directory
## Expected behavior
### Resource ID in code not found
If you have references to elements in an old layout that you're not using anymore, you will get a compile error that the ID (`R.id.`) can not be found. The reason is that the resource file that contained `R.id.` has been removed as it was not used any more. Time to clean up your code.
## FAQ
**Q: installing dependency lxml failed** with `clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]`
*A: [http://stackoverflow.com/a/22322645](http://stackoverflow.com/a/22322645)*
**Q: installing dependency lxml failed** with `fatal error: 'libxml/xmlversion.h' file not found`
*A: There are several ways to fix this listed on stackoverflow [http://stackoverflow.com/questions/19548011/cannot-install-lxml-on-mac-os-x-10-9](http://stackoverflow.com/questions/19548011/cannot-install-lxml-on-mac-os-x-10-9)*
## Issues and PR
When opening an issue please include as much info as possible. pip.log, python varsion/info, os version/info might all be help us understanding what's the problem.
In PR please keep the formatting.
## Licence
Apache version 2.0