2010年8月31日火曜日

Froyo以前でも動作するアプリをa2sd対応する方法

【セルフPR】
・ねこぱβ(http://cat.picparks.com
・いぬぱβ(http://dog.picparks.com
も見てくれると嬉しいです。

---

この方法を使えば、わざわざOSのバージョンごとに、
設定を変えたアプリを用意する必要はありません。

Eclipseで開発をしていることを前提としています。

Androidアプリを作っていて、
1.6や2.1にも対応させながら、
2.2にも対応させたい場合は多々あるし、
今後も当分はそのニーズは消えないでしょう。

かといって、ビルドのターゲットを1.6にしていては、
AndroidManifest.xmlにinstallLocationが書けないので、
a2sdに対応できない。

今後ますます2.2が普及していく過程で、
それはとてもカッコ悪い。

なので、1.6、2.1対応させながら、a2sd対応させる方法を紹介します。


1.ビルドのターゲットの変更
プロジェクトのプロパティからAndroidを選んで、
Project Build Targetを「Android2.2」にする。
2.AndroidManifest.xmlの修正
manifestタグの属性android:installLocationに、
「preferExternal」なり「auto」を指定する。 

これでビルドし直せば、目的は達成できます。
minVersionは4のままでOKです。

しかし、注意点。
ビルドのターゲットが2.2になるので、
androidのjarファイルが2.2になります。

なので、2.2特有のAPIを使うとコンパイルは通るし、
minVersionが4なので1.6でもインストールができるけど、
実際は動かない、ということになります。
このエントリーをはてなブックマークに追加