SlideShare a Scribd company logo
1 of 14
Download to read offline
やはりお前らの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としては向いていない(やるべきでない)ため意地悪試験
になってしまうのですが、バイト列送受信のスループットがど
の程度まで出るのかはそのうち試してみたいと思います。

More Related Content

What's hot

低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
demuyan
 

What's hot (20)

WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
 
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ
 
全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!全文検索でRedmineをさらに活用!
全文検索でRedmineをさらに活用!
 
Android BLEのつらみを予防するTips
Android BLEのつらみを予防するTipsAndroid BLEのつらみを予防するTips
Android BLEのつらみを予防するTips
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
 
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
 
ROSでつながるVRChat
ROSでつながるVRChatROSでつながるVRChat
ROSでつながるVRChat
 
SDCCオープンネットワークのご紹介【2021/01版】
SDCCオープンネットワークのご紹介【2021/01版】SDCCオープンネットワークのご紹介【2021/01版】
SDCCオープンネットワークのご紹介【2021/01版】
 
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
ROSCon発表の振り返りとROSConの振り返り(ROS Japan UG #48 ROSCon 2022ふりかえり会)
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
DeNA流Scrumとcommのチームビルディング
DeNA流ScrumとcommのチームビルディングDeNA流Scrumとcommのチームビルディング
DeNA流Scrumとcommのチームビルディング
 
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
 
Di入門
Di入門Di入門
Di入門
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 

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

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

BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
 
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low Energyデバイス
 
CEATEC土産話
CEATEC土産話CEATEC土産話
CEATEC土産話
 
Beenos creators'night#201307今井
Beenos creators'night#201307今井Beenos creators'night#201307今井
Beenos creators'night#201307今井
 
Windows PhoneについてGdgd話すよ
Windows PhoneについてGdgd話すよWindows PhoneについてGdgd話すよ
Windows PhoneについてGdgd話すよ
 
Beaconのお話
Beaconのお話Beaconのお話
Beaconのお話
 
Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50
Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50
Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点から
 
GotAPIの概要と技術解説
GotAPIの概要と技術解説GotAPIの概要と技術解説
GotAPIの概要と技術解説
 

More from youten (ようてん)

More from youten (ようてん) (20)

Why VTuber?
Why VTuber?Why VTuber?
Why VTuber?
 
ネトゲで人生を脅かされた人は今VRで何を思うのか
ネトゲで人生を脅かされた人は今VRで何を思うのかネトゲで人生を脅かされた人は今VRで何を思うのか
ネトゲで人生を脅かされた人は今VRで何を思うのか
 
Google VRとDaydreamの最近の話
Google VRとDaydreamの最近の話Google VRとDaydreamの最近の話
Google VRとDaydreamの最近の話
 
CardboardとDaydreamの覚えてなくても困らない話 #ABC2017s
CardboardとDaydreamの覚えてなくても困らない話 #ABC2017sCardboardとDaydreamの覚えてなくても困らない話 #ABC2017s
CardboardとDaydreamの覚えてなくても困らない話 #ABC2017s
 
本を書こう(雑に)
本を書こう(雑に)本を書こう(雑に)
本を書こう(雑に)
 
Android History 2016
Android History 2016Android History 2016
Android History 2016
 
「0.5VRぐらい」の話 #VRごっちゃにLT #cluster
「0.5VRぐらい」の話 #VRごっちゃにLT #cluster「0.5VRぐらい」の話 #VRごっちゃにLT #cluster
「0.5VRぐらい」の話 #VRごっちゃにLT #cluster
 
Android History 2015
Android History 2015Android History 2015
Android History 2015
 
IoTゲームの難易度雑感
IoTゲームの難易度雑感IoTゲームの難易度雑感
IoTゲームの難易度雑感
 
錬金術師ごっこ #OcuJam #Ocunif
錬金術師ごっこ #OcuJam #Ocunif錬金術師ごっこ #OcuJam #Ocunif
錬金術師ごっこ #OcuJam #Ocunif
 
Android History 2014
Android History 2014Android History 2014
Android History 2014
 
Oculus Rift+Unity+MMD #andeb
Oculus Rift+Unity+MMD #andebOculus Rift+Unity+MMD #andeb
Oculus Rift+Unity+MMD #andeb
 
SeikenWear その1
SeikenWear その1SeikenWear その1
SeikenWear その1
 
Google I/O 2014
Google I/O 2014Google I/O 2014
Google I/O 2014
 
JSON吸って吐く機械
JSON吸って吐く機械JSON吸って吐く機械
JSON吸って吐く機械
 
BLEくびかりぞく
BLEくびかりぞくBLEくびかりぞく
BLEくびかりぞく
 
AndroidとiOSのBLEな事情 3
AndroidとiOSのBLEな事情 3AndroidとiOSのBLEな事情 3
AndroidとiOSのBLEな事情 3
 
20131126 Android昔話 2013
20131126 Android昔話 201320131126 Android昔話 2013
20131126 Android昔話 2013
 
FourBeat apk, enchant.js memo #FourBeat
FourBeat apk, enchant.js memo #FourBeatFourBeat apk, enchant.js memo #FourBeat
FourBeat apk, enchant.js memo #FourBeat
 
20121113 Android昔話2012
20121113 Android昔話201220121113 Android昔話2012
20121113 Android昔話2012
 

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