如何确认一个应用程序的安装位置

时间:2023-02-16 07:55:08


有些应用能安装到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测试失败。