13

アプリをSDカードに移動できるようにするにはどうすればよいですか?

-質問を与えられた回答により関連性のあるものにするために、タイトルを編集しました。

4

4 に答える 4

28

android:installLocationAndroidManifest.xmlファイルにエントリを設定する必要があります(preferExternalまたはauto値で設定できます)。

NB!このビルドターゲットは、APIレベル8(Android 2.2)である必要があります。

于 2010-10-26T11:20:20.193 に答える
14

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 が突然強制終了する可能性があります。

于 2010-10-26T12:07:51.480 に答える
0

Android 端末の場合は、以下の手順に従ってください。

  1. Android SDK をシステムにコピーします。
  2. モバイルをシステムに接続し、モバイルで USB デバッグ オプションを有効にします。
  3. コマンドラインを開き、パスに移動しますandroid sdk\platform-tools
  4. コマンドを実行しますadb shell pm setInstallLocation 2
  5. モバイルの設定に移動し、「SD カードに移動」オプションが有効になっているかどうかを確認します。
于 2013-05-04T06:54:46.403 に答える