私は小規模な Android ゲーム開発会社で働いていますが、現在問題が発生しています。Eclipse と Android SDK を使用して、かなり標準的な Windows 7 x64 マシンを実行しています。
自分のプログラムの LogCat 出力を読んでいて、なぜ自分のゲームが表示されないのか疑問に思っていました。私はすぐにすべてのヒープが成長しているのを見て、テクスチャが多すぎる/テクスチャが大きすぎるなどの可能性があると考えました。問題をテクスチャのロードに特定し、DDMS の使用を開始しましたが、ヒープが 19MB を超えないことに気付きました。いくつかのテクスチャを切り取り、もう一度ビルドして実行しようとしました。驚いたことに、ヒープは一貫して 6.6MB を超えて大きくなりませんでした。誰か提案はありますか?
tl;dr: ヒープが 19MB まで大きくなってから失敗したので、ヒープ内で 19MB 未満に保つためにメモリ消費量の多いテクスチャを取り出しましたが、ヒープは 6.6MB を超えて大きくなりません。
編集: 大きなテクスチャが取り出されたときの logcat 出力:
08-19 19:19:53.744: DEBUG/dalvikvm(4699): GC_FOR_MALLOC は 91 オブジェクト / 514016 バイトを 49 ミリ秒で解放しました 08-19 19:19:54.184: DEBUG/dalvikvm(4699): GC_FOR_MALLOC が 104 個のオブジェクトを解放/48ms で 494088 バイト 08-19 19:19:54.404: WARN/ActivityManager(59): 起動タイムアウトの期限が切れたため、ウェイク ロックが放棄されました! 08-19 19:19:54.764: DEBUG/dalvikvm(4699): GC_FOR_MALLOC は 85 オブジェクト / 384664 バイトを 49 ミリ秒で解放しました 08-19 19:19:54.935: WARN/ActivityManager(59): HistoryRecord{4612eec8 com.wickeyware.zombiearcher.android/.AndroidGame} のアクティビティ アイドル タイムアウト 08-19 19:19:55.234: DEBUG/dalvikvm(4699): GC_FOR_MALLOC は 47 ミリ秒で 104 オブジェクト / 504648 バイトを解放しました 08-19 19:19:55.875: DEBUG/dalvikvm(4699): GC_FOR_MALLOC は 55 ミリ秒で 85 オブジェクト / 505712 バイトを解放しました 08-19 19:19:56.905: DEBUG/dalvikvm(4699): GC_FOR_MALLOC は 104 オブジェクト / 522392 バイトを 50 ミリ秒で解放しました 08-19 19:19:57.535: DEBUG/dalvikvm(4699): GC_FOR_MALLOC は 56 オブジェクト / 388896 バイトを 50 ミリ秒で解放しました 08-19 19:19:57.695: INFO/WindowManager(59): WIN DEATH: ウィンドウ {4606a8a0 com.android.launcher/com.android.launcher2.Launcher 一時停止 = false} 08-19 19:19:57.705: INFO/ActivityManager(59): プロセス com.android.launcher (pid 4669) が停止しました。 08-19 19:19:57.825: INFO/ActivityManager(59): メモリ不足: バックグラウンド プロセスはもうありません。 08-19 19:19:57.865: INFO/dalvikvm(4699): dvmDdmHandleHpsgChunk(1のとき、何0、ヒープ0) 08-19 19:19:58.575: DEBUG/ddm-heap(4699): ヒープ GC 要求 08-19 19:19:58.685: DEBUG/dalvikvm(4699): GC_EXPLICIT は 106 ミリ秒で 48 オブジェクト / 313440 バイトを解放しました 08-19 19:20:01.015: INFO/ActivityManager(59): プロセス jp.co.omronsoft.openwnn (pid 4677) が停止しました。 08-19 19:20:01.095: WARN/ActivityManager(59): クラッシュしたサービス jp.co.omronsoft.openwnn/.OpenWnnJAJP の再起動を 5000ms でスケジューリング 08-19 19:20:01.106: INFO/ActivityManager(59): メモリ不足: バックグラウンド プロセスはもうありません。 08-19 19:20:03.105: INFO/ActivityManager(59): プロセス com.wickeyware.zombiearcher.android (pid 4699) が停止しました。 08-19 19:20:03.155: INFO/WindowManager(59): WIN DEATH: ウィンドウ {46138b68 SurfaceView 一時停止 = false} 08-19 19:20:03.275: INFO/WindowManager(59): WIN DEATH: ウィンドウ {4612d530 com.wickeyware.zombiearcher.android/com.wickeyware.zombiearcher.android.AndroidGame 一時停止 = false} 08-19 19:20:03.425: INFO/ActivityManager(59): アクティビティ com.android.launcher/com.android.launcher2.Launcher の proc com.android.launcher を開始します: pid=4710 uid=10025 gids={} 08-19 19:20:03.425: INFO/ActivityManager(59): メモリ不足: バックグラウンド プロセスはもうありません。 08-19 19:20:03.775: INFO/UsageStats(59): com.wickeyware.zombiearcher.android で既に再開されている間に、com.android.launcher の予期しない再開 08-19 19:20:03.904: INFO/ActivityThread(4710): 公開プロバイダー com.android.launcher2.settings: com.android.launcher2.LauncherProvider 08-19 19:20:04.005: DEBUG/dalvikvm(4710): GC_EXTERNAL_ALLOC は 985 オブジェクト / 73440 バイトを 58 ミリ秒で解放しました 08-19 19:20:04.465: 警告/InputManagerService(59): pid 4699 uid 10036 に setActive(false) 通知を送信する RemoteException を取得しました 08-19 19:20:04.984: INFO/ActivityManager(59): 表示されたアクティビティ com.android.launcher/com.android.launcher2.Launcher: 1703 ms (合計 20584 ms) 08-19 19:20:06.124: INFO/ActivityManager(59): サービス jp.co.omronsoft.openwnn/.OpenWnnJAJP の proc jp.co.omronsoft.openwnn を開始: pid=4718 uid=10023 gids={}