私は共有ライブラリを使用する小さなアプリケーションを開発しました。デバイスのヒープメモリでアンドロイドアプリケーションを実行すると、急速に増加しています。私はgc()を使ってそれを減らそうとしていますが、それは私の仕事ではありません。一度に、低メモリのようなメッセージを受け取っていない、バックグラウンドプロセスと私のアプリケーションを終了します。どうすればこの問題を解決できますか?アンドロイドでメモリリークを処理する
答えて
GCを使用するだけでなく、不要なオブジェクトへの参照も削除します.GCは参照されたオブジェクトを再利用しません。また、JNIライブラリが何をしているのか注意深く捉え、開始スレッドのメモリを割り当てた場合に必要な予防措置を講じます。あなたが使用しているかと言うとソース
実際には、ライブ壁紙アプリケーションです。その中で、ビデオファイルを壁紙として読み込んでいるので、jniコードでffmpegを使ってビデオファイルをコンパイルし、壁紙を描画するためにOpenGLを使用します。 – Satheesh
手動で参照を削除する必要がありますか?私は、実行が参照宣言スコープから移動してから参照が自動的に破棄されると考えています。 – sll
それは異なります。実行スコープはそれとは関係ありません。 onPause()の後のある時点で、アンドロイドフレームワークはあなたのアクティビティへの参照を落とし、ガベージコレクションのために利用可能にしました(アクティビティによって保持された参照は順番にドロップされます)...しかし、変数(一般的なエラーです。アクティビティはあらゆる場所で仮想的に必要なコンテキストなので)、すべてのリファレンスがまったくあなたの記憶を詰まらせて、まったく再生されません –
- 1. 動的にメモリリークを処理する
- 2. Android WeakReferenceがメモリリークを処理する
- 3. 反復処理によるメモリリークOpencvフレーム
- 4. PDFSharpはリソース(メモリリーク)を処理しない
- 5. 例外処理 - アンドロイド
- 6. アンドロイド:メモリリーク
- 7. クラスnewとdelete演算子でメモリリークを処理するC++
- 8. TorchでGPUのメモリリークの問題を処理する方法は?
- 9. アンドロイド - アンドロイドランタイムエラーを処理する方法
- 10. リアクションネイティブのバックグラウンドプロセス(アンドロイド)処理ですか?
- 11. アンドロイド:メモリリークsetImageURI
- 12. NSJSONSerializationのFoundationオブジェクトを処理中にメモリリークが発生する
- 13. アンドロイド処理バーの問題
- 14. アンドロイド、高速なビデオ処理
- 15. アンドロイドJSON結果処理
- 16. アンドロイドでヌル値を処理する方がいいですか?
- 17. アンドロイドでのハンドラとAsynctaskの処理
- 18. ビットマップ処理中にメモリリークが発生する
- 19. サブメニュー項目をアンドロイドで動的に処理する
- 20. アンドロイドで「トラブル処理BuildConfig.class」を修正するには?
- 21. アンドロイドで3MP以上の画像を処理する
- 22. ウェブアプリケーション+アンドロイドアプリ、アンドロイドでdb接続を処理する方法
- 23. アンドロイドでRファイルを繰り返し処理する
- 24. アンドロイドでランタイムアクセス許可を処理する最良の方法
- 25. アンドロイドでカスタムマーカーのクリックイベントコンポーネントを処理する方法
- 26. アンドロイドで進捗ダイアログを正しく処理する方法は?
- 27. アンドロイドで例外メモリ例外を処理する方法は?
- 28. Cプログラムでメモリリークを理解する
- 29. メモリリークのあるKentico 9がCPUを高くして処理する
- 30. ビットマップを処理しているときにメモリリークが発生する
を投稿するまで
より詳細な答えはposssibleないメモリー/リソースを割り当てる任意のループは、クラスの新しいインスタンスを作成し、そこにはありますか?そのようなループコードを表示してください – sll
実際には、ライブ壁紙のアプリケーションです。その中で、ビデオファイルを壁紙として読み込んでいるので、jniコードでffmpegを使ってビデオファイルをコンパイルし、壁紙を描画するためにOpenGLを使用します。 jniファイルでは、av_malloc関数を使用しています。 – Satheesh
周りにループがありますか? – sll