DoJaプロファイル

DoJaプロファイルの最新ニュースをまとめて検索!

DoJaプロファイル(ドゥージャプロファイル)はNTTドコモグループの携帯電話であるmovaシリーズ及びFOMAシリーズに搭載されるJava実行環境の仕様である。通称DoJaと言われている。

DoJaは技術的な用語であり、一般向けには「iアプリ」と呼んだ方がとおりがよい(ドコモのマーケティング戦略でもあると思われる)。

目次

[編集] 特徴

DoJaはサン・マイクロシステムズ (以下「サン」と略)のJavaプラットフォーム構想において、Java MEにおける、CLDC上の1プロファイルとして位置づけられる。

携帯電話は一般に大画面のディスプレイマルチウィンドウシステムマウスなどのポインティングデバイスを持たない上、ハードウェアスペック(CPUスピード、メモリ容量)がデスクトップ・サーバに比べて比較的貧弱であるなど、デスクトップのJava環境と比べて大きな差がある。そのため、DoJaのJava APIもJava SEと比べてかなりの違いがある。

ただ、Javaの言語仕様としては浮動小数点数処理ができないこと、ファイナライザが動作しないことを除き、デスクトップのJava環境とくらべて差異はないと言ってもよい。マルチスレッド処理を含めて、本当のJavaプログラミングを行うことが可能である(これらはDoJaのというよりCLDC 1.0の特徴)。ただし、DoJa 4.0以降はCLDC 1.1が採用されたため浮動小数点数処理が可能である。

DoJaが動作する携帯電話上においては、ファイルシステムを持たず、データの保存には「スクラッチパッド」と呼ばれる領域を用いる。また、ネットワーク通信を行うことができる(iアプリをダウンロードしたホストとのみ通信できる)。

[編集] 実行形態

DoJaでは、コンパイルしたClassファイル、および実行に必要な画像や音楽データを含めて、Jar形式でパッケージ化しておく。このように準備されたiアプリはHTTPあるいはHTTPS通信を通じて、携帯電話にダウンロードされ実行される。メモリースティックSDカードなどの外部記憶媒体を使ってインストールする方法は今のところ公式に発表されていないし、非公式にも発見されていない。セキュリティに関しては、非常に厳しく、公開された方法を使って他のアプリとスクラッチパッド上のデータを共有したり、電話帳やメールデータにアクセスすることはできない(後述のiアプリDX仕様を使えば一部実現可能と思われる)。

尚、DoJaで実行するClassファイルは、パッケージする前に通常のコンパイルのほかに、preverifyというツールを使って前処理(事前検証)を行っておく必要がある。これはCLDCの制限(というより特徴)であり、実行時・ロード時のバイトコードベリファイの負荷を減らすために、あらかじめ型情報を調査し、その情報をクラスファイル内に添付しておく必要があるためである。

[編集] Java API

CLDCは、組み込み向けの一般的な共通機能を絞り込んだAPI仕様を持っており、GUIなどを定義していない。J2MEの枠組みでは、それらはプロファイルで定義される。

DoJa APIにはiアプリ基本API、iアプリオプションAPI、iアプリ拡張APIの3種類がある。

  • iアプリ基本APIとは共通仕様で、全機種が標準にあり、APIおよび動作が規定されている。
  • iアプリオプションAPIとは共通仕様で、APIおよび動作が規定されているが端末ごとに搭載の有無はメーカーが決定している。
  • iアプリ拡張APIとはメーカーが独自にAPIおよび動作を規定したもので、ソースレベルで他のメーカーと互換性がないことを考慮する必要がある。

iアプリオプションAPI及びiアプリ拡張APIについては、対応している携帯電話でないと実行できない。

DoJaにおいてUI処理には、com.nttdocomo.ui.*パッケージに含まれる独自のUIクラス群を使用する。入出力においては、CLDCのジェネリックIOフレームワークに基づき、ネットワーク入出力処理(HTTP, HTTPS)、スクラッチパッドアクセス処理、Jarリソースに含まれたデータの入力処理などを行うことができる。

DoJa 2.0 (504i, 2051, 2701, 2102V)以降は、待ち受け画面のように常に常駐して動作する「待ち受けiアプリ」の機能や赤外線通信機能が追加された。また、DoJaオプション機能としてゲーム向けの機能(スプライト3Dポリゴンなど)、カメラ機能などが定義された。

DoJa 3.0 (505i, 506i, 900i)では、ゲーム向け機能の一部が標準機能になった。また、「iアプリDX」として、携帯電話の電話帳にアクセスしたり、メールなどと連携できるような機能が追加された。これらのiアプリDX機能の詳細については一般には公開されていない(公式コンテンツプロバイダ向けにのみ提示されているものと思われる)。またオプション機能としてバーコードの読み取り機能、指紋認証機能などが追加されている。

DoJa 4.0では基本APIにマスコットカプセル4.0を制御する3Dグラフィックス描画機能と3Dサウンド制御機能が追加され、またDoJa 2.0以降と同じくマスコットカプセル3.0を制御する拡張APIも削除されずに残された。つまり、マスコットカプセル3.0及び4.0が使用でき、それぞれの特徴として3.0は値として整数を使用するため高速で動作するが4.0は値として浮動小数点を使用するため3.0より描画が遅い。ただし、4.0LEではマスコットカプセル4.0を制御する3Dグラフィックス描画機能と3Dサウンド制御機能は標準APIは使用することはできない。

DoJa 4.1では基本APIにセキュリティ機能(デジタル署名)およびSDカードを制御するAPIが追加された。

DoJa 5.0では基本APIにメモリ管理、GPS制御、オプションAPIにハードウェアを使用するOpen GL ES 1.0相当の3D描画、Bluetooth制御のAPIが追加された。

[編集] 歴史

  • 最初の版のDoJa 1.0仕様は、デジタルムーバ503i及び503iSシリーズ並びにFOMA2001、2002、2101Vシリーズに搭載。
  • DoJa 2.0仕様は、mova 504i及び504iSシリーズに搭載。
  • DoJa 2.1仕様は、FOMA 2051、2701シリーズに搭載。
  • DoJa 2.2仕様は、FOMA 2102Vシリーズに搭載。
  • DoJa 3.0仕様は、mova 505i及び505iS、506iシリーズに搭載。
  • DoJa 3.5仕様は、FOMA 900iシリーズに搭載。
  • DoJa 4.0仕様は、FOMA 901iシリーズに搭載。
  • DoJa 4.0LE仕様は、FOMA 700i、701i及び702iシリーズに搭載。
  • DoJa 4.1仕様は、FOMA 902iシリーズに搭載。
  • DoJa 5.0仕様は、FOMA 903i及び904iシリーズに搭載。
  • DoJa 5.0LE仕様は、FOMA 703iシリーズに搭載。
  • DoJa 5.1仕様は、FOMA 905iシリーズに搭載。

※DoJa 1.0から3.5まではCLDC 1.0である。DoJa 4.0以降はCLDC 1.1であり浮動小数点が使用できる。

DoJaは携帯電話が新しいデバイスを装備することにそれに対応する制御APIとして拡張されてきた。携帯電話自身の性能もハードウェア技術の進歩により、503i登場当初に比べ飛躍的にその実行速度、容量(一回で送受できる通信量や、スクラッチパッドの容量)、画面サイズなどを増やしているため、登場当初と比較してはるかに高機能なアプリケーションを書くことができるようになって来ている。

特に、アプリケーションサイズの制約は当初10KB(Jar圧縮後(FOMAは30KB)、スクラッチパッド10KB)という極めて厳しいものであったが、DoJa 2.0以降は30KB(スクラッチパッド100KB(505i以降及びFOMAは200KB))まで拡張されている。DoJa 3.5以降は100KB(スクラッチパッド400KB)まで拡張された。ただし、DoJa 4.0LEはJARファイルが30KBまで、スクラッチパッドサイズが200KBまでに制限されている。DoJa 5.0ではプログラムとスクラッチパッドの境界がなくなり、あわせて1MBになった。

[編集] 互換性

同様の携帯電話向けJava実行環境のプロファイルには、サン自身によるMIDPがあるが、開発時期の違いからか、NTTドコモグループ(以下「ドコモ」と略)の携帯電話には採用されるには至らなかった。

auソフトバンクモバイルウィルコムの携帯電話もJava実行環境を搭載しているが、いずれも世界中で広く採用されているMIDPを採用しており、DoJaとの互換性はない。厳密には、CLDCの範囲内では同様に動作するプログラムを作ることはできるかもしれないが、アプリケーションのパッケージングなどの方法も異なる。いずれにせよ、画面表示などの機能に互換性はないのでそのまま同じものが動作するという意味での互換性は無いといってよい。同じCLDCに基づくJava環境ではあるのでコードの一部もしくは多くを共通化できる可能性はある。

もうひとつ考える必要があるのは、機種間の互換性の問題である。DoJaはJava実行環境の仕様であるため、下位層としてのJava VMの実装やあるいはハードウェアに関して統一がなされていない。このことはJavaの思想からは正しいのだが、Javaアプリケーションの振る舞いに関して携帯電話各メーカ間の実装差異は決して小さくない。

特に商用コンテンツとしてiアプリを開発する場合、機種間の差異は深刻な問題である。版を重ねるにつれて仕様の詳細度も増し、実装差異は一般には解決されていく方向ではあるといえるものの、開発期間の短さや、次々と採用される新機能、新メーカーの参入、そして過去の機種との互換性などを考慮とすると今後とも非常に深刻な問題であるといえる。なお、auの携帯電話ではベースとなるクアルコム社製のアプリケーションプロセッサチップおよび採用されるJava VMが統一されているため、メーカ間互換性の問題は原理的にはおき得ない。

[編集] DoJaの今後

FOMA2008年秋冬モデル(X-0XA)のうち、iWdgt(iウィジェット)・iアプリオンライン対応機種については、新たにドコモとサン・マイクロシステムズによって共同開発されたStarプロファイルが定義された。

ただし、DoJaとはAPIの互換性がないため、Star環境によって動作させるためには別途移植作業が必要となる。

また、待ち受けiアプリなど、Starでは廃止される機能が存在する(iWdgtにて代替させる)。

また、今後の仕様拡張はStarでのみ行われる予定。

また、端末には当面の間はDoJa実行環境も並行して搭載される予定。

Starプロファイル向けの技術資料ダウンロード

[編集] 開発

ドコモにより無料で提供されているDoJaエミュレータを使用してPC上で開発し、携帯電話にダウンロードさせて実行するというクロス開発の形態をとる。DoJaエミュレータはForte (Sun ONE Studio)などとの連動機能や、フリーソフトウェアを使用し、Eclipseとの連携を行うことができる。

[編集] 外部リンク

ウィキブックス
ウィキブックスJava関連の教科書や解説書があります。


最終更新 2009年9月15日 (火) 12:19 (日時は個人設定で未設定ならばUTC)。
【DoJaプロファイル】変更履歴

ご利用上の注意