ドキュメント



Oracle Java SE Embedded: 開発者ガイド

10 組込みアプリケーションの開発の要点

この章では、Oracle Java SE EmbeddedカスタムJREで実行されるJavaアプリケーションの開発の基本について説明します。

この章は、次の項目で構成されています:

ターゲット・デバイスのホスト開発

従来のJavaプログラミングと埋込みJavaプログラミングの基本的な違いは、ターゲットと呼ばれる2番目のコンピュータの存在です。 ターゲットはデバイスに埋め込まれています - プリンタ、医療機器、工業用具、または組み込みシステムを収容するもの。

ターゲットに十分なリソースがあり、Java SE Development Kit (JDK)でサポートされている場合、Javaデスクトップ・アプリケーションまたはJavaサーバー・アプリケーションを開発する場合と同様に、ターゲット上に埋込みアプリケーションを開発できます。 リソースには、CPUサイクル、メモリー、ファイル・システム、表示、ポインティング・デバイスおよびキーボードが含まれます。 Java SEダウンロード・ページのダウンロードボタンをクリックして、JDKが使用可能なプロセッサとオペレーティング・システムの組合せのリストを表示: http://www.oracle.com/technetwork/java/javafx/downloads/

リソースが豊富なターゲットはまれです。 対照的に、デスクトップおよびラップトップ・コンピュータは一般的で、安価で使い慣れていて、豊富なリソースがあります。 統合開発環境やコード・リポジトリなどのソフトウェア開発ツールの配列は、デスクトップ・コンピュータやラップトップ・コンピュータでも使用できます。 したがって、組み込みアプリケーション開発は、通常、ホストと呼ばれるデスクトップまたはラップトップ・コンピュータとターゲット間で分割されます。

ホスト・コンピュータを使用して、ソース・コードの記述とコンパイル、機能テストの実行、コンパイル済アプリケーションの実行可能Javaアーカイブ(JAR)ファイルへのパッケージ化、および場合によってはターゲット上のアプリケーションのリモート起動と停止を行います。 詳細は、「埋込みアプリケーションの開発およびテスト」および「埋込みアプリケーションのデプロイ」を参照してください。

ホスト-ターゲット開発サイクル

「図10-1」は、埋込みアプリケーション開発が従来のJavaアプリケーション開発と同じであり、追加のアクティビティがあることを示しています: ターゲットでのパフォーマンス・テスト。 ここで使用されるパフォーマンス・テストとは、ハードウェア固有の問題を検出するために、実際のデプロイメント・ハードウェアでアプリケーションを実行することを意味します。 これには、過度のメモリー消費、不十分な速度、競合状態、およびディスプレイ、センサー、アクチュエータなどの周辺機器に関する問題が含まれる場合があります。 ホスト・コンピュータでの機能テストでは、これらの状況は明らかにできませんが、コア・アプリケーションの動作に問題が生じる可能性があります。

図10-1 基本的な埋込み開発サイクル

図10-1の説明が続きます
「図10-1 基本的な埋込み開発サイクル」の説明

カスタムJREはネットワーキングをサポートし、リモートのJavaデバッグおよびプロファイリングをサポートできるため、別の部屋、ビルディングまたは大陸にあるターゲットにJARをコピーし、パフォーマンス・テストを実行できます。

APIおよびJavadoc

「Java SE APIのドキュメント」は、プロファイル情報を表示します。 「図10-2」は、compact1プロファイルAPIにないインタフェースの例を示しています。 この定義では、compact2およびcompact3プロファイルに明示的に名前を付けます。 すべてのインタフェースは、完全なJRE APIに暗黙的に含まれています。

図10-2 2つのプロファイルでインタフェースを表示するJavadocの例

図10-2の説明が続きます
「図10-2 2つのプロファイルでインタフェースを表示するJavadocの例」の説明

ネイティブ・メソッド

埋込みアプリケーションは、Java APIがないターゲット・デバイス・ハードウェアにアクセスする必要がある場合があります。 センサーやアクチュエータは典型的な例です。 通常、デバイス・アクセス機能はCで使用できます。 これらの関数は、中間ネイティブ・メソッドを作成することでJavaからコールできます。 Java Native Interface (JNI)の詳細は、「Java SE開発者ガイド」「JNI仕様」を参照してください。

JNIの簡単な例は、Oracle MoonOceanブログ(https://blogs.oracle.com/moonocean/entry/a_simple_example_of_jni)を参照してください

JDK 7の制限事項

JDK 7を使用する場合は、次の注意事項に従ってください:

ノート:

JDK 7を使用する場合は、プラットフォーム開発者(「コンパクト・プロファイルについて」を参照してください)によってデバイス用に作成されたカスタムJREに含まれるAPIのみを使用してください。 アプリケーションで、ターゲット・デバイスのカスタムJREに存在しないAPIが使用されている場合、ホストのJDK 7コンパイラおよびランタイムによってエラーがマスクされます。 ターゲット・デバイスでアプリケーションをテストすると、そのカスタムJREによってClassNotFoundExceptionがスローされます。 ターゲットで早期および定期的にテストして、このエラーを速やかに検出します。

また、JDK 7ではjdepsツールを使用できません。

ウィンドウを閉じる

目次

Oracle Java SE Embedded: 開発者ガイド

展開 | 縮小