質問に答えるには:
ワイプキャッシュを使用する必要がある理由は、システムapkを含むすべてのapkにdexファイルが添付されているためです。ROMを初めて起動すると、AndroidのDalvikがそれらのapkを1つずつ調べて抽出します。そこからdexファイルを取得してキャッシュに/data/dalvik-cache
配置することで、アプリ自体の実行を高速化します。
ほとんどのROMがあるのAPK持っODEX「編を、キャッシュは外部ファイルとしてAPK自体にバンドルされています。
多くのカスタムROMモデラーは、これらのapkをdeodex 'dします。つまり、dexファイルは、apkをテーマ化/変更しやすくするために置き換えられ、再パッケージ化されます。
カスタムROMをフラッシュし、キャッシュを消去しなかった場合、新しいカスタムROMのapkには異なるdexファイルが添付され、Dalvikがそれらを通過すると、ディレクトリにある既存のキャッシュされたdexファイルが表示されます。それをスキップし、アプリを実行すると、強制終了またはANR(アプリケーションが応答しません)が保証されます。
ClockWorkMod Recoveryを使用し、Wipe Dataが選択されている場合、データ自体は失われません。はい、アプリに関連するすべての設定がきれいに消去され/data/app
ます-を見てください。
したがって、キャッシュをワイプすることはできますが、データをワイプすることはできません。効果的に行われることは、設定が保持されている新しいapkに挿入されます。これはCyanogenModナイトリーでは非常に一般的なシナリオで、不安定な/テスト用のROMビルドがフラッシュされ、キャッシュワイプで設定が保持されます。走行距離は、市場からダウンロードされたアプリによって異なります(設定はバージョンバンプによって変更される可能性が高い)。
最良の結果を得るためには、両方を実行するのが賢明だろうデータを消去し、キャッシュを拭き、アプリ自体の中で整合性なしプログラムエラーを確実にするために。
はい、起動時間は遅くなりますが、最初の1回オフの瞬間になります。その後、起動が速くなります。簡単に言えば、CWMを介してキャッシュ自体を明示的に消去することで、実際にキャッシュを高速化し、変更される可能性のある以前のバージョンの残留物がないことを確認できます新しいROMをフラッシュするときに、Androidが起動時にキャッシュ自体の無効化を実行しないのを見ました。)
ソースのルークを真剣に使用してください!:D
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
各apkランタイムの起動コードです。dalvik
apk内のバイトコードをネイティブCPU命令セットに解釈する特定のチップセット命令を含むディレクトリツリーにあるネイティブCコードと対話します。ARMv6は、ハッキングされたARMv5(Eclair以前の古いAndroidバージョンの元のチップセットでした)のほとんどであるため、GoogleのAOSPソースにARMv6は表示されません。CyanogenModのソースにはそのARMv6が含まれます。