2011年12月11日日曜日

Livevewアプリケーションを終了させないようにして切断されるのをできるだけ防止する。 その3

前回、
# Exempt oom killer 
sys.keep_app_1=com.sonyericsson.extras.liveview

を build.prop に記述して、LivewViewアプリケーションがAndroidにKillされないようにして運用してみました。
感覚でしかないですが結果切断率が減ったように思えます。
(周りの環境が無線だらけで物理的にだめだろうなーって時はやはり切断発生します。)

そこで、build.prod に記述するのは色々と面倒くさいので LiveviewSaverと言うアプリケーションにしてみました。

中身は setPropしてるだけです。(要ROOT

LiveViewSaver.apk

※ TwitTL2 FaceFBView2 SendSMS2 がinstallされていると、起動時にsetPropするようにしています。(すいません商売じみてて。。。。

20 件のコメント:

  1. こんにちは、liveviewの通信切断の件に関して検索したところこのブログに行き着きました。大変失礼ですがこのliveview Saver というアプリはxperia 単体からではダウンロード出来ないのでしょうか?

    返信削除
    返信
    1. こんにちわ。
      LiveViewSaver.apk は、Google ドキュメントにアップロードしているので、おそらく android端末からの直接ダウンロードはできないかと思います。
      また、当アプリは要ROOTですので、Androidマーケットへのコミットも予定していないです。

      削除
  2. 初めまして。
    LiveViewSaverをインストールさせてもらいました。LiveViewは接続が切れなくなりました。でもXperiaの電池減りますね。元に戻したいのですがどうすればよろしいでしょうか?LiveViewSaverをアンインストールしても電池減ります。build.prodを見ても記述されてないようなのですが、どうすればいいでしょうか?よろしくお願い致します。

    返信削除
  3. こんにちは。
    一度、端末を再起動してください。
    setProp されていない状態に戻ります。

    返信削除
  4. こんにちは。回答ありがとう御座います。
    一度電源を切るから再起動する形で解決しました。
    今は僕のXperiaの環境が悪いのか実感できませんが、以前
    「LiveViewアプリを事あるごとに起動させて、切断しても再接続する可能性を上げる」という記事がとても効果がありました。こちらの方法まだ有効でしょうか?以前はTitaniumで常駐アプリを減らしてた時は効果があり、今は常駐アプリが多いです。今効果が実感できないのは常駐アプリのせいでしょうか?常駐アプリを減らしてメモリを空けた方がLiveViewの接続は切れないのでしょうか?教えてください。

    返信削除
    返信
    1. 長文になりそうなので、帰宅後にご返事させていただきます。
      しばしお待ちください。

      削除
    2. ユウキさん>
      おそらくですが、状況的にユウキさんのxperiaのメモリ、現在常に逼迫していませんか?
      もしそういう状況ですと、「再接続の可能性を上げる」を行っても、大して切断率を下げられないと思います。
      liveviewの切断は、Bluetoothの物理的な切断とアプリの切断の2種類があると私は思っています。
      そのアプリの切断が発生する原因の一つがAndroidOSのLowMemoryKillerでLiveviewアプリを落とされた場合思われます。
      実際、LowMemoryKillerは LiveViewSaver で、Liveviewアプリをkillの対象外にすることで、切断率が下がっています。
      「再接続の可能性を上げる」の対策は、事あるごとにLiveviewアプリを呼び出しておくと言う対策ですので、何かとLowMemoryKiller にKillされる状況ですと、アプリを呼び出すきっかけよりkillされる頻度が高くて役にたたない可能性が高いです。
      あと LiveViewSaver を使うと電池が異様に減る件に関してですが、これも予想ではありますが、LowMemoryKiller が絡んでいると思います。
      Liveviewはログをみていると、事あるごとにpluginを認識し、起動させようとしています。
      pluginがその際落ちていて起動させると、おそらくLiveviewアプリはLiveviewに表示するpluginを更新するため、Liveviewと通信してそうな気がします。
      つまり、一つ一つのpluginもServiceで、LowMemoryKillerの餌食になっている可能性があり、それが頻繁に起こることによりLiveviewの更新頻度が上がり電池を食っているのではないかと思います。
      また、pluginが落ちたりすると巻き込まれて切断が発生することから、pluginが落ちてLiveviewが上げて、通信して、また落ちて。。。。と悪いループに入っていそうです。

      >常駐アプリを減らしてメモリを空けた方がLiveViewの接続は切れないのでしょうか?
      検証したわけではありませんが、上記の考えからメモリを空けておいたほうが接続は切れないと思っています。

      ※上記の考察も検証したわけではなく、今までいじってきた中で感じたことが中心ですのでなんともいえませんが。。。。。

      あと、LowMemoryKiller の事を考えると、Liveview の関連アプリをpluginも含めてすべてsetPropしてやるともしかしたら安定するかもしれません。。。。。。その場合、他の常駐アプリの状況が悲惨なことになりそうな気もしますが。。。。

      削除
  5. 専門的に答えて頂いて有難う御座います。
    おっしゃる通りです。
    SO-01Bなんでブラウザアプリも切り替えるとKillされ再読み込みされる状況で、
    これもメモリ不足が原因なようで悩んでいます(笑)
    LiveViewのpluginって一つ一つが常駐してますもんね。LiveViewのpluginを追加すればする程メモリが必要になってくるという事ですね。
    デフォルトで搭載されている機能もタイルをカスタマイズで少なくした方がいいのでしょうか?
    専門知識が少なく浅い事を言ってるかもしれませんが
    sys.keep_app_=
    ↑これを使えば、どんなアプリでも落ちなくなるように出来る。
    という方法を使って
    sys.keep_app_3=com.sonyericsson.extras.liveview
    と記述すると切断が緩和されるような気がします。
    関係無いでしょうか?

    返信削除
    返信
    1. >sys.keep_app_3=com.sonyericsson.extras.liveview
      >と記述すると切断が緩和されるような気がします。
      >関係無いでしょうか?
      関係あります。上記記述をbuild.propに行うことでliveviewアプリがLowMemoryKillerの対象外になっているはずです。
      また、build.propへの上記記述が面倒くさいのでそれをアプリ化したものがLiveViewSaverです。
      ですので、状況によっては電池がガンガン減っちゃうかもしれません。

      削除
    2. >デフォルトで搭載されている機能もタイルをカスタマイズで少なくした方がいいのでしょうか?
      これは意味がないと思います。デフォルト機能はcom.sonyericsson.extras.liveview (liveview)アプリの一部ですので。。。。

      削除
    3. 本当ですね。Yusuke Kinopの記事で同じ事書かれてたんですね。冒頭の# Exempt oom killerというコードに気をとられてわかりませんでした。# Exempt oom killerが無くsys.keep_app_3=com.sonyericsson.extras.liveviewと記述するだけでも効果表れますね。そして確かに電池減りますw
      こちらの記述をしていてもLiveViewを接続していなければ電池消費量は変わらないんでしょうか?
      以前もこの設定を行っていたのですがその時は電池が減るようには感じませんでした。以前というのは、一度僕の事情で文鎮させてしまったので文鎮前の事を以前と言っています(笑)
      僕がLiveViewを使う頻度が少なかったからわからなかったのか、
      それともLiveViewの設定でTwitterやFacebookの更新頻度を以前は更新しないに設定していたような気がします。TwitterやFacebookを更新しない設定にしている方が電池減らないでしょうか?

      削除
    4. Yusuke Kinop「さん」が抜けてましたw

      削除
    5. 文鎮wやんちゃされてますねw

      >こちらの記述をしていてもLiveViewを接続していなければ電池消費量は変わらないんでしょうか?
      記述だけであれば電池消費はかわらないと思います。
      LiveViewアプリがServiceで生きているだけであれば、特に通信が発生するわけでもないので。。。。。
      やはり、3g wifi Bluetooth どれであろうと通信が発生するのは電池の消費には大きな影響です。

      >TwitterやFacebookを更新しない設定にしている方が電池減らないでしょうか?
      Liveview の twitter facebook の更新、あれは定期的に3G(or WIFI)使いますので電池消費あがると思います。(と思って、一切使っていないので実際はどんな差なのか想像つきませんが。
      なので、逆に更新しない設定のほうが電池は減らないはずです。

      削除
    6. SO-01Bなんで内蔵ストレージが少ないのでTitaniumでアプリをなんでもかんでもSDに移動しててホームアプリまでSDに移動すると文鎮しましたよwTitaniumでどんなアプリでもSDに移動できるというのは僕がある拍子にたまたま気づいたのですが、あまり話見かけないですが問題無いでしょうか?改めて今ググってみたら記事にしてる方いらっしゃいますね。大丈夫でしょうか?

      電池消費量の件、僕がさっき検証してみたのですが、
      Bluetoothを切ってもLiveViewアプリケーションを常駐させてるせいなのか減るような感じがしたのですが気のせいでしょうか。
      ただ、TwitterとFacebookとRSSの設定を更新しない設定にすると見事に減らなくなりましたwいろんなアプリを開発してる方にこんな事を言うのは微妙な発言かもしれませんが、僕はLiveViewをリモコンとしてだけ使う事にしようかなと考えてしまいます(笑)ミュージックプレイヤーをコントロールやカメラのリモートシャッターが可能なRemote Camera等だけでも十分活用できます。そこでなんですがLauncher plug-inのようにアプリケーションが起動できるプラグインでさらにお気に入りのアプリを登録できて起動できるようなプラグイン開発できないでしょうか?
      いろいろ話して申し訳ないです。よろしくお願いします。

      削除
    7. ホームアプリをSDに移動で文鎮はなるほどですねw

      >Bluetoothを切ってもLiveViewアプリケーションを常駐させてるせいなのか減るような感じがしたのですが気のせいでしょうか。
      Liveviewアプリ、まさかの未接続状態でもTwitterなどの定期更新に行ってるのかもしれませんね。ちょっとこれはLiveviewアプリの仕様があまりにもイケてないと言わざるを。。。。。

      >ただ、TwitterとFacebookとRSSの設定を更新しない設定にすると見事に減らなくな
      やはり、このあたりの定期更新は厳しいですね。

      私自身はLiveviewを通知端末として利用しているということもあり、母艦の通知をLiveviewでも通知すると言う事を基本に考えています。
      (母艦はかばんの中だったり仕事中はデスクに置きっぱなしで近くで打ち合わせしてたりなどなどなので。。。。
      なので、Launcher plug-in のような「母艦を操作する」ようなアプリってあまりどうやって????なんですよね。
      SmartWatchも発売されましたので、主軸がそちらに移るなどもありLiveviewのLauncherアプリ作成は予定がありません。
      現状公開しているLiveviewアプリは可能な限りメンテしていきますが、これも個人でやっていることなのでどこまで出来るか。。。。です。。

      削除
    8. バッテリーの件、先程少し検証しただけで検証時間があまりにも短いので参考にならないかもしれません。何かが暴走して減ったりしてただけかもしれないですし、TwitterとFacebookとRSSの設定を更新しない設定にしても減るような気もしてきましたし、ちょっとまとまりがなくなってきたのでもう少し時間をかけて検証します。Yusuke Kinopさんが最初におっしゃっていた事が正しいのでしょう。Yusuke Kinopさん程LiveViewにお詳しい方もそうそういないと思うので。混乱させてしまって申し訳無いです。

      そうですか。わかりました。
      SmartWatchのレビューの方待ってます。
      側面をコツコツっと叩けばスリープ状態から復帰できるそうなのですが、時計として使用する場合、どのように素早く時計を表示させられるのか、
      LiveViewと比べて接続が安定しているかどうか等、知りたいです。
      Yusuke Kinopさんは端末は何をお使いでしょうか?SO-01Bはお持ちではないでしょうか?もしお持ちであれば、2.3のカスタムロムを導入して動作状況が知りたいのですがこのような使用状況はありませんか?

      削除
    9. 私の使用している端末は、この間までは、DesireHDでCynanogenMod7.1でした。どこかで書きましたが、GBの場合、ペアリングに問題があります。(一応面倒ですが対策もあります)
      最近はGalaxy Nexusです。
      どちらも、母艦のバッテリーが激減と言う現象はありません。
      GBの方はliveview側のバッテリー持ちが悪いです。。
      (nexusは同じ使用の仕方で2-3日持ちますね。)

      削除
    10. そういや、DesireHDの標準sensROMだと母艦暴走してましたね。liveviewはHTCとの相性悪いです。(CM7は暴走してません

      削除
    11. 今日、改めて3時間かけて電池消費量の検証を行ったところ、
      僕のRAMが少ない端末だと、Bluetoothを切断した状態でも
      sys.keep_app_=com.sonyericsson.extras.liveview
      と記述するだけでも電池を消費するという結果になりました。
      RAMが少ないとLiveViewアプリがすぐにKillされ、常に頻繁に立ち上げ直すという作業を設定しているだけでも、CPUを使っているという事でバッテリーを消費すると考えられます。
      という事でバッテリーがどんどん消費するのは困るので僕の場合、接続不安定のままにしとくしかなさそうです。
      LiveViewのTwitterやFacebookの更新頻度でどのぐらい母艦のバッテリーに変化があるのか等も知りたいのですが、僕の今の環境ではすぐに通信が切断される状況なので調べる事さえできなさそうです。また新しい環境になれば調べたいと思います。Yusuke Kinopさんももしよろしければ検証してみてください(笑)

      削除
    12. Twitterなどの定期チェックはやっていませんでしたので、今度SmartWatch関連が一段落したらやってみます。

      削除