28

リソース (主にドローアブル) が Java または XML ファイルで使用されているかどうかを調べる効率的な方法を探しています。

問題は、私の現在のプロジェクトではドローアブルが頻繁に変更され、今では使用されない可能性のあるドローアブルがいくつかあることです。

プロジェクト全体で各ファイル名を検索せずに、未使用のドローアブルを見つけるツール/方法はありますか?

4

3 に答える 3

31

この問題を解決するために、python ベースのツールを作成しました。ここは直接共有する場所ではないので、現在オフラインになっているプロジェクト ページを作成しました。

更新:
Lint は同じことができ、すでに Android SDK に含まれているため、開発は中止されました。

于 2010-09-27T11:18:30.293 に答える
18

私はちょうど楽しみのためにこのbashスクリプトを書きました:

PROJECT="/path/to/the/project"
for file in $(ls $PROJECT/res/drawable -l | awk '{ print $8}' | sed 's/\..\+//g'); do count=0; for SRCFILE in `find $PROJECT -name "*.xml" -print 2> /dev/null`; do let "count+=$(grep -c @drawable/$file $SRCFILE)"; done; for SRCFILE in `find $PROJECT -name "*.java" -print 2> /dev/null`; do let "count+=$(grep -c R.drawable.$file $SRCFILE)"; done; if [ $count -lt 1 ]; then echo -e "\e[0;31m$file\e[0m not used"; else echo -e "\e[0;32m$file\e[0m used"; fi; done; 

私はbashの初心者ですが、うまく機能しますので、大幅に改善することができます:

代替テキスト

ドローアブル リソースのみ ( @drawable/nameXML ファイルおよびR.drawable.nameJava ファイル) を検索します。

ところで、私はそれを知らず、私のプロジェクトでは使用されていませんでしたboxscorecalendarlogosもう 1 つの面白い事実は、ほとんどのユーザーが Linux を使用していないことです。


MacO の場合は次のようになります。

PROJECT="/path/to/the/project"
for file in $(ls -l $PROJECT/res/drawable | awk '{ print $9}' | sed 's/\..\+//g'); do count=0; for SRCFILE in `find $PROJECT -name "*.xml" -print 2> /dev/null`; do let "count+=$(grep -c @drawable/$file $SRCFILE)"; done; for SRCFILE in `find $PROJECT -name "*.java" -print 2> /dev/null`; do let "count+=$(grep -c R.drawable.$file $SRCFILE)"; done; if [ $count -lt 1 ]; then echo -e "$file not used"; else echo -e "$file used"; fi; done; 
于 2010-09-21T14:08:29.790 に答える
10

これを確認してください: http://code.google.com/p/android-unused-resources

UPDATE 14.12.2011:未使用のリソースやその他のリソースを可能な限りシンプルに見つけることができるようになりました。ADT 16 に更新し、Android Lintを使用します。本当に素晴らしいツールです。未使用のすべてのリソース (文字列だけでなく) などを見つけることができます。公式サイトから:

Here are some examples of the types of errors that it looks for:

- Missing translations (and unused translations)
- Layout performance problems (all the issues the old layoutopt tool used to find, and more)
- Unused resources
- Inconsistent array sizes (when arrays are defined in multiple configurations)
- Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
- Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
- Usability problems (like not specifying an input type on a text field)
- Manifest errors
and many more.
于 2011-09-05T15:58:56.810 に答える