Android清单中的auto
和preferExternal
安装位置有什么区别?两个选项都可以在外部存储器上安装应用它是大而重要的吗?设置哪个更好?
答案 0 :(得分:17)
如Android Api指南中所述,
Beginning with API Level 8, you can allow your application to be installed on the external storage (for example, the device's SD card). This is an optional feature you can declare for your application with the android:installLocation manifest attribute. If you do not declare this attribute, your application will be installed on the internal storage only and it cannot be moved to the external storage.
我认为最好宣布android:installLocation
因为,
属性android:installLocation
可以包含以下可能的值。
“internalOnly”:应用程序必须仅安装在内部设备存储上。如果设置了此项,则永远不会在外部存储上安装应用程序。如果内部存储已满,则系统将不会安装该应用程序。如果您未定义android:installLocation
,这也是默认行为。
“auto”:应用程序可能安装在外部存储上,但默认情况下系统会将应用程序安装在内部存储上。如果内部存储已满,则系统会将其安装在外部存储上。安装后,用户可以通过系统设置将应用程序移动到内部或外部存储。
“preferExternal”:该应用程序更喜欢安装在外部存储设备(SD卡)上。无法保证系统会遵守此请求。如果外部介质不可用或已满,或者应用程序使用前向锁定机制(外部存储不支持),则应用程序可能安装在内部存储上。安装后,用户可以通过系统设置将应用程序移动到内部或外部存储。
答案 1 :(得分:1)
如果您声明preferExternal
,则请求将您的应用程序安装在外部存储上,但系统不保证您的应用程序将安装在外部存储上。如果外部存储空间已满,系统会将其安装在内部存储器上。
如果您声明auto
,则表明您的应用程序可能已安装在外部存储上,但您没有安装位置的首选项。系统将根据几个因素决定安装应用程序的位置。用户还可以在两个位置之间移动您的应用程序。
参考 http://developer.android.com/guide/topics/data/install-location.html