2009-05-15 5 views

答えて

3

あなたが書いたJ2MEのコードは、実行時の条件とそれにアクセス可能なクラスで電話上の特定の環境を必要とします。アプリケーションで使用するものによっては、いくつかの電話機で実行することができ、他の電話機では動作しません。例えば、 MIDP 2.0とCDLC 1.1を使用するJ2MEアプリケーションを考えてみましょう。これで、あなたのアプリはこれらのプロファイルをサポートする電話機でのみ動作します。

通常、携帯電話アプリケーションの作成時に、携帯電話の特定のセグメントをターゲットにします。あなたは、加速度計を持っていない携帯電話で動作する加速度計アプリケーションを期待していません! (私はJ2MEが加速度計のサポートを持っているとは思っていません;))

+1

それはそうではありません。 Sensor API(JSR 256)を参照してください。 http://jcp.org/ja/jsr/detail?id=256 – funkybro

+0

JSRはありませんでした。とにかく、私が伝えようとしてきたことは、その機能とアプリケーション要件に基づいて電話機をターゲットにすることです。 – Prashast

5

各プロバイダがJVMをどのように実装したかに違いがあります。各携帯電話のハードウェアは異なるため、それぞれの動作は若干異なります。ほとんどのものは動作しますが、いくつかの違いがあります。

1

J2MEも.NET Compact Frameworkも遍在していません(ただし、J2MEは非常に多くの電話機でサポートされていますが)。サポートする電話機でのみ実行できます。どちらの場合でも、プラットフォーム/フレームワークがサポートされている場所であれば、一度だけ記述して実行することができます。

2

もちろん、Javaでサポートされているどの携帯電話でもMIDletを実行できます。

しかし、それは、J2MEのコーディングに来るとき、スローガン「一度書けばどこでも実行するには、」

を「どこでも、一度デバッグを書く」

または

を「どこでも書き換え、一度書き込み」

なり断片化に苦しむ

+2

私は少し楽観的な(そしておそらく可愛らしい)バージョンを好んでいます: "一度書いて、どこでもテストする" :) – Martin

5

いくつかのエリア:

  • 基本的なGUIコントロールのみを使用している場合、アプリケーションは電話機ごとに少し違って見える場合があります。あなたがいない場合は、異なる画面サイズと入力方法(キーパッドとタッチスクリーン)を扱うコードを書く必要がありません。

  • メーカーは、マルチメディアとネットワークの仕様を異なる方法で解釈したり、バグのある電話機を発送する傾向があります。一部のモバイルネットワークオペレータは、HTTPネットワークトラフィックのみを許可します。

  • ファイルシステムへのアクセスを規制するセキュリティポリシーは、電話機ごとに異なります。一部の電話機では、RMSレコードのサイズを制限することができます。

  • パフォーマンスは電話機ごとに大きく異なります。

...

2

まず、ここでのコメントのほとんどは真実ですが、異なるJVMは実際には若干異なった動作をする可能性があります。あなたは使用しています。

ただし、考慮すべきもう1つの考慮事項があります:標準化。私はモバイルサービスアーキテクチャ(MSA - JSR 248)のようなものを意味し、いくつかの標準的なAPIのセットを作成することによって大幅に単純化します。さらに、それらには、含まれているAPIとその実装方法に関する規則にいくつかの説明があります。

また、MIDP 2.1のようなものは、締め付けスタンドアーツです。 2.1 verisonは基本的には2.0ですが、 "bolt tightened":いくつかの側面を明確にし、潜在的な断片化を取り除くより厳格な規則です。たとえば、いずれの場合でもダブルバッファリングを含めるか、デバイスにJavaがある場合はJavaのタッチスクリーンをサポートするという要件があります。

結論として、私は断片化が本当に減少していると結論づけるべきです。メーカーはJSR 248のようなスタンドアーツを採用しています。しかし、アプリケーションを必要に応じてテストしてください、私たちはすべての人であり、JVM開発者も間違いを犯し、そのコード。

関連する問題