« 2013年12月 | トップページ | 2014年4月 »

2014年1月12日 (日)

Android Support Librariesを使う

0. イントロダクション

 Androidで新規プロジェクトを作ると、libs/以下にandroid-support-v4というライブラリが追加されるようになっているのは、ずいぶん前からの話。
 で、実はこれ、ちょっと前まで「Fragmentを2.xデバイスでも使えるようにするためのもの」くらいの認識でしかなかったことと、僕自身Fragmentの仕組みをよく理解できていないこともあって、まったく使ったことがなかった。

 ということなので、自分向けメモとしてちょっと書いてみる。

1. システム要件

 条件としては、 Android SDKを最新に更新しており、Extrasの下にある「Android Support Libraries」をインストールしていることである。

2. セットアップ

 実際のセットアップは、以下のとおりとした。
 元ネタはSupport Libraries Setup | Android Developersなのだが、ActionBarで標準添付リソースが使いたかったので、リソース付きでセットアップする手順としている。

  1. メニューのFile -> Importで、Existing Android Code into Workspaceを選ぶ。
  2. {SDKのディレクトリ}//extras/android/support/v7/appcompat/をインポートする。
  3. Finishを押してインポートを完了する。名称はわかれば何でもよいが、僕はデフォのandroid-support-v7-appcompatとしている。
  4. インポートしたライブラリプロジェクトのlibs/を開くと、android-support-v4.jarとandroid-support-v7-appcompat.jarの二つがあるはずなので、この両方を右クリックからBuild Path -> Add to Build Pathを選んでJava Build Pathに追加する。
    この操作で、ライブラリプロジェクトのReferenced LibrariesにJarファイルが二つ追加されているはずである。
  5. ライブラリプロジェクトを右クリックし、Build Path -> Configure Build Pathを開くと、プロジェクトのJava Build Path設定のOrder and Exportタブが開いているはずなので、設定を以下のとおりとする。
    • android-support-v4.jarとandroid-support-v7-appcompat.jarの両方に、チェックを入れる。
    • Android Dependenciesのチェックを外す
  6. この状態で[OK]を押すと、ライブラリプロジェクトがビルドされ、使用可能になる。

 あとは、こいつを使いたいAndroidプロジェクトのプロパティを開き、Android -> Libraryに先ほど追加したライブラリプロジェクトをAddで追加してやればよい。

3. 注意点

 作業中に、Androidプロジェクトに最初から存在するandroid-support-v4.jarと、v7-appcompatに含まれるandroid-support-v4.jarが一致しない、という事象が起きた。

 比較したところ、Androidプロジェクトのほうがファイルサイズが小さかったため、おそらく元のAndroidプロジェクトを作成した時期のリビジョンと、SDKの現在のリビジョンが異なる(プロジェクトのほうが古い)ためと思われる。

 とりあえず、Androidプロジェクトのほうのandroid-support-v4.jarをBuild Pathから除去した後、libs/にあるandroid-support-v4.jarを物理的に削除することで、これを回避した。

 なおこのライブラリプロジェクトは、API Level 7(=Android 2.1)以上のアプリケーションプロジェクトが対象なので、もしAndroidManifest.xmlのminSdkVersionが6以下の場合は、7に変更しておくこと。
 大勢にはほとんど影響はないだろうけど。
# いまどき、API Level 4(=Android 1.6)を新規にサポートする意味はないだろうし、API Level 8(=Android 2.2)以下のデバイスはほとんど駆逐されているだろうし....。

| | コメント (0) | トラックバック (0)

« 2013年12月 | トップページ | 2014年4月 »