Java プラットフォーム、マイクロ エディション

Java プラットフォーム、マイクロ エディション
プレーヤーソフトウェアジャワ
プログラミング言語ジャワ
アプリケーション組み込みシステムモバイルデバイス
状態非アクティブ
ライセンスOracleによる独自ライセンス
Webサイトwww.oracle.com/java/technologies/javameoverview.html

Java Platform, Micro EditionまたはJava MEは、組み込み機器やモバイル機器(マイクロコントローラ、センサー、ゲートウェイ、携帯電話、パーソナルデジタルアシスタント、テレビセットトップボックス、プリンター)向けの移植可能なコード開発と展開のためのコンピューティングプラットフォームです。 [ 1 ] Java ME は以前はJava 2 Platform, Micro EditionまたはJ2MEとして知られていました。

このプラットフォームは、オブジェクト指向のJavaプログラミング言語を使用し、Javaソフトウェアプラットフォームファミリーの一部です。サン・マイクロシステムズ(現オラクル社)によって設計され、類似の技術であるPersonalJavaに取って代わりました。

2013年には、Java ME対応の携帯電話が30億台以上市場に出回っていましたが、[ 2 ]スマートフォンがフィーチャーフォンを追い越したため、プラットフォームは衰退し続けました。[ 3 ]

歴史

このプラットフォームは、ノキアSeries 40などのフィーチャーフォンで人気を博していました。また、BadaオペレーティングシステムとSymbian OSでもネイティブソフトウェアと共にサポートされていました。Windows CEWindows MobileMaemoMeeGoAndroidのユーザーは、それぞれの環境向けにJava MEをダウンロードできました(Android向けの「概念実証」)。[ 4 ] [ 5 ]

Java MEは元々Java Community Processの下でJSR 68として開発されましたが、様々なフレーバーが個別のJSRとして進化してきました。Java MEデバイスはプロファイルを実装しています。最も一般的なプロファイルは、携帯電話などのモバイルデバイスを対象としたモバイル情報デバイスプロファイルと、セットトップボックスやPDAなどの消費者向け製品や組み込みデバイスを対象としたパーソナルプロファイルです。プロファイルは構成のサブセットであり、現在Connected Limited Device Configuration(CLDC)とConnected Device Configuration (CDC)の2つがあります。[ 6 ]

2008 年、Java ME プラットフォームはJRE 1.3 の機能に制限され、そのバージョンのクラス ファイル形式 (内部的にはバージョン 47.0 と呼ばれています) が使用されました。

実装

MicroEmulatorのスクリーンショット

Oracleは、仕様のリファレンス実装と、MIDPおよびCDCのいくつかの構成とプロファイルを提供しています。JavaME 3.0 SDK以降、NetBeansベースのIDEはこれらを単一のIDEでサポートしました。

Sun がサーバーやワークステーション向けに構築した Java プラットフォームの多数のバイナリ実装とは対照的に、Sun は Java ME ターゲットのプラットフォーム用のバイナリを提供しておらず、代わりにサードパーティに独自のバイナリを提供させる傾向がありました。

例外はPalm OS用のMIDP 1.0 JRE(JVM)でした。[ 7 ] Sunは、コード名「Captain America」で知られるPersonalJavaの内部実装の噂をリリースするようにSunに公開書簡でキャンペーンを行ったにもかかわらず、Microsoft Windows Mobile Pocket PC)ベースのデバイス用のJ2ME JREを提供していません。[ 8 ]サードパーティの実装はWindows Mobileベンダーによって広く使用されています。

ある時点で、Sun はphoneMEという名前で、現在は廃止されているリファレンス実装をリリースしました。

Java MEをターゲットとしたオペレーティングシステムは、 DoCoMoによってDoJaとして、またSavaJeによってSavaJe OSとして実装されています。SavaJeは2007年4月にSunに買収され、現在ではSunのJavaFX Mobileの基盤となっています。

オープンソースのMika VMはJavaME CDC/FPの実装を目指していますが、認定されていません(認定実装にはロイヤリティの課金が必要であり、オープンソースプロジェクトでは現実的ではありません)。そのため、この実装を使用するデバイスはJavaME CDCとの互換性を主張することはできません。

LinuxベースのAndroidオペレーティングシステムは、Javaの独自バージョンを使用していますが、これはJava MEと目的は似ていますが、多くの点で大きく異なります。[ 9 ]

エミュレータ

  • Sun Java Wireless Toolkit (略して WTK) は、当初 Sun Microsystems によって提供され、後に Oracle によって提供された独自の Java ME エミュレーターです。
  • MicroEmulator (略して MicroEMU) は、オープンソースの Java ME エミュレーターです。
  • J2ME Loader — オープンソースの Android Java ME エミュレーター。
  • FreeJ2ME-plus — Libretro および AWT フロントエンドをサポートする、無料のクロスプラットフォーム J2ME エミュレーターである FreeJ2ME のフォーク。

他にも、 NokiaSony-EricssonSiemens Mobileなど の携帯電話メーカーが開発キットの一部として提供するエミュレーターなどがあります。

接続された限定デバイス構成

Connected Limited Device Configuration (CLDC) は、Java クラスライブラリの厳密なサブセットであり、 Java 仮想マシンの動作に必要な最小限のライブラリです。CLDC は基本的に、多数のデバイスを固定構成に分類するために使用されます。

構成は、J2ME環境の各実装に必須のライブラリと仮想マシン機能の最も基本的なセットを提供します。1つ以上のプロファイルと組み合わせることで、Connected Limited Device Configurationは、コンシューマー向けおよび組み込みデバイス向けアプリケーションを開発するための堅牢なJavaプラットフォームを提供します。この構成は、合計メモリが160KB~512KBのデバイス向けに設計されており、Javaプラットフォーム用に最低160KBのROMと32KBのRAMが利用可能です。

モバイル情報デバイスプロファイル

携帯電話向けに設計されたモバイル情報デバイスプロファイルには、 GUIとデータストレージAPIが含まれており、MIDP 2.0には基本的な2DゲームAPIが含まれています。このプロファイル向けに作成されたアプリケーションはMIDletと呼ばれます。

JSR 271: Mobile Information Device Profile 3(2009年12月9日最終リリース)は、第3世代のMobile Information Device Profile(MIDP3)を規定し、あらゆる領域における機能性の拡張とデバイス間の相互運用性の向上を図っています。MIDP3の主要な設計目標は、MIDP2コンテンツとの下位互換性を確保することです。

情報モジュールプロファイル

情報モジュール プロファイル(IMP) は、自動販売機、産業用組み込みアプリケーション、セキュリティ システム、およびディスプレイがシンプルまたはディスプレイがなく、ネットワーク接続が制限されている同様のデバイスなどの組み込みの「ヘッドレス」デバイス用のプロファイルです。

IMP 1.0 は、もともとSiemens MobileNokiaによってJSR -195として導入されましたが、ユーザー インターフェイスAPI を含まない点を除いてM​​IDP 1.0の厳密なサブセットです。言い換えると、Java パッケージ のサポートは含まれていません。JSR-228 (IMP-NG とも呼ばれます) は、 MIDP 2.0に基づいた IMP の次世代であり、MIDP 2.0 の新しいセキュリティとネットワークのタイプと API、および や などのその他の APIを活用していますが、UI API とゲーム API は含まれていません。 javax.microedition.lcduiPushRegistryplatformRequest()

接続デバイスの構成

Connected Device Configuration( CDC)はJava SEのサブセットであり、GUI関連以外のほぼすべてのライブラリが含まれています。CLDCよりも豊富な機能を備えています。

財団プロフィール

Foundation Profile は、Java ME Con​​nected Device Configuration (CDC) プロファイルです。このプロファイルは、Java Platform, Standard Edition API 全体を含む Java 仮想マシンの完全な実装を必要とするデバイスでの使用を想定しています。一般的な実装では、サポートされる追加プロファイルに応じて、API セットの一部が使用されます。この仕様は、Java Community Process に基づいて開発されました。

個人ベースプロファイル

Personal Basis Profileは、Foundation Profileを拡張し、 AWTサブセットの形で軽量GUIサポートを組み込みます。これはBD-Jが構築されている プラ​​ットフォームです。

JSR (Java 仕様要求)

財団

JSR #名前説明
68J2ME プラットフォーム仕様
30CLDC 1.x
37MIDP 1.0
118MIDP 2.x
139CLDC 1.1
271MIDP 3.0Java ME 3.4 以前のみ、携帯電話向けの最終仕様、Java 言語機能は Java SE 1.3 と同じ
360CLDC8Java ME 8の新機能
361ミープ8Java ME 8の新機能、Java SE 8と同様の言語機能、Internet of Everythingデバイス 向け

主な拡張機能

JSR #名前説明MSA
75ファイル接続とPIM APIファイルシステム、連絡先、カレンダー、ToDoはい
82ブルートゥースBluetooth シリアルポート通信とファイル交換 (OBEX)はい
120ワイヤレス メッセージング API (WMA)
135モバイル メディア API (MMAPI)オーディオ、ビデオ、マルチメディアはい
172WebサービスAPIXMLパーサーとRPCはい
177セキュリティおよび信頼サービス API (SATSA)APDU、Java Card RMI(JCRMI)、公開鍵インフラストラクチャ(PKI)、暗号化はい
179ロケーションAPIGPS座標、住所、方位センサー、ランドマーク店舗はい
180SIP APIはい
184モバイル3Dグラフィックス(M3G)ハイレベルな3Dグラフィックスはい
185ワイヤレス業界向け Java テクノロジー (JTWI)一般的な
205ワイヤレス メッセージング API (WMA) 2.0SMSとMMSの送受信
211コンテンツハンドラー API (CHAPI)はい
226J2ME 用スケーラブル 2D ベクター グラフィックス API (M2G)SVG Tinyの取り扱いはい
228情報モジュールプロファイル – 次世代 (IMP NG)
229支払いAPIはい
234高度マルチメディア補足資料(AMMS)MMAPI拡張はい
238モバイル国際化APIローカライズされたリソース、ロケールの日付と数値の書式設定、ロケールの文字列の比較はい
239OpenGL ES API の Java バインディング
248モバイル サービス アーキテクチャ (MSA)はい
253モバイルテレフォニーAPI
256モバイルセンサーAPI加速度計、ジャイロスコープ、コンパス、温度計、気圧計などからの値の読み取り
257非接触通信API
258モバイルユーザーインターフェースカスタマイズAPI
272携帯端末向けモバイル放送サービスAPI
280Java ME 用 XML API
281IMS サービス API
287Java ME 用スケーラブル 2D ベクター グラフィックス API 2.0
293ロケーション API 2.0
298Java ME 向けテレマティクス API
300Java ME 用 DRM API
325IMS 通信イネーブラー

未来

JSR #名前説明
297モバイル 3D グラフィックス API (M3G) 2.02009年4月14日最終草案

ESR

ESRコンソーシアムは、組み込みJavaの標準規格策定に取り組んでいます。特にコスト効率の高い標準規格を策定しています。代表的なアプリケーション分野としては、産業用制御、マシンツーマシン、医療、電子メーター、ホームオートメーション、コンシューマー、ヒューマンツーマシンインターフェースなどが挙げられます。

ESR #名前説明
001B-ON(CLDCを超えて)B-ONは、組み込みJavaソフトウェアを実装するための非常に堅牢な基盤として機能します。Javaデバイスの信頼性の高い初期化フェーズと、不変オブジェクト、不滅オブジェクト、通常オブジェクト(消滅オブジェクト)の3種類のオブジェクトを規定します。
002マイクロUIMicroUIは、組み込みHMIデバイス向けのオープンなサードパーティ製アプリケーション開発環境を実現するための拡張アーキテクチャを定義します。このようなデバイスは通常、何らかのディスプレイ、入力センサー、そして場合によってはサウンドレンダリング機能を備えています。この仕様は、幅広いデバイスに対応します。
011MWTMWTは、ウィジェットデザイナー、ルックアンドフィールデザイナー、アプリケーションデザイナーという3つの異なる役割を定義します。MWTは、バイナリHMIアプリケーションを、MWTフレームワークに準拠するすべてのデバイス(組み込みデバイス、携帯電話、セットトップボックスTV、PCなど)で同じように実行できるようにすることで、製品ライン(ME、SE、EE)全体にわたってアプリケーションの真の一貫性と普遍性を実現します。
015エクラスパスECLASSPATHは、CLDC、CDC、Foundation、SE、EE実行環境を約300個のクラスAPIセットで統合します。CLDC1.1/ECLASSPATHを使用してコンパイルすることで、バイナリコードをすべてのJava実行環境で移植できるようになります。

参照

参考文献

注記

参考文献