1、把外置存储卡改为内置存储卡的方法:必须是获取root权限的z5smini;下载re文件管理器并安装;下载vold压缩文件并解压到手机内部存储根目录。
2、打开RE管理器进入system/etc文件夹找到和vold解压同名的文件并备份;进入storage/sdcard0找到你刚刚解压的文件然后复制到system/etc下;然后覆盖重启。
3、具体操作:打开RE管理器,找到system/etc下voldfstab文件;用文本编辑器打开,进行修改,修改后对比修改前后的内存;因为已经互换内外卡,原来装在内置卡的软件系统找不到。但在内部存储空间的不影响也就是DATA区的。
内部存储是指你的手机自带的存储空间,内部存储是手机自带的存储空间不能调节的,
外部存储是指所连接的移动存储空间,外部存储可以更换,这个一般是sd卡,
你可以在安装软件的时候选择手机卡存储就可以将软件安装在手机卡上不会占用手机内存。
手机有四个储存,一个是ram是运行储存就是闪存,一个是手机的内置储存卡和外置的sd卡一样可读可写,就是不可卸,还有一个就是手机的系统储存空间装应用程序的,最后是sd卡。
总述
觉得十分有必要搞清楚内存,内部存储和外部存储的区别,还有我们在开发中真正将数据存在了手机的哪儿。
先提一个问题:手机设置的应用管理中,每个App下都有清除数据和清除缓存,清除的分别是哪里的数据?
一 内存,内部存储和外部存储
整个存储空间分为内部存储和外部存储两部分,内部存储中又包含RAM和ROM等部分。
内部存储,即InternalStorage,也常说内置存储卡,这是手机内置的存储空间,出厂时就被确定,是手机的一个硬件指标。类比电脑的内存。
外部存储,即ExternalStorage,也常说外置存储卡,手机出厂时并不存在,是由用户自由扩展的存储空间,常见的就是SD卡。类比电脑的外接移动硬盘。
RAM,即常说的运行时内存,是手机运行时存储数据和指令的地方,注意是运行时内存。类比电脑的内存条。
ROM,用来存放一些系统文件,应用配置和其他数据的地方,是内部存储中主要存储区域。类比于Windows电脑的C盘。
上图中运行内存即RAM,共2G,机身存储即内部存储,共8G。
打开手机的文件管理,再点击手机一项,可以看到下图:
上图中箭头所指的地方,可以进行内部存储与外部存储的切换,当前页为内部存储下的展示,这只是Android系统存储数据的一部分而已,大部分数据都对用户隐藏。至于红框部分下面继续讲。
二 详说存储
一般来说,App软件大都安装在内部存储的ROM区,当然现在也有办法安装在SD卡上,但这需要App自身支持及SD卡分区等一系列操作,下面讨论的App是安装在ROM区的。
以Genymotion模拟器设备为例来分析,型号是三星GalaxyS5。直接使用AndroidStudio的DDMS,打开File Explorer,我们可以看到下图:
这张图是手机根目录下的完整目录结构图,内外部存储均包含在内。不过有些文件内容需要root权限才能看到。
上面展示的内部存储图就是其中一部分子目录。
选其中几个重要的文件夹介绍。
21 /data包:主要存储手机应用的相关数据。
如上图的二级目录中,/data/app文件夹下存放三方应用的apk文件;/data/data文件夹下存放系统应用和三方应用的包私有数据,每个应用都有独属于自己的包。
选一个三方应用包——comXmain,来分析三级目录——/data/data/comXmain下都有什么数据:
由包名不难看出:cache包存放缓存数据,databases包存放使用SQLite存储的数据,files包存放普通数据(log数据,json型数据等),shared_prefs包存放使用SharedPreference存放的数据。这些包都是由系统创建的。
22 /mnt/sdcard/storage包:这三个包,与手机的部分内置存储卡数据和外置存储卡数据有关。
上面的完整目录结构图中有其子目录信息展示。
以内置存储卡来说,通常用sdcard0表示:Android41上,首先挂载到目录/storage/sdcard0上面,/sdcard和/mnt/sdcard都只是指向/storage/sdcard0的软链接;Android42上,首先挂载到目录/storage/emulated/0(0就表示内置存储)上面,为兼容之前版本,又挂载到/storage/emulated/legency上面,/storage/sdcard0、/sdcard和/mnt/sdcard都只是指向/storage/emulated/legency的软链接。(挂载相当于真正位置,软链接相当于指针)。
/mnt/sdcard是Android22及之上版本使用,/sdcard是Android21及之下版本使用。
在手机的文件管理中看到的内置存储卡文件,如上面文件管理页面的图,就是/storage/emulated /0包的子目录,Android包的路径就是:/storage/emulated/0/Android。
23 其他
/dev包:Linux系统的常规文件夹。
/system包:系统配置的文件夹,比如Android系统框架(framework)、底层类库(lib)、字体(font)等。
三 存储相关操作
在Android开发中,我们常打交道的存储空间有三部分。
一是根目录下路径为 /data/data/包名/XX 的文件。开发中SQLite数据、SharedPreference数据均保存在这里,虽说我们可以读写操作,但这部分空间由系统维护。
二是在外置存储卡上做存储。暂时不讲。
三是在内置存储卡中做存储。在/storage/emulated/0/Android/data包下或与/storage/emulated/0/Android包同级目录上,建立App包存储数据,这部分空间均由开发者维护。区别在于/storage/emulated/0/Android/data包下的数据为私有目录数据,会随App卸载被清除,与/storage/emulated/0/Android包同级的数据(如系统目录DCIM包,DOWNLOWN包和bluetooth包,还有下图中的baidu包)属于公有目录数据,不会随App卸载被清除,这就会造成数据的卸载残留。
Google官方建议开发者将App的数据存储在私有目录即/storage/emulated/0/Android/data包下,这样卸载App时数据会随之被系统清除,不会造成数据残留。
对存储空间进行操作,首先要获取存储空间的存储路径,对此Android提供了Environment类和Context类来获取路径。
就上面对存储空间的划分,第一部分空间对用户不可见,是在具体包名下的,和特定的App有关,所以对这些数据的访问需调用Context类中的方法;第三部分空间对用户可见,私有目录数据仍与特定App有关,需调用Context类中的方法,而公有目录数据与App无关,应调用Environment类中的方法。
总结如下图:
写了个小程序对Environment类和Context类相关方法测试,如下图:(冒号前为方法名,冒号后为输出结果)
四 回答最初提出的问题
手机设置的应用管理中,每个App下都有清除数据和清除缓存,清除的分别是哪里的数据?
还是用上面的Genymotion模拟器设备来分析,主要测试三部分数据:
内部数据:/data/data/包名/XXX
外部私有数据:/storage/emulated/0/Android/data/包名/XXX
外部公有数据:/storage/emulated/0/包名/XXX
测试结果图就不上了,直接上结论:
清除缓存:将外部私有数据下的cache包(/storage/emulated/0/Android/data/包名/cache)清除,将内部数据下的cache包下的内容(/data/data/包名/cache/XXX)清除 。
清楚数据:将外部私有数据包(/storage/emulated/0/Android/data/包名)清除,将内部数据下的所有内容(/data/data/包名/XXX)清除;
而两种操作对外部公有数据均无影响。
如果你是想把应用程序从内卡转至外卡,可以下载一个360优化大师,前提是内卡为主要SD卡,把软件都转移到手机内存,然后再把外卡设置成主要SD卡,把应用再转移至SD卡,这时的软件会被装在外卡而不是内卡,这样转移就成功了;当然,如果应用程序过多的话这招肯定很麻烦,应用过多的话也可以用360优化大师,当然系统内置软件你是不用转移的,首先在换外卡前用的都是内卡作为主要SD卡,这时你装在SD卡上的软件都在内卡里,先打开360优化大师,然后打开应用卸载,勾选全部软件,然后备份,之后你不要急着卸载,先从系统设置(手机系统设置,不是360优化大师)的内存那一栏里设置将外置存储卡作为系统默认SD卡,具体叫什么我忘了,你摸索摸索,然后在重新安装文件,还有就是把内卡的文件复制或剪切到外卡就好,数据也一起转移了。。。表达太罗嗦了。。。既然你刷过机,360优化大师加上root超级权限功能还是挺强的。
操作方法如下:
1EMUI 23平台操作方式
点击“设置”,在“全部设置”界面的“应用程序”区域,点击“应用程序管理”,选择想移动的应用程序,然后点击“移至SD 卡”。成功移到SD卡后,该选项会变为“移至手机内存”。
2EMUI 30和EMUI 31平台操作方式
点击“设置”,在“全部设置”界面的“应用”区域,点击“应用管理”,选择想移动的应用程序,然后点击“移至SD 卡”。
图示仅供参考,具体操作请以手机实际界面为准。
3EMUI 40平台操作方式(部分可移动机型)
点击“设置 > 应用管理”,点击想移动的应用程序,然后点击“存储 > 更改”,根据界面操作。
备注:
您可以通过尝试移动“微信”来判断手机是否支持将应用移至SD卡。如果不支持将不会有“更改”按钮。
图示仅供参考,具体操作请以手机实际界面为准。
根据您的描述,该型号手机,应用程式是默认安装在话机的内置存储器中,无法移动至SD卡,安装路径是不支持更改的。您可以将手机内存储的多媒体等文件移动至外置SD卡中:
1多媒体文件:打开我的文件-选择需要移动的文件夹-菜单(左触摸感应按键)-移动至-extsdcard中
2如果是照相机拍摄的/视频,可提前设置存储路径为SD卡,打开照相机-设置(小齿轮图标)-存储器-内存卡
3自带浏览器(也就是一个“地球”图标)下载选项可修改路径:浏览器-菜单键-设定-高级设定/内容设置-默认存储器-SD卡/设备(仅是下载存储位置改变,如安装应用程序仍安装于手机内置硬盘中)
欢迎分享,转载请注明来源:品搜搜测评网