【質問】Low Memory Killerについて

1,249 views
Skip to first unread message

ikippe

unread,
Jan 7, 2012, 5:46:42 AM1/7/12
to 日本Androidの会
こんばんは、ikippeと申します。

只今SDKとNDKを使用し、自作ゲームを作っています。
その自作ゲームを起動中にLow Memory Killer(以下LMK)が走り、
自作ゲームまで落とされてしまうという不具合が発生しています。

調べたところLMKが走る条件は「メモリの容量がある一定の値を下回ったとき」とのことでした。
そこでActivityManager.MemoryInfo#availMemメソッドで常時空き容量を確認しながら動かしていたのですが、
150MB近く余っているにもかかわらず、LMKが走っていました。
以下がその時のログになります。

<上省略>
01-07 19:34:19.311: INFO/ActivityManager(298): Process
jp.co.softbank.wispr.froyo (pid 805) has died.
01-07 19:34:19.311: WARN/ActivityManager(298): Scheduling restart of
crashed service jp.co.softbank.wispr.froyo/.WISPrService in 37462ms
01-07 19:34:19.311: INFO/ActivityManager(298): Low Memory: No more
background processes.
01-07 19:34:19.491: INFO/ActivityManager(298): Process
jp.co.sharp.android.PINcertify (pid 25439) has died.
01-07 19:34:19.491: WARN/ActivityManager(298): Scheduling restart of
crashed service jp.co.sharp.android.PINcertify/.PINcertify_Service in
65019ms
01-07 19:34:19.491: INFO/ActivityManager(298): Low Memory: No more
background processes.
01-07 19:34:19.771: INFO/ActivityManager(298): Process
jp.co.sharp.android.wallpaper3d (pid 401) has died.
01-07 19:34:19.771: WARN/ActivityManager(298): Scheduling restart of
crashed service jp.co.sharp.android.wallpaper3d/.ImageWallpaper3D in
74744ms
01-07 19:34:19.771: INFO/ActivityManager(298): Low Memory: No more
background processes.
01-07 19:34:19.771: INFO/WindowManager(298): WIN DEATH:
Window{30182240 jp.co.sharp.android.wallpaper3d.ImageWallpaper3D
paused=false}
01-07 19:34:19.771: WARN/WallpaperService(298): Wallpaper service
gone: ComponentInfo{jp.co.sharp.android.wallpaper3d/
jp.co.sharp.android.wallpaper3d.ImageWallpaper3D}
01-07 19:34:20.301: INFO/ActivityManager(298): Process
jp.co.omronsoft.iwnnime.ml (pid 403) has died.
01-07 19:34:20.301: WARN/ActivityManager(298): Scheduling restart of
crashed service
jp.co.omronsoft.iwnnime.ml/.standardcommon.IWnnLanguageSwitcher in
84211ms
01-07 19:34:20.301: INFO/ActivityManager(298): Low Memory: No more
background processes.
01-07 19:34:20.811: WARN/BluetoothHeadset(298): Proxy not attached to
service
01-07 19:34:20.811: INFO/ActivityManager(298): Process
com.android.phone (pid 411) has died.
01-07 19:34:20.811: WARN/ActivityManager(298): Scheduling restart of
crashed service com.android.stk/.StkAppService in 93702ms
01-07 19:34:20.831: WARN/ActivityManager(298): Scheduling restart of
crashed service com.android.phone/.BluetoothHeadsetService in 103702ms
01-07 19:34:20.851: INFO/ActivityManager(298): Start proc
com.android.phone for restart com.android.phone: pid=25799 uid=1001
gids={3002, 3001, 3003, 1015}
01-07 19:34:20.851: INFO/ActivityManager(298): Low Memory: No more
background processes.
01-07 19:34:20.931: INFO/WindowManager(298): WIN DEATH:
Window{30181cf0 【自作ゲームのパッケージ名】 paused=false}
01-07 19:34:20.931: INFO/ActivityManager(298): Process 【自作ゲームのパッケージ名】
(pid 25655) has died.
01-07 19:34:20.941: INFO/WindowManager(298): WIN DEATH:
Window{30218368 SurfaceView paused=false}
01-07 19:34:20.951: INFO/ActivityManager(298): Start proc
jp.co.sharp.android.home for activity
jp.co.sharp.android.home/.Launcher: pid=25805 uid=10045 gids={}
01-07 19:34:20.951: INFO/ActivityManager(298): Low Memory: No more
background processes.
01-07 19:34:21.011: INFO/UsageStats(298): Unexpected resume of
jp.co.sharp.android.home while already resumed in 【自作ゲームのパッケージ名】
01-07 19:34:21.021: INFO/ActivityManager(298): Start proc
jp.co.sharp.android.lifelog.database for broadcast
jp.co.sharp.android.lifelog.database/.receiver.LifeLogReceiver:
pid=25811 uid=10010 gids={3003, 1006, 1015, 3002, 3001}
01-07 19:34:21.311: INFO/ActivityThread(25799): Publishing provider
telephony: com.android.providers.telephony.TelephonyProvider
01-07 19:34:21.331: INFO/ActivityThread(25799): Publishing provider
sms: com.android.providers.telephony.SmsProvider
01-07 19:34:21.341: INFO/ActivityThread(25799): Publishing provider
mms-sms: com.android.providers.telephony.MmsSmsProvider
01-07 19:34:21.341: INFO/ActivityThread(25799): Publishing provider
telephony_ex:
jp.co.sharp.android.providers.telephony.TelephonyExProvider
01-07 19:34:21.351: INFO/ActivityThread(25799): Publishing provider
icc: com.android.phone.IccProvider
01-07 19:34:21.361: INFO/ActivityThread(25799): Publishing provider
mms: com.android.providers.telephony.MmsProvider
01-07 19:34:21.371: INFO/ActivityThread(25805): Publishing provider
jp.softbank.mb.launcher: jp.co.sharp.android.home.InfosignProvider
01-07 19:34:21.381: VERBOSE/ResourceUtils(25799): Enhancing Resources
is once.
01-07 19:34:21.391: INFO/ActivityThread(25805): Publishing provider
jp.co.sharp.android.home.settings:
jp.co.sharp.android.home.LauncherProvider
01-07 19:34:21.601: INFO/DATA(25799): [SERVICE_TYPE_DEFAULT] Service
enabled = true
<以下省略>

そこで質問なのですが、
1.「メモリの容量がある一定の値を下回ったとき」以外にLMKが走ることはあるのでしょうか?
2.走るとしたらなにが原因でどのようなときに走るのでしょうか?
分かる方いらっしゃいましたら、ご教授宜しくお願いします。

発生端末:Galapagos 003SH(OS:2.2.1)
見発生端末:LYNX SH-03C(OS:2.1-update), GalaxyS2(OS:2.3.4)
Reply all
Reply to author
Forward
0 new messages