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

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

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

このプラットフォームは、オブジェクト指向の 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 MEと目的が似ているものの、多くの点で大きく異なる独自バージョンのJavaを使用しています。[9]

エミュレータ

  • Sun Java Wireless Toolkit (略して WTK) は、元々は Sun Microsystems によって提供され、後に Oracle によって提供された独自の Java ME エミュレーターです。
  • MicroEmulator (略して MicroEMU) は、オープンソースの Java ME エミュレーターです。

他にも、 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実行環境で移植できるようになります。

参照

参考文献

  1. ^ 「Java MEの概要」Oracle Corporation . 2017年2月26日閲覧
  2. ^ “Javaテクノロジーについて学ぶ”. 2013年3月8日時点のオリジナルよりアーカイブ2024年2月15日閲覧。
  3. ^ Farivar, Cyrus (2013年8月14日). 「スマートフォンがフィーチャーフォンを(再び)初めて世界的に上回る」. Ars Technica . 2024年3月15日閲覧
  4. ^ Windows CE、Windows Mobile、Android用のphoneME(2011年6月15日に開発が停止) - 出典はこちら
  5. ^ “App Runner (開発は2010年5月11日に停止)”. 2012年1月3日時点のオリジナルよりアーカイブ2012年8月5日閲覧。
  6. ^ Java ME テクノロジー
  7. ^ MIDP for Palm OS 1.0: Palm OS デバイス向け Java アプリケーションの開発 2002 年 1 月
  8. ^ CDCと個人プロファイル - Pocket PC用の個人用Java JREを作成するためのSUNへの公開書簡 2008年6月3日アーカイブ、Wayback Machine 2003
  9. ^ モバイルアプリケーション開発:AndroidとJ2MEの比較 2018年9月25日アーカイブ、Wayback Machine 2013年2月
注記
  • JSR 232: モバイル運用管理 – モバイルコンピューティングのための高度な OSGi 技術ベースのプラットフォーム
  • JSR 291: Java SE の動的コンポーネント サポート - Java SE から Java ME への対称プログラミング モデル JSR 232

参考文献

  • Sun Developer Network、Java ME
  • Nokiaの開発者ハブJavaページ
  • Nokia S60 Javaランタイムブログ
  • ソニー・エリクソン デベロッパーワールド
  • Motorola Developer Network 2009年7月21日アーカイブ、Wayback Machine
  • J2ME オーサリングツール LMA ユーザーネットワーク
  • Samsung Mobile Developerのサイト
  • Sprint アプリケーション開発者のウェブサイト
  • Java ME 対応デバイスのパフォーマンスデータベース
  • 組み込みシステム向け MicroEJ プラットフォーム
  • 書籍 - Java ME (J2ME) を使用した携帯電話プログラミング 2016年3月5日アーカイブ、Wayback Machine
  • チュートリアルマスターng、J2ME
「https://en.wikipedia.org/w/index.php?title=Java_Platform,_Micro_Edition&oldid=1321030964」より取得