この項目、もしくはこの節は更新が必要とされています。
この項目の情報は長らく更新されておらず、古い情報を掲載された状態が続いています。編集の際に新しい情報を記事に反映させてください。情報の反映が完了したら、このテンプレートを除去してください。
この記事はウィキペディアの品質基準を満たしていないおそれがあります。
そのため、この記事を整理して下さる協力者を求めています。
DoJaプロファイル(ドゥージャプロファイル)はNTTドコモグループの携帯電話であるmovaシリーズ及びFOMAシリーズに搭載されるJava実行環境の仕様である。通称DoJaと言われている。
DoJaは技術的な用語であり、一般向けには「iアプリ」と呼んだ方がとおりがよい(ドコモのマーケティング戦略でもあると思われる)。
目次
1 特徴
2 実行形態
3 Java API
4 歴史
5 互換性
6 DoJaの今後
7 開発
8 外部リンク
//
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の制限(というより特徴)であり、実行時・ロード時のバイトコードベリファイの負荷を減らすために、あらかじめ型情報を調査し、その情報をクラスファイル内に添付しておく必要があるためである。
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機能の詳細については一般には公開されていない(公式コンテンツプロバイダ向けにのみ提示されているものと思われる)。