2

Android2.2の一部である必要があるApptoSD機能を使用できるようにすることについて、ますます多くのリクエストが寄せられていますが、実際にはその経験がありません。また、アプリをこの機能と互換性を持たせる方法に関するドキュメントがどこにあるかもわかりません。私のアプリはSDカードに移動できないと言われています。

私の心はまた、これはいかなる種類のライセンス保護も持たない有料アプリにとっては本当に悪い考えだと言っています。

誰かがこれを経験したり、ドキュメントを知ったり、アプリがこの機能と互換性を失う原因について何かヒントがありますか?

注:アプリでコピー防止機能を使用していません。

4

2 に答える 2

7

android:installLocationマニフェスト属性を使用して、SD カードへのアプリのインストールを許可できます。これは、SD カードへのインストールを推奨するか、単に許可するかに応じて、preferExternalまたはに設定できます。autoデフォルトでは、下位互換性のためにアプリケーションを SD カードにインストールすることはできないため、ユーザーがこの機能を使用できるようにする場合は、この機能をオプトインする必要があります。

ドキュメントから:

アプリケーションが外部ストレージにインストールされている場合:

  • 外部ストレージがデバイスにマウントされている限り、アプリケーションのパフォーマンスに影響はありません。
  • .apk ファイルは外部ストレージに保存されますが、すべてのプライベート ユーザー データ、データベース、最適化された .dex ファイル、および抽出されたネイティブ コードは内部デバイス メモリに保存されます。
  • アプリケーションが保存されている一意のコンテナは、ランダムに生成されたキーで暗号化されており、最初にインストールしたデバイスだけが復号化できます。したがって、SD カードにインストールされたアプリケーションは、1 つのデバイスに対してのみ機能します。
  • ユーザーは、システム設定を通じてアプリケーションを内部ストレージに移動できます。

したがって、ライセンス保護についてあまり心配する必要はありません。この機能には暗号化が組み込まれています。また、通常、ライセンス保護について心配する必要はありません。コピー防止や DRM は、著作権侵害者よりも正直なユーザーに害を及ぼす傾向があるためです。誰かがあなたのアプリを使用できる限り、誰かがそれを海賊版にすることができます。解読不可能な DRM スキームを作成することはほぼ不可能です。アプリが既に内部ストレージにある場合は、すでに海賊版になっている可能性があります。ただし、ほとんどのユーザーは正直であり、マーケットからアプリを購入するため、著作権侵害を止めてもあまり利益は得られません (海賊版アプリをダウンロードするほとんどの人は、マーケットで有料アプリにアクセスできない人です。多くの国ではまだ利用できません)。

いずれにせよ、結果として、これはアプリと同じくらい安全である必要があり、ユーザーはアプリを保存する場所をより柔軟に選択できるようになります。予期しないアプリケーションの破損を引き起こすバグの場合、デフォルトでは有効になっていませんが、有効にしても完全に安全です。

于 2010-09-10T18:51:27.710 に答える
1

どうぞ。

ここに文書化されています。

Android プラットフォームでは、デバイスの内部メモリへのインストールの代わりに、アプリケーションがデバイスの外部ストレージ メディア (SD カードなど) へのインストールを要求できるようになりました。

アプリケーション開発者は、マニフェスト ファイルの新しい属性 android:installLocation を使用して、アプリケーションの優先インストール場所を表すことができます。この属性は、「internalOnly」、「preferExternal」、「auto」の 3 つの値をサポートしています。インストール時に、システムは android:installLocation の値をチェックし、可能であれば、優先する場所に従ってアプリケーション .apk をインストールします。アプリケーションが外部インストールを要求した場合、システムはそれを外部メディアの暗号化されたプライベート パーティションにインストールします。アプリケーション .apk が外部にインストールされると、システムは、ユーザーが .apk の保存場所を変更し、必要に応じてデバイスの内部メモリに移動できるようにします (逆も同様です)。

デフォルトでは、外部インストールを明示的に要求するアプリケーションを除き、システムはすべてのアプリケーションをデバイスの内部メモリにインストールします。つまり、レガシー アプリケーションは android:installLocation 属性にアクセスできないため、システムは常に内部メモリにレガシー アプリケーションをインストールします。ただし、必要に応じて、古いバージョンのプラットフォームに内部的にインストールされ、Android 2.2 以降のプラットフォームに外部的にインストールされるように、レガシー アプリケーションを構成およびコンパイルすることができます。

デバイスの外部メディアへのインストールを要求することは、すべてのアプリケーションに適しているわけではないことに注意してください。特に、外部メディアはリムーバブルである可能性があり、アンマウント/再マウントするとユーザー エクスペリエンスとシステム設定が損なわれる可能性があるためです。

外部インストールを要求する必要があるアプリケーションと要求しないアプリケーションの種類に関する説明など、アプリケーションの優先インストール場所の設定に関する詳細については、アプリのインストール場所のドキュメント.インストール場所のドキュメントを参照してください。

于 2010-09-10T18:51:58.553 に答える