エンジニアコラム

単純に"Windows"だからといってWindows CEを採用することは間違いです   

エンジニア・コラム

伊藤 優 さん [ アキタ電子システムズ 所属・マイクロソフト認定MVP ]

第2回:OSイメージとアプリケーションの関係

先のコラムではアプリケーション仕様とシステム仕様の不一致について少し触れました。今回はこのあたりで発生する問題と、開発において確認をすべきことについてお話します。


最初に皆さんの身の回りにある様々な電子機器を見回してください。よく似たものもあれば全く違うものも多いでしょう。Windows CEをはじめとする汎用OSは、目的も仕様も異なる製品に同時に搭載させることが一般的です。そしてこれらの異なる製品は、OSに要求する仕様や機能は異なります。


たとえば携帯オーディオプレイヤーと業務用ターミナルにWindows CEが採用されたとします。オーディオプレイヤーにはWindows Media PlayerやInternet Explorerが搭載され、もう一方には搭載されていないことでしょう。これらは同じWindows CE機器ですが、その機器上で利用できるWindows CEの機能は異なるということなのです。


さて携帯オーディオプレイヤー向けにあるアプリケーションを開発したとします。このアプリケーションを同じWindows CE機器という理由で業務用ターミナル上でそのまま動かすことができるでしょうか?答えはNoですね。それぞれの機器で利用できる機能やサポートされているAPIが異なるという理由であることは明白です。このように同じWindows CEであってもOSイメージを構成する機能が異なると、同じアプリケーションを動かすことはできません。


これがもし製品開発のステップで発生してしまったら、工程の終りの方で大きな問題となります。OSイメージに含まれる機能を確認しないままアプリケーション開発を進めてしまうと、システム全体を組み合わせた時に動かないアプリケーションができてしまう可能性があるのです。その対策として、実際にはOSイメージに必要な機能を追加することになり、最悪はOSイメージのサイズが増大しフラッシュメモリの変更まで発展する場合があります。


この問題を回避するためにはアプリケーション開発では、対象機器のOSイメージに一致したSDKをベースに開発を進める事です。このSDKはOSイメージに含まれる機能を示すものです。アプリケーション開発時に対象のSDKを指定することで、間違ったAPI呼び出しをしていないことを確認することができるようになります。


SDKはPlatform Builderでビルドすることができます。OSイメージをアプリケーション開発用に提供する時は、SDKも一緒にビルドし、アプリケーション開発者に渡すようにしてください。