Lと私(その1 Eclipse ADTとBLE Peripheral編)
Tweet
Android L Previewが来ました。
いくらか試してみたのでメモってみます。
◯常用しているN5をL Previewに
unlockしていなかったので、adb backupして、Storage全コピーして、Factory Image焼き。adb restoreは相変わらず何が起きてるのかよくわからないけど、「多分強制的に/data/配下のアプリのファイルを放り込む動作してるんだろう」と楽観的に考えて適当にadb restoreを数回。概ねアプリ状態とストレージ状態が戻ったみたいなので、困るファイルのみ追加でMTPでコピーしてL化完了。
若干Cellularのつかみが悪くなりましたが、LTE掴まないとかテザリングできない等のトラブルは私の端末では発生していないので概ね逃げ切った模様です。
◯Eclipse+ADTでAndroid L Previewにする際の落とし穴
いろいろつまづいたのですが、結論としては以下の通りの模様です。
・Android L PreviewがついにJava 7必須になった模様。
・Macの場合は標準の6を削除後に7を入れて、「7がコマンドライン以外でも動く様にする設定を追加」する必要があります。
参考:Eclipse Kepler for OS X Mavericks request Java SE 6
http://stackoverflow.com/questions/19563766/eclipse-kepler-for-os-x-mavericks-request-java-se-6
・ADT-BundleがJuno(Eclipse 4.2)ベースなのが気に入らない方はKeplerなりLunaなりにSDK個別インスコすればいいっぽいです。
・ADT-Bundleが相変わらずADTのupdateしてもアップデートがありませんとか言いやがるので新規にADT-Bundle落としてL, 4.4W(Wear), 4.4.2(KitKat)のSDKコンポーネントをざーっとダウンロードしてしまった方が良さそう。
◯Hello L
ADT23.0.2環境がきれいに構築できたらHello Lしましょう。
https://developer.android.com/preview/setup-sdk.htmlに書いてある通りですが、Eclipseのウィザードに沿った出力だと色々おかしいので手動で直します。
・project.propertiesはandroid-Lなことを確認。
・minSdkVersionとtargetSdkVersionは両方とも"L"に。
・styleは手動で書き換え。v11とかv14とかいらないので削除。
お、やっといったorz pic.twitter.com/9tYE00b4Z2
— ようてん (@youten_redo) 2014, 7月 5
◯Hello Android Peripheral
さて、L環境ができたらBLE Peripheralを試しましょう。
増えたandroid.bluetooth.leってパッケージのJavadocを読む限りは、Advertiseまでは素直な感じです。
いっぱいおるからウソっぽいけどAndroid LでちゃんとiBeaconできそうだよ pic.twitter.com/P1fXgGBlW3
— ようてん (@youten_redo) 2014, 7月 6
GitHubに置いておきます。
https://github.com/youten/aBeacon
さて、この次は自前Service実装なのですが、4.4までのCentral限定だと役に立ってなかったGATTServerあたりが臭いと思ってるのですが、Javadoc読んでもさっぱり分かりません。
どこかで既に誰かチャレンジし終わってるんじゃないかな、と思ってるのでぐぐりつつチマチマ試してみたいと思います。iOS-Android間の「HTTPでない」「MFi外の相互通信路」ってマロンですよね。