【奇技淫巧】用SD卡扩容内置存储并将应用(含数据)移动到SD卡

【奇技淫巧】用SD卡扩容内置存储并将应用(含数据)移动到SD卡

概述

        这里简单介绍一下我要做的原因和目的,另外提前声明我的设备型号,以避免不同手机型号导致的差异问题。另外这里提一下,此操作仅仅是我个人对我自己现有设备的尝试和探索,不一定能适用所有的设备型号,但是一定能提供一些思路
        我的手机是Redmi Note 13 5G,256GB存储空间,搭配了1TB的SD卡。因为装的应用比较多(社交、视频、游戏、编程等等,另外还用shelter开辟了工作空间,装了购物、短视频等等app),而最近还要玩剑网3,60GB的数据成了问题,所以就想到了把应用数据装入内存卡中。
        我的手机的系统是Hyperos,小米定制的Android系统,其可以通过关闭MIUI优化显示部分原生界面。这一点一定要注意,没有原生界面恐怕不行。
        另外就是,因为我是在常用机上操作的,也就是说SD卡里是有内容的,所以我后续所有的操作,都是以不改变数据为标准的,如果你不需要备份数据,请自行辨别哪些是可选操作

准备工作

  • (可选)与SD卡内容物大小相当的U盘:这里是为了备份数据用的,因为后续要格式化SD卡,我用的是固态U盘,主要是读写速度快;如果你使用电脑操作,可以不用
  • (可选)一个Type-C转OTG+充电的数据线:我买的绿联的,这样可以一边操作OTG一边充电;同理,如果你不用U盘,这个自然没用了
  • 读卡器:这里是为了将来恢复SD卡在Android系统里的路径而准备的;
  • 电脑里装好ADB(含手机驱动、连接电脑的数据线)、DiskGenius(简称DG);
  • 手机最好已经ROOT,不过没有ROOT好像也无所谓;
  • 手机里装好Root Explorer(简称RE)或Total Commander(简称TC)文件管理器。

        这里假设你已经做好备份了。我的建议是,备份数据之前,先将需要读取SD卡数据的APP冻结起来,以避免数据在途中被更改。我这里已经手机已经ROOT了,所以使用的Thanox进行的冻结操作。

记录工作

        SD卡在Android系统中的路径是/storage/****-****/,比如/storage/A2C4-E6G8/。这串数值名叫Volumn ID,每一次格式化SD卡都会重新生成,为了避免将来已有APP无法识别到SD卡里的数据,这里需要先记录下来,后续使用使用DG进行恢复。
        这里可以使用RE或TC文件管理器来查看。

格式化SD卡

        手机保持开机状态,用数据线连接电脑,并使用以下ADB命令格式化内存卡:

# 让ADB连接到手机,这一步必须成功
adb shell
# 记录“xxx,x”,后面要用!!!
# 如果没有插入OTG且你只有一张SD卡的话,
# 这里有且仅有一条记录!
sm list-disks
# 可选格式化方案1:全盘作为内部存储使用
sm partition disk:xxx,x private
# 可选格式化方案2:全盘的30%作为内部存储使用,
# 剩余70%为正常的存储空间,可以在电脑上挂载!
sm partition disk:xxx,x mixed 70

        这里敲几个重点:

  1. sm partition disk:xxx,x private后面的private改为public就是将SD卡格式化为正常空间;但是如果想恢复SD卡,没必要使用命令行,直接在系统设置里格式化就行;
  2. 方案2是以百分比来操作的,具体多少比例合适我也不太清楚;我最开始想要给内部存储 1 4 \frac{1}{4} 41的,也就是mixed 75,但是发现系统识别不了,后来看到有文章说必须是10的倍数,所以我用的70%
  3. 格式化后,手机可能会重启,不必在意。

善后工作

        前面将SD卡格式化后,SD卡的正常存储部分的Volumn ID就变了(详见上面记录工作部分),所以这里要关机,把SD卡取出,用读卡器连接电脑,然后打开DG,在正常分区上右键,选择“change volumn id”,然后填上原来的数值(注意这里没有短横线,也就是A2C4-E6G8需要填入A2C4E6G8)。
        确认更改完成后,就可以重新插入手机上了。如果这里你没有准备U盘而是使用电脑做的数据备份的话,现在就可以将数据恢复回去了。
        开机后,如果你想我一样冻结了一些操作SD卡数据的APP的话,在恢复完成所有数据后,就可以解冻了。

开机后,如果SD卡加载成功且能看到现在的SD卡空间变小了,就是成功了。

应用(含数据)搬家到SD卡

        如果你现在打开一个APP的设置界面的话,点开存储,你会发现没有搬家或类似的按钮来迁移数据。我用的是小米的Hyperos系统,所以现在还需要2步,你就可以在APP的存储设置界面里,看到那个盼望已久的按钮了:

  1. 打开开发者选项(不会的请自行搜索);
  2. 打开“强制允许将应用程序写入外部存储设备”;
  3. 关闭“启用系统优化”。

小结

        现在就可以将应用(含数据)进行迁移了,迁移完成后记得恢复系统优化,毕竟优化后的Hyperos比较好看。
        最后,我用的SD卡是普通的金色SD卡,速度一般,我只是把剑网3迁移过去了,但是最终无法迁移那60GB的数据(内部存储/Android/data),只有APK过去了;我试过把QQ迁移过去,结果每次启动都要卡几秒,实在受不了就又迁移回来了。所以我的SD卡里只有英雄联盟手游、王者荣耀、炉石传说和剑网3这些游戏了,加载到内存之后速度还可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值