我的Samsung Galaxy Y Android 2.3.6手机中安装了Any.DO和AK Notepad等应用。我已经尝试过Titanium Backup和App 2 SD(将应用程序移动到SD),但是仍然无法将这些应用程序全部移动到SD卡。怎么了?有人可以帮我吗?
我的Samsung Galaxy Y Android 2.3.6手机中安装了Any.DO和AK Notepad等应用。我已经尝试过Titanium Backup和App 2 SD(将应用程序移动到SD),但是仍然无法将这些应用程序全部移动到SD卡。怎么了?有人可以帮我吗?
Answers:
应用必须明确支持App2SD,否则您无法将其移动到卡中。应用可能不支持的原因有几个:
由于sdcard在连接到计算机时将不可访问,因此两者都会“崩溃”(因为它们无法再访问其数据等)。当然,开发人员总是有可能根本不在乎-在这种情况下,您应该联系他并询问。
有一些因素可能会影响此:
应用必须明确声明最好/可能将其安装在SD卡上。
从API级别8开始,您可以允许将应用程序安装在外部存储设备(例如设备的SD卡)上。您可以使用
android:installLocation
清单属性为应用程序声明此功能。如果不声明此属性,则您的应用程序将仅安装在内部存储器上,并且无法移动到外部存储器。
(强调我的)
应用已设置为使用API 7(Froyo)或更低版本进行编译,这不支持在SD卡上安装应用(即使已将其安装在GingerBread或更新的设备上)
您的应用程序可以在外部存储上安装的功能仅在运行API级别8(Android 2.2)或更高版本的设备上可用。在API级别8之前构建的现有应用程序将始终安装在内部存储上,并且无法移动到外部存储(即使在具有API级别8的设备上)。但是,如果您的应用程序设计为支持API级别低于8,则可以选择为API级别为8或更高的设备支持此功能,并且仍与API级别低于8的设备兼容。
(强调我的)
不建议将某些应用安装在SD卡上的原因如下:
当用户启用USB大容量存储与计算机共享文件(或以其他方式卸载或移除外部存储)时,安装在外部存储上且当前正在运行的任何应用程序都将被杀死。在禁用大容量存储并将外部存储重新安装到设备上之前,系统实际上不会意识到该应用程序。除了杀死该应用程序并使该应用程序对用户不可用之外,这还可能以更严重的方式破坏某些类型的应用程序。为了使应用程序能够始终如一地正常运行,如果使用以下任何功能,则不应允许将应用程序安装在外部存储上,这是由于卸载外部存储时会引起以下后果:
服务
Service
重新安装外部存储时,您的跑步将会终止,并且不会重新启动。[...]警报服务
AlarmManager
向其注册的警报将被取消。[...]输入法引擎
您的IME将被默认的IME代替。[...]
动态壁纸
您正在运行的动态壁纸将被默认的动态壁纸取代。[...]
应用小部件
您的应用窗口小部件将从主屏幕中删除。重新安装外部存储后,在系统重置主应用程序之前(通常要等到系统重启后),用户才能选择您的App Widget。
客户经理
创建的帐户
AccountManager
将消失,直到重新安装外部存储。同步适配器
AbstractThreadedSyncAdapter
在重新安装外部存储之前,您及其所有同步功能将无法使用。设备管理员
您
DeviceAdminReceiver
及其所有管理功能将被禁用,这可能会对设备功能产生无法预料的后果,可能会在重新安装外部存储后继续存在。广播接收器正在监听“启动完成”
ACTION_BOOT_COMPLETED
在外部存储器安装到设备之前,系统会传送广播。如果您的应用程序安装在外部存储器上,则它将永远不会收到此广播。如果您的应用程序使用上面列出的任何功能,则不应允许您的应用程序安装在外部存储器上。
(部分内容已删除。它们正在说明开发人员在重新安装SD卡后必须执行哪些操作才能使其应用正常运行。)
注意:此答案用作“为什么某些应用程序无法移动到SD卡”的常规信息
绝对有可能通过Link2SD将应用程序移至SD卡,并使它们仍然完美运行(包括小工具和服务)。
编辑:使用此方法需要对手机进行root访问,还需要对SD卡进行格式化以使其具有第二个分区。
为了避免在此处再次多余地发布答案,我将删除指向其的链接:https : //android.stackexchange.com/a/145591/167026