Android 内存

一、Android内存:内部内存(internal)、外部内存(external)。

二、详细分析

    1.RAM、ROM、内部存储、外部存储、扩展内存(TF卡)

    2.android4.4之前,内huoq储存就是内部内存,外置SD卡就是外置储存。
      getDateDirectory()获取内置储存根路径;
      getExternalStorageDirectory()获取外部根目录;

    3.Android4.4之后,外部储存包括两部分,机身内部的外部储存,SD卡储存。
      getExternalStroageDirectory()获取机身内部储存;
      getExternalFileDir()遍历获取;
三、内部存储

    1.空间很小,常用保存一些重要的数据库文件、用户的配置文件。
    2.内部储存路径:/data/data/0/packagename/files
    3.files目录:getFileDir();  /data/data/packageName/files
    4.内部缓存目录:getCacheDir();  /data/data/packageName/cache/
    5.配置文件:getDir("fileName.txt",Context.MODE_PRIVATE);  /data/data/packageName/app_fileName.txt;(app_ 是系统加上去的)

四、遍历手机外部

    File[] files;
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
       files = context.getExternalFilesDirs(Environment.MEDIA_MOUNTED);
          for (File file : files ) {
          System.out.println(file);
      }
   }

    2.判断状态
      if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
        //SD已挂载  
      }

五、公有目录、私有目录

    当我们删除应用后,还应该保留在手机上的数据:照片等,对于这类文件,系统给我们提供了特定的目录。这些目录都是以DIRECTORY_MUSIC、DIRECTORY_PICTURES..
    Environment.getExternalStragePublicDirectory(Environment.DIRECTORY_PICTURES);目录:/storage/emulated/0/PIctures
    Environment.getExternalStragePublicDirectory(Environment.DIRECTORY_MUSIC);目录:/storage/emulated/0/MUSIC

六、外部根目录

  Environment.getExternalStroageDirectory();  (/storage/emulated/0)

  外部存储私有目录,Android4.4以后不再需要权限

  files目录:getExternalFilesDir(String type);  (/storage/emulated/0/Android/data/<包名>/files/)

  缓存目录 getExternalCacheDir();      (/storage/emulated/0/Android/data/<包名>/cache)

    

原文地址:https://www.cnblogs.com/leizz/p/11607062.html