安卓存储路径问题

安卓中的存储空间分为外部存储空间和内部存储空间

内部存储空间包括1.RAM(运行内存)2.ROM(存储内存)

外部存储指的是SD

现在我们的手机很多都是自带16G32G内存等都是指的是外部内存,具体的内部存储空间是多少手机厂商并没有给我们说。

 

 

 

下面说一下内部存储的路径。

安卓中内部存储的路径是data/data/项目的包名

我们可以通过此路径利用I/O流向内部存储中存储文件等。

同时,安卓官方也为我们提供了专门的api指定内部存储路径,环境上下文的getFilesDir()方法和getCacheDir()方法,它们都会返回一个File对象,getFilesDir()方法具体路径是data/data/项目包名/files。而getCacheDir()方法指代的具体路径是data/data/项目包名/caches中。这两个方法的区别是当手机内存不够的时候,会把data/data/项目包名/caches中的数据删除,此路径也叫做缓存路径。同时我们也可以在手机设置的应用程序里选择删除某项应用的缓存,所以一些重要的内容不要放在缓存中。getFilesDir()方法中存储的数据是不会被删除的,除非卸载应用或者是在设置中的应用程序中选中某项应用删除数据。

当我们把数据写到手机内存中时是不用赋权限的。可以直接在内存中读和写数据。

eclipse中查看内部存储路径的方法:菜单栏window--> Show View-->Other-->File Explorer

如图:

 

 

 

当然,若要显示上面的内容就必须打开虚拟机

有些文件需要我们存储到外部存储空间中。下面说一下外部存储空间路径

外部存储空间的路径不同的手机厂商可能会设置的不同,所以要想正确的拿到其路径我们

可以通过Environment类中的静态方法getExternalStorageDirectory()获得。

它也会返回一个File对象,我们如果想看具体路径的话可以file.getPath()得到。一般情况下如果我们想要写文件到外部存储中一般需要先去判断外部存储是否存在,是否可用,可以用一个if语句去做判断if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {}

同时,写数据到外部存储时需要赋权限。在清单文件AndroidManifest.xml文件中添加

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

从外部存储中读数据在安卓4.0之前是不需要权限的,但在4.0之后就可以有权限了,我们在手机的开发者权限中可以设置我们手机读SD卡的权限,设置过之后要想访问外部存储的数据就必须再添加一条权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>,默认的情况是不需要权限的。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值