2013年12月14日土曜日

android端末がsuspendに入らない

界隈じゃdeep sleepとかいうみたいですね。
なんでもいいんですけど。
携帯界隈は用語が特殊で戸惑いますね。ROMとかRAMとか。意味不明。横文字つかっといてさらにわざと誤用とか器用すぎてウラシマには生きるのがつらい。

サービスの起床の是非やスリープするタイミングを調べて、WakeLockが必要なのかどうか検証するため、xperiaでもってTICK_TIMEを受信した時刻をひたすらメモリ上に記録するサービスを作成し、それをbindServiceで任意のタイミングでのぞくアプリを作成してみました(ストレージを使用することによってOSがsuspendを抑止したらいやだから)。

見事に起きてる。ばっちり。

ディスプレイ消灯中がスリープ、という状態なんでしょうが、TICK_TIMEが最大でも数十秒ずれるだけでおおよそ平均1分間隔で受信できてしまっている。
画面点灯中は100ms以内にTIME_TICKが飛んでくるから確かに精度は落ちている。しかし・・・

ただクロック数落としてるだけでしょ、これ。

これ、スリープというより・・・ただの低電力モード?
アプリ自体は稼働してしまってるんだからsleepとはいえんよねぇ。少なくとも寝てない。

なんかほかのアプリがWakeLock離してないのかともおもったけど、「電池使用量」で調べてみてももっとも怪しいgoogle関連のサービスの総「スリープにしない」時間が1時間程度。
うーん、sonyのこの端末はカーネルレベルでsuspend抑止してる?
ホントかなあ?

「電池使用量」の表示欄も、こうなってみるとぁゃιぃね。
起動中、の欄も起動してないことになってるのに、事実こうやってTICK_TIMEを記録しつづけるサービスが動いているのだから(AlarmManagerのWAKEUPも使ってませんよ)。

電池の持ちはいいから、そこは別に文句はないのだけど、もしsuspendしないならWakeLockなんかいらん。
最近の他の端末ではするのだろうか。

位置情報サービスを切ってみたりWiFiを切ってみたりいろいろやってもなんだか寝ない。

もししないなら、もう過去の端末は切り捨ててしまってWakeLockはアプリレベルでは気にしなくていい????
でもそんなことないよなぁ、という気がするなぁ。

逆にKitKatではすぐ寝ちゃってたりするのかもしれない。
古いデバイスでも軽快に!というのが売りだから。

お金あればほかの実機も買って試験できるんだけどなぁ。

金が敵なのに、そのカタキに最近あわねぇんだよなぁ

0 件のコメント:

コメントを投稿