携帯Javaファーストインプレッション
JBuilderで携帯電話アプリケーションを体験(前編)
本記事は2001年に執筆されたものです。携帯Javaアプり全般の最新情報は@IT Java Solutuionのカテゴリ「組み込み/携帯・Android・Felicaアプリ」をご参照ください。 |
携帯アプリを作って学ぶJava文法の基礎 Java文法の基礎を楽しみながら学ぶために、携帯電話のJavaアプリを作ってみましょう。携帯電話のJavaだけにとどまらないJava全般の文法の基礎が理解できる初心者向け入門連載です |
JBuilder4にはJDKを自由に選択する機能があります。これを利用して、Java携帯電話アプリケーション作成のためのMIDPを使い、携帯電話向けのJavaアプリケーションを作成することができます。本稿ではJBuilderを普段お使いのユーザーを対象に、携帯電話向けJavaアプリケーション作成の一通りの手順を2回に分けてご紹介します。 |
今回の内容 | |
|
2001年にはNTTドコモのiモードを皮切りに各社の携帯電話にJavaが搭載されたモデルが登場する予定です。これらは、基本的にはサン・マイクロシステムズ社が発表しているJava 2 Micro Edition (以下J2ME)上のMIDP (Mobile Information Device Profile)をベースにしています(J-フォン、ボーダフォンなどはMIDP完全互換のJava対応携帯電話を開発中であることを表明しています)。
iモードをはじめとした携帯端末におけるJava実行環境は徐々に整いつつあります。サン・マイクロシステムズ社からは既にMIDPに対応した開発キットもリリースされていますが、JBuilderの開発環境からもMIDPに対応したアプリケーションの開発は可能です。JBuilderには、任意のJDKを取り込んで開発環境で利用する機能が提供されているので、いまからMIDPを利用したアプリケーションの開発手法を体験してみてください。これにより各社に搭載される仕様が公開されれば、その瞬間からアプリケーションの開発を行うことが可能になります。
J2MEとは、Java2プラットフォームのエディションの1つで、今回取り上げる帯電話をはじめ、家電製品や組み込み機器を対象にしています。J2MEが対象とする機器は、通常のデスクトップパソコンとは異なり、CPUスペックや表示機能、ストレージや電源などさまざまな側面で制約を受けるため、必要最小限の機能が搭載されています。また、一口に家電製品や組み込み機器といっても、その機器が搭載しているインターフェイスや表示機能には大きな違いがあるため、下図のようにこれらを吸収するいくつかのレイヤが定義されています。
|
Connected Limited Device Configuration(以下CLDC)は、主にJava言語およびVirtual Machineの機能、コアライブラリ、入出力、ネットワーク、セキュリティ機能を定義しており、以下のような特徴を持つデバイスを対象にしています。
- 160KB〜512KBのメモリ
- 16ビットまたは32ビットプロセッサ
- 低電力消費、電池でも動作する
- ネットワーク(無線、断続的な接続、帯域幅に制限のある場合を含む)との接続性
またMIDPは、携帯電話を対象としたプロファイルで、CLDCをベースとしたJava VMを対象としています。これらの詳しい紹介は、サン・マイクロシステムズ社のWebサイト(http://java.sun.com/products/midp/)を確認していただくとして、皆さんのアプリケーションはCLDCやMIDPを利用して構築するということだけ覚えておいてください。
開発環境の準備 |
それでは開発に必要なツールを準備しましょう。MIDPは、サン・マイクロシステムズ社のWebサイトからダウンロードできます(http://java.sun.com/products/midp/)。
MIDPのモジュールはReference Implementationの項目にあるdownloadを選択してダウンロードしてください。モジュールをダウンロードしたら、これを任意のディレクトリに展開します。以下の説明では、c:\j2me\midpにファイルを展開したものと考えてください。
また、今回は開発環境としてJBuilder4を利用します。すぐに購入できない方は、以下の入手方法があります。
- JBuilder 4 Foundation
- JBuilder 4 Startup Kit CD-ROM
JBuilder 4 Foundation は、JBuilder4の基本的な機能を無料で使用できるビジュアル開発環境です(インプライズ社のWebサイトからダウンロードできます)。ただし、JBuilder 4 Foundationで指定できるJDKは1種類だけなので、60日間の無償トライアルができるJBuilder 4 Enterpriseが含まれるJBuilder4 Startup Kit CD-ROMを申し込むのがよいでしょう。これは、インプライズ社のWebサイトで申し込むと無償で送られてきます(このCD-ROMにはJBuilder 4 Foundationも含まれます)。
JBuilderの環境設定 |
JBuilderでは、アプリケーションの作成に使用するJDKを選択することができます。この機能を利用することで、J2ME MIDPに対応したアプリケーションを作成することが可能になるわけです。JBuilder 4の [ツール]→[JDKの設定] を選択し、ターゲットとするJDKとしてJ2ME MIDPを選択します。
[JDK設定]ダイアログ。ここで[新規]ボタンを押し、新しいJDK(J2ME MIDP)を指定します(クリックすると拡大します) |
注:JBuilder 4 Foundationでは、複数のJDKを選択できないため[新規]ボタンから別のJDKを追加することができません。[JDK設定]の[名前]に任意のJDKの名前(“J2ME MIDP”が適当でしょう)を、[JDKへのパス]にJ2ME MIDPがインストールされているディレクトリ(ここではc:\j2me\midp)を設定してください。
J2ME MIDP がインストールされているディレクトリを選択します(クリックすると拡大します) |
“J2ME MIDP” のように、適当な名前を指定します(クリックすると拡大します) |
このように新しいJDK(ここでは“J2ME MIDP”の名前で登録されています)が登録されます(クリックすると拡大します) |
プロジェクトの新規作成 |
JBuilderでは、作成するアプリケーションを「プロジェクト」という単位で管理します。プロジェクトでは、使用するJDKやライブラリ、ディレクトリ設定などを指定します。ここでは、新規にプロジェクトを作成し、使用するJDKに先ほど登録した“J2ME MIDP” を指定します。[ファイル]→[新規プロジェクト]を選択して「プロジェクトウィザード」を開き、JDKの指定を行ってください。
「プロジェクトウィザード- ステップ2/3」でJDKに“J2ME MIDP”を指定します。他のステップには任意の値を設定します(クリックすると拡大します) |
新しいMIDlet の作成 |
それでは、実際にアプリケーションの実体を作成していきましょう。MIDPをベースとしたアプリケーションでは、javax.microedition.midlet.MIDletを親クラスとして、作成するアプリケーションを派生クラスに定義してゆきます。
まず[ファイル]→[新規] を選択し、オブジェクトギャラリから[クラス]を選択します。[クラスウィザード]ダイアログで、新しく作成するクラスの親クラスを指定します。[…]ボタンを押すと[親クラスの選択]ダイアログが開くので、ここで javax.microedition.midlet.MIDletを選び指定します。
クラス名は任意です。ここでは“FirstMIDlet”と指定しています(クリックすると拡大します) |
新しいクラスを作成するためのパラメータとして、クラス名やそのほかのオプションを指定します。このオプションには、上の画面のように[main関数の生成]以外のオプションにチェックを入れ、またクラス名にはFirstMIDletのような適当な名前を指定すればよいでしょう。
[OK]ボタンを押して新しいクラスを作成すると、次のように MIDlet のひな型が生成されます。
FirdtMIDletという名前でMIDletのひな型が生成されます(クリックすると拡大します) |
プログラムの実装 |
JBuilder のエディタを使用して、プログラムを実装します。作成するアプリケーション(MIDletの派生クラス)では、JBuilderが自動生成した各メソッドの中に作成するアプリケーションの機能を定義していきます。メモリ上のMIDPにおけるアプリケーションは、下図のような4つの状態を取り、これらが切り替わるときには、それぞれstartApp()、pauseApp()、destroyApp()が呼び出されます。
アプリケーションを作成するときには、必要に応じて各メソッドをオーバーライドして機能を実装していきます。今回の趣旨は一通りの手順をご紹介することですので、アプリケーションの詳細まで触れません。そこで、アプリケーションの実装コードそのものは、サンプルコードとして提供されている、
c:\j2me\midp\src\example\ HelloMIDlet.java
を流用します。このコードを参考に記述したFirstMidlet.javaのソースリストを以下のとおりです。生成されたコードに対して新たに追加した部分を赤字で示しています。
FirstMidlet.java |
package midp01; /** public class FirstMidlet
extends MIDlet private
Command exitCommand; // The exit command
t.addCommand(exitCommand);
|
プロジェクトオプションの設定 |
プロジェクトが完成したら、これをビルドします。デバイスの能力に限界があるJ2MEでは、実行環境に配布するモジュールはできるだけ小さい方がよいので、デバッグ情報を付けずにビルドします。これは、[プロジェクト]→[プロジェクトプロパティ]を選択し、[ビルド]オプションページの [デバッグ情報を付ける] という項目のチェックを外すことで設定できます。
携帯電話のメモリは非常に小さいので、アプリケーションのサイズを極力小さくする必要があります(クリックすると拡大します) |
プロジェクトのビルド |
[プロジェクト]→[プロジェクトのメイク] を選択し、コンパイルします。エラーがなければ、ビルドが成功しましたというメッセージが画面下部に表示されるはずです。
作成したMIDletの検査 |
通常のJava アプリケーションでは起動時にJava VMがモジュールの妥当性をチェックしますが、J2MEでは、あらかじめ開発環境でこのチェックを実行しておきます。チェック作業は以下のように、J2ME MIDP に付属している検査用のコマンドラインツールを使用します。
c:\jbproject\midp01\classes>preverify
-classpath c:\j2me\MIDP\classes;C:\jbproject\midp01\classes midp01.FirstMIDlet |
この例では、MIDPがc:\j2me\midpにインストールされており、JBuilderのプロジェクトは、c:\jbproject\midp01に作成したものと仮定しています。
作成した MIDlet の実行 |
チェック作業が完了するとoutputディレクトリにチェック済みのモジュールが作成されるので、これをJ2ME MIDPに付属しているJava実行環境を使用して実行します。
c:\jbproject\midp01\classes\output>midp
midp01.FirstMIDlet |
ここまでのすべての処理が正しく実行できていれば、見事エミュレータにアプリケーションの画面が表示されます。
いかがでしたか? 後編の次回では、アプリケーションの内容にまで踏み込んで、もう少し本格的な携帯電話用のアプリケーションを作成してみます。ご期待ください。
本記事は2001年に執筆されたものです。携帯Javaアプり全般の最新情報は@IT Java Solutuionのカテゴリ「組み込み/携帯・Android・Felicaアプリ」をご参照ください。 |
携帯アプリを作って学ぶJava文法の基礎 Java文法の基礎を楽しみながら学ぶために、携帯電話のJavaアプリを作ってみましょう。携帯電話のJavaだけにとどまらないJava全般の文法の基礎が理解できる初心者向け入門連載です |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|