歩数計の実装を調べてみる・考えてみる

KYF35がAndroid5ベース*1で自分で勝手アプリいれることができそうなので、自作GPSログ機能(app)を作っていれてみようと考えました。

ちょっと以前にZTEというこれもAndroid5ベースのsmartphone端末*2GPS機能で端末の位置を取得しサーバに送るというプログラムを書いてみたことがあります。サービス・バックグラウンドで常時動かしておいて定期的にサーバに送って保存するということの試みです。*3

まずこれがはじめてのAndroidプログラミングだったのでまずActivityってなにとかそもそもAndroidStudioってこんなに動きが重たいの?とか最初の関門をとおってからざっくりexampleレベルでサービスとして動かしてみたのですが、そのときに端末のバッテリの消費が大きいというのに直面して作りこむのに躊躇してました。この端末自体は検索とか地図をみるとかメモとりにつかうとかで常時使うので一日つかうとそれなりにバッテリ消費するのにそれに加えてバックグラウンドに消費電力の多いものをのせるわけにはいかない、と。


しばらく間があいてたのですがKYF35が手元に来て、これは基本電話とメールにしか使わないこと、ガラホは(一応)電力消費を抑える工夫をしている、といったことから、この子に自分ログ機能をいれてみようかという気がおきてきました。

KYF35には歩数計アプリがプリインストールされています。これをみて歩数は加速度センサーではかっているのだろうと、歩数がとれるならそれを参照してGPSを動かすタイミングももっと効率的にできるのでないか?と思い歩数計の実装を考え始めました。

こんな歩数計実装例みてみると加速度センサーの出力をもとに歩数カウントのトリガーを刻むのが一例のようです。*4
まずは歩数が正確でなくても、動いているかとまっているかの判断ができるとGPSリクエストを減らすことができるのでどのくらいできるか、まずはgoogleのを動かしてみようと思ってます。


いまこれを書いていて、apple watchみたいなの確かに作りたくなる気持ちわかりますね。ただその一方、自分の奥深いニーズにあわないと使い続けないしできあいのものには初期投資しにくいかなと思いました。

*1:auのHPにはOSバージョン非公開とかいてあるような→google playサービスが動いていないからか

*2:電話としてはまったく使っていない

*3:こういったのはPlayStoreとかにはあがりにくい種類のappと思うのですが定番とかいいのあるのかしら

*4:飛躍しますけど、ざっと検索してみただけで、pedometerに関する特許も存在するらしいです。