Android から Windows への API マッピング

Windows 8 用の開発プロジェクトをすぐに開始できるように、Android API と同等な Windows ランタイム API を見つけるのに役立つ API マッピング インデックスが用意されています。

既にある Android のスキルとコード アセットを使って、高度に差別化された Windows ストア アプリを開発できます。Android 開発者が Windows ストア アプリに簡単に移行できるように、API マッピング インデックスが用意されています。このインデックスは、Android API を、それに相当する類似の機能を持つ Windows ランタイム API と対応付けています。

このトピックでは、Windows ランタイム API マッピングを重点的に取り上げていますが、Windows ストア アプリ開発への移行に役立つ次のようなリソースも用意されています。

API マッピング インデックスについて

Android 開発者の場合、API マッピング インデックスを使うと、Windows ランタイム開発プラットフォームに早くなじんで、迷わずにすみます。インデックスは、既にあるアプリを評価し、最も重要な Windows ランタイム API コールを選び出し、同等の Windows ランタイム クラス、メソッド、プロパティをすばやく見つけるのに役立ちます。

API マッピングの役割は次のとおりです。

  • 初めての Windows ストア アプリをゼロから作成する Android 開発者を支援します。この場合、インデックスは頭の中の地図になり、Android で既に慣れている機能やアイデアを調べることができます。
  • 2 つのプラットフォーム間で特定の機能を対応付けて、既にある Android アプリの移植を支援します。もちろん、アプリの移植だけで十分ということはめったにありません。群を抜いて目立つ魅力的な Windows ストア アプリを作成するには、魅力的な Windows ストア アプリの設計指針や設計原則に慣れ親しむ必要があります。

Android API に相当する類似の機能を持つ Windows ランタイム API がある場合は、インデックスで見つけることができます。Windows ランタイム API リファレンス ドキュメントへのリンクが示され、使用法を表すコード スニペットがあれば、そのリンクも示されます。直接マッピングできない場合は、最も近い概念トピックへのリンクが示され、各プラットフォームの概念の対応関係を把握できます。概念トピックは、さらに調査を進める際の出発点になります。

API マッピングでできないこと

API マッピング インデックスは、Android で使用できるあらゆる機能や API を網羅したものではありません。API マッピングは、Android の最も一般的で重要なフレームワークの一部を対象としています。たとえば、コントロールやセンサー、ネットワーク、グラフィックス、オーディオやビデオなどのメディアに関連したフレームワークです。その他のフレームワークも将来、追加される可能性があります。

Android と Windows ランタイムの設計の違いにより、ある API を別の API にマッピングすることが常に可能というわけではありません。 Windows ランタイム API とコードを組み合わせると、同じ機能を実装できることもよくあります。インデックスには、こういった場合のマッピングは示されていません。

コードを自動的に評価して移植し、Windows 8 で動作可能にするものではないという意味では、インデックスは移行ツールではありません。API マッピングは、関連 API の検索対象の絞り込みに役立てることを目的としています。マッピングされた API を出発点として、該当する機能を実装する方法を特定して、Windows 8 プラットフォームを活用したアプリをビルドする必要があります。

API マッピング インデックスの使用方法

API マッピング インデックスを使うには、画面左側で Android パッケージを選びます。次に、クラスまたはインターフェイスを選び、メソッドなどのメンバーを選びます。インデックスにマッピングが存在する場合、該当する Windows ランタイム API クラスとメソッドなどのメンバーが右側に表示されます。すべてのマッピングを閲覧することも、特定のマッピングを検索することもできます。例をいくつか紹介します。

  • 開発者が、Android の Camera クラスと類似の機能を持つ Windows ランタイム API を探しています。開発者は、Camera クラスが android.hardware パッケージに属していることを知っています。そこで左側にある android.hardware をクリックして、次に Camera をクリックします。右側に Windows ランタイム MediaCapture クラスの API リファレンス トピックへのリンクが表示され、MediaCapture クラスのコード サンプルへのリンクも表示されます。
  • 開発者が、Android の File クラスの getPath メソッドと類似の機能を持つ Windows ランタイム API を探しています。開発者は、File クラスが java.io パッケージに属していることを知っています。そこで左側にある java.io をクリックして、File[Methods] (メソッド)、getPath の順にクリックします。右側に Windows ランタイムの StorageFileFileInformationFolderInformation クラスの API リファレンス トピックへのリンクが表示されます。
  • 開発者が、Android の Sensor クラスと類似の機能を持つ Windows ランタイム API を探しています。そこで、[Search] (検索) ボックスに「Sensor」と入力して、拡大鏡アイコンをクリックします。Windows ランタイム API 検索結果リストが表示されます。検索結果をクリックすると、同等の Windows ランタイム API リファレンス トピックへのリンクが表示されます。

複数の API マッピング

ときには、所定の Android API に複数の Windows ランタイム API をマッピングできることがあります。この場合、API マッピング インデックスには、可能なマッピングがすべて表示されます。 検索時に複数のマッピングが見つかった場合、該当する API リファレンス トピックを調べて、使用目的に最もあった Windows ランタイム API を見極める必要があります。

概念トピックへの API のマッピング

Windows ランタイムは汎用的な開発プラットフォームです。実装または移植したい Android アプリにある機能は、ほぼ必ず実装できます。ただし、プログラミング モデルの違いにより、所定の Android API に厳密に一致する Windows ランタイム API が存在しないこともありえます。プログラミングの抽象度の違いにより、Android API に類似する機能を、複数の Windows ランタイム API を使ったり、独自のカスタム クラスやカスタム メソッドを作成して、実装せざるをえないこともありえます。単一の Windows ランタイム API にマッピングできない場合、API マッピング インデックス には、該当するプラットフォーム機能を説明した概念トピックへのリンクが示されます。

次の手順

これでインデックスの機能はおわかりのはずです。どうぞ実際に試してみてください。また、API マッピングはまだ開発途上であるため、プラットフォームの対応範囲を広げるのにご協力くださるようお願いいたします。インデックスに記載されていない新しい API マッピングを見つけられた場合は、お手数ですがお知らせください。お知らせくださる場合は、API マッピング インデックスで、[Search] (検索) ボックスの下にある [Something missing? Suggest a new mapping] (見つかりませんか? 新しいマッピングをご提案ください) をクリックし、画面に表示される指示に従ってください。内容を確認したうえで、適切な場合はデータベースに追加いたします。

関連情報