はむすたーの巣

ちょっとかじって見たこととか興味持ったこととか記事というよりメモな感じにまとめます。たまに消します。きっと。

今からI`m Watchに自作アプリを焼くにはどうするか

そもそもとして...

こんな記事ニーズあるんか...?
 
 
 
 
 
 
俺が必要だと思った時に既に書いていた奴が居なかったから書いたんだよぉ!

始めに

I`m Watchとは

i'm Watch - Wikipedia

大昔にでたスマートウォッチです
Android1.6搭載です
(wikiにはAndroid OS 2.1って書かれてるけど、それはカスタムOSであるWatchOSのバージョンであって、根っこのAndroid自体は1.6のままのはず...)

そしてなんとこのスマートウォッチ、公式ページが消滅しています
故に公式から情報やソフトウェアを入手することが不可能です
同時に公式ストアも死んでいるので、普通に使う上でアプリを追加することは難しいです

Android1.6 (Donut)について

古のAndroidOSです、有名どころだとIS01なんかがこのバージョンです。
IS01等は人気がありカスタムOSでひっそりバージョンを上げることが可能ですが、I`m Watchにはもちろんそのような物は無いので、Android1.6のまま戦う必要があります。
ちなみにこのAndroid1.6、現行のAndroid Studio等ではとっくにサポートを打ち切られていて、プロジェクト作成時のminSdkに入れることすら(多分)不可能に近いです、茨の道を渡れば使えるのかも?自分は諦めました。

I`m WatchにADBで接続できるようにする(下準備)

I`m WatchAndroidバイスとしてかなり特殊な作りになっている模様で、標準のファームウェアではADB接続することはできません。そのためファームウェアの更新が必要になります。

d.hatena.ne.jp

上記リンクを参考にしながら、下記リンクより入手したファームウェアを焼いていきます(ここ以外でI`m Watchファームウェアが手に入る所が見つからなかったです、ここのリンクが切れたら多分終わりなのでは...

Firmware Revision History | Sky of Ducks

そもそもこの二つのサイトくらいしか日本語でI`m Watchでの開発周りの話を沢山してる所が見つからなかったです...

I`m WatchにADBで接続できるようにする

d.hatena.ne.jp

こちらを参考にしながら入れてください
尚解説されているサイト様では、RNDISで設定するIPアドレスを'10.0.0.168'とされていましたが、自分の環境ではこのIPはI`m Watch自身が取ってしまっていましたので、'10.0.0.167'と設定することで無事接続されました。
なお、linuxwindowsでの接続方法(RNDISの設定方法)はわからないです(windowsはさっきのファームウェア配ってくれてたサイト様にドライバが落ちていたはずですが、試していません)

Android1.6向けのビルドを行える環境を用意する(多分もっと良い手段がある)

ここを参考にしました

www.suke-blog.com

ただし、2.xバージョンよりも古いバージョン(1.5)を利用しました、特別な理由があるわけではないんですが、2.3で同じことをやろうとしたらどうやってもminSDKの選択肢にAndroid1.6が入らなかったためです。

Android Studio 1.5 - Android Studio Project Site

IDE+SDK bundle をダウンロードしちゃいましょう。
インストール後、以下のパッケージを追加でインストールする、と解説されているサイト様には記載されていましたが

Android 5.1.1(API 22)
Android 1.6(API 4)
Extras > Android Support Repository
Extras > Android Support Library (Obsolete)

Android Support Library (Obsolete)についてはAndroidStudio1.5でも見つからなかった(パッケージ取得先でそもそも消失してる?)ので入れずに行いましたが、ひとまず問題は起きませんでした。
また、Instant Run機能の無効化についても、特に触れることなく実行ができました。

あとは解説されているサイト様の通りにやれば大丈夫な筈です。

さいごに

参考サイト様のコードを丸パクリ()して実行が確認できました!
GithubにBluetoothSPPで通信をさせるようなコードがあったので、近々試してみたいなぁと思っています

github.com