• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
やはりお前らのAndroidのBLEが不安定だという認識は間違っている
 

やはりお前らのAndroidのBLEが不安定だという認識は間違っている

on

  • 2,477 views

AndroidのBLEの安定性について、Android4.4.2が4機種手元にあったので、「つなぐ→読む→書く→切る」×100みたいなコードで試してみたところ、顕著な機...

AndroidのBLEの安定性について、Android4.4.2が4機種手元にあったので、「つなぐ→読む→書く→切る」×100みたいなコードで試してみたところ、顕著な機種差分はなかったよ、というお話。

Statistics

Views

Total Views
2,477
Views on SlideShare
1,627
Embed Views
850

Actions

Likes
10
Downloads
7
Comments
0

9 Embeds 850

http://greety.sakura.ne.jp 817
https://twitter.com 9
http://feedly.com 9
http://www.slideee.com 7
http://www.google.co.jp 3
http://digg.com 2
http://tweetedtimes.com 1
https://www.google.co.jp 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    やはりお前らのAndroidのBLEが不安定だという認識は間違っている やはりお前らのAndroidのBLEが不安定だという認識は間違っている Presentation Transcript

    • やはりお前らのAndroidのBLE が不安定だという認識は間違っ ている #potatotips #6 2014/04/09 @youten_redo(ようてん)
    • Bluetooth Low Energy http://www.bluetooth.com/Pages/Bluetooth- Brand.aspx
    • BLEはあんまりよく知らない という人への補足説明 旧来のBluetoothとは結構違うけど、iOS(OS X)とAndroid でどっちでも使える楽しいやつだよ WiFi・Cellular経由でのHTTP(IP)通信以外で、MFi不要で iOS(OS X)-Android間通信ができるよ 2年先輩のiOSと比べると遅れてるし、かなり新しい Androidじゃないと標準対応していないけど、外部デバ イスとの連携等、いろいろ魅力的でオススメだよ
    • Android BLE unstable?
    • 4.3 cause unstable?
    • Device List Device Nexus 4 Nexus 5 HTC One GPE Nexus 7 2013 Android version. 4.4.2 4.4.2 4.4.2 4.4.2 Image
    • Target: iOS 7.1 Peripheral P C https://github.com/ youten/ImmPeri https://github.com/youten/ BLERW/tree/rwbench
    • Test Environment 全機WiFiオン、自宅の無線LANルータ(b/g/n, 2.4GHz) に接続状態で試験 木造アパートなので近所のルータ多数 iBeacon含めBLEデバイスは5つほど存在
    • Benchmark DISCONNECTED CONNECTING CONNECTED SERVICE DISCOVERED READING CHARACTERISTIC WRITING CHARACTERISTIC How many seconds 100 laps
    • 100 laps average and read+write success rate Device Nexus 4 Nexus 5 HTC One GPE Nexus 7 2013 Android version. 4.4.2 4.4.2 4.4.2 4.4.2 Image [no wait] 100 laps avr. success rate 25.36sec. 52.6% 23.93sec. 50.0% 28.02sec. 52.8% 22.37sec. 49.2%
    • Add wait before re-connect DISCONNECTED CONNECTING CONNECTED SERVICE DISCOVERED READING CHARACTERISTIC WRITING CHARACTERISTIC How many seconds 100 laps Add 50ms wait
    • Result Device Nexus 4 Nexus 5 HTC One GPE Nexus 7 2013 Android version. 4.4.2 4.4.2 4.4.2 4.4.2 [no wait] 100 laps avr. success rate 25.36sec. 52.6% 23.93sec. 50.0% 28.02sec. 52.8% 22.37sec. 49.2% [50ms wait] 100 laps avr. success rate 44.07sec. 87.8% 45.44sec. 92.8% 50.152sec. 94.0 43.864sec. 92.4%
    • まとめ Android 4.4.2にしたら致命的な機種差がなくなった WiFiを同時に使うと不安定(Nexus 7 2013)みたいな話はなくなった模様。 BluetoothGatt#close忘れるな。インスタンス使い切ってスキャン不可になる。 アプリのスワイプキル or Bluetoothのon/offで復帰できるが、不安定だと勘違いしないよ うに。ただのバグです。 対向装置はiOS/OS Xが楽。 Random Device Addressに注意、MACアドレスがランダムで変わる。 StickNFindとか実製品はおそらく省電力目的でセクシーにチューニングされている、また、 ファームウェアバージョンも制御できないため、再現性の観点でもあまりオススメしない。 SNF、最新ファーム焼いちゃうとImmediate Alert Service非対応になっちゃったっぽい。
    • 検証内容に対する追記 たかだか100回読み書きするのに数十秒かかってるとか遅い じゃないか、って読み取っちゃうケースがあると思いますが、 通常はこんなにCONNECT-DISCONNECTを連続で行わないので もっと速いです。 アプリケーションとして、接続先を探したりしながら繋いだり 切ったりしても妥当な範囲のリトライで、この程度安定して読 み書き( 送受信)ができますよ、という検証です。 BLEとしては向いていない(やるべきでない)ため意地悪試験 になってしまうのですが、バイト列送受信のスループットがど の程度まで出るのかはそのうち試してみたいと思います。