1

私はかなり前からこの問題に直面しています。AIDL経由でAndroidリモートサービスに接続するアプリケーションがあります。時々、サービスが同様のログで再起動されることがあります:-

04-11 23:52:35.225: E/dalvikvm-gc(21682): Could not mmap 3723264-byte ashmem region     'dalvik-mark-stack'
04-11 23:52:35.225: E/dalvikvm-heap(21682): dvmHeapBeginMarkStep failed; aborting
04-11 23:52:35.225: E/dalvikvm(21682): VM aborting
04-11 23:54:53.535: I/dalvikvm(21682): threadid=4: reacting to signal 3

誰かがここでいくつかの洞察を与えることができますか?Prima-facie、メモリ不足に関連する問題の可能性がありますか?

4

2 に答える 2

0

おそらく、プログラムでメモリ リークが発生していると思います。特にメディアプレーヤー、Web 接続などのリソースを使い終わったら、必ずすべてのリソースを解放する必要があります。

Android は、不要になったと判断したサービスを自動的に停止します。システムがサービスやプロセスをシャットダウンしないようにするには、使用しているデバイスのメモリ容量を制限しないようにする必要があります。これを AVM で実行している場合は、デバイスがより多くのメモリを持つように設定を変更してみます。仮想デバイスのメモリを増やしてもプログラムに問題がない場合は、どのリソースをいつ解放できるかを詳しく調べる必要があります。

于 2012-04-11T19:29:12.787 に答える
0

はい..メモリの問題に関連しています.Ashmemは、メモリの負荷が高くなったときにその内容の一部またはすべてを破棄できる共有メモリメカニズムです..多くのリソースを使用していると思います..それらを解放していません..

于 2012-04-11T18:56:20.373 に答える