DoJaプロファイル
出典: フリー百科事典『ウィキペディア(Wikipedia)』
DoJaプロファイル(ドージャプロファイル)はNTTドコモグループの携帯電話であるmovaシリーズ及びFOMAシリーズに搭載されるJava実行環境の仕様である。
DoJaプロファイル(以下「DoJa」と略)は、 Sun Microsystems, Inc. (以下「サン」と略)のJavaプラットフォーム構想において、Java Platform, Micro Edition(Java ME)における、Connected Limited Device Configuration(CLDC)上の1プロファイルとして位置づけられる。同様の携帯電話向けJava実行環境のプロファイルには、サン自身による Mobile Information Device Profile(MIDP)があるが、開発時期の違いからか、NTTドコモグループ(以下「ドコモ」と略)の携帯電話には採用されるには至らなかった。
DoJaはむしろ技術的な用語であり、一般向けには「iアプリ」と呼んだ方がとおりがよい(ドコモのマーケティング戦略でもあると思われる)。
目次 |
[編集] 特徴
携帯電話は一般に大画面のディスプレイやマルチウィンドウシステム、マウスなどのポインティングデバイスを持たないし、ハードウェアスペック(CPUスピード、メモリ容量)がデスクトップ・サーバJava環境に比べて比較的貧弱であるなど、デスクトップのJava環境と比べて大きな差がある。そのため、DoJaのJava APIもJava Platform, Standard Edition(Java SE)と比べてかなりの違いがある。
ただ、Javaの言語仕様としては浮動小数点処理ができないこと、ファイナライザが動作しないことを除き、デスクトップのJava環境とくらべて差異はないと言ってもよい。マルチスレッド処理を含めて、本当のJavaプログラミングを行うことが可能である(これらはDoJaのというよりCLDC 1.0の特徴。CLDC 1.1では浮動小数点演算がサポートされる)。ただし、DoJa 4.0以降はCLDC 1.1が採用されたため浮動小数点処理が可能である。
DoJaが動作する携帯電話上においては、ファイルシステムを持たず、ローカルなデータの保存には「スクラッチパッド」と呼ばれる領域を用いる。また、ネットワーク通信を行うことができる(iアプリをダウンロードしたホストとのみ通信できる)。
[編集] 実行形態
DoJaでは、コンパイルしたClassファイル、および実行に必要な画像や音楽データを含めて、Jar形式でパッケージ化しておく。このように準備されたiアプリはHTTPあるいはHTTPS通信を通じて、携帯電話にダウンロードされ実行される。SDメモリーカードなどの外部記憶媒体を使ってアプリを携帯電話にインストールする方法はいまのところ無い。セキュリティに関しては、非常に厳しく、公開された方法を使って他のアプリとスクラッチパッド上のデータを共有したり、電話帳やメールデータにアクセスすることはできない(後述のiアプリDX仕様を使えば一部実現可能と思われる)。
尚、DoJaで実行するクラスファイルは、パッケージする前に通常のコンパイルのほかに、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についてはiアプリを実行する携帯電話が対応しているかを留意する必要がある。
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描画、Bluetooh制御の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シリーズに搭載。
- DoJa 5.0LE仕様は、FOMA 703iシリーズに搭載。
※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になった。
[編集] 互換性
au、ソフトバンクモバイル、ウィルコムの携帯電話もJava実行環境を搭載しているが、いずれもMIDPを採用しており、DoJaとの互換性はない。厳密には、CLDCの範囲内では同様に動作するプログラムを作ることはできるかもしれないが、アプリケーションのパッケージングなどの方法も異なる。いずれにせよ、画面表示などの機能に互換性はないのでそのまま同じものが動作するという意味での互換性は無いといってよい。同じCLDCに基づくJava環境ではあるのでコードの一部もしくは多くを共通化できる可能性はある。
もうひとつ考える必要があるのは、機種間の互換性の問題である。DoJaはJava実行環境の仕様であるため、下位層としてのJava VMの実装やあるいはハードウェアに関して統一がなされていない。このことはJavaの思想からは正しいのだが、Javaアプリケーションの振る舞いに関して携帯電話各メーカ間の実装差異は決して小さくない。
特に商用コンテンツとしてiアプリを開発する場合、機種間の差異は深刻な問題である。版を重ねるにつれて仕様の詳細度も増し、実装差異は一般には解決されていく方向ではあるといえるものの、開発期間の短さや、次々と採用される新機能、新メーカーの参入、そして過去の機種との互換性などを考慮とすると今後とも非常に深刻な問題であるといえる。なお、auの携帯電話ではベースとなるクアルコム社製のアプリケーションプロセッサチップおよび採用されるJava VMが統一されているため、メーカ間互換性の問題は原理的にはおき得ない。
[編集] 開発
ドコモにより無料で提供されているDoJaエミュレータを使用してPC上で開発し、携帯電話にダウンロードさせて実行するというクロス開発の形態をとる。DoJaエミュレータはForte(Sun ONE Studio)などとの連動機能や、フリーソフトウェアを使用し、Eclipseとの連携を行うことができる。
[編集] 外部リンク
- (NTTドコモ)作ろうiモードコンテンツ : iアプリコンテンツの概要 | サービス・機能 | NTTドコモ
- Doja Developer Network - 全世界共通ディベロッパーのサイト(英語)
- Mobile Developer Lab 携帯電話ディベロッパーのサイト(英語)
Java | |
---|---|
主要 テクノロジ |
Java言語 | Javaプラットフォーム | Java Development Kit | Java仮想マシン | Java Runtime Environment | Javaコンパイラ | Enterprise JavaBeans | Java Message Service | Java Transaction API | Java3D | JDBC | Java Web Start |
歴史 | Javaバージョンの歴史 | Java批評 | Java Community Process | サン・マイクロシステムズ |
言語機能 | バイトコード | 文法 | Applet | Servlet | JavaServer Pages | Java Foundation Classes | Java予約語 | パッケージ | JAR | Javadoc |
Java関連技術 | Jakarta Project | Apache Tomcat | NetBeans |
カテゴリ: 携帯電話関連のスタブ項目 | 携帯電話 (NTTドコモ) | 携帯電話アプリ | Java言語