6

WebView を使用して初歩的なブラウザーを作成しました。

Web サイト (いくつかのテキストといくつかの画像を含む) にアクセスすると、/data/data/com.mayexample/cache/webViewCacheChromium のキャッシュ ディレクトリが、index、data_0、data_1、data_2、f_00001、f_00002 などと呼ばれるいくつかのファイルでいっぱいになります。 .

これらのファイルの形式は何ですか、何が含まれているのでしょうか? 「だから、これらのファイルのいくつかはきっとウェブサイトの画像でなければならない」と思い、ファイルマネージャーで開いてみました(画像として開く)。しかし、どのファイルを選んでも、プロセスで「読み込みに失敗しました!」と表示されます。それらのいくつかの名前を .jpg に変更しても、何も開けません。私はこれが一部の人々のために働いたことをインターネットで読みました( Android WebView - Load Images from cacheを見てください、それはまさに私がやりたいことです)が、キャッシュのファイルでは何もできません。

webview キャッシュ ファイルを開く方法を知っていますか? たとえば、1 つのファイルが対応するキャッシュされた画像を表していませんか?

私が本当に達成したいのは(キャッシュファイルの構造を理解したら)、上記のリンクの作成者のように、キャッシュからWebビューの画像をプログラムで取得することです(残念ながら、この投稿の回答はあまり役に立ちません)

ありがとう!

4

2 に答える 2

1

キャッシュされたファイルは、CSS または JS/image/html タイプのいずれかである可能性があります。以前の Android リリースでは、1 つのキャッシュ ファイルが正確に 1 つの CSS または JS/image/html ファイルをマップします。


私の知る限り、ブラウザ エンジン (実際には HTTP モジュール) は、このようなキャッシュ ファイルを URL から HashKey への方法で維持します。したがって、見つかったもの (「4f42185de3a3a461_1」など) は、JS/CSS/images/HTML などの Web リソース ファイルに関連付けられている可能性があります。

以前の Android バージョンでは、このような URL から HashKey へのマッピング データを sqlite3 テーブルに格納するために WebView が使用されていたことを覚えています。

ここでの問題は、マッピング関係について何も知らないため、必要なファイルをほとんど取得できないことです。トリッキーな方法は、AOSP ソース コードを読むことです。そうすれば、一意の URL によって HashKey を生成する方法を知ることができます。また、Android 4.4 にまだ存在する場合は、sqlite3 テーブルを操作することもできます。

于 2014-11-26T12:22:03.810 に答える
0

Chrome デスクトップ ブラウザー用に設計されたこのツールを使用して、webViewCacheChromium フォルダー内のファイルを表示できました。

http://www.nirsoft.net/utils/chrome_cache_view.html

コンテンツは基本的に、Web キャッシュに期待されるもの (画像、javascript、css、html) です。

于 2013-01-24T15:17:52.423 に答える