ブラウザの対応を確認中…
端末の容量を食っているものを突き止める — USB ケーブル経由で、クリーナーアプリではなく adb の権限で。
このページのサイズはすべて端末が測定し、USB ケーブル経由で読み取ったものです。ファイル・ファイル名・一覧のいずれもアップロードされません。
ブラウザの対応を確認中…
Android 端末を USB で Chromium 系ブラウザにつなぐと、このページが容量の行き先を測ります。dumpsys diskstats からボリューム全体の内訳(アプリ、アプリのデータ、キャッシュ、写真、動画、音声、ダウンロード、システム)を読み、アプリ別サイズを pm list packages と突き合わせて各行がシステムアプリか自分で入れたアプリかを示し、/sdcard に du を走らせて squarified ツリーマップとして描画し、掘り下げられるようにします。さらに 4 つの独立したスキャン: 大きなファイル、Downloads に残った APK、空のフォルダ、そして溜め込んだスクリーンショットが何ギガあるか。端末には何もインストールせず、アップロードもしません。サイズは端末が測り、ケーブル経由で読み取るだけです。
これは便利さの話ではなく権限の話で、Play ストアのストレージクリーナーが静かに機能しなくなった理由でもあります。*他の*アプリのキャッシュを消すのに必要な CLEAR_APP_CACHE は Android 6 以降 privileged 扱いなので、インストールされたアプリがあなたのキャッシュを解放することはもうできません。scoped storage のせいで /sdcard/Android/data を一覧できず、そこはまさにアンインストールしたアプリが残骸を置いていく場所なので、SD Maid で有名だった取り残されたデータのスキャンは 2026 年のアプリには実行不可能です。プリインストールされたアプリを third-party アプリが消すこともできません。adb shell は shell ユーザーとして動き、そうした制限がありません。フレームワーク自身の集計を読み、共有ストレージを歩き、見つけたものに手を出せます。ブラウザは UI にすぎず、権限は ADB から来ています。
dumpsys diskstats には出所の違う 2 つの半分があり、このページはそれを混ぜません。総容量と空き容量はその場での StatFs 呼び出しです。分類サイズとアプリ別サイズは diskstats_cache.json 由来で、Android が書き換えるのは 1 日 1 回程度。だから書き換えたばかり・再起動したばかりの端末にはその半分がまだ存在せず、どの端末でも最大 1 日古い値です。したがって両者はぴったり合いません。使用領域が分類の合計を上回るときはその差を独立したラベル付きの帯として示し、分類がボリュームの使用量を上回るときは注記として示します。棒グラフを整えるためのスケール調整・クランプ・こっそり丸めは一切しません。残りも同じ方針です。権限エラーに当たった du はそのエラーを報告し、配列の長さが合わなかったアプリ別セクションはもっともらしい表ではなく説明を出し、突き合わせ対象のパッケージ一覧が不完全なら取り残されたデータのスキャンは一覧そのものを出しません。
消すことは測ることとは別種の操作で、そのように作ってあります。削除はスキャナーが見つけたパスにしか作用しません。パスを手で打ち込む欄はなく、作ることもできません — rm を許可する内部の値は、スキャン出力を解析する最中にしか生成できないからです。削除のたびにまず正確な一覧を 2 回表示し、実行の直前にすべてのパスを端末で読み直します。スキャン後にサイズやタイムスタンプが 1 件でも動いていれば、一部だけ実行するのではなく全体を中止します。そのうえで 1 パスにつき 1 コマンドで消すので、結果はファイル単位で報告されます — 削除した、端末自身の言葉で拒否された、既になかった。40 ファイルに 1 つの結果しか返さないバッチでは、どれが残ったのか分からないからです。Android にゴミ箱はなく ADB に復元もないので、消えたものは戻りません。復元センターはこのブラウザが消したものを一覧にし、これらの操作には戻す手段がないことをはっきり書きます。
逆方向から: Web ADB Toolkit のハブには端末ダッシュボードと他のツールがあり、APK Analyzer ではインストールを決める前に APK の権限とサイズを確認できます。
Android が権限を取り上げたからです。他のアプリのキャッシュ削除には `CLEAR_APP_CACHE` が必要で、これは privileged 権限であり通常のアプリには付与されません。アンインストールしたアプリがデータを残す `/sdcard/Android/data` の一覧は scoped storage が阻みます。プリインストールアプリの削除は third-party アプリには完全に不可能です。`adb shell` にはそうした制限がありません。だからインストールではなくケーブルで動くのです。
いいえ、実機では一致しません。空き容量はその場の実測値で、分類とアプリ別サイズは Android が 1 日 1 回程度書き換えるキャッシュ由来です。このページはその差を独立した帯として(キャッシュ側がボリュームの使用量を上回る場合は注記として)表示し、辻褄を合わせるための縮尺調整はしません。書き換えたばかりの端末にはキャッシュ側が存在せず、空の棒を描くのではなくそう明記します。
試して、結果をそのまま伝えます。`adb shell` がそのディレクトリを一覧できるかは Android のバージョンとメーカーで異なるので、3 つの領域それぞれについて「一覧できた」「一覧できたが空」「一覧できなかった」を報告します。読めたが空だった場合は「掃除するものなし」ではなくフラグを立てます。Android 11 以降では、外から見た制限がまさにその形になるからです。
勝手に走るものはありません。スキャンも、まして削除も同じです。`du` の走査と 4 つの `find` スキャンはボタンを押したときに走ります。数万ファイルを歩く処理で、端末のバッテリーと反応速度を消費するからです。チェックを入れてもリストが増えるだけで、何も送信されません。削除には別のボタン、全パスの正確な一覧、明示的な同意のチェック、2 秒の待ち時間、そして実行直前の再読み取り(スキャン後に何か動いていれば全体を中止)が必要です。ワンタップで走る唯一の操作は `pm trim-caches` で、これは Android が既に捨ててよいと判断しているキャッシュの解放依頼です。アプリのデータには触れず、失うものはありません。
デスクトップの Chrome か Edge です。WebUSB が Chromium 専用のため、Firefox と Safari は USB デバイスを開けません。端末側は開発者向けオプションで USB デバッグを有効にする必要があり、Windows では ADB インターフェースに Zadig で WinUSB ドライバーを入れる作業がほぼ必須です(接続に失敗した場合は手順を案内します)。macOS・Linux・ChromeOS はドライバー不要です。
使えます。canvas が唯一の表現になることはありません。同じ `du` のデータはフォルダごとにボタンを持つ本物のテーブルにもなっていて、すべての矩形が Tab で到達でき、スクリーンリーダーで読めます。パンくずもボタンの並びです。狭い画面ではツリーマップのセルが小さすぎて押せないため、既定でリスト表示になり、その大きさを下回るセルが何個あるかも数えて表示します。
端末ダッシュボードと、その他の ADB ツール。
インストール前に APK の権限とサイズを確認できます。