首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android设备上的应用程序存储位置

Android设备上的应用程序存储位置
EN

Stack Overflow用户
提问于 2012-07-02 20:09:51
回答 3查看 12.2K关注 0票数 0

我已经在安卓设备上安装了一个Sample应用程序。我安装的应用程序存储在我的Adroid设备上的位置(我的应用程序在google-play中未授权),但我可以看到其他应用程序的存储位置路径(这些应用程序已授权到google-play )。

谢谢。

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

EN

回答 3

Stack Overflow用户

发布于 2012-07-03 12:04:39

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

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

代码语言:javascript
复制
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
    ... >

如果您声明"preferExternal",则表示您请求将应用程序安装到外部存储上,但系统不保证您的应用程序将安装到外部存储上。如果外部存储器已满,系统会将其安装在内部存储器上。用户还可以在这两个位置之间移动应用程序。

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

当您的应用程序安装在外部存储上时:

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

警告:当用户启用U盘与计算机共享文件或通过系统设置卸载SD卡时,外部存储器将从设备上卸载,并且在外部存储器上运行的所有应用程序都将立即终止。

详情:All Installation Location

票数 2
EN

Stack Overflow用户

发布于 2012-07-02 21:23:26

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

如果它被存储在安全区域,你将无法获得它(假设你不是在做一些棘手的事情-即使那样我也不确定你是否能得到它)。

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

票数 0
EN

Stack Overflow用户

发布于 2012-07-02 22:03:33

要手动查找,adb拉取/data/system/packages.xml并检查它以查找代码路径条目。

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

您可以利用这些知识的用途因案例和版本的不同而不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11293429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档