他アプリでメモリを使い過ぎた状況を再現したい

315 views
Skip to first unread message

kobayashi

unread,
Jan 18, 2014, 3:33:19 AM1/18/14
to android-g...@googlegroups.com
こんにちは。

アクティビティのライフサイクルについて、
以下サイトによると
http://www.javadrive.jp/android/activity/index2.html
> 停止中でもアクティビティは終了はしていないのですが、Androidのメモリが足りなくと、
> メモリを確保するために実行中でないアクティビティが強制的に終了となる場合があります。
とのことですが、この状況を実際に再現するにはどのような方法をとれば良いでしょうか?

ログを仕込んで、実際にそういう状況で何が起こるか確かめてみたいのですが、
そういう状況の再現の仕方が分かりません。
良い方法があればお教えいただけますでしょうか。

よろしくお願い致します。

--
kobayashi <kobay...@gmail.com>

Hirokazu Fukami

unread,
Jan 18, 2014, 3:52:43 AM1/18/14
to android-g...@googlegroups.com
こんにちはfkmです。

設定 -> 開発者向けオプション - > アクティビティを破棄
にチェックをいれると再現できます。


2014/1/18 kobayashi <kobay...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

kobayashi

unread,
Jan 18, 2014, 4:06:38 AM1/18/14
to android-g...@googlegroups.com
ありがとうございます。
たしかにそのオプションを入れると、onStop後にすぐにonDestroyが走るようになりました。

http://www.javadrive.jp/android/activity/index2.html
ただ、上記図によると、onPause から onStop が呼ばれずに
いきなりアクティビティが破棄されるようなケースがあるように見えたのですが、
実際にはそういう現象は起こりませんでした。
そのような現象はどういった状況で起こるのか、分かりますでしょうか?

--
kobayashi <kobay...@gmail.com>

Hirokazu Fukami

unread,
Jan 18, 2014, 4:09:15 AM1/18/14
to android-g...@googlegroups.com
こんにちはfkmです。

Activityを保持したまま、ホームボタンでバックグラウンドに移動させたあと、
タスクキラーアプリで止めてみるのはどうでしょうか?

2014/1/18 kobayashi <kobay...@gmail.com>:

kobayashi

unread,
Jan 18, 2014, 4:22:58 AM1/18/14
to android-g...@googlegroups.com
ありがとうございます。

> Activityを保持したまま、ホームボタンでバックグラウンドに移動させたあと、

Activityを保持したまま、というのはどのような操作でしょうか。
普通にホームボタンを押すと onPause → onStop がすぐに呼ばれてしまいます。
(破棄オプションがONになっていれば onDestroy も呼ばれる)

--
kobayashi <kobay...@gmail.com>

Hirokazu Fukami

unread,
Jan 18, 2014, 4:30:10 AM1/18/14
to android-g...@googlegroups.com
こんにちはfkmです

> Activityを保持したまま、というのはどのような操作でしょうか。
破棄オプションはOFFにしておいてください。



2014/1/18 kobayashi <kobay...@gmail.com>:

kobayashi

unread,
Jan 18, 2014, 4:39:30 AM1/18/14
to android-g...@googlegroups.com
ありがとうございます。

破棄オプションがOFFの場合、
アクティビティが表示されている状態でホームボタンを押すと
onPause → onStop が呼ばれ、タスク管理機能によりアプリを終了した場合、
onDestroy が呼ばれずにアプリは終了(当然アクティビティも破棄)されました。

ただ、今回確認したかったのは、
遷移図を見たところ onPause が呼ばれた状態から onStop が呼ばれずに
アクティビティが破棄される状況があると思い、それを再現したかったのですが、
今のところ onPause から直接破棄が行われる現象は確認できておりません。

--
kobayashi <kobay...@gmail.com>

ごりぽん

unread,
Jan 18, 2014, 5:17:23 AM1/18/14
to android-g...@googlegroups.com
Kyoro Stress V2というアプリで負荷掛けてみては?

Hiroaki GOTO as GORRY

unread,
Jan 18, 2014, 6:56:32 AM1/18/14
to android-g...@googlegroups.com

後藤 浩昭(GORRY)です。

自然にこのようなことが発生する状況は、「タスクマネージャを
上げるためのメモリすらない」ときくらいです。国内端末では
IS01くらいでしか発生しないのではないかと…(苦笑)。

# IS01はOS起動直後で使用可能メモリが数十MBしか残って
# いませんでした。

なお、System.exit()を発行することで、任意の時点で自分のプロセスを
強制終了させることができます。つまり、プロセスもろともアクティビティは
破棄されます。
たとえばonPause()の中にSystem.exit()を書いておくことで、そういう状況を
疑似的に再現できるのではないかと思います。



In message <52DA441E...@gmail.com>
"Re: [android-group-japan: 25940] 他アプリでメモリを使い過ぎた状況を再現したい"
--
Hiroaki GOTO as "GORRY" : 後藤 浩昭
EMAIL: gorr...@gmail.com

Shigeo Mutoh

unread,
Jan 20, 2014, 1:18:20 AM1/20/14
to android-g...@googlegroups.com
武藤です。

私が作ったアプリですが、StressRoboというのがあります。無料です。
https://play.google.com/store/apps/details?id=jp.tmhouse.StressRobo&hl=ja

こいつは指定された時間間隔で、指定されたメモリ量を、全メモリ空間から取得
しては開放することを繰り返します。
ただしLow Memory状態になったときは直ちにメモリを開放します。

作りがテキトーですが、なんとか使えるレベルと思います。
開発者向けのツールです。ご注意ください。

では。

Shigeo Mutoh

unread,
Jan 21, 2014, 3:52:05 AM1/21/14
to android-g...@googlegroups.com
武藤です。

補足します。
久々にStressRoboを使ったのですが、OSごとフリーズしてしまいました。
機種はSharp製ドコモSH-02Eです。以前にも他の機種でrebootしたりしてたので、
androidの伝統的仕様なのだと思います。

気をつけて使ってください。(どうやって??)
Reply all
Reply to author
Forward
0 new messages