J2MEを使用してモバイルアプリケーションを作成することは可能ですか?J2MEで提供されていない機能を実装する場合はいつでもネイティブモバイルAPIを呼び出しますか?(.NETで行われることと同じように、提供されていないものが必要な場合は、.NETプラットフォームからWin32 APIを呼び出すだけです)。
4 に答える
JNIはJ2MEで公式にサポートされていませんが、J2MEのSymbian実装は明らかに非常によく似たものを使用しています。
ほとんどのJ2MEAPIには対応するSymbianOSC ++ APIがあるため、Symbianが(多くのことを)行ったことは、2つの間にアダプテーション層を開発することです。
それとIBMJ9仮想マシンの新しいモジュラーアーキテクチャー(Series60 3rd Edition Feature Pack 2以降)の間で、実際にほとんどの受話器ファームウェアを再コンパイルする必要なしに、仮想マシンに新しいAPIを追加することは技術的に可能です。
ただし、サードパーティの開発者は、受話器メーカーからの多くの支援なしにそれを行うことは許可されていません。
ループバックソケット接続は、言語の壁を越えてデータを転送するために人々が一般的に実装しているソリューションです。ただし、技術的にはデバイスに2つのアプリケーションをインストールする必要があるため、大規模な展開は最も簡単な作業ではありません。Symbian J2ME実装のスレッドモデルを理解すると、それがいかに醜く非効率的なハッキングであるかもわかります。
この種の問題に到達したら、Symbian OSC++を学習して正しく実行するときが来ました。
いいえ。JavaMEでは不可能です。
ある種だけ。実際には可能ですが、直接ではありません。ローカルソケットをリッスンし、JavaMIDletからそのソケットにリクエストを送信するネイティブサーバーを作成できます。誰かが(実際のJNIとは対照的に)MIDP-JNIと呼ばれるこれを行うためのフレームワークをリリースしました。明らかに、ソリューションの形式は、それを使用して実行できることに対していくつかの制限を課しますが、実際には不可能ではありません。
このアプローチを使用すると、アプリケーションのデバッグがはるかに複雑になる可能性があることに注意してください。
特にNokia/Symbianを探している場合は、APIBridgehttp : //wiki.forum.nokia.com/index.php/J2ME_API_Bridge_Interfaceが解決策になる可能性があります。通常、これは「ローカルソケット上のネイティブサーバー」の「公式」バージョンです。APIBridgeは「拡張可能」であり、適切な「低レベル」タスク用に独自の「プラグイン」を作成できます。