Android Support Libraryセットアップ方法の意訳

サポートライブラリのセットアップ

サポートライブラリを開発プロジェクトに適用する方法は使用する機能とAndroidプラットフォームのバージョンに関係します。

このドキュメントガイドではサポートライブラリをダウンロードする方法、及び開発環境にライブラリを加える方法を説明します。

サポートライブラリをダウンロードする

サポートライブラリはSDK Managerによってダウンロードすることが出来ます。

SDK Managerを使用してダウンロードする方法は以下の通りです。

  1. Android SDK Managerを起動します。
  2. SDK ManagerのウィンドウからPackagesリストを最後までスクロールし、Extraフォルダを展開して必要なものを見つけます。
  3. Android Support Libraryを選択します。(Android Studioを使っている場合は代わりにAndroid Support Repositoryを選択してください。)
  4. Install packages…ボタンをクリックします。

図1:SDK ManagerでAndroid Support Libraryを選択

ダウンロードが完了したサポートライブラリはAndroid SDKディレクトリの配下にあります。(<sdk>/extras/android/support/ ディレクトリ)

サポートライブラリの選択

サポートライブラリをアプリケーションに適用する前に、どの機能が必要なのか対象とするAndroidの最低限のバージョンも含めて考慮してください。各ライブラリの差異や機能の詳しい説明はSupport Library Featuresを参照してください。

サポートライブラリを加える

サポートライブラリを使用するためには、開発環境内でアプリケーションのプロジェクトのクラスパスの依存関係を変更する必要があります。各サポートライブラリで下記の手順を実行する必要があります。

いくつかのライブラリの中にはコンパイルされたクラスファイルだけでなく、画像やXMLのようなリソースも含まれています。例えば、v7 appcompatv7 gridlayoutにそのようなリソースが含まれています。

ライブラリにリソースが含まれているかどうかわからない場合はSupport Library Featuresを参照してください。以下のセクションでは、リソースを含める場合と含めない場合でのライブラリの使用方法を説明します。

リソースを含めない場合の使用方法

リソースを含めない場合のライブラリの使用方法は以下の通りです。

Eclipseを使用する場合

  1. Android Support LibrarySDK Managerからダウンロードされたことを確認する。
  2. 使用したいプロジェクトのルートディレクトリにlibsディレクトリを作成する。
  3. 使用したいJARファイル(例:<sdk>/extras/android/support/v4/android-support-v4.jar)をlibsディレクトリにコピーする
  4. libsディレクトリのJARファイルを右クリックし、ビルドパスに加える。

(※Android Studioを使用する場合は割愛します)

リソースを含める場合の使用方法

v7 appcompatのアクションバーのようにリソースが含まれるサポートライブラリの使用方法は以下の通りです。

Eclipseを使用する場合

サポートライブラリをベースにしたlibrary projectを以下の手順で作成します。

  1. Android Support LibrarySDK Managerからダウンロードされたことを確認する。
  2. 以下の手順で必要なJARファイルにビルドパスを通したlibrary projectを作成します。
    1. File > Importを選択します。
    2. Existing Android Code Into Workspaceを選択し、Nextをクリックします。
    3. サポートライブラリのあるディレクトリを参照します。例えばappcompatのプロジェクトを参照する場合は<sdk>/extras/android/support/v7/appcompat/となります。
    4. Finishをクリックするとインポートが行われます。v7 appcompatであれば、android-support-v7-appcompatというタイトルのプロジェクトが作成されているはずです。
    5. 新しく作成されたlibrary projectからlibsフォルダを展開し、各JARファイルのビルドパスを通します。v7 appcompatを使用した場合であれば、android-support-v4.jarとandroid-support-v7-appcompat.jarの両方です。
    6. プロジェクトで右クリックし、Build Path > Configure Build Pathを選択します。
    7. Order and Exportタブ内で先ほどビルドパスを通した各jarファイルにチェックが入っていることを確認します。ここにチェックを入れたjarファイルは、library projectを参照するプロジェクトでも使用することが出来ます。appcompatプロジェクトであれば、android-support-v4.jarとandroid-support-v7-appcompat.jarの両方をエクスポートする必要があります。
    8. Android Dependenciesのチェックを外します。
    9. OKをクリックして設定を変更します。

上記の手順で作成したサポートライブラリを持つlibrary projectを使用したいプロジェクトに下記の手順で追加します。

  1. プロジェクトエクスプローラーから使用したいプロジェクトで右クリックし、「プロパティ」を選択します。
  2. ライブラリペインで「追加」をクリックします。
  3. 先ほど作成したlibrary projectを選択し、OKをクリックします。appcompatプロジェクトであればandroid-support-v7-appcompatという名前でリストにあがっているはずです。
  4. プロパティウィンドウでOKをクリックします。

(※Android Studioを使用する場合は割愛します)

サポートライブラリのAPIを使用する

サポートライブラリでは既存のフレームワークAPIと同じような命名規則が用いられていますが、android.supportパッケージにあるか*Compatのようなサフィックスが付与されています。

注意:サポートライブラリからクラスを使用するときは、適切なパッケージから特定のクラスをインポートする必要があります。例えばActionBarクラスを使用する場合であれば以下のようになります。

  • android.support.v7.app.ActionBarであればサポートライブラリを使用しています。
  • android.app.ActionBarではAPI levelが11以上でなければ使用することが出来ません。

メモ:サポートライブラリを導入後は、アプリケーションをリリースする前にProGuardをかけておくことを強くお勧めします。ソースコードにプロテクトをかけるだけでなく、ライブラリに含まれる不要なクラスを取り除いてくれるため、アプリケーションのサイズを小さくすることができます。より詳しい情報についてはProGuardのページを参照してください。

[2014/07/20追記](訳注:AndroidでProGuardを使用する際の注意点などをまとめた記事があるのでそちらもどうぞ。)

サポートライブラリの機能に関するガイダンスとしてトレーニングガイド、サンプルなどが用意されています。サポートライブラリの個々のクラスやメソッドに関する情報はandroid.supportパッケージのAPIリファレンスをご覧ください。

Manifestファイルの変更

下位互換性を高めるためにManifestファイルを更新する必要があります。特に<uses-sdk>タグのandroid:minSdkVersion要素を下記のように変更する必要があります。

<uses-sdk
      android:minSdkVersion="7"
      android:targetSdkVersion="17" />

この変更によってGoogle Playに「このアプリケーションはAndorid 2.1(API Level 7)以上であればインストール可能です。」と通知することが出来ます。

メモ:もしプロジェクトにv4とv7 appcompatライブラリが両方含まれている場合はandroid:minSdkVersionを4ではなく7にしてください。より高いほうを通知する必要があります。

コードサンプル

各サポートライブラリのサンプルがSDK Managerでのダウンロード時についてきます。インストールされる場所は以下の通りです。

  • 4v Samples: <sdk>/extras/android/support/samples/Support4Demos/
  • 7v Samples: <sdk>/extras/android/support/samples/Support7Demos/
  • 13v Samples: <sdk>/extras/android/support/samples/Support13Demos/
  • App Navigation: <sdk>/extras/android/support/samples/SupportAppNavigation/