Android App 安装路径 google官方文档

  次阅读 作者:智能小宝 来源:互联网 2016-01-13 21:43 我要评论(0)

App Install Location

译者署名: madgoat

译者链接:http://madgoat.cn

版本:Android 3.0 r1

原文

http://developer.android.com/guide/appendix/install-location.html

自API Level 8开始,你可以允许你的应用安装至扩展存储(例如,SD卡)。这是一个可选功能,你可以在你应用的manifest属性android:installLocation里设定。如果你没设定这个属性,那么你的应用将被安装到内置存储,而且将不允许移动到扩展存储上。

为了允许系统可以在扩展存储上安装你的应用,修改你的manifest文件,在 <manifest> 元素中包含android:installLocation 属性,设置其值为"preferExternal"或"auto"。例如:

<manifest xmlns:android=http://schemas.android.com/apk/res/android

android:installLocation="preferExternal"

... >

如果你定义了 "preferExternal",意味着你要求你的应用安装至扩展存储,但是系统不能保证应用肯定会安装至扩展存储。如果扩展存储没有空间了,系统将把应用安装到内置存储。用户可以在两个位置之间移动你的应用。

如果你定义了 "auto",表示你的应用可能会安装在扩展存储,但是对安装位置没有特别的偏好。系统将基于很多因素决定你的应用安装到哪里。用户同样可以将应用在两个位置之间移动。

当你的应用安装在扩展存储上:

l只要扩展存储已经挂载在设备上,对应用的性能都没有影响。

l.apk 文件保存在扩展存储上,但是所有的用户私有数据,数据库,优化过的 .dex 文件和释放的原生代码都保存在内置存储空间上。

l存储你应用的唯一容器是被一个随机生成的KEY加密存放的,仅仅能被最初安装的设备进行解密操作。因此,安装在SD卡上的应用仅仅针对一个设备可以工作。

l用户可以通过系统设置移动你的应用到内置存储。

警告:当用户启用USB大容量存储以共享文件给计算机或者通过系统设置卸载SD卡,外置存储从设备卸载并且所有运行在外置存储的应用立刻都被结束。

向后兼容Backward Compatibility

将你的应用安装至扩展存储的功能是运行API Level 8(Android 2.2)及以上版本的设备才有效的。使用API Level 8 之前的版本编译的已存在的应用,将一直安装在内置存储,并且无法移动至扩展存储(即使设备上运行的是API Level 8版本的系统)。然而,如果你的应用计划支持低于8的API Level,你可以选择针对API Level 8及更高版本支持此特性,并且继续保持与低于API level 8的设备兼容。

为了允许安装在扩展存储并且保持与API Level 8或更低版本兼容:

l在 <manifest>元素中,包含值为"auto"或 "preferExternal" 的 android:installLocation 属性。

l继续保持你的 android:minSdkVersion 属性不变(小于8的值)并且确定你的应用代码只使用与此level保持兼容的API。

l为了编译你的应用,更改你的build target为API Level 8。这步操作是必须的,因为旧的Android库无法理解 android:installLocation 属性,并且当该属性存在时,也不会编译你的应用。

当你的应用安装到API Level 低于8的设备上时, android:installLocation 属性被忽略,并且应用会被安装至内置存储上。

注意:尽管XML标记,例如这个将被之前的平台忽略,但你还是要小心不要使用API Level 8中的编程API,除非你在你的代码中提供向后兼容。关于在应用代码中创建向后兼容的信息,请参考 Backward Compatibility 这篇文章。

不应当安装在扩展存储的应用

Applications That Should NOT Install on External Storage

当用户启用USB大容量存储来给他们的计算机共享文件时(卸载或移除扩展存储), 任何安装在扩展存储上并正在运行的应用都会被结束。实际上此时系统并不知道应用程序的存在,直到大容量存储关闭,或者扩展存储重新挂载到设备上。除了杀死 该应用程序使它对用户不可用,它还会使用更严重地方式中断某些类型的应用程序。为了使你的应用始终如你所期望的那样运行,当你使用了下面任何一种特性,那 你就不应当允许你的应用安装到扩展存储上去,以避免产生当扩展存储被卸载时所导致的后果:

服务Services

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...