android 62 手机存储目录的划分

android下应用程序的路径和javase不同,应用程序的数据要保存自己的文件夹里面
>            
>            getFileDir(); 获取自己的文件夹   /data/data/包名(应用程序的名字)/files
>            getCacheDir();               /data/data/包名(应用程序的名字)/cache

谷歌给我们提供了两种应用程序的目录,files目录存放重要的应用程序数据.手机不会自动清理files目录的文件,比如配置信息,软件的清除数据就是清除这里。

cache目录是存放临时的不重要的数据.这个目录有特定,当手机内存空间不足的时候会自动清理cache目录的文件,软件清除缓存就是清除这里。

##手机存储空间的划分
* 手机内部存储(files和cache,比较小一般2G4G,小米手机内存有16G是包括了外部存储的SD卡的,) Environment.getDataDirectory()
> file目录 cache目录
> 容量有限,较小,价格比较贵,存储访问速度快
> 创建的文件在手机内部存储空间,**默认**的权限全部都是私有的.
> 只有自己的应用程序可以访问,
> 别的应用程序不可以访问.
> 为什么不需要声明权限?


* 手机外部存储 Environment.getExternalStorageDirectory()
> sd卡
> 容量大,可以更换,价格便宜,32G 不到200块
> 读写声明权限
package com.itheima.storagesize;

import java.io.File;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.text.format.Formatter;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        File dataFile = Environment.getDataDirectory(); // 数据内部存储空间
        File sdFile = Environment.getExternalStorageDirectory();// 外部存储空间
        long datasize = dataFile.getTotalSpace();
        long sdsize = sdFile.getTotalSpace();//单位是byte
        TextView tv = (TextView) findViewById(R.id.tv);
        tv.setText("内部存储:" + Formatter.formatFileSize(this, datasize) + "\n"
                + "外部sd卡:" + Formatter.formatFileSize(this, sdsize));
        // 三星  小米  魅族 
        // 有的厂商的sd卡目录:/mnt/sdcard
        // 有的厂商的sd卡目录:/mnt/storage01
        // 有的厂商的sd卡目录:/mnt/stoarge02
        // 有的厂商的sd卡目录:/mnt/mount/stoarge01
        
    }

}

 

posted @ 2015-10-27 23:50  无天666  阅读(589)  评论(0编辑  收藏  举报