Android获取存储路径API的说明

Android手机的存储分为几种不同的类型,不同的厂家定制过程中稍有不同,下面列出在红米1上的测试结果,对进行说明。


先看下此手机系统存储的j显示情况,以及df显示的文件系统挂载情况

  

通过对比,可以得出下面的结论:

1 机身内置存储器emmc被划分成若干个不同的分区,并挂载到不同的路径下:

/system  系统主目录,这里是系统核心文件的目录,其下主要是系统文件、lib库、框架库文件等

/data       数据目录,用户的应用文件便安装在/data/data目录下

/cache    系统缓存目录

在系统的存储管理中,系统存储便概指上面这些分区的综合,这些分区都是ext4类型的分区。


2 机身外置存储器/dev/block/vold/179:8存储挂载在/storage/sdcard1位置,vfat文件系统

在系统的存储管理中,手机存储便指的是这一部分存储


3 机身扩展sd卡/dev/block/vold/179:97 挂载在/storage/sdcard0位置,vfat文件系统


在开发Android应用中,由于不同的数据有不同的需要,存储到不同的路径下,因而系统提供了不同的API来获取相应的路径。大约有12个调用,下面的代码显示了这些调用 ,并在后面注明了执行结果。


下面是截取了包名为com.example.myapp的应用的一段代码

        /*
         *  此测试设备的外设置sd挂载位置为/storage/sdcard0
         *  机身系统存储为/data
         *  机身数据存储为/storage/sdcard1
         */

        Log.d(TAG, getDir("bin", Context.MODE_PRIVATE).getAbsolutePath()); ///data/data/com.example.myapp/app_bin
        Log.d(TAG,getFilesDir().getAbsolutePath());                        ///data/data/com.example.myapp/files
        Log.d(TAG,getCacheDir().getAbsolutePath());                        ///data/data/com.example.myapp/cache
        Log.d(TAG,getObbDir().getAbsolutePath());                          ///storage/sdcard0/Android/obb/


        Log.d(TAG,getExternalCacheDir().getAbsolutePath());               ///storage/sdcard1/Android/data/com.example.myapp/cache
        Log.d(TAG,getExternalFilesDir("").getAbsolutePath());             ///storage/sdcard1/Android/data/com.example.myapp/files


        Log.d(TAG, Environment.getExternalStorageState());                //mounted

        Log.d(TAG, Environment.getExternalStorageDirectory().getAbsolutePath());           ///storage/sdcard0
        Log.d(TAG, Environment.getDataDirectory().getAbsolutePath());                      ///data
        Log.d(TAG, Environment.getDownloadCacheDirectory().getAbsolutePath());             ///cache
        Log.d(TAG, Environment.getExternalStoragePublicDirectory("").getAbsolutePath());   ///storage/sdcard0
        Log.d(TAG, Environment.getRootDirectory().getAbsolutePath());                      ///system



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值