存储

Android手机分为内部存储和外部存储,区分方法,外部存储意外的都是内部存储。

外部存储指代sdcard中的存储。外部存储不一定是要接入外插是sdcard。

现在智能手机都不对外接入插入式sdcard,所以不好区分内部存储和外部存储的概念,但不妨碍称内置的sdcard为外部存储。

通过OTG线,可以让手机连上u盘,接入读取更大空间。

应用产生的数据会有两部分,一部分会和系统文件存在于内部存储中,主要是应用的系统文件和数据文件,一部分会存在于内置的sdcard中,如比较大的视频文件,配置文件,图片文件等。

手机存储主要用于存储:

1.移动应用产生的数据包括WebView数据缓存,sqlite数据存,sharedpreferences存储数据等。

2.音频,视频,文档资源

3.系统文件一般不会存储在sdcard中,但系统的更新程序会存储在相对应的目录中。

大部分的应用app会将应用目录写到Android/data目录之下,但也有很多应用直接将应用目录创建到sdcard的根目录下。

 

区分app的专属文件和app的独立文件:

分享一下概念:

app专属文件,专属于某一app,如有专属格式的文档等

app独立文件,不只依靠某一app才能运行读取,创建文件的app删除后,独立文件任存在于内存中,如照片,通用格式视频等。

Android系统对于独立文件提供了特定的目录,这些了目录都是以DIRECTORY开头。

如音乐:DIRECTORY_MUSIC、如图片:DIRECTORY_PICTURES

 

独立文件的访问方式:

File sdCard=Environment.getExternalStorageDirectory();

File pictures=new File(sdCard,"Pictures");

或者:

File pictures=Environment.getExternalStoragePublicDirctory(Environment.DIRECTORY_PICTURES);

方法一用于访问指定目录下的资源,方法二用于访问Android提供给我们的公共目录下的资源

专属文件的访问方式:

File personalData=getExternalFilesDirs("应用目录地址或文件地址"),读取关于应用的数据文件或缓冲文件。

 

通过Environment获取的
Environment.getDataDirectory().getPath() :  获得根目录/data 内部存储路径
Environment.getDownloadCacheDirectory().getPath()  : 获得缓存目录/cache
Environment.getExternalStorageDirectory().getPath():  获得SD卡目录/mnt/sdcard(获取的是手机外置sd卡的路径)
Environment.getRootDirectory().getPath() :    获得系统目录/system

 

通过Context获取的
Context.getDatabasePath() :返回通过Context.openOrCreateDatabase 创建的数据库文件
Context.getCacheDir().getPath() :  用于获取APP的cache目录 /data/data/<application package>/cache目录
Context.getExternalCacheDir().getPath():   用于获取APP的在SD卡中的cache目录/mnt/sdcard/Android/data/<application package>/cache
Context.getFilesDir().getPath() :用于获取APP的files目录 /data/data/<application package>/files
Context.getObbDir().getPath():  用于获取APPSDK中的obb目录 /mnt/sdcard/Android/obb/<application package>
Context.getPackageName() :   用于获取APP的所在包目录
Context.getPackageCodePath()  :   来获得当前应用程序对应的 apk 文件的路径
Context.getPackageResourcePath() :   获取该程序的安装包路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值