android持久化方式 Android手机的存储分为:内部存储和外部储存,在Android4.4以前,手机机身存储就叫内部存储,插入的SD卡就是外部存储,但是在Android4.4以后这两个存储的定义又有了一些些变化...,新的手机不再有外插SD卡的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储和外部存储在新的Android手机上已经在同一个硬件上了。...手机机身自带的存储也是外部存储,如果再插入SD卡的话也叫外部存储,不过现在也几乎没有在采用扩展卡内存这种方式来增加手机存储空间了,手机自带的外部存储足矣,除此以外还有一种公有目录存储,它返回的目录全都是共享的公有目录...当然除了SD卡上面的数据,SD卡上面的数据当app卸载之后还会存在的。...5.2清除缓存 缓存是程序运行时的临时存储空间,它可以存放从网络下载的临时图片,从用户的角度出发清除缓存对用户并没有太大的影响,但是清除缓存后用户再次使用该APP时,由于本地缓存已经被清理,所有的数据需要重新从网络上获取
因此,越来越多地将SD卡用于外部数据存储, 由于SD卡作为外部存储设备的泛滥,Android的存储命名约定基于以下事实:每个设备都有一个实际的物理microSD卡插槽。...但是,即使在不包含SD卡插槽的设备上,/ sdcard标签仍用于指向实际的内部存储芯片。更令人困惑的事实是,既使用物理SD卡又使用大容量存储芯片进行存储的设备通常会根据SD卡来命名其分区。...与实际安装“ sdcard”的USB大容量存储模式不同,MTP允许用户在插入电源后继续使用其设备。此外,Android手机上的文件系统对于计算机识别设备上的文件不再重要。...许多应用程序会简单地使用应用程序名称创建一个文件夹并将其文件存储在该文件夹中。 当时几乎所有的应用程序都需要WRITE_EXTERNAL_STORAGE权限才能将其应用程序文件写入外部存储。...实际上,从API级别19开始,不再需要READ_EXTERNAL_STORAGE来访问位于外部存储器上的文件-只要FUSE守护程序创建的数据文件夹与应用程序的软件包名称匹配即可。
android持久化方式 Android手机存储分为:内部存储和外部储存。 在Android4.4以前,手机机身存储就叫内部存储,插入的SD卡就是外部存储。...但是在Android4.4以后这两个存储的定义又有了一些些变化,新的手机不再有外插SD卡的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储和外部存储在新的Android手机上已经在同一个硬件上...内部存储 内部存储位于系统中很特殊的一个位置,对于设备中每一个安装的 App,系统都会在 data/data/packagename/xxx 自动创建与之对应的文件夹。...,同时在app卸载之后,这些文件也会被删除,类似于内部存储。...image.png 外部存储并不总是可用的,因为外部存储可以移除(早期设备)或者作为USB存储设备连接到PC,访问前必须检查是否挂载(mounted)。 ?
《个人平时笔记,看到的同学欢迎指正错误》 1、存储相关详解知识 安卓起初早年是有内置SD卡和可扩展插拔TF卡区分的,但是近年手机内置SD卡的高内存导致越来越少的手机支持TF卡(外置SD卡)扩展了。...外部存储上,应用私有文件的价值在于卸载之后,这些文件也会被删除。类似于内部存储,只是和内部储存不同的是这个部分可以给用户和其他应用访问。所以才叫外部储存的私有部分嘛。...如:/storage/emulated/0/Android/data/com.fivefloor.bo.myview/cache >3.外部TF卡也是属于外部存储的,而要注意外置TF卡(外置SD卡)一般为...从用户角度来说SD卡有内置SD卡和外置TF卡之分,通过Environment或者Context获取的都是手机自带的内置SD卡路径,类似storage/emulated/0/加后缀。...内部存储和外部存储并不是按是否存储于SD卡来区分的,内部存储是在data文件下,外部存储是在storage或者mnt文件夹下,这就是区别。
当手机内存为空时,程序将被安装到外部存储器上;当程序安装到手机上后,用户可以决定把程序放在外部存储器还是内存中。...deleteFile(String):删除应用程序的数据文件夹下的指定文件。 三.读写SD卡上的文件 ---- 为了更好的存取应用程序的大文件数据,应用程序需要读写SD卡上的文件。...读写SD卡上文件的步骤: 调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡,并且应用程序具有读写SD卡的权限。...使用如下代码: //如果返回true,说明已插入SD卡,且应用程序具有读写SD卡的能力 Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED...为了读写SD卡上的数据,必须在AndroidManifest.xml中添加读写SD卡的权限: <!
(即SD卡)的路径 getExternalStoragePublicDirectory : 获得外部存储指定类型目录的路径 DIRECTORY_DCIM : 相片存放目录(包括相机拍摄的图片和视频)...isExternalStorageRemovable : 判断外部存储是否可以移除,该方法用于判断SD卡是系统自带的还是外部插入的,如是外部插入的该方法就返回true。...但现在很多手机既支持自带SD卡,也支持外插SD卡,所以该方法不能用来鉴别系统有没有外插SD卡。...SD卡操作 app操作SD卡时需增加如下处理: 1、在AndroidManifest.xml中增加SD卡的权限配置 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE...<em>卡</em>需要先判断当前<em>SD</em><em>卡</em>是否已挂载。
图 3 将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板SW2拨码开关旁丝印(并非拨码开关上文字),将拨码开关拨为0,使能Micro SD功能。...图 6 备注:如需从NAND FLASH或eMMC启动评估板,请参考《Linux系统启动卡制作及系统固化》文档固化Linux系统至NAND FLASH或eMMC。...如需使用外部RTC时钟,请将ML2032(3V可充)或CR2032(3V不可充)电池安装至RTC纽扣电池座。 备注:使用CR2032不可充电电池时,请勿将跳线帽插入J1接口。...请参考《Linux系统启动卡制作及系统固化》文档将其制作成Linux系统启动卡,再进行测试。不同的Micro SD卡以及不同的测试方法,对Micro SD接口测试结果将造成一定差异。...请将Linux系统启动卡插至评估板Micro SD卡槽,评估板上电,进入评估板文件系统执行如下命令查看Linux系统启动卡信息。
暴露了设备的调试面板; 2. 硬件配置允许设备从外部SD卡引导启动; 接下来,我们会告诉大家如何对亚马逊Echo进行root,并将其变成一台“监听器”。...前人的工作 之前已经有安全人员通过在设备调试面板上插入外部SD卡来将设备引导启动进通用的Linux环境中了,关于具体的操作步骤、漏洞细节和SD卡引导镜像都可以在GitHub上找到。...因此,我们只需要向SD卡写入X-lodaer以及U-Boot,并进行正确的分区,我们就可以让设备从SD卡启动并进入U-Boot命令行界面。...下图就是我们的实验环境,其中亚马逊Echo连接到了一个外部SD卡电路板,并通过UART与笔记本电脑相连。 ?...安装好反向shell脚本之后,我们就可以移除外部SD卡和UART连接线,然后重启Echo并进入正常状态了。在设备重启的过程中,初始化脚本会运行我们的反向shell。
2、 BMP图片显示的所有API函数在emWin手册中都有讲解,下图是中文版手册里面API函数的位置 下图是英文版手册里面API函数的位置: 3、 本章教程使用的外部存储器是SD卡,实际项目中使用任何其它类型的存储器都可以的...21.3.1 绘制已经加载到存储器的BMP图片 绘制加载到存储器的BMP图片主要是通过函数GUI_BMP_Draw来实现,下面我们分3步来说明如何将SD卡中的BMP图片显示到LCD上面。...下面我们分2步来说明如何将SD卡中的BMP图片显示到LCD上面。 第1步:将BMP图片复制到SD卡的根目录下,然后直接调用函数GUI_BMP_DrawEx就可以显示。...实验注意: 本实验主要学习emWin的BMP图片显示功能,实验所需的图片文件1.bmp已经存储到本工程的Doc文件夹下,使用此例子前,请务必将此文件存储到SD卡根目录中,并将SD卡插到开发板上面。...实验注意: 本实验主要学习emWin的BMP图片显示功能,实验所需的图片文件1.bmp已经存储到本工程的Doc文件夹下,使用此例子前,请务必将此文件存储到SD卡根目录中,并将SD卡插到开发板上面。
本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。 SD 卡内部结构及引脚如下图所示: ?...4)、SD卡支持 两种操作模式,SD模式和SPI模式,SPI模式做SD数据操作时根本不需要知道FAT,这时候SD卡对于我们来说实际上就是个大的、快速的、方便的、容 量可变的外部存储器。...SCK连接单片机SPI总线的SCK(SPI时钟) SD管脚实际上在SD卡内部连接到了GND,当SD插座上没插入SD卡时,单 片机从这个管脚能读到高电平(前提是使用单片机内部上拉输入,或者外部增加一个上拉电阻...MicroSD卡的连接和SD卡大同小异,只是MicroSD卡比SD卡少 一个GND管脚,所以不能使用上面做的这种插入卡的检测,实际上现在很多SD卡/MicroSD卡插座都有插入检测管脚,当然,一分钱一分货...所以我使用PC机将SD卡格式化,之后在SD卡上创建一个大文件,比如我的128M的SD卡上我建立了一个100M的文件。
需要注意的是,这个文件的目录和应用的存储位置有关, 当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当数据存储到这个目录的时候,用相对路径。...需要注意的是,这个文件的目录和应用的存储位置有关, 当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当数据存储到这个目录的时候,用相对路径 系统提供的访问此路径文件的方法是:...只有手机系统使用的是虚拟外部存储(虚拟SD卡,现在绝大多数的手机,都不用外挂物理SD卡了)的时候, 才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD卡)则不会自动删除该目录...) 注:当其他应用拥有SD卡读写权限的时候,可以访问该目录下的文件 4、File externalFilesDir = context.getExternalFilesDir(null); 应用外部存储空间...只有手机系统使用的是虚拟外部存储(虚拟SD卡)的时候, 才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD卡)则不会自动删除该目录,及目录下的文件 在使用的时候,
Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。...通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。...uboot 1.硬件管理 uboot要能够进行Soc级(Soc内部外设)和板级(Soc外部外设)硬件管理。...参考下SD卡刷机的步骤: a.烧录uboot到SD卡中。有2种烧写方法:一种是在windows中用刷卡工具去制作启动SD卡;另一种是在linux中用dd命令。...制作完SD后将SD卡插入开发板,然后开机就可以进入uboot界面。
TF卡(外置SD卡)扩展了。...外部存储上的应用私有文件的价值,在于卸载之后这些文件也会被删除。类似于内部存储,只是和内部储存不同的是这个部分可以给用户和其他应用访问,所以才叫外部储存的私有部分嘛。...如:/storage/emulated/0/Android/data/com.fivefloor.bo.myview/cache >3.外部TF卡也是属于外部存储的,而要注意外置TF卡(外置SD卡)一般为...从用户角度来说SD卡有内置SD卡和外置TF卡之分,通过Environment或者Context获取的都是手机自带的内置SD卡路径,类似storage/emulated/0/加后缀。...内部存储和外部存储并不是按是否存储于SD卡来区分的,内部存储是在data文件下且不可被访问操作,外部存储是在storage或者mnt文件夹下是可以被访问操作的,****这些就是区别。
一般的Ram空间为512M~1G ROM:相当于一块硬盘=微硬盘能持久的储存一些数据,如手机掉电,之前的用户数据依然会被保存,,一般空间为1G~32G SD卡:相当于一个外部的U盘,不是一个必须设备(有内置和外置的...当然,现在很多第三方ROM都自带了第三方的app2sd,可以将任何程序都安装在sd卡上。 在正式介绍app2sd之前,我先要介绍下android系统的几个比较重要的目录,这是理解后面内容的基础。.../mnt 目录,熟悉linux的人都清楚,linux默认挂载外部设备都会挂到这个目录下面去,如将sd卡挂载上去后,会生成一个/mnt/sdcard 目录。...app2ext的原理是,删除data区中的app文件夹,然后在sd卡的ext分区上创建一个app文件,并通过软链接映射到data区。...data2ext则更彻底,它不是用软链接,而是直接用“挂载”功能,Linux下所有的存储设备都必须挂载成一个文件夹才能进行文件操作(如sd卡就挂载在/mnt/sdcard目录下面)。
Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。...通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。...uboot 1.硬件管理 uboot要能够进行Soc级(Soc内部外设)和板级(Soc外部外设)硬件管理。...参考下SD卡刷机的步骤: a.烧录uboot到SD卡中。 有2种烧写方法:一种是在windows中用刷卡工具去制作启动SD卡;另一种是在linux中用dd命令。...制作完SD后将SD卡插入开发板,然后开机就可以进入uboot界面。
(如下图) (4)PhoenixCard:基于Windows的系统的量产SD卡制作工具,可以将普通的.img固件制作成SD卡量产固件,生产时在设备端插入量产SD卡即会自动烧写固件,适用于带SD卡卡槽的设备大规模量产...*企业开发者在安装 APST 的同时也会安装全志 USB 驱动,无需单独再安装 具体步骤如下: (1)打开 PhoenixSuit,当设备上电启动并插入USB与PC相连的时,PhoenixSuit会提示识别到设备...常用的方法有两种: 按住PC键盘的“2”键 设备上电过程中,在串口终端按住PC键盘的“2”不停地输入“2”,设备启动的时候如果检查到“2”的输入,则会自动跳到烧写模式。...PhoenixCard使用简介 准备一张大小合适的SD卡,插入电脑。选择需要刷入的固件,选择制作卡的种类: 量产卡:制作一张刷写固件用卡,系统启动后SD卡会向板载eMMC储存写入固件。...启动卡:直接从SD卡内启动固件**(一般选择启动卡)** 选择完毕后检查需要烧录的SD卡是否正确,点击烧卡即可。
(external storeage) SD卡:相当于电脑的移动硬盘 * 2.2之前,sd卡路径:sdcard * 4.3之前,sd卡路径:mnt/sdcard * 4.3开始,sd卡路径:storage.../sdcard * 所有存储设备,都会被划分成若干个区块,每个区块有固定的大小 * 存储设备的总大小 = 区块大小 * 区块数量 一般的术语:手机自带的32G,指的是手机的外部存储空间 实例...在外部存储数据:sd卡 对sdcard进行读取; 基本的状态: MEDIA_UNKNOW:不能够进行识别该sd卡 MEDIA_REMOVE:没有该sd卡 MEDIA_UNMOUNTED..."/> 读sd卡,在4.0之前不需要权限,4.0之后可以设置为需要 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE...availableBlocks * blockSize 存储<em>设备</em>会被分为若干个区块,每个区块有固定的大小 区块大小 * 区块数量 等于 存储<em>设备</em>的总大小 Linux文件的访问权限 <em>在</em>Android中
SD卡内部没有机械部件,数据存储在内部的闪存芯片上,这使得它即使在断电或震动的情况下也能保持稳定的数据存储性能。...方法一、从备份中还原照片如果你之前已经对SD卡中的照片进行了备份,或是使用的设备开启了自动备份功能,比如,自动将拍摄的照片上传到云盘。那么从备份中还原照片将是最简单、最快捷的恢复方法。...步骤1、将格式化的SD卡插入到电脑的读卡器中,并确保电脑能够识别到该SD卡。步骤2、打开已下载的数据恢复软件,在软件里选择需要恢复数据的SD卡,然后点击“恢复文件”按钮。...SD卡照片恢复注意事项想要取得满意的照片恢复结果,我们在恢复SD卡照片的时候要注意这些事项:避免继续使用被格式化的SD卡:一旦发现误格式化,应立即将SD卡从设备中取出,避免任何新数据的写入。...备份现有数据:在进行恢复操作之前,如果可能的话,备份SD卡上现有的数据,以防恢复过程中发生意外。
2 Android闪存 总所周知,Android手机存储分为两个部分:内部存储和外部存储,内部存储一般是手机自带的存储空间,外部存储指外插SD卡提供的存储空间;随着手机发展,这两个存储的定义又有了一些些变化...,新的手机不再有外插SD卡的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储和外部存储在新的Android手机上已经在同一个硬件上了。...() 这两个方法从4.4之后不再需要读写权限)。...3.3 外部存储 使用外部存储之前一定要检查外部存储是否可用,因为旧设备不一定会有外部存储,新手机也不一定会给你读写权限,就算用户不给你权限,你的app也要运行啊,不然就不用你的了。...getExternalStorageDirectory() 获取外部存储(SD卡)的根目录。使用getExternalStoragePublicDirectory(String)进行替代即可。
: 在内置或外插的sd上,用户或其它app都可以访问,外部存储目录又分私有和公有目录。...公有目录是像DCIM、Music、Movies、Download这样系统创建的公共目录,当然你也可以像微信那样直接在sd卡根目录创建一个文件夹。好处嘛,就是卸载app数据依旧存在。...经反复测试发现,有【外置SD卡】的设备上,如果声明读/写外部存储设备的权限,会返回外部存储路径,不声明则会返回内部存储路径,这样不会有问题。...而在【无外置SD卡】的设备上,不管是否声明读/写外部存储设备的权限,Application.temporaryCachePath/persistentDataPath都返回外部存储路径,但是又没有权限,...就可能会导致返回null了,之所以说可能是因为这个bug不是必现,如果出现了设备重启之后就好了,怀疑是linux设备mount问题。
领取专属 10元无门槛券
手把手带您无忧上云