Mac で Android Studio の SDK とエミュレータの容量を整理する
Android Studio の使用容量には、エディタ以外のデータも含まれます。SDK パッケージ、Android システムイメージ、仮想デバイスは用途も復元にかかる手間も異なります。まず大きな保存先を特定し、Android Studio から不要なパッケージかデバイスを一つ削除して確認します。
SDK と仮想デバイスの場所を確認する
Google の SDK Manager の手順に従って Tools › SDK Manager を開き、Android SDK Location を控えます。下記と違う場合は画面の場所を優先します。Android Studio の操作名は英語表示に合わせています。
Google のエミュレータのディレクトリ解説では、共有システムイメージとデバイスの書き込み用データを区別しています。次は一般的な保存先であり、親フォルダを削除する指示ではありません。
~/Library/Android/sdk
~/Library/Android/sdk/system-images
~/.android/avd
| 保存データ | 内容 | 最初にすること |
|---|---|---|
| SDK プラットフォームとツール | Android アプリのビルド用パッケージ | SDK Manager でインストール済み項目を確認 |
| システムイメージ | エミュレータが使う Android のバージョンと種類 | 必要としている仮想デバイスを確認 |
| AVD データ | テストアプリ、設定、書き込み可能なストレージ | Device Manager で対象を確認 |
| スナップショット | 保存されたエミュレータの状態 | 不要になった状態だけ削除 |
フォルダサイズは調査の順番を決める材料で、削除可能容量ではありません。保存先を変更している場合はその場所を調べ、存在しない標準フォルダを作らないでください。
不要な SDK パッケージを削除する
SDK Manager の SDK Platforms を確認し、Show Package Details でプラットフォームとシステムイメージを区別します。Google のパッケージ解説を参考に、現在のプロジェクトやテスト対象に必要なものは残します。
- 削除するプラットフォームかイメージの API レベルと種類を控えます。
- その項目だけチェックを外して Apply を選びます。
- 確定前に削除一覧を読み、他のツールは選択したままにします。
- 継続中のプロジェクトをビルドし、残した仮想デバイスを起動します。
削除したプラットフォームが必要なら、SDK Manager でそのパッケージを再インストールします。配布元に残っていてダウンロードできることが条件です。古いイメージ一つのために SDK 全体を消さないでください。
データの初期化とデバイス削除を使い分ける
Google の Device Manager ガイドにある View › Tool Windows › Device Manager をプロジェクトから開きます。デバイスの Show on Disk で実際のファイルを確認し、変更前に Stop で停止します。
デバイスを残してユーザーデータを初期化するなら Wipe Data、デバイス自体が不要なら Delete です。テストデータや不具合の再現資料を先に書き出します。デバイスを作り直しても元の状態は戻りません。
共有イメージを SDK Manager で削除する操作とは別です。残したデバイスを確認してからイメージの要否を判断します。新しいデバイスは消したデバイスのバックアップにはなりません。
デバイスを消さずにスナップショットを整理する
Google のスナップショット解説によると、OS 設定、アプリの状態、ユーザーデータが保存されます。エミュレータのスナップショット画面で不要なものを選び、削除ボタンを使います。デバッグに必要な名前付きの状態は残します。
Quick Boot は標準で起動状態を保存します。削除後はコールドブートになり、後で新しいスナップショットが作られることがあります。不具合を再現する状態は、別のスナップショットが再生成できても捨ててよいデータではありません。
保存状態から起動できない場合は、Device Manager の Cold Boot を先に試します。スナップショットを読み込まずに起動する操作で、最初からユーザーデータを初期化せずに済みます。
次を消す前に結果を確認する
同じ SDK と AVD の保存先を再確認し、対象のパッケージやデバイスが消えたか確かめます。残したプロジェクトとデバイスを動かしてから次に進みます。容量が変わらない場合は、表に戻って別の保存先が大きくないか調べます。
SDK Manager の削除やデバイス初期化は、Mac のゴミ箱から戻せるとは限りません。失えないデータは独立したコピーを残します。手動で移動した場合は、Apple のアプリ削除の説明にあるとおり、完全削除までゴミ箱の内容は容量を使うため、確認中はそのまま残します。
Gradle は開発用キャッシュの整理で別に扱います。Apple のツールチェーンは Xcode のストレージガイドを参照し、Android のパスを流用しないでください。
Mole の役割
Mole Mac のクリーンでは、対象となる Android データを開発ツールにまとめます。Androidエミュレータのクイックブートスナップショットは自動保存の snapshots/default_boot が対象で、名前付きスナップショットは含みません。未使用のAndroidシステムイメージは既知の AVD から参照されないイメージを未選択で表示し、参照情報が不完全なら候補に出しません。
削除直前にエミュレータの稼働状況を再確認し、使用中または停止を確認できない場合は対象を削除しません。システムイメージの参照も再確認します。未選択は確認を求める状態で、選択後のデータ保持を保証しません。Android Studio のアンインストールガイドでは SDK と署名鍵を残してエディタを削除する方法を説明しています。
よくある質問
Wipe Data はシステムイメージも消しますか?
選択したデバイスのユーザーデータを初期化します。共有イメージは SDK Manager で別に管理し、残りのデバイスを確認してから削除します。
AVD フォルダ全体を消してもよいですか?
必要なテストデータを保存してから Device Manager で個別に削除します。親フォルダの一括削除は確認しにくく、以前の状態に戻せる保証もありません。
使用容量がまた増えるのはなぜですか?
Quick Boot が新しいスナップショットを保存し、テスト中のアプリもデータを書き込みます。増えた保存先を確認してから整理してください。繰り返す初期化は調査中の状態も失わせます。