android 应用搬家 分区,把安装在SD卡的应用存在DATA分区的数据移到SD卡上

前提SD安装的应用是每装一个应用分一个区出来的。

在packagemanagerservice.java的

getDataPathForPackage中可以得到应用的data路径,即/data/data/app/,下面存有file,lib,cache,databaset等。

在getDataPathForPackage可以把除lib库以外的文件夹移到其它的地方。

OptInvocation.c生成执行时的dalvik-cache目录,即/data/dalvik-cache

dexOptGenerateCacheFileName

必须要改变SD卡的属性为777,如果不想改变,有如下方案,改变应用安装时分区的属主。但有如果问题:

InstallParams->HandlerParams -> handleReturnCode->processPendingInstall调用installPackageLI

scanPackageLI的pkg.applicationInfo.uid = pkgSetting.userId;

中才得到UID,installPackageLI的doRename(SD的情况mountSecureContainer)却是在scanPackageLI前执行的,似乎要改

/mnt/asec/下应用的属主是不可能的。而只能在doRename使用默认的Process.SYSTEM中的这个属主。

似乎要改变/mnt/asec/下应用的属主的计划要破产???只能打开SD卡的所有权限才能搞定吗???

再想想吧,应该还有其它的方法。

现在手机都有内置SD卡,听说framework有对其读写的权限,没有拿到手机,有手机再试吧。

改安装在SD卡应用存DATA分区/data/dalvik-cache

Commands.c的create_cache_path生成cache目录。

OptInvocation.c生成执行时的dalvik-cache目录,即/data/dalvik-cache,

改变dexOptGenerateCacheFileName,可以改/data/dalvik-cache,把它移出DATA分区。

把SD卡改成777的话,有很多问题会首先,在产品上似乎不可行。

实现成功,但没添加进行,就是会有其它的问题产生。

如果DATA分区足够大,没有必要这样做。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值