SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler 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としては向いていない(やるべきでない)ため意地悪試験
になってしまうのですが、バイト列送受信のスループットがど
の程度まで出るのかはそのうち試してみたいと思います。

Mais conteúdo relacionado

Mais procurados

ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないCarnot Inc.
 
QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentHideki Takase
 
S07_経営層 / IT 部門が意識すべきコンプライアンス対応 - Microsoft 365 E5 Compliance で実現するリスク対策 - [...
S07_経営層 / IT 部門が意識すべきコンプライアンス対応  - Microsoft 365 E5 Compliance で実現するリスク対策 - [...S07_経営層 / IT 部門が意識すべきコンプライアンス対応  - Microsoft 365 E5 Compliance で実現するリスク対策 - [...
S07_経営層 / IT 部門が意識すべきコンプライアンス対応 - Microsoft 365 E5 Compliance で実現するリスク対策 - [...日本マイクロソフト株式会社
 
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive日本マイクロソフト株式会社
 
Microsoft License の基本
Microsoft License  の基本Microsoft License  の基本
Microsoft License の基本祥子 松山
 
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018ak_shio_555
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Hubsの日本語化とECサイト利用
Hubsの日本語化とECサイト利用Hubsの日本語化とECサイト利用
Hubsの日本語化とECサイト利用Yukihiko Aoyagi
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春Kondo Hitoshi
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...NTT DATA Technology & Innovation
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話NipponAlgorithm
 
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かうBrainPad Inc.
 
CISベンチマークに対応したiOSのIntune管理
CISベンチマークに対応したiOSのIntune管理CISベンチマークに対応したiOSのIntune管理
CISベンチマークに対応したiOSのIntune管理Kenta Osuka
 
[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装
[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装
[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装de:code 2017
 
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うにはBoto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うにはKoitabashi Yoshitaka
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメAkira Hirasawa
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)NTT DATA Technology & Innovation
 
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessIT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessTAKUYA OHTA
 

Mais procurados (20)

ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
 
QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/Eloquent
 
S07_経営層 / IT 部門が意識すべきコンプライアンス対応 - Microsoft 365 E5 Compliance で実現するリスク対策 - [...
S07_経営層 / IT 部門が意識すべきコンプライアンス対応  - Microsoft 365 E5 Compliance で実現するリスク対策 - [...S07_経営層 / IT 部門が意識すべきコンプライアンス対応  - Microsoft 365 E5 Compliance で実現するリスク対策 - [...
S07_経営層 / IT 部門が意識すべきコンプライアンス対応 - Microsoft 365 E5 Compliance で実現するリスク対策 - [...
 
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
 
Microsoft License の基本
Microsoft License  の基本Microsoft License  の基本
Microsoft License の基本
 
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
Hubsの日本語化とECサイト利用
Hubsの日本語化とECサイト利用Hubsの日本語化とECサイト利用
Hubsの日本語化とECサイト利用
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
 
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
 
CISベンチマークに対応したiOSのIntune管理
CISベンチマークに対応したiOSのIntune管理CISベンチマークに対応したiOSのIntune管理
CISベンチマークに対応したiOSのIntune管理
 
[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装
[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装
[SC04] あなたのサービスを "ID" で守る! Azure Active Directory の条件付きアクセスの基礎と実装
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うにはBoto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
Boto3からの解放。python3の標準ライブラリのみでawsサービスを取り扱うには
 
レガシーコード改善のススメ
レガシーコード改善のススメレガシーコード改善のススメ
レガシーコード改善のススメ
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for BusinessIT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
 

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

BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~Taisuke Oe
 
CoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスCoreBluetoothでつくるBluetooth Low Energyデバイス
CoreBluetoothでつくるBluetooth Low EnergyデバイスShin Ise
 
Beenos creators'night#201307今井
Beenos creators'night#201307今井Beenos creators'night#201307今井
Beenos creators'night#201307今井Daisuke Imai
 
Windows PhoneについてGdgd話すよ
Windows PhoneについてGdgd話すよWindows PhoneについてGdgd話すよ
Windows PhoneについてGdgd話すよKenji Wada
 
Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50
Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50
Bluetoothデュアルモジュールを使ってみた話 @IoTLT vol.50NorioIkedo
 
Androidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からAndroidとは。ちょっと変った視点から
Androidとは。ちょっと変った視点からdemuyan
 

Semelhante a やはりお前らの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の概要と技術解説
 

Mais de youten (ようてん)

ネトゲで人生を脅かされた人は今VRで何を思うのか
ネトゲで人生を脅かされた人は今VRで何を思うのかネトゲで人生を脅かされた人は今VRで何を思うのか
ネトゲで人生を脅かされた人は今VRで何を思うのかyouten (ようてん)
 
CardboardとDaydreamの覚えてなくても困らない話 #ABC2017s
CardboardとDaydreamの覚えてなくても困らない話 #ABC2017sCardboardとDaydreamの覚えてなくても困らない話 #ABC2017s
CardboardとDaydreamの覚えてなくても困らない話 #ABC2017syouten (ようてん)
 
「0.5VRぐらい」の話 #VRごっちゃにLT #cluster
「0.5VRぐらい」の話 #VRごっちゃにLT #cluster「0.5VRぐらい」の話 #VRごっちゃにLT #cluster
「0.5VRぐらい」の話 #VRごっちゃにLT #clusteryouten (ようてん)
 

Mais de 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が不安定だという認識は間違っている