除了可移植性之外,将应用程序存储在外部存储上还有其他优点(或缺点)吗?


26

将应用程序存储在Android设备的外部存储上是否有任何特殊的优点/缺点?有了Nexus S,我无法想到自己的优势,因为无法移除存储,而且内部存储足以满足我的需求。

我注意到,在电话启动时,当我将所有应用程序移至USB存储设备时,在菜单/主屏幕上注册所有应用程序的速度相当缓慢。

我还在某处读到,存储在外部存储器中的照片具有墙纸的背景,所有读取的内容实际上也消耗了大量的电池(尽管我认为这可能是一个错误)。


2
您没有HTC电话,也没有很小的内部存储带来的所有问题。您没有真正的理由将任何应用程序移至SD。
GAThrawn

Answers:


25

好处:

  • 扩展内存上的可用空间以安装更多应用。
    尽管应用程序的某些部分仍保留在内部存储器(数据和设置)上,但仍释放了大量的空间。对于具有150MB可用空间的旧手机(G1,MT3G等)来说,这是一个巨大的进步。对于这些设备的所有者而言,仅此优点便胜过此方法带来的任何缺点。

缺点:

  • 如果SD卡已卸载,则无法使用移动到SD卡的应用。
    有点不言自明:如果您卸下SD卡以将其卸下,则还必须停止驻留在该SD卡上的应用,并对其进行um安装,以防止在卸下SD卡后导致崩溃和数据丢失。
  • 将这些应用程序移至SD卡时,无法使用小部件或同步适配器。
    从以上观点来看,这是一个设计限制。由于需要根据需要删除存储在SD卡上的应用程序,因此挂接到您的帐户设置中的小部件或应用程序(例如Skype,LinkedIn)之类的应用程序将崩溃,无法轻松重新启动它们。因此,谷歌要求这些应用保留在内部存储器中,从而做出了让步。即使您设法将它们强制插入SD卡(某些自定义ROM允许这样做),您也将无法使用它们。
  • 系统安装/卸载SD卡上存储的所有应用程序时,启动和关闭时间更长。
    移至SD卡的应用程序不会一目了然地存储起来,以防止盗版猖ramp。相反,Android会留出一些空间并为您移动的每个应用程序创建一个虚拟分区。这意味着在初次启动时,必须先安装所有这些虚拟分区,然后才能访问存储在其中的应用程序。当您关闭手机时,情况也是如此-在卸载其他虚拟机之前,先卸载每个虚拟分区。根据安装的应用程序的数量,这可能需要一分钟甚至更长的时间才能使系统在启动时“稳定”下来(关闭系统大约需要20秒钟的时间。)不过,一旦发生这种情况,启动这些应用程序就不需要比内部存储器更长的时间。
  • SD卡额外磨损。
    这一点值得商,,因为写入SD卡(会导致磨损)的情况并不常见。而且,这些天的SD卡非常便宜,不必担心它们的使用寿命。
  • 应用程序需要更新才能支持此功能。
    移至SD卡的功能不会自动授予较旧的应用程序。开发人员必须更改其应用程序以支持此功能,然后通过Market(或他们使用的任何分发方法)发布更新。某些较旧的应用程序可能不再受支持,因此可能永远无法获得此功能。尽管某些自定义ROM可以覆盖此问题,但是对于大多数运行常规固件的人来说,这是一个问题。

对于具有千兆位内部存储器的较新设备,由于空间不是问题,因此无需将应用程序移动到外部存储器。但是,对于内存不足的手机,这是一种宝贵的工具,可以为拥有者延长其保质期。


另一个缺点:从备份还原时,所有还原的应用程序都进入主内存-当主内存填满时,这将导致还原失败。

1
@David确实取决于您用于备份/还原目的的应用程序。更好的版本(例如,Titanium Backup)将为您提供还原位置的选项,并允许直接还原到SD卡或原始位置。
Chahk 2012年

在SD卡上“佩戴”吗?来吧,内部存储上的磨损不多于或少。
LarryBud

31

直接取自android开发者网站

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

另外->不应安装在外部存储上的应用程序(有关Android开发者网站的更多详细信息)

  • 服务
  • 警报服务
  • 动态壁纸
  • 活文件夹
  • 应用小部件
  • 客户经理
  • 同步适配器
  • 设备管理员
  • 广播接收器正在监听“启动完成”


13

如果您卸下SD卡或打开USB大容量存储(因此可以从计算机进行访问),则SD卡上安装的应用程序将无法运行。那是我一直经历的唯一缺点。

自从使用SD以来,我实际上已经看到了性能的提高。在转移到SD之前,我已经用尽了内部存储器(还剩下大约几千字节),并且电话的延迟非常严重。由于移至SD(因此释放了内部存储器中的某些空间),因此延迟消失了。


7

对于某些电话和设备(尤其是较旧的电话和设备),内部存储空间非常有限。每个应用程序(及其数据文件)都占用宝贵的空间。也就是说,我的Ideos拥有512MB的空间,在我开始将应用程序“撤离”到SD卡之前已经快满了。

另一个因素是能够备份您的应用程序和数据,或将它们移动到另一台设备。

除此之外,您的观察还不错,与内部存储器相比,应用程序从外部存储器的加载速度较慢。如果您在主屏幕上有这些应用程序的快捷方式,这将非常明显-您会在前30秒内看到一个通用的Android图标,直到该应用程序位于卡上。

我发现切换到6类microSD(手机随附的默认2类)大大改善了这种情况。尽管如此,冷启动后,我的手机仍需要约20秒才能“均衡”。


哦,默认班级2?太残酷了
马修·

5

安全性和性能影响

存储在外部存储器上的应用程序资源是只读的,因此在SD卡上加载或启动应用程序时没有性能问题。

来自:http : //android-developers.blogspot.co.uk/2010/07/apps-on-sd-card-details.html

该帖子由“从事此功能的工程师Suchi Amalapurapu”撰写。该功能是将应用程序放入SD卡的功能。


1
为什么外部存储是只读的,为什么启动应用程序的速度并不慢?我本以为阅读性能对此更重要。
Erik

2

根据我的经验,几乎没有或没有任何可察觉的性能问题。使用Nexus One管理内存时,我感到非常烦恼。我使用S2E进行迁移,但没有回头。能够不必仅安装新应用就删除应用程序,真是太神奇了。


-2

我认为将应用程序从内部迁移到外部不会影响性能。

但是从外部存储(而不是内部存储)打开应用程序确实需要花费额外的几毫秒。里程因设备而异,具体取决于速度,Android版本等


-2

如果其中有很多正在运行的应用程序(例如Viber,WhatsApp,Facebook Messenger等)可能会大大降低ui的速度,所以最好在手机上保持恒定的服务记忆,因为相比之下影响并不明显。


如果它一直在运行,那么它将被加载到内存中,并且在初始加载时间之后安装在什么位置都没有关系。

-3

永远不要将您的应用程序移动到外部SD卡中。这将使您的手机滞后更多,并且手机重启的速度将比平常慢。您甚至可能每天或每周必须重启一次电话。处理这些应用程序拥有的所有信息将花费更长的时间。我从经验上讲。


1
您能否提供给我们一些难以置信或难以验证的信息,以便我们以技术方式评估您的答案?(提示:基准测试)
Firelord
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.