0

マイクロコントローラーと通信する Java SE デスクトップアプリケーションを作成しました。受信したデータを表示し、更新を送信し、常に通信します。いくつかのサードパーティ ライブラリと javax.comm ライブラリを使用して、シリアル経由で通信します。現在、同じ機能を持つクロス プラットフォーム モバイル アプリを開発するためのオプションを調査しています。最終的に、この新しいアプリケーションは、デスクトップ、携帯電話、タブレットからコンパイルして実行できるようになります。私はいくつかのオプション (Oracle の新しい ADF モバイル、phoneGap、Java ME など) を調査しましたが、何が最適かについて何か提案があるかどうか疑問に思っています。フォローアップの質問はお気軽にどうぞ。前もって感謝します。

レイ

4

2 に答える 2

2

これを行うには、いくつかの課題に遭遇します。まず第一に、クロスプラットフォームのフレームワークはすぐにリリースされます。以下に概説する大きな違いのため、私が知っているフレームワークはハードウェア接続をサポートしていません。

ハードウェア

組み込みデバイスは現在、RS-232 (UART) を使用して PC と通信しています。これは、コンシューマ モバイル デバイスには存在しないハードウェア インターフェイスです (iPhone を除く)。ハードウェアの観点からポイント ツー ポイント接続をサポートするすべての主要なデバイス プラットフォーム (iOS、Android、Windows Phone) 間の唯一の共通インターフェイスは、USB と Bluetooth です。

この 2 つのうち、Bluetooth は組み込みデバイスに適応するのが簡単な方です。市場には、UART に接続し、RFCOMM プロトコルを使用してワイヤの代わりにリンクを介してデータを中継するだけの Bluetooth モデムが多数あるためです。

SDK のサポート (つまり、APP はどのようにこのハードウェアと通信できますか?)

  • Android SDK は、アプリケーションと両方のインターフェース間の通信をサポートします。Bluetooth は Android 2.0 で、USB は Android 3.1 で登場しました。
  • iOS SDK は、iOS 3.0 以降、両方との通信をサポートしています。iOS 5 以降では Bluetooth LE にも対応しています。
  • Windows Phone 8 SDK は、Bluetooth 接続をサポートすると主張していますが、USB サポートについては何も知りません。

ライセンス

これは実際には iOS にのみ適用されますが、 Bluetooth と USB/シリアルの両方に適用されます。iOS 接続のハードウェア側を開発するには、Made For iPod プログラムのメンバーである必要があります。メンバーシップは無料ですが、かなりの量の事務処理が必要です。これにより、独自のコネクタで必要なプロトコルを実装するために必要なドキュメントにアクセスすることしかできません. 実際の接続に必要なコネクタやその他のコンポーネントを取得するには、取得が容易ではない追加の承認が必要です。

Bluetooth LE は、ハードウェア側とソフトウェア側の両方で実装するために MFi のメンバーシップを必要としない iOS の唯一の接続規格です。ただし、これまでのところ、このインターフェイスを直接サポートしている主要なモバイル SDK は他にありません (Android はそこまで来ています)。

全体として、Bluetooth の追加に傾倒し、Bluetooth LE スペースに注目することをお勧めします。デュアル モードで動作する組み込みモジュールを見つけることができれば、LE を iOS デバイスに、標準の Bluetooth を他のプラットフォームに実行できます。これは、私が考えることができる唯一のライセンス フリー パスであり、Bluetooth LE SDK のサポートが向上するにつれて、他のデバイスもそれを利用できるようになります。

于 2012-10-25T19:31:48.720 に答える
1

あなたのタグに基づいて、「クロスプラットフォーム」は本当にAndroidとiOSを意味していると思いますか? とは言うものの、どのクロスプラットフォーム ツールを選択するかという質問は、ここで何度も回答されており、繰り返すに耐えません。パフォーマンスと最適なソリューションを本当に気にしない場合を除き、ネイティブにすることをお勧めします。

とはいえ、ハードウェアへのインターフェースは興味深いはずです。Android には、Android の最近のバージョンと互換性のあるオープン アクセサリ プロトコルがあります。これは USB 経由の接続用です。Apple はかなり閉鎖的で、プロトコルやコネクタなどのライセンス料が必要です。最善の策は、ハードウェアをモバイル デバイスに接続するために Bluetooth や Wi-Fi を使用することです。これには、両方のデバイスに対して単一のハードウェア設計のみが必要であり、将来的にもある程度保証されます.

于 2012-10-25T18:52:05.427 に答える