.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. もう一度サービスを実行していますか?
- 3. Android - タスクを実行し、何もしないでもう一度タスクを実行しますか?
- 4. 何度も何度も何度も何度もイベントを実行します。
- 5. OnDropイベントはSafariで一度も実行されません
- 6. vbsはどこからでもps1を実行します
- 7. Sony Ericsson Xperia(Android OS)はJ2MEアプリケーションを実行できますか?
- 8. j2meエラーコード1、CLDC実行で実行に失敗しました
- 9. どのように2つのUIViewを一度にアニメーション化できますか?このコードを使用して
- 10. このjqueryコードで論理ANDを実行できますか?
- 11. ストアドプロシージャをもう一度データベースに一度に復元できますか?
- 12. このコードをSilverlightでどのように実行できますか?
- 13. スレッドは終了後にもう一度実行されます
- 14. いくつかのコードを一度だけ実行する
- 15. PHPで複数のSQL文を一度に実行できますか?
- 16. Xサーバを実行しなくてもSeleniumスクリプトを実行できますか?
- 17. AutoItを使用してJDKファイルを実行できません。誰もこのコードで何が間違っているか教えてもらえますか?
- 18. ボタンのアニメーションは一度だけ実行できません
- 19. Pythonコンテキストマネージャはどのようにしてコードを実行できますか?
- 20. アンドロイドで一度に複数のアクティビティを実行していますか?
- 21. どこで連続して実行するスクリプトをホストできますか?
- 22. このAJAX/JSONPコードはどのように実行できますか?
- 23. このリンクのコードをどのように実行できますか?
- 24. xcodeスタックトレースをもう一度読むことができますか?
- 25. Pythonモジュールからコードを実行し、モジュールを変更してからインターピュータを終了せずにもう一度実行してください
- 26. DotNetOpenAuth OnLoggedInイベントは一度も実行されません
- 27. どこでハイパフォーマンスコンピューティングタスクをオンラインで実行できますか?
- 28. フォームに対して異なる値でSpockテストを何度も実行できますか?
- 29. 一度に1人のコードしか実行できないようにする方法
- 30. ブラウザコンソールで角度コードを実行してください
それはそうではありません。 Sensor API(JSR 256)を参照してください。 http://jcp.org/ja/jsr/detail?id=256 – funkybro
JSRはありませんでした。とにかく、私が伝えようとしてきたことは、その機能とアプリケーション要件に基づいて電話機をターゲットにすることです。 – Prashast