Android移动应用程序到SD

GMs*_*soF 14 android

实际上我想找到当我们将应用程序移动到SD卡时涉及哪些项目?我试图搜索,但所有答案都指向"如何将应用程序移动到SD",但实际上我只是想知道哪些项目已转移到SD以及剩下哪些项目.当我将应用程序移动到SD时,我可以看到仍有一些内存(在内部存储器中).我只是好奇剩下的东西是什么?应用程序实际移动到哪里(sd卡的哪一部分)?

Roy*_*nto 18

好问题!

让我用一个示例包解释你说"com.example.app"

现在,当第一次安装应用程序时,将通过名称创建一个新文件夹

/data/com.example.app

其中将包含所有应用程序私有数据.

同样,APK本身也包含在

/data/app/com.example.app-1.apk

现在,当我们将应用程序移动到外部存储时,会发生以下情况.

  • 不会被移动到/ mnt/sdcard/partition
  • Android将在/ mnt/asec partiton下创建一个名为的新文件夹/mnt/asec/com.example.app.您可以使用任何文件管理器应用程序访问此路径,因为它具有rw权限
  • 它将创建libs目录的副本(如果有)并在此处移动所有文件和数据库.
  • 它还会将APK从"/data/app/com.example.app-1.apk"复制到 /mnt/asec/com.example.app/com.example.app-1.apk

这样,/data分区空间将被保存,并可以重用于其他应用程序.当手机电量不足/数据存储将应用程序移动到外部存储时,这是一个很好的技巧.

  • Android将其存储分区为多个子分区.尝试使用adb观察/ proc/partitions.所以/ data和/ mnt属于单独的分区.所以/ mnt/asec不是内部存储器.其次为什么它没有去/ mnt/sdcard /是一个Android设计选择.如果Android OS想要它,它也可以很好地去那里.移动后,内部存储器中也会看到几KB数据因为库和缓存被遗忘,还有一个"移动到内部存储"的选项.所以当需要再次移回东西时,它是一个占位符:) (2认同)