アプリのサイズをできる限り小さくするには、リリースビルドで圧縮を有効にして、使用されていないコードとリソースを削除する必要があります。圧縮を有効にすると、アプリのクラスとメンバーの名前を短くする難読化と、より積極的な戦略を適用してアプリのサイズをさらに小さくする最適化によるメリットも得られます。プロジェクトのコンパイル時タスクを実行する方法と、それらのタスクをカスタマイズする方法について説明します。使用してコンパイル時のコード最適化を実行することがなくなりました。コンパイラと連携して以下のコンパイル時タスクを実行します。参照制限を回避するための有用なツールです)。コードを特定し、アプリからそのコードだけを削除できます。詳しくは、コードの圧縮をご覧ください。パッケージ化アプリから使用されていないリソース(アプリのライブラリ依存関係で使用されていないリソースなど)を削除します。リソースの圧縮はコードの圧縮と連携して機能するため、使用されていないコードが削除されると、参照されなくなったリソースも安全に削除することができます。詳しくは、リソースの圧縮をご覧ください。ファイルのサイズを小さくします。詳しくは、コードの難読化をご覧ください。ファイルのサイズをさらに小さくします。分岐のコードを削除します。詳しくは、コードの最適化をご覧ください。デフォルトで、上記のコンパイル時タスクを自動的に実行します。動作をカスタマイズしたりできます。デフォルトのコンパイラになります。コードの最適化はデフォルトでは有効になりません。これは、こうしたコンパイル時の最適化によってプロジェクトのビルド時間が長くなり、保持するコードのカスタマイズが十分でない場合にはバグが発生する可能性があるためです。ファイルに以下を含めます。ポイントとして機能するクラスなど)を正確に把握したりできます。)によって自動的に生成されるものや、アプリのライブラリ依存関係から継承されるものもあります。ルールファイルのソースについて説明します。ファイルを作成します。デフォルトでは、このファイルはルールを適用しません。ルールをこのファイルに含めます。プラグインによって生成されます。プロジェクトにとって有用なルールが記載されます。ファイルに追加されます。使用することをおすすめします。よって自動的に適用されます。ルールが必要な場合(つまり、ライブラリのデベロッパーによってトラブルシューティングの手順が行われている場合)に便利です。ライブラリの依存関係に含まれている特定のルールは削除できず、アプリの他の部分のコンパイルに影響する可能性があることに注意する必要があります。コードの最適化を無効にするルールがライブラリに含まれている場合、そのルールによってプロジェクト全体の最適化が無効化されます。ルールが含まれています。作成して独自のルールを追加します。コンパイル時にその設定を適用します。トラブルシューティングの際にはこの点に注意してください。ファイルに以下を追加します。ファイルが作成され、独自のルールを追加できます。プロパティにルールを追加します)。バリアントに固有のルールを追加できます。フレーバーに追加しています。ルールがすべて使用されます。よるコードの圧縮がデフォルトで有効になります。実行の際に不要と判断したコードを削除するプロセスです。アプリに多数のライブラリ依存関係が含まれているものの、その機能のごく一部しか使用されていない場合、このプロセスによってアプリのサイズを大幅に縮小できます。ポイントをすべて特定します。プラットフォームがアプリのアクティビティやサービスを開始するために使用する可能性があるクラスがすべて含まれています。ポイントからアプリのコードを検査し、アプリが実行時にアクセスする可能性があるすべてのメソッド、メンバー変数、その他のクラスのグラフを作成します。このグラフに接続されないコードは到達不能とみなされ、アプリから削除される可能性があります。ライブラリの依存関係を持つアプリを示しています。ポイントから到達可能かどうかを確認します。ルールに基づいてグラフを作成し、到達不能なコードを特定します。ポイントを特定します。ポイントとみなします。ルールを自動的に生成します。ルールを使用してこのデフォルトの動作をカスタマイズする必要がある場合は、保持するコードのカスタマイズをご覧ください。アプリのリソースのサイズを小さくすることにのみ関心がある場合は、リソースの圧縮にお進みください。optimize.txt)で十分です。正確に分析することが困難な場合もあり、アプリが実際に必要とするコードが削除されてしまうこともあります。誤ってコードを削除する可能性があります。Interface(JNI)からメソッドを呼び出す場合アプリが実行時にコードを検索する場合(リフレクションの使用時など)アプリのテストでは、不適切に削除されたコードが原因で発生したエラーを明らかにする必要があります。削除されたコードのレポートを生成することで、どのコードが削除されたかを調べることもできます。