.NET Compact Frameworkを使用できるのと同じように、J2MEで一度コードを作成して携帯電話で実行できますか?J2ME - 一度コードしてどこでも実行できますか?
答えて
あなたが書いたJ2MEのコードは、実行時の条件とそれにアクセス可能なクラスで電話上の特定の環境を必要とします。アプリケーションで使用するものによっては、いくつかの電話機で実行することができ、他の電話機では動作しません。例えば、 MIDP 2.0とCDLC 1.1を使用するJ2MEアプリケーションを考えてみましょう。これで、あなたのアプリはこれらのプロファイルをサポートする電話機でのみ動作します。
通常、携帯電話アプリケーションの作成時に、携帯電話の特定のセグメントをターゲットにします。あなたは、加速度計を持っていない携帯電話で動作する加速度計アプリケーションを期待していません! (私はJ2MEが加速度計のサポートを持っているとは思っていません;))
各プロバイダがJVMをどのように実装したかに違いがあります。各携帯電話のハードウェアは異なるため、それぞれの動作は若干異なります。ほとんどのものは動作しますが、いくつかの違いがあります。
J2MEも.NET Compact Frameworkも遍在していません(ただし、J2MEは非常に多くの電話機でサポートされていますが)。サポートする電話機でのみ実行できます。どちらの場合でも、プラットフォーム/フレームワークがサポートされている場所であれば、一度だけ記述して実行することができます。
もちろん、Javaでサポートされているどの携帯電話でもMIDletを実行できます。
しかし、それは、J2MEのコーディングに来るとき、スローガン「一度書けばどこでも実行するには、」
を「どこでも、一度デバッグを書く」または
を「どこでも書き換え、一度書き込み」
なり断片化に苦しむ
私は少し楽観的な(そしておそらく可愛らしい)バージョンを好んでいます: "一度書いて、どこでもテストする" :) – Martin
いくつかのエリア:
基本的なGUIコントロールのみを使用している場合、アプリケーションは電話機ごとに少し違って見える場合があります。あなたがいない場合は、異なる画面サイズと入力方法(キーパッドとタッチスクリーン)を扱うコードを書く必要がありません。
メーカーは、マルチメディアとネットワークの仕様を異なる方法で解釈したり、バグのある電話機を発送する傾向があります。一部のモバイルネットワークオペレータは、HTTPネットワークトラフィックのみを許可します。
ファイルシステムへのアクセスを規制するセキュリティポリシーは、電話機ごとに異なります。一部の電話機では、RMSレコードのサイズを制限することができます。
パフォーマンスは電話機ごとに大きく異なります。
...
まず、ここでのコメントのほとんどは真実ですが、異なるJVMは実際には若干異なった動作をする可能性があります。あなたは使用しています。
ただし、考慮すべきもう1つの考慮事項があります:標準化。私はモバイルサービスアーキテクチャ(MSA - JSR 248)のようなものを意味し、いくつかの標準的なAPIのセットを作成することによって大幅に単純化します。さらに、それらには、含まれているAPIとその実装方法に関する規則にいくつかの説明があります。
また、MIDP 2.1のようなものは、締め付けスタンドアーツです。 2.1 verisonは基本的には2.0ですが、 "bolt tightened":いくつかの側面を明確にし、潜在的な断片化を取り除くより厳格な規則です。たとえば、いずれの場合でもダブルバッファリングを含めるか、デバイスにJavaがある場合はJavaのタッチスクリーンをサポートするという要件があります。
結論として、私は断片化が本当に減少していると結論づけるべきです。メーカーはJSR 248のようなスタンドアーツを採用しています。しかし、アプリケーションを必要に応じてテストしてください、私たちはすべての人であり、JVM開発者も間違いを犯し、そのコード。
- 1. emacsシェル:一度入力してどこでも実行
- 2. Django/Python:一度インポートして、どこでも使用します
- 3. Pythonコードを何度も何度も何度も実行できるのですか?
- 4. もう一度サービスを実行していますか?
- 5. どこからでもJSスクリプトを実行できますか?
- 6. コード内部では一度も実行されていませんangularjs
- 7. 自動スケール:どこでも実行できますか?
- 8. WebGLで描画呼び出しごとにコードを一度実行することはできますか?
- 9. このコードでMessageBoxを何度も実行するのはなぜですか?
- 10. Android - タスクを実行し、何もしないでもう一度タスクを実行しますか?
- 11. javascript:すべてのタブでコードを一度実行する
- 12. コードをもう一度実行しないでPythonループを開始
- 13. このコードは、少ないメディアクエリでも実行できますか?
- 14. python logger - 一度しか実行できません
- 15. Pythonは一度プログラムを実行しますが、もう一度実行しません。
- 16. Sony Ericsson Xperia(Android OS)はJ2MEアプリケーションを実行できますか?
- 17. 角2を一度ビルドしてどこにでも展開
- 18. j2meエラーコード1、CLDC実行で実行に失敗しました
- 19. Javascriptもう一度クリックして実行してください
- 20. LinuxはどこからでもCASAを実行します
- 21. vbsはどこからでもps1を実行します
- 22. サーバ上でスクリプトpythonを何度も実行して実行します
- 23. OnDropイベントはSafariで一度も実行されません
- 24. 何度も何度も何度も何度もイベントを実行します。
- 25. このjqueryコードで論理ANDを実行できますか?
- 26. Asp.net mvc ajaxもう一度実行中
- 27. このコードを実行すると、何度も繰り返しロールオーバーします。これをどうやって解決するのですか?
- 28. @ViewChildを何回もインスタンス化して、HTMLをもう一度使うことができます。角度4
- 29. このコードをSilverlightでどのように実行できますか?
- 30. Flask app.runを呼び出してもPythonコードを実行し続けることはできますか?
それはそうではありません。 Sensor API(JSR 256)を参照してください。 http://jcp.org/ja/jsr/detail?id=256 – funkybro
JSRはありませんでした。とにかく、私が伝えようとしてきたことは、その機能とアプリケーション要件に基づいて電話機をターゲットにすることです。 – Prashast