Android Preference存储、res/raw、asset、openFileOutput、sdcard存储、Cache详解

本文详细解析了Android中多种存储方式,包括Preference、res/raw、assets、openFileOutput以及sdcard存储。重点介绍了它们的共同点、不同点以及读取操作的实现,同时还涵盖了Preference的使用和数据存储模式的说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*res/raw、assets、其它存储的相同点:

1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

2.两者都是只读,是不能存储数据的目录。

3.相同都可以放文件。
*res/raw、assets、其它存储的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹.

3.raw、assets不可以写操作,只是其它可以执行写操作。

4.openFileOutput是存储在data/data/应用/file目录存储,与res/raw、assets区别是可以执行写操作,与sdcard存储、Cache区别是应用自己存储,非root系统无法访问此文件。

5.sdcard是存储外置空间目录存储,与res/raw、assets区别是可以执行写操作,所有应用都可以访问此目录。

6.Cache是存储在自己cache目录下面,当系统空间不足,系统会清除cache存储数据,区别就是这里面数据不是持久存储。

 其实>http://www.cnblogs.com/yaozhongxiao/archive/2013/04/21/3034260.html )

  从上面对比apk目录结构和应用安装好之后在应用的私有目录存在的文件信息,我们发现lib已经存在于应用的私有目录下面,那assets去哪里了呢?

  如果,我们仔细观察下,就可以发现,打包成apk并在手机上安装之后,该应用在手机上会存在如下几个地发,

  1)××.apk             文件放在了/data/app/目录下
  2)/data/system/packages.xml  中增加了条记录
  3)/data/data/packagename/,  下增加了个apk使用到的私有数据

  assets是不是偷懒了,assets还存在/data/app/××.apk里面,没有到私有目录下面呢? 是的,就是这样

3.读取raw文件方法如下,读文件为输入流数据。

InputStream is = getResources().openRawResource(R.id.filename); 

4.读取assets下的文件资源,先通过获取AssetManager管理器,然后打开指定文件名。

[java]   view plain copy
  1. AssetManager am = null;  
  2. am = getAssets();  
  3. InputStream is = am.open("filename");  

 

5.Preference文件存储详解如下:

Preference(配置)提供了一种轻量级的数据存取方法,主要应用于数据比较少的配置信息。它以“key-value”(是一个Map)对的方式将数据保存在一个XML配置文件中,例如,手机的开机问候语,可以将其以Preference

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值