Galaxy Nexus で自分のアプリを使用しているユーザーに問題が発生しました。これはかなりグラフィカルに集中するゲームであり、基本的に、アクティビティからアクティビティに切り替えると、メモリが徐々に不足します。
これは (私が知る限り) ストック Android 4.0.2 を搭載した Galaxy Nexus です。LogCat からの抜粋:
D/.GameViewActivity( 3203): debug. =================================
D/.GameViewActivity( 3203): debug.heap native: allocated 6.01MB of 8.95MB (0.04MB free) in [.GameViewActivity]
D/.GameViewActivity( 3203): debug.memory: allocated: 54.00MB of 64.00MB (14.00MB free)
D/dalvikvm( 3203): GC_EXPLICIT freed 366K, 28% free 40426K/55623K, paused 4ms+4ms
D/dalvikvm( 3203): GC_EXPLICIT freed 1K, 28% free 40425K/55623K, paused 1ms+4ms
しばらくすると (数分)、次のようになります。
D/.MainActivity( 3203): debug. =================================
D/.MainActivity( 3203): debug.heap native: allocated 6.92MB of 11.36MB (0.18MB free) in [.MainActivity]
D/.MainActivity( 3203): debug.memory: allocated: 58.00MB of 64.00MB (1.00MB free)
D/dalvikvm( 3203): GC_EXPLICIT freed 297K, 4% free 58119K/60359K, paused 1ms+5ms
D/dalvikvm( 3203): GC_EXPLICIT freed 3K, 4% free 58116K/60359K, paused 1ms+5ms
I/WindowManager(17943): createSurface Window{41fadf88 .MainActivity paused=false}: DRAW NOW PENDING
D/OpenGLRenderer( 3203): Flushing caches (mode 0)
I/ActivityManager(17943): Displayed .MainActivity: +556ms (total +743ms)
D/dalvikvm(17943): GC_FOR_ALLOC freed 823K, 14% free 24118K/27911K, paused 86ms
D/.GameViewActivity( 3203): debug. =================================
D/.GameViewActivity( 3203): debug.heap native: allocated 6.95MB of 11.36MB (0.15MB free) in [.GameViewActivity]
D/.GameViewActivity( 3203): debug.memory: allocated: 58.00MB of 64.00MB (1.00MB free)
D/dalvikvm( 3203): GC_EXPLICIT freed 11K, 4% free 58488K/60359K, paused 2ms+5ms
D/dalvikvm( 3203): GC_EXPLICIT freed <1K, 4% free 58487K/60359K, paused 2ms+4ms
クラッシュとメモリ不足が続きます。
今では、Android の絶望的なメモリ管理システムに慣れてしまい、ゲームのクラッシュが避けられなくなりました (これは、Android ダッシュボードで最も報告されているエラーであり、アプリのメモリをどれほど厳密に削除してもかまいません)。 - グラフィックス + Android メモリ管理 = 強制終了)。私は Android コンポーネント + SurfaceView のみを使用していますが、カスタム グラフィックスで大幅にスキン/スタイルを設定しています。
ただし、これで私の注意を引く奇妙なことは、電話です。
さて、まず第一に、それはGalaxy Nexusであり、現時点で最も高度な携帯電話であり、アプリ用に最も利用可能なメモリを備えています. 世の中にあるすべての電話の中で、この電話にこの種の問題があるのは非常に奇妙です。
第二に、私はまったく同じ電話を持っており、これも 4.0.2 を実行しており、それを主要なテスト用電話として使用しています。私のユーザーは文字通り数分でゲームをクラッシュさせることができます。ゲームをプレイすると、何時間も実行でき、常に 20 ~ 25Mb のメモリが空きます。
第 3 に、このアプリは毎日何万台もの携帯電話で実行されているため、ユーザーが目にしているこの種の壊滅的なメモリ リークを引き起こす問題がアプリにないことは 100% 確信しています。
要するに、私は完全に完全に困惑しています。
何かご意見は?ここにいる誰かが前にこのようなものを見たことがありますか? 聞いたことのない Galaxy Nexus の既知の問題はありますか? ここで問題を特定するのに役立つ可能性がある、このユーザーに尋ねる可能性のある戦略/質問/テストはありますか?