有些应用能安装到SD卡上,有些不能,这其中有一定规则。如何判断?
6575/6577/6589 Android GB2, ICS, ICS2,JB,JB2
[Solution]
Google 默认 PackageManager 管理安装包的机制如下 (按照优先级由高到低描述,如果高优先级的条件被满足, 则不继续参考较低优先级的选项):
1.安装应用到SD卡,需要指定install flag: adb install –s ***.apk
该设置拥有最高优先级,最终安装结果以这个为准,不管下面2个的配置.
2.若没有特别指定1中的install flag,将会检查 AndroidManifest.xml中android:installLocation的定义。
manifest的設定細分為:
android:installLocation = "auto",表示先查看手机内存是否足够,如果够就安装在手机内存上,不够就安装在 T 卡上;
android:installLocation = "internalOnly",表示安装在手机内存上;
android:installLocation = "preferExternal" ,表示安装在 T 卡上;
3.若AndroidManifest.xml中没有定义installLocation,则参考“设置”-“存储”-“首选安装位置”
首选安装位置会有3个选项:由系统决定,手机内存,手机存储。
注意:“首选安装位置”默认是关闭的,我们也不建议开启。因为有些应用google默认是要安装在手机内存中,若因为这个“首选安装位置”将应用安装到sd卡上,可能会导致cts测试失败。
相关文章
- 如何确认一个应用程序的安装位置
- Django - 如何让一个应用程序引用另一个应用程序
- 如何从一个Visual C#项目构建两个不同的应用程序?
- 如何在Linux上编译一个编译并运行良好的“C”应用程序?
- 如何构建一个Eclipse RCP应用程序,使其特性能够自动更新?
- 当某个异常发生时,如何确保我的MVC应用程序重定向到一个错误页面?
- 如何在一个字符串中依次查找每一个匹配子字符串位置?
- 【Asp.net入门04】第一个ASP.NET 应用程序-如何添加Web窗体到网站中
- 如何使用 Spring Boot 构建一个简单的 Web 应用程序
- intel Pin:动态二进制插桩的安装和使用,以及如何开发一个自己的Pintool