Android中的内部存储与外部存储
来源:互联网 发布:pdf加水印软件 编辑:程序博客网 时间:2024/05/29 13:33
1.运行内存:Memory,用来运行程序,不能用来长期存储数据,一旦断电(关机),内存中所有数据将丢失。
2.内部存储:InternalStorage,这里所说的内部存储和我们平时的讲的内部存储是不一样的。内部存储位于系统的一个特殊位置,内部存储中根据不同程序包名生成对应该程序包名的目录,该目录中存储的数据文件只能被该程序访问(不同文件操作模式 访问权限不同)。当程序删除时,内部存储中对应该程序的目录下所有数据会被删除。内部存储容量小,尽量减少内部存储的使用,除非是存储重要的数据文件(SQLite和SharedPreferences都是存储在内部存储中。)
2.内部存储:InternalStorage,这里所说的内部存储和我们平时的讲的内部存储是不一样的。内部存储位于系统的一个特殊位置,内部存储中根据不同程序包名生成对应该程序包名的目录,该目录中存储的数据文件只能被该程序访问(不同文件操作模式 访问权限不同)。当程序删除时,内部存储中对应该程序的目录下所有数据会被删除。内部存储容量小,尽量减少内部存储的使用,除非是存储重要的数据文件(SQLite和SharedPreferences都是存储在内部存储中。)
+++将不可见(没有root情况下)的内置存储卡数据统称为内部数据Context.getFilesDir(): /data/user/0/YourAppPackage/filesContext.getCacheDir(): /data/user/0/YourAppPackage/cacheSQLite: /data/user/0/YourAppPackage/databasesSharedPreferences: /data/user/0/YourAppPackage/shared_prefsEnvironment.getDataDirectory(): /dataEnvironment.getRootDirectory(): /systemEnvironment.getDownloadCacheDirectory(): /cache3.外部存储:ExternalStorage,外部存储其实就是我们平时讲的SD卡,然而现在大量的手机都是直接将SD卡固化到手机里面就认为这是内部存储,其实任然还是外部存储,和第二点的内部存储是不同性质的(注意:手机连电脑上或者用文件管理的软件可查看的都是外部存储,在不root情况下就可以查看)。
+++将没有root就可见的内置存储卡和外置存储卡数据统称为外部数据1.外部私有数据当程序卸载时,所对应的外部私有数据也会删除。Context.getExternalCacheDir(): /storage/emulated/0/Android/data/YourAppPackage/cache Context.getExternalFilesDir(null): /storage/emulated/0/Android/data/YourAppPackage/filesContext.getExternalFilesDir("a"): /storage/emulated/0/Android/data/YourAppPackage/files/a 2.外部公有数据Environment.getExternalStorageDirectory(): /storage/emulated/0Environment.getExternalStoragePublicDirectory("a"): /storage/emulated/0/a
PS: Google官方建议我们App的数据应该存储在外部存储的私有目录中该App的包名下,这样当用户卸载掉App之后,相关的数据会一并删除,如果你直接在外部公有存储创建了一个应用的文件夹,那么当你删除应用的时候,这个文件夹就不会被删除。
示例:
public class FilePathActivity extends BaseActivity { private static final String TAG = "FilePathActivity"; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_empty); context = this; Log.i(TAG, context.getFilesDir().toString()); Log.i(TAG, context.getCacheDir().toString()); Log.i(TAG, Environment.getDataDirectory().toString()); Log.i(TAG, Environment.getRootDirectory().toString()); Log.i(TAG, Environment.getDownloadCacheDirectory().toString()); Log.i(TAG, context.getExternalCacheDir().toString()); Log.i(TAG, context.getExternalFilesDir(null).toString()); Log.i(TAG, context.getExternalFilesDir("katherine").toString()); Log.i(TAG, Environment.getExternalStorageDirectory().toString()); Log.i(TAG, Environment.getExternalStoragePublicDirectory("katherine").toString()); }}结果:
I/FilePathActivity: /data/user/0/com.katherine.du.everydaystudy/filesI/FilePathActivity: /data/user/0/com.katherine.du.everydaystudy/cacheI/FilePathActivity: /dataI/FilePathActivity: /systemI/FilePathActivity: /cacheI/FilePathActivity: /storage/emulated/0/Android/data/com.katherine.du.everydaystudy/cacheI/FilePathActivity: /storage/emulated/0/Android/data/com.katherine.du.everydaystudy/filesI/FilePathActivity: /storage/emulated/0/Android/data/com.katherine.du.everydaystudy/files/katherineI/FilePathActivity: /storage/emulated/0I/FilePathActivity: /storage/emulated/0/katherine
阅读全文
1 0
- android中的内部存储与外部存储
- Android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 彻底理解android中的内部存储与外部存储
- 比较好用的悬浮控件,下面是viewpager
- java 代码 规范 分层模块
- SSL/TLS的Handshake过程与javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure异常
- 51nod 1136 欧拉函数
- [2017.10.25]作业05(c)
- Android中的内部存储与外部存储
- ZYNQについてコンピューター ビジョン
- python BeautifulSoup使用方法详解
- python学习(1) 两个文本根据内容匹配输出相同内容到新文本
- linux下几种IPC通行方式比较
- 洛谷p1282多米诺骨牌
- ◆竞赛题目◆◇NOIP2016普及组◇ 魔法阵
- NYOJ 115 城市平乱
- HDU 5918 Ugly Problem(模拟)