我想知道是否有一种方法可以告诉Android默认情况下在micro SD卡上安装应用程序,而不必先将应用程序下载到内存中,然后再手动将其移动到SD卡上。
谢谢
我想知道是否有一种方法可以告诉Android默认情况下在micro SD卡上安装应用程序,而不必先将应用程序下载到内存中,然后再手动将其移动到SD卡上。
谢谢
Answers:
HowtoGeek上的本文介绍了一种利用adb的可能方法:
adb shell pm setInstallLocation 2
adb shell pm set-install-location 2
)此命令会将设备的默认安装目标设置为SDCard。那并不一定意味着所有东西都安装在这里:只有支持此功能的应用程序才可以在那里安装,并且如果开发人员认为需要的话,可以在其应用程序清单中“否决”它。从链接的API参考中:
更改默认安装位置。位置值:
0
:自动-让系统决定最佳位置。1
:内部-安装在内部设备存储上。2
:外部-安装在外部介质上。注意:这仅用于调试;使用此功能可能会导致应用程序中断以及其他不良行为。
有关ADB的更多详细信息,以及如何将其获得最小版本(例如,在安装整个SDK的过程中没有过多杀伤力),您可以看一下adb 标签wiki。
更新:为避免与t0mm13b的答案混淆,在安装过程中需要注意以下几点:
/data/local
,即您的内部存储。您无法更改。.apk
将自动安装。在哪里,取决于多种因素:
android:installLocation
在其应用程序中指定属性Manifest
,则该应用程序将安装到内部故事中。句号,别无选择(请参阅:API参考)。android:installLocation
其设置为preferExternal
,并且有外部存储可用,它将进入该目录。auto
,则再次取决于:
那不能改变!这就是Android的工作方式。
从Google Play进行的所有下载均进入内部文件系统,然后从以下位置进行:
如果“ 移至SD卡 ”按钮被禁用或显示为灰色,则可能会阻止该应用程序正常运行-例如主屏幕上自己的窗口小部件。
另外,请参阅此页面右侧相关侧栏中的答案。:)
android:installLocation="auto"
没看过adb shell pm setInstallLocation 2
,大概是在这种情况下您指定了软件包名称...
android:installLocation
- 实际上是从管理应用程序设置启用了“ 移至SDCard ” ...有些开发人员未指定它,并使按钮处于禁用状态,但我承认-从未见过adb命令执行此操作
/data/local
,然后从那里安装了该应用程序。但是根据设置和清单,它既可以安装在内部,也可以直接安装在外部。//如果您想详细讨论这一点:您还记得我们的酒吧吗?:)
在您的手机中安装“ Android终端模拟器”并打开
$ su
# pm get-install-location
0[auto]
# pm set-install-location 2
# pm get-install-location
2[external]
问题是,如果您的手机已扎根,您可以更改默认安装目录。下载幸运的补丁程序,然后点击工具,您可以在其中找到更改默认安装目录的选项。**请勿在android 4或更高版本上执行此操作,否则可能会导致不可逆转的更改。**