zoukankan      html  css  js  c++  java
  • 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)

        

  • 相关阅读:
    【原创】flash中DataGrid数据列显示顺序的解决办法(非数据排序)
    [译]C# 7系列,Part 2: Async Main 异步Main方法
    [译]C# 7系列,Part 1: Value Tuples 值元组
    我们是怎么做Code Review的
    Asp.Net 5 新增公告仓库
    微信现金红包高级红包接口开发注意事项
    解决Windows 8.1中所有的应用(Modern App)无法打开(闪退)的问题
    代码要恰如其分——记一次代码审查
    [译]DbContext API中使用SqlQuery和ExecuteSqlCommand获取存储过程的输入输出参数
    解决托管在Windows上的Stash的Pull request无法合并的问题
  • 原文地址:https://www.cnblogs.com/leizz/p/11607062.html
Copyright © 2011-2022 走看看