アプリをSDカードに移動できるようにするにはどうすればよいですか?
-質問を与えられた回答により関連性のあるものにするために、タイトルを編集しました。
android:installLocation
AndroidManifest.xmlファイルにエントリを設定する必要があります(preferExternal
またはauto
値で設定できます)。
NB!このビルドターゲットは、APIレベル8(Android 2.2)である必要があります。
android:installLocation
また、ターゲットを Android 1.6 に設定することもできます。
そのAndroidManifest.xml
ような最小SDKバージョンを挿入する必要があります
<uses-sdk android:minSdkVersion="4" />
これにより、アプリケーションが Android 1.6 以降でのみ動作することが保証されます。もちろん、これにより、Eclipse プロジェクト スペースでコンパイラ エラーが発生します。これは、1.6 SDK がandroid:installLocation
. これを修正するには、Eclipse プロジェクト スペースでプロジェクトを右クリックし (Eclipse を使用していると仮定し、他の IDE や Ant ビルドでどのように機能するかわかりません)、[Android] オプションに移動して [Project] を選択します。ビルド ターゲット」にAndroid 2.2
.
これにより、上記のエラーが削除され、APK ファイルをコンパイル/エクスポートできます。このようにして、APK は通常どおり Android 1.6-2.1 で動作し、Android 2.2 では SD カードを使用してアプリをインストール/移動することもできます。
ただし、警告の言葉: 注意しないと、これが非互換性の原因になる可能性があります。したがって、2.x 機能を使用しても直接気付かないため、テスト フェーズを増やす必要があります。Eclipse は Android 2.2 SDK を参照として使用するため、エラーとして表示されないためです。
したがって、基本的に 2 つの選択肢があります。1. アプリをエクスポート/署名するとき (つまり、この新しいバージョンを公開する直前) にのみ上記の手順を実行し、元に戻すか、2. アプリケーションを広範囲にテストします。アプリは 1.6 よりも新しい OS でのみ利用可能な機能を使用するため、1.6 デバイスまたはエミュレーターを使用して、いずれかの時点でクラッシュするかどうかを確認します。
アプリケーションの複雑さにもよりますが、通常は最初の方法がより安全ですが、一度実行するのを忘れるリスクがあります。これにより、この 1 つの更新プログラムを SD カードにインストールすることができなくなります。選択肢 2 には問題があります。すべてを十分にテストしないと、Android 1.6 デバイスが 2.x でのみ利用可能な機能/機能を呼び出そうとすると、App が突然強制終了する可能性があります。
Android 端末の場合は、以下の手順に従ってください。
android sdk\platform-tools
adb shell pm setInstallLocation 2