0

SampleAndroid デバイスに1 つのアプリケーションをインストールしました。インストールしたアプリケーションは、Adroid デバイスのどこに保存されていますか (私のアプリケーションは google-play で承認されていません)、他のアプリケーションの保存場所のパスを見ることができます (これらのアプリケーションは google-play に対して承認されています)。

ありがとう。

たとえば、1 つのCalculatorアプリケーションをインストールしました。デバイスに保存され/data/calculaot-package-nameます。テスト目的で、独自のアプリケーションを Android デバイスにインストールしました。そのパスは、アプリケーションの保存されたパスにはありません。

4

3 に答える 3

2

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 カードをアンマウントすると、外部ストレージはデバイスからアンマウントされ、外部ストレージで実行されているすべてのアプリケーションはすぐに強制終了されます。

詳細:すべてのインストール場所

于 2012-07-03T04:04:39.007 に答える
0

アプリケーションが内部メモリまたは外部メモリにインストールされているかどうかによって異なります。(マニフェストで)を使用する場合android:installLocationpreferExternalまたはそれがSDカードの一部にauto保存される可能性が高い/可能です。.android_secureそれ以外の場合は、 に配置する必要があり/data/app/com.yourpackageます。

それが安全な場所に保管されている場合、それを取得することはできません (ハックなことをしていないと仮定します - それでも、取得できるかどうかはわかりません)。

編集: ほとんどの場合、アプリケーション マネージャーからアプリを内部ストレージに移動できることを付け加えておきます。これがあなたのアプリである場合は、内部ストレージのみで使用するように指定できます.

于 2012-07-02T13:23:25.583 に答える
0

手動で見つけるには、adb pull /data/system/packages.xml を調べて、コード パス エントリを見つけます。

プログラムからそれを行うには、ドキュメントで見つけることができるコード パスを決定するための API 呼び出しがあります。

知識をどのように活用できるかは、ケースごとおよびバージョンごとに異なる場合があります。

于 2012-07-02T14:03:33.093 に答える