について学ぶためのいくつかの紹介リンクは、私は別のフォルダを模索し始めた、と同僚との問題を議論し、多くのフォルダを探求しようとした後、I最終的に大半のデータは以前のWebviewのキャッシュから取得されていました。私はすべての調査を掲載しています。うまくいけば助けになるでしょう。
たときにアプリが起動し、私は私の主な活動からanalyseStorage(this)
を呼び出して、次のコードを実行:
public void analyseStorage(Context context) {
long totalSize = 0;
File appBaseFolder = context.getFilesDir().getParentFile();
for (File f: appBaseFolder.listFiles()) {
if (f.isDirectory()) {
long dirSize = browseFiles(f);
totalSize += dirSize;
Log.d(STORAGE_TAG, f.getPath() + " uses " + dirSize + " bytes");
} else {
totalSize += f.length();
}
}
Log.d(STORAGE_TAG, "App uses " + totalSize + " total bytes");
}
private long browseFiles(File dir) {
long dirSize = 0;
for (File f: dir.listFiles()) {
dirSize += f.length();
//Log.d(STORAGE_TAG, dir.getAbsolutePath() + "/" + f.getName() + " weighs " + f.length());
if (f.isDirectory()) {
dirSize += browseFiles(f);
}
}
return dirSize;
}
重要なことは、具体的context.getFilesDir().getParentFile()
そのコードを実行した後、フォルダ/data/data/my.app.package/
に一致するをスキャンすることで、私は以下のログを持っていた:
D/storage﹕ /data/data/my.app.package/lib uses 0 bytes
D/storage﹕ /data/data/my.app.package/cache uses 3371773 bytes
D/storage﹕ /data/data/my.app.package/databases uses 483960 bytes
D/storage﹕ /data/data/my.app.package/shared_prefs uses 604 bytes
D/storage﹕ /data/data/my.app.package/app_webview uses 9139469 bytes
D/storage﹕ /data/data/my.app.package/files uses 7723 bytes
D/storage﹕ /data/data/my.app.package/app_ACRA-approved uses 0 bytes
D/storage﹕ /data/data/my.app.package/app_ACRA-unapproved uses 0 bytes
D/storage﹕ App uses 13003529 total bytes
私が見ることができるものは:
- キャッシュは、画像の読み込みのためにのみグライドによって使用される、SQLiteデータベースがとる3メガバイト
- をとる共有設定は600B
- を取る500KB
- 私が持っていたすべてのWebviewsのキャッシュは、まだ取り9メガバイト
files
や他のフォルダにあるファイルの残りの部分、主にバグ追跡のためにACRAで使用して取るさを10kB
最終的に、私は最終的に私のデータのほとんどがWebviewキャッシュに送られ、実際にはキャッシュとして明示的に保存されていないことを発見しました。私はこれらのファイルを削除し、実際には上記の数よりもさらに20 MBのサイズを縮小しました。私は今、自分のアプリのデータがどの程度の大きさであるかを知っています。
あなたのアプリのデフォルトのデータパスをadb @/data/...でチェックしますか? 参照: http://android.stackexchange。com/questions/47924/where-android-apps-store-data – James
@Jamesありがとうございました。これらの質問/回答は便利です。/data/ /ファイルと/ data/ /キャッシュは、私が既にチェックしたgetFilesDir()とgetCacheDir()によってそれぞれ検索されます。しかし、私は答えに記載されている他のディレクトリを調べるつもりです。 –
Vince