Android resディレクトリから未使用のレイアウト、文字列、ドローアブル、色などをすべて削除したい。ファイルのリストを提供するツールはありますか?リポジトリから削除したり、使用されなくなった特定のファイル(たとえば、未使用の文字列エントリ)内の要素を削除したりできますか?
Android resディレクトリから未使用のレイアウト、文字列、ドローアブル、色などをすべて削除したい。ファイルのリストを提供するツールはありますか?リポジトリから削除したり、使用されなくなった特定のファイル(たとえば、未使用の文字列エントリ)内の要素を削除したりできますか?
回答:
Android Studioから未使用のリソースを簡単に検索できます。CtrlAltShifti「未使用のリソース」(引用符なし)を押して入力するだけです。それはlintを実行します。lintコマンド(およびその他のIDEからのもの)を実行する超簡単な方法。
または
Android Studioのメニュー > リファクタリング > 未使用のリソースを削除...
削除するリソースを選択します。リソースアイテムを右クリックすると、保持するリソースを除外できます。
Do Refactorを使用して、すべてのリソースを一度に削除します。
更新:⌘OptionShifti Macでの使用
ADT 16以降、Android Lintを使用できます。それは本当に素晴らしいツールです。
Android Lintは、ADT 16(およびTools 16)の新しいツールであり、Androidプロジェクトソースをスキャンして潜在的なバグを探します。
探すエラーの種類の例をいくつか次に示します。
- 欠落している翻訳(および未使用の翻訳)
- レイアウトのパフォーマンスの問題(以前のlayoutoptツールで検索に使用されていたすべての問題など)
- 未使用のリソース
- 一貫性のない配列サイズ(配列が複数の構成で定義されている場合)
- アクセシビリティと国際化の問題(ハードコードされた文字列、欠落しているcontentDescriptionなど)
- アイコンの問題(密度の欠落、アイコンの重複、サイズの誤りなど)
- 使いやすさの問題(テキストフィールドで入力タイプを指定しないなど)
- マニフェストエラーなど。
ただし、これにはいくつかの問題があり(それらがすでに修正されているかどうかわからない)、おそらく使用されていない数百のリソースを削除する場合は、リソースの削除中にプロジェクトを数回手動でコンパイルして、Lintがそうしないことを確認することをお勧めします必要なものを削除します。
Analyze > Inspect Code...
して、未使用の宣言やメソッドなど、さまざまなものを見つけることができます。
lint --check UnusedResources <project-path>
Extra Translations
まとめて/自動的に削除する方法はありますか?
EclipseでのADTのサポートが終了したため、Android Studioを使用する必要があります。
Android Studio 2.0以降で使用 Refactor > Remove Unused Resources...
Android向けのGradleビルドシステムは、「リソースの縮小」をサポートしています。つまり、ビルド時にパッケージ化されたアプリで使用されていないリソースを自動的に削除します。実行時に実際に必要ではないプロジェクト内のリソースを削除することに加えて、これは、アプリケーションで実際に必要とされない場合に依存しているライブラリからリソースを削除します。
これを有効にするには、gradleファイルにshrinkResources trueという行を追加します。
android {
...
buildTypes {
release {
minifyEnabled true //Important step
shrinkResources true
}
}
}
こちらの公式ドキュメントを確認してください。
http://tools.android.com/tech-docs/new-build-system/resource-shrinking
minifyEnabled true
lint出力に基づいて、androidプロジェクト内のすべての未使用リソースを削除するツールをオープンソースで提供しています。ここで見つけることができます:https : //github.com/KeepSafe/android-resource-remover
lintを実行するときに複数のフレーバーを使用している場合は注意してください。Lintは、選択したフレーバーによっては、未使用のリソースを誤って提供する場合があります。
Android Wear開発者への注意:「未使用リソースの削除」は、機能名(res / values / wear.xml)を宣言したxmlファイルを削除し、携帯電話は時計に接続できなくなります。私は自分のアプリでこのバグを理解するために何時間も費やしました。
string.xmlを確認します。
簡単です(少なくとも私のバージョンのEclipseでは)
Android版Eclipse(バージョンv22.6.2-1085508を使用)
strings.xmlを開くと、未使用の文字列が強調表示されています。
他の潜在的な問題を修正できます。
多分有用なAndround Unused Resourcesは、未使用のリソースについてプロジェクトをスキャンするJavaアプリケーションです。未使用のリソースは不必要にスペースを取り、ビルド時間を増やし、IDEのオートコンプリートリストを混乱させます。
これを使用するには、作業ディレクトリがAndroidプロジェクトのルートであることを確認し、次のコマンドを実行します。
java -jar AndroidUnusedResources.jar
縮小リソースをtrueに定義するときは、保持するリソースと保持しないリソースを定義することもできます。これらのファイルをkeep.xmlという名前のres / rawフォルダーに追加しました
単一の署名済みビルドをさらに生成する前に、drawable-xhdpi-v4にmessenger_button_send_round_shadow.pngがあることを示すapkアナライザーツールをチェックインして、このテストから削除します
<?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_*" />
messenger_ *を実行すると、ドローアブルフォルダー内の名前messengerから始まるすべてのファイルが削除されるか、または他の方法で削除する特定のファイルを定義します
ライブラリ自体からファイルを削除できるように、@ drawout / layoutの名前でレイアウトを削除することもできます(そのドロアブルがレイアウトなどで使用されている場合)。
良いツールを提案しているここには本当に素晴らしい答えがあります
ただし、png-drawable(または他の画像ファイル)を削除する場合は、すべてのdrawable-xxxxフォルダーをプロジェクトから一時フォルダーに移動してから、すべてを再ビルドして、ビルドを確認することも検討してください。不足しているメッセージを通知するメッセージリスト。
これは、効果的に使用しているリソースの概要を知り、おそらくAndroid Iconicsライブラリの助けを借りて、アイコンフォントまたはsvgリソースに置き換える場合に特に役立ちます。
Android Assets Viewerは、.apk内に(ドローアブルとして)パックされたグラフィックを視覚的に検査できるように設計されています(必要に応じて、resフォルダーのzipファイルをアップロードすることもできます)。
http://www.cellebellum.net/AndroidAssetsViewer/
したがって、未使用のリソースを削除する場合、これはLintチェックと連携して機能し、そこにあるはずのものがすべてあることを確認するのに役立ちます。また、ドローアブルに関する他のいくつかの潜在的な問題を特定するのにも役立ちます:間違ったバケット、間違ったグラフィックなど。