【Android】【数据存储】数据存储详解

来源:互联网 发布:mac谷歌浏览器无法登录 编辑:程序博客网 时间:2024/05/01 09:17
//================================================================================//android外存分为两类:外部存储:所有应用都可以访问的资源,在文件管理器中就能看到内部存储:只有自身APP可以访问的资源,只有在ROOT情况下才能看到//外部存储中有两类特殊目录:公共目录:在外部存储中单独使用几个文件夹,存放常见的公共资源私有目录:仍然可以被其他应用访问,但APP卸载时,会跟随APP一起被删除//内部存储分为以下几类:File,Database,Cache,SharedPreference//私有目录分为以下两类File,Cache//================================================================================//开发建议:需要永久保存,可供用户和其他应用使用的文件,使用外部存储需要永久按类保存,可供其他应用使用,使用公共目录APP自身数据,但允许其他应用访问的,使用私有目录APP自身数据,但安全性要求高,不能允许其他应用访问的,使用内部存储内部存储的总空间大小是固定的,用完时应用运行会出现问题所以如果不是特别需要,建议将应用自身数据存放在私有目录中这样APP卸载时,数据会被自动清理,同时也不消耗内部存储空间//================================================================================//具体路径和硬件有关系,以下路径仅供参考,帮助理解层次关系//内部存储实际路径data/app(APK保存释放路径)data/data(APP内部数据根目录)data/data/[package]/filesdata/data/[package]/cachedata/data/[package]/databasesdata/data/[package]/shared_prefs//外部存储实际路径storage/sdcard(存储卡根目录)//公共目录实际路径storage/sdcard/Picturesstorage/sdcard/Musicstorage/sdcard/Moviesstorage/sdcard/DCIMstorage/sdcard/Downloadstorage/sdcard/Alarmsstorage/sdcard/Ringtonesstorage/sdcard/Notificationsstorage/sdcard/Podcasts//私有目录实际路径storage/sdcard/android/data/[package]/filesstorage/sdcard/android/data/[package]/cache//================================================================================代码调用方式://外部存储调用:Environment.getExternalStorageDirectory();//公共目录调用:Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES);Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);//私有目录调用:Context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);Context.getExternalCacheDir();//内部存储调用:context.getFilesDir();context.getCacheDir();context.getDatabasePath("app_data.db");context.getSharedPreferences("app_config", Context.MODE_PRIVATE);//================================================================================
原创粉丝点击