Sample
Android デバイスに1 つのアプリケーションをインストールしました。インストールしたアプリケーションは、Adroid デバイスのどこに保存されていますか (私のアプリケーションは google-play で承認されていません)、他のアプリケーションの保存場所のパスを見ることができます (これらのアプリケーションは google-play に対して承認されています)。
ありがとう。
たとえば、1 つのCalculator
アプリケーションをインストールしました。デバイスに保存され/data/calculaot-package-name
ます。テスト目的で、独自のアプリケーションを Android デバイスにインストールしました。そのパスは、アプリケーションの保存されたパスにはありません。
3 に答える
API レベル 8 以降、アプリケーションを外部ストレージ (デバイスの SD カードなど) にインストールできるようになりました。これは、 android:installLocationマニフェスト属性を使用してアプリケーションに対して宣言できるオプションの機能です。この属性を宣言しない場合、アプリケーションは内部ストレージにのみインストールされ、外部ストレージには移動できません。
システムがアプリケーションを外部ストレージにインストールできるようにするには、マニフェスト ファイルを変更してandroid:installLocation属性を"preferExternal" または "auto" のいずれかの値を持つ要素。例えば:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal"
... >
「preferExternal」を宣言すると、アプリケーションを外部ストレージにインストールするように要求されますが、システムはアプリケーションが外部ストレージにインストールされることを保証しません。外部ストレージがいっぱいになると、システムはそれを内部ストレージにインストールします。ユーザーは、2 つの場所の間でアプリケーションを移動することもできます。
「auto」を宣言すると、アプリケーションが外部ストレージにインストールされる可能性があることを示しますが、インストール場所の好みはありません。システムは、いくつかの要因に基づいてアプリケーションをインストールする場所を決定します。ユーザーは、2 つの場所の間でアプリケーションを移動することもできます。
アプリケーションが外部ストレージにインストールされている場合:
- 外部ストレージがデバイスにマウントされている限り、アプリケーションのパフォーマンスに影響はありません。
- .apk ファイルは外部ストレージに保存されますが、すべてのプライベート ユーザー データ、データベース、最適化された .dex ファイル、および抽出されたネイティブ コードは内部デバイス メモリに保存されます。
- アプリケーションが保存されている一意のコンテナは、ランダムに生成されたキーで暗号化されており、最初にインストールしたデバイスだけが復号化できます。したがって、SD カードにインストールされたアプリケーションは、1 つのデバイスに対してのみ機能します。
- ユーザーは、システム設定を通じてアプリケーションを内部ストレージに移動できます。
警告:ユーザーが USB 大容量ストレージを有効にしてコンピュータとファイルを共有するか、システム設定を介して SD カードをアンマウントすると、外部ストレージはデバイスからアンマウントされ、外部ストレージで実行されているすべてのアプリケーションはすぐに強制終了されます。
詳細:すべてのインストール場所
アプリケーションが内部メモリまたは外部メモリにインストールされているかどうかによって異なります。(マニフェストで)を使用する場合android:installLocation
、preferExternal
またはそれがSDカードの一部にauto
保存される可能性が高い/可能です。.android_secure
それ以外の場合は、 に配置する必要があり/data/app/com.yourpackage
ます。
それが安全な場所に保管されている場合、それを取得することはできません (ハックなことをしていないと仮定します - それでも、取得できるかどうかはわかりません)。
編集: ほとんどの場合、アプリケーション マネージャーからアプリを内部ストレージに移動できることを付け加えておきます。これがあなたのアプリである場合は、内部ストレージのみで使用するように指定できます.
手動で見つけるには、adb pull /data/system/packages.xml を調べて、コード パス エントリを見つけます。
プログラムからそれを行うには、ドキュメントで見つけることができるコード パスを決定するための API 呼び出しがあります。
知識をどのように活用できるかは、ケースごとおよびバージョンごとに異なる場合があります。