アプリ版:「スタンプのみでお礼する」機能のリリースについて

業務でAndroid製品を開発している方に質問です。
(自分は組み込み系のソフト開発(C言語)をかじり中です)

Android製品にBluetoothチップを載せる際、
デバイスドライバは、どのように開発してますか?

(1)Bluetoothのチップベンダの独自通信仕様に基づいて別途APIを開発しているのでしょうか?
それとも
(2)Androidのソース自体(ライブラリやLinuxカーネル?)をチップベンダの通信仕様に合うよう修正しているのでしょうか?

(1)だと、Androidのソースを読み解く必要がないので楽だと思うのですが
Android APIが使えない欠点があると思ってます。

(2)だと、アプリケーション層の開発者がAndroidの標準仕様で開発できますが
Linuxカーネル層やライブラリ層を解読する必要があるし
ライセンスも気にしないといけないためカナリ大変なのでは?と想像しています。

想定してる製品は、スマフォやタブレットではないので
Androidアプリが起動できなくてもいいのですが(そもそもAndroidでなくてもいい)
将来性を考えて(2)を選択しつつも、負担を軽減できる良い方法をご存じないでしょうか?

チップベンダがAndroid用(Linux)のデバイスドイラバを提供していれば話は簡単ですが(笑)

A 回答 (2件)

ハードウェアにアクセスする必要がある時点でLinuxのドライバという話になります。


Anroidの場合、カーネルはLinuxですから作るとしたらLinuxのドライバですしソース公開の義務を伴います。
知人がLinuxのドライバの作法がわからなくて調べるのが大変と嘆いてました。(公開を前提に作る必要があるっていってました)

それと、Bluetoothの場合、通信仕様はBluetoothの仕様です。
※Bluetoothのチップベンダの独自通信仕様はないでしょう。あっても、他社のBluetooth機器と通信できなさそう。


> チップベンダがAndroid用(Linux)のデバイスドイラバを提供していれば話は簡単ですが(笑)

ほぼされています。
されてないチップがあったら知りたいくらい。
※チップベンダが提供してない場合ってアンドロイドの市場を考えてないチップしかありえませんし、ドライバ書くにはチップのプログラミングに必要な資料は必須だと思いますがその入手はチップベンダに頼らざるを得ないですよね。

それと、チップメーカにはオープンソースにドライバ供給しているメーカ多いですよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

よく理解できたと同時に、
自分の間違いと自分がわからない点を整理できました。

CompleteモジュールというBluetoothチップがあります。CPUやプロファイル等が内蔵されており中身の詳細はblackboxなものです。この場合はメインCPUが直接ハードを制御する訳ではなく、UARTとでメッセージのやり取りをするだけで良いです。デバドラ不要です。ただUARTの通信インターフェースを作成しないといけなく、そこをAndroid のBluetoothAPIにどう連携させて作っているのか?という点が分かっていません。

そこは改めて質問したいと思います。ありがとうございました。

お礼日時:2011/06/01 01:55

Linuxって今では意外とOSSによるドライバが充実してるんです。


試しにPCのLinux環境を作って適当なBTドングルをさしてもらえばわかると思いますが、大抵のものは自動認識されます。

ですから、「対応チップを組み込む」というアプローチを取ってるところが多いんじゃないでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Linuxなどは、OSSによるデバドラがあるのですね。
BlueZ等が確かにありました。

お礼日時:2011/06/01 01:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!