問題タブ [eclipse-memory-analyzer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android:「mGlow」がメモリリークを引き起こす原因不明の「ビットマップ」?
これがバグなのか、心配する必要があるのか どうかはわかりません。私は Eclipse MAT プラグイン (Memory Analyzer Tool) にかなり慣れていませんが、 Leak Suspect Reportを実行すると、次のようになります。
さらに見ると、これは私が見ているものです:
現在、私のアプリでは、オブジェクトに OpenGL テクスチャとして適用する約 8 つのビットマップをロードしています。これが完了したら、すべてのビットマップで.recycle()を呼び出し、それらをnullに設定します。これに加えて、スプラッシュスクリーンとして機能する View クラスがあります。このクラス内に、ロード、スケーリング、および表示される 1 つのビットマップがあります。それからまた、リサイクル。
しかし、これは本当に奇妙な部分です。問題をテストして追跡するために、プロジェクト全体のビットマップへのすべての参照を削除しました。すべての宣言、すべての作成、すべてのリサイクルの呼び出しなど...完全に削除されました。その後、未使用のインポートも削除しました。
もちろん、これにより私のアプリケーション (ゲーム) は空白の画面を表示するだけでまったく役に立たなくなりますが、リーク容疑者レポートを再度実行すると、この謎のビットマップがまだ存在しています!
生データを保存して、 Gimp グラフィック エディターで開いてみましたが、アルファ チャネルだけを含むやや「空白」の画像のように見えます。私が認識できるものは何もありません。
これはある種のバグですか、それとも実際の問題ですか? 犯人を追跡するのに役立つアドバイスをいただければ幸いです。
これは、Android 4.4.4 を実行している Google Nexus 10 タブレットで実行されています。
編集
mGlow が原因のようです。これが何であるかはわかりませんし、明示的に実装していません。多分バグ?これを無効にする方法はありますか?
android - Admob インタースティシャル広告使用時のメモリ リーク
特定の時点でアクティビティを表示するサービスがあります。そのアクティビティの後、13 回ごとに admob インタースティシャル広告を表示しています。インタースティシャル広告が表示されるとアプリケーションの RAM 使用量が 20MB 増加し、その後ガベージ コレクションが行われません。次の 13 回目に別のインタースティシャル広告が表示されると、サービス メモリは増加しません。
広告を表示するための私のコード:
次のスタック オーバーフローの質問でいくつかの解決策を試しましたが、何もうまくいきませんでした。
android - MAT レポートの文字列に表示される 16 進数の意味は何ですか?
eclipse Memory Analysis Tool ( MAT ) を使用して、Android デバイス上のプロセスのヒープ ダンプ プロファイルを取得しました。すべてのオブジェクトとともに、不可解な 16 進数が表示されます
例:
android.graphics.Bitmap @ 0x428e5c90
android.graphics.Bitmap @ 0x428f5888
android.graphics.Bitmap @ 0x42717950
android.graphics.Bitmap @ 0x426fed10
これらの番号が何であるかを知るのを手伝ってくれる人はいますか?また、それらが関連付けられているアイテムをより具体的に追跡するために使用できますか?
android - 静的リソースメンバー変数での Android メモリリーク?
private static Resources mRes;
次のように初期化された Utils クラスで静的参照を使用しても安全ですか?
私にはメモリリークが発生しているようです(以下のEclipse Memory Analyzerからのログ)
アクティビティ全体をリークしていない Resources クラスへの参照を取得する安全な方法はありますか?