2012-07-02 61 views
0

我已经在Android设备上安装了一个Sample应用程序。我安装的应用程序存储在我的Adroid设备上(我的应用程序未经过Google Play授权),但我可以看到其他应用程序存储位置路径(这些应用程序有权在Google上播放)。

谢谢。

例如,我安装了一个Calculator应用程序。它将被存储到设备中的/data/calculaot-package-name。出于测试目的,我将自己的应用程序安装到了Android设备上。它的路径我在应用程序的存储路径中没有看到。Android设备上的应用程序存储位置

+0

很抱歉这么说,但你的问题的解释甚至还没有接近'clear'。 – overbet13

+0

请解释清楚,以便快速了解,那么只有我们可以给出适当的解决方案 – Ponmalar

+0

详细说明您的答案。无论您想说什么都不清楚... – Androiduser

回答

0

这取决于应用程序是否安装到内部或外部存储器。如果您使用(在您的清单中)android:installLocationpreferExternalauto它很可能存储在SD卡的.android_secure部分。否则,它应该位于/data/app/com.yourpackage

如果将它存储在安全区域中,您将无法得到它(假设您没有做黑客事情 - 即使我不确定是否可以得到它)。

编辑:我应该补充说,在大多数情况下,您可以将应用程序从应用程序管理器移动到内部存储。如果这是您的应用,但您可以指定您只需要在内部存储上使用它。

0

为了找到手动,adb pull /data/system/packages.xml并检查它以查找代码路径条目。

要从程序中执行此操作,需要api调用以确定可在文档中找到的代码路径。

你可以使用哪些知识可能因案例和版本而异。

2

从API级别8开始,您可以允许将应用程序安装在外部存储设备(例如设备的SD卡)上。这是一个可选功能,您可以使用清单属性android:installLocation声明您的应用程序。如果您未声明此属性,则您的应用程序将仅安装在内部存储器上,并且不能移动到外部存储器。

要允许系统在外部存储器上安装应用程序,请修改清单文件以在元素中包含android:installLocation属性,其值为“preferExternal”或“auto”。例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    android:installLocation="preferExternal" 
    ... > 

如果声明“preferExternal”,你要求你的应用程序的外部存储安装,但系统并不能保证你的申请将在外部存储安装。如果外部存储器已满,则系统会将其安装在内部存储器上。用户也可以在两个位置之间移动你的应用程序。

如果声明“自动”,则表明您的应用程序可能安装在外部存储器上,但您没有安装位置的首选项。系统将根据几个因素决定应用程序的安装位置。用户也可以在两个位置之间移动你的应用程序。

当你的应用程序安装在外接存储:

  • 有,只要外部存储设备安装在设备上的应用程序的性能没有影响。
  • .apk文件保存在外部存储器中,但所有私有用户数据,数据库,优化.dex文件和提取的本地代码都保存在内部设备内存中。
  • 存储应用程序的唯一容器使用随机生成的密钥进行加密,该密钥只​​能由最初安装它的设备解密。因此,安装在SD卡上的应用程序仅适用于一个设备。
  • 用户可以通过系统设置将应用程序移动到内部存储器。

警告:当用户启用USB海量存储与计算机共享文件或通过系统设置卸载SD卡,外部存储是从设备卸载和外部存储上运行的所有应用程序立即遇难。

详情:All Installation Location