質問: メモリ解放アプリを、作成している所なのですが、 iOS側のプロセス一覧を取得する事ができず。 バックグラウンド起動しているアプリを取得してkillする事も出来ません。 mallocで、大容量を確保し解放することでメモリ解放アプリは出来ているのでしょうか。 調査しても見つけることが出来ない状態のため、御教授願えませんでしょうか。
回答: 自プロセス以外のアプリをkillすることは、通常アプリでは不可能となります。 自プロセスが大量のメモリを確保し全体のメモリを圧迫することによりlauncherdによるkillが走るので、その後すぐに開放すれば一応メモリ解放アプリと言えなくもありません。 その際はlaunchdやSpringBoardにより以下のようなログが出るはずです。 com.apple.launchd[1] (UIKitApplication:com.example.MyApp[0x1234][123]) : (UIKitApplication:com.example.MyApp[0x1234]) Exited: Killed SpringBoard[30] : Application 'MyApp' exited abnormally with signal 9: Killed: 9 Androidでも似たようなアプリがたくさんあり、似たような仕組みでやっているのですが、、、 ただ、この方法で解放されるメモリは不要メモリクリーンしているというよりは、 バックグラウンドアプリを単にKillしているだけ=元々解放されても良いメモリ ですので このアプリを実行したおかげでメモリが多く使える、ということはありません。 このアプリを実行してもしなくても、別契機でメモリが必要になったら上記メモリが解放されるためです。 数値上の満足感以外にはメリットはないと思います。 (むしろバックグラウンドアプリがKillされることにより、該当アプリの再表示に時間がかかります。)