2014年12月18日木曜日

スマホのテザリングで接続を安定させるためのアプリ

実際にスマホ(GL07S)のテザリングを行うと思った以上にWifi接続が切れてしまうことに驚きました。
WEBブラウズ程度だとリトライなどが自動で行われ、レスポンスが悪くなる程度で実用上問題がでにくかったのですが、出先で少しゲームをすると、壊れてしまったのではないかと思うほどうまく接続できなくなることが多かった。

試したり調べたりした結果、いくつかわかったことがありました。

  • テザリングをオンにしてもしばらく経つと省電力モードに移行してしまうということ。
  • PocketWifi専用機の場合はデバイス側で省電力モードの設定が行えるものが多い。(ブラウザでデバイス設定を開いて設定が行える)
  • スマホのPocketWifiでは設定画面があっても省電力モードの設定項目が無い。

そもそもPocketWifiの省電力モードとは一体どのようなものなのか?という疑問からスタートしました。
最初はプロトコル上で実装されていてスマホでは絶望的な状況なのかもしれない。と落胆しながら長く触っているうちに画面が点灯している間は安定していることに気がつきました。
その場しのぎでスマホの電源ボタンを入れたままタブレットを操作していたのですが、やはり電池の消耗がとても激しく、画面だけオフにすることが出来ないだろうかと考えていました。

画面の明るさは暗くできたのですが、バックライトをオフにすることができないという壁に当たりました。しかもAndroidのバックライトコントロールが曖昧でデバイスによって動作が不安定になってしまうこともわかりました。
これらの実装はとても単純で、Androidアプリのインストールで気になる権限も一切必要としませんでした。
この実装方法で、最終的にアクティビティーが表示されている間は画面がきえなくなるという形になりました。(電池消耗はそれでも激しいですが(笑))

しばらくの間はこれでしのいでいたのですが、CPUをスリープモードに移行させないだけで良いのではないかということにも気づき始め、実装することにしました。

アクティビティーに実装していたので、アプリを切り替えたり、閉じたりするとCPUが寝てしまいますがスマホの電源ボタンを押しても問題の無いところまではたどり着き、最終的にサービスとして実装すると使い勝手がまともになりました。

機能自体は単純でコードもほとんど必要としませんでしたが、一番の問題は開発環境でした。刻々と変るライブラリや開発環境のバージョンはとても深刻で、アップデートをするたびに何らかの問題が発生します。さらにAndroidStudioは最悪で、正式リリースとなった現状でもさまざまな不具合を含んでいます。ほんとにこんな開発環境で開発できるのか?と、不安しか感じません。

実際に作成したアプリを使用し電池の消耗などを見ていると電波状態がそんなに悪くなければPocketWifiをオンにした状態のままで、8時間程度は使えることがわかりました。
電池の消費のグラフを表示させると波を打っているところはほとんど無く、一定に電池が消耗されていることがわかります。(下のスクリーンショットでは14時間程度)
原因はわかりませんがGL07Sは残り残量が少なくなるといきなりストンと電池がなくなります。(残りが10%を切ると何かのアプリが動き出すのか、それともバッテリー残量を偽っているのか、それとも単純に電池特性なのか? )
少し気になる問題として、スリープなしとなっているバーにいくつか切れ目が出ているので瞬間的にサービスが停止させられてウェイクロックが解除されている感じがします。

実際に使用し始めいましたがアイコンなども書き換え、ためしにAdMobなどの広告も追加してみました。
使用権限と使用用途は次の通り。
  • システムツール 端末のスリープを無効にする この機能を利用してスリープ無効にしています。
  • ネットワーク通信 ネットワークへのフルアクセス AdMob用に使用しています。
  • ネットワーク通信 ネットワークの接続の表示 AdMob用に使用しています。
CPU Power Keeper ダウンロードページへ


起動直後、Startボタンを押すとスリープしないようにウェイクロックをします。
Stopボタンを押すとウェイクロックを解除してスリープに入れるようになります。
Closeボタンで画面を閉じます。
通知をタップするか、再起動させると最初の画面が開きます。
書き終えてから見てみるとすっごいステマっぽい(笑)
アイコンもXHDPIスマホ以外は微妙になってるかもしれません。
いまだにGL07Sを使っているのは少数派かもしれませんけど使い始めてちょうど丸一年かな?電池持ちがちょっと足りないですが、まだ劣化している感じはないですね。もう一年持ってくれるかな?

0 件のコメント:

コメントを投稿