サイト移転のお知らせ:http://techbooster.org/に移転しました
アプリをSDカードにインストールできるようにする
先日発表されたAndroid 2.2、通称「Froyo」ではアプリケーションをSDカードにも
インストールできるようになりました。
このおかげでAndroid端末の内蔵メモリの容量を気にせずに、
好きなだけアプリをインストールできるわけです!
というわけで早速どのように実現するのか実際に試してみました。
まずはFroyo上で自作アプリをインストールし、アプリケーション情報を見てみます。

「SDカードに移動」というボタンがありますが、押せないようになっています。
これを押せるようにしてみます。
SDカードへの移動を許可するにはManifest.xmlを編集します。
コードは以下のようになります。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.example.graphics"
android:versionCode="1"
android:installLocation="preferExternal"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AndroidGraphics"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ポイントは
android:installLocation="preferExternal"
という一行です。
android:installLocationでインストール先の指定ができます。
選択できる値としては以下のようなものがあります。
- internalOnly : 内蔵メモリへのインストールのみ許可します。
- auto : 内蔵メモリ優先でインストールします。しかし内蔵メモリの容量が一杯だった場合はSDカードへ保存されます。
- preferExternal : SDカードを優先してインストールしますが、SDカードの容量が一杯だった場合は内蔵メモリへインストールされます。
今回のサンプルでは「preferExternal」を選択しているので、
SDカードにインストールされるはずです。
ではこのサンプルをエミュレータ上にインストールしてみます。
先ほどのボタンが押せるようになってます。
また、表示が「携帯端末に移動」になってますので、
このアプリがSDカードにインストールされていることがわかります。
このような手順でアプリのインストール先を制御することができますが、
サービスやインプットメソッドエンジンなど、システムに常駐するようなアプリを
SDカードにインストールしてしまうと、SDカードが利用できないシチュエーション
(物理的に外されてるorSDカードがアンマウント状態)では使えなくなってしまいます。
アプリケーションの種類によってandroid:installLocationの指定を考えるようにして下さい。
関連する記事:
- システムテーマで統一感を出す
- Intentを使って画面を遷移する(明示的Intent)
- WEBサイトのリンクからアプリケーションを起動する
- Intentで画面遷移する(明示的Intent)/Getting started
- Intent.ACTION_SENDで他のアプリケーションと連携する




[...] アプリをSDカードにインストールできるようにする [...]
[Android]Androidアプリ開発の役に立ったサイトまとめ
私は最近、総インストール数が僅か73、さらにアクティブインストール数がその僅か28%の21という数を誇るAndroidアプリ、TweetCounterを作ることに成功したのですが、その開発の際に役に立っ…
[...] アプリをSDカードにインストールできるようにする [...]
[...] http://techbooster.jpn.org/andriod/application/228/ [...]
[...] 参考:アプリをSDカードにインストールできるようにする [...]