Android 文件夹简单介绍

8 篇文章 0 订阅
6 篇文章 0 订阅

Android 文件夹简单介绍

现在有很多的android开发人员对android文件的使用还不规范,要么把所有的东西都存在SD卡上,要不就把所有的东西都存在应用内部存储里.甚至有许多的开发人员连这么目录的含义是什么都不了解.这里就简单介绍一下android的文件夹使用.也只是个人的一些理解,用做抛砖引玉.

android 文件夹的组成

android里文件夹是分为三个种类的.

  • 应用内部存储—–随应用卸载删除
  • 应用拓展存储—–位于SD卡,随应用卸载删除
  • android sd卡—–用于存储公有文件,不随应用卸载删除

下面就来详细介绍以下向个文件夹.

android 应用内部存储

应用内存储位于/data/data/package_name/文件夹下,如我应用的包名是 com.android.dir.demo,则此用的应用内存储就位于/data/data/com.android.dir.demo/下.此文件夹除非root,否则只有自己可访问.用于存储一些私密的信息.如用户信息等.会随者应用卸载而删除.

一般这里面会包含有几个文件files ,lib,cache等,详细介绍如下

路径名作用
lib用由存放so动态库
cache用于存放缓存数据
files用于存放应用产生的文件,如日志等
shared_prefs存放 SharedPreferences生成的文件,注意:如模式设置错误,则可能被其它应用读取
datbases存放数据库文件,一系统自动创建

这里一般我们会使用到的文件夹只有cache和files,其它都是用系统自动创建的,或取其对应的File对象方式为

//获取到files的文件对象
File filesDir = context.getFilesDir();
//获取到cache的文件对象
File cacheDir = context.getCacheDir();

android拓展存储

目录位于SdCard/Android/data/package_name/下,这个是google为会规范app对SD卡的使用推出的,以前在app如果需要在SD卡上存一个文件,一般都会在SD卡的根目录下建一个.package_name文件隐藏文件,但是这样做的坏处就是如果应用被卸载,这里的数据就会变成垃圾数据.但是如果应用把文件放在拓展存储下的话,就是随着应用的卸载而被清理掉.不会形成垃圾数据.而且这样做还有一个好处,那就是在SDK>=19时,是可以不用申请SD卡读写权限的.

但是这里也存在一个问题,那就是这里的目录是可以被任意应用访问的,所以这里适合一存储一此不敏感的数据,比如图片的缓存,一些音视频文件等.

具体的调用方法如下

File file2 = context.getExternalFilesDir(null);
File cache = context.getExternalCacheDir();

调用以上方法,/Android/data/{package_name}/files/和/Android/data/{package_name}/cache/就会自动的被创建成功.

android sd卡

现在Google官方已以不建议应用直接在SD卡上创建文件了,所以除非必要,还是要把文件创建在这里.除了可能会产生垃圾数据这一点之外,还有一个问题,就是往SD卡了写文件,是需要申请权限的.如果用户拒绝了,那app就不能在SD卡上写文件了,同时由于拓展存储也是位于SD卡上,如果用户关闭了SD的读写权限,那就会造成拓展存储也无法使用.

如果需要使用SD卡,则需要事先申请权限

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

使用是需要判断是否拥有SD卡,

public File getSDPath(){ 
       File sdDir = null; 
       boolean sdCardExist = Environment.getExternalStorageState()   
       .equals(android.os.Environment.MEDIA_MOUNTED);//判断sd卡是否存在
       if(sdCardExist)   
       {                               
         sdDir = Environment.getExternalStorageDirectory();//获取跟目录
      }   
       return sdDir; 
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a13069730106

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值