私はSamsung Galaxy S4(Android 5.0.1)を持っています。 WebViewで2つのアプリケーションをテストしました。WebViewのガベージコレクタは、Androidアプリケーションを閉じることができますか?
1)地理的地図の1つにマークと線(パス)が使用されています。 10-20のシフトとズームをした後、OutOfMemoryで破砕した。
2)2番目の会社のサイトは、コルドバに統合されて使用されています。 20〜60ページの読み込みが終わると、OutOfMemoryで破棄されます。 私はメモリ割り当てを見ると、それは鋸のように振る舞います。ある制限まで増加した後に解放され、再び増加します。 2-4のピーク後、それは粉砕する。
他のデバイスでは、これらのクラッシュは再現されません。同じことがPlayMarketの返信にあります。
私はhttp://www.dwmkerr.com/fixing-memory-leaks-in-angularjs-applications/を含む多くの記事を読んでいます。アプリケーションはAngular JSを使用します。 ChromeとFirefoxの開発者コンソールでテストしたところ、最大12Mbのピーク後にブラウザのガベージコレクタが起動したことがわかりました。
これらの質問があります。
1)WebViewには独自のガベージコレクタがありますか(Javascript GCと思いますか?)
2)WebViewが単なるビューである場合、なぜそれが破壊されないのですが、アプリケーション全体がクラッシュするのですか?
3)Android GCがWebView(多分Chromium GC)に影響し、WebViewがAndroid GCにメモリを解放するように指示する方法を教えてください。
GCに関する回答については、http://stackoverflow.com/a/16530168を参照してください。 AndroidアプリでCrossWalkを使用して、すべてのAndroid搭載端末で同じWebviewを使用することができます(CrossWalkのバージョンによっては、一部のAndroidバージョンは互換性がありません)。 – user276648
@ user276648、ありがとう、私もそれを見て、次にクロスウォークをセットアップしようとしましたが(しかしcouldnot、それはapkにいくらかの重みを加えます)。おそらくこの記事(https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/)は面白いかもしれません。そうしたやり方でいくつかの研究を行った。 – CoolMind
私が理解したように、問題は解決されました。開発者は旧バージョンのCordovaをアップグレードしました。 – CoolMind