Android_数据存储.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Android中,提供了三种数据存储的途径,和两种存储方式。 三种途径: ?? 系统配置(Shared Preferences): 这类应用主要是系统的配置信息的保存,比如我给程序界面设置了颜色,我想在下一次启动时还是能够保留上次设置的颜色。由于Android系统的界面是采用Activity栈的形式,在系统资源不足时,会收回一些界面,那么,我想有些操作也是需要在不活动时保留下来的,等再次激活时能够显示出来。 ?? 文件(Files) Android是一个操作系统,自然而然对存储系统会有一个管理,因为采用提Linux核心,所有在Andorid系统中,文件也是Linux的形式。当然我们的应用程序也就可以把数据以文件的形式记录下来咯。 ?? 数据库(SQLite Databases) 在Andriod系统中,也少不了一个数据库管理,但考虑到系统资源(内存,硬盘),选择了轻便型的数据库SQLite,这是一个开源的关系型数据库,与普通关系型数据库一样,也具有ACID的特性。 ? 两种存储方式: 主要是根据数据库共享方式来分 ?? 程序内自用: 通常我们程序中需要的数据一般都是为本程序来用,所以我们用上面三种途径来创建的程序都是默认为本程序使用,其他程序无法获取操作。 我们ADB插件功能在命令行下输入:adb shell 来进入手机的文件系统,进入CD /data/data目录。然后ls查看,我们发现,我们在系统中安装的每个程序在这里都有一个文件夹,再次进入我们的程序后ls查看,会出现几个目录:shared_prefs、files、databases,这几个目录其实就是存的我们程序内自用的数据,内容分别就是由上面三种途径创建的,当然如果没有创建过,这个目录可能不存在。 ?? 数据需要共享: 这类数据通常是我们的一些共用数据,很多程序都会来调用,比如电话薄数据,就不可能存为私有的了。当然,这种方式的话,上面三种途径中的系统配置就不适用了,“系统配置”只能由本程序访问。也就是说,只有文件和数据库可以共享。 ? 具体用没我们下面依次试一下: ? (一)系统配置 这类数据存储形式是NVP形式即,name和value的映射map。 存: // 取得活动的preferences对象. ??? SharedPreferences uiState = getPreferences(0); // 取得编辑对象 ??? SharedPreferences.Editor editor = uiState.edit(); ??? // 添加值 ??? editor.putString(KEY, value); ??? editor.putBoolean(KEY, value); ??? mit();//提交保存. 取: //取得活动的preferences对象. ??? SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE); ??? // 取得值. ??? String value = settings.getString(KEY, 默认值); Boolean value = settings.getBoolean(KEY, false); 存取时间: 有了存取的方法后,我们就要想在什么时候来存取: protected void onPause()//系统通知暂停,可以保存设置 public void onDestroy()//系统通知关闭,可以保存设置 public void onCreate(Bundle savedInstanceState) //系统启动,可以打开设置 同样还有其他状态,我们可以根据实际情况来处理 ? (二)文件操作 ?? 打开文件并可操作,如果文件不存在会自动创建: FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); //操作时,在fos里写入值即可 ?? 读文件: FileInputStream fis = openFileInput(FILE_NAME); ?? 取得当前活动创建的文件列表: String[] lst =fileList() ?? 删除文件: super.deleteFile(FILE_NAME); ? (三)SQLite数据库操作 数据库操作无非是建库、建表、增、删、改、查的一些常用功能。在Android系统中封装了一个SQLiteDatabase类,用于这些操作。 ?? 建库 创建数据库,是由SQLiteOpenHelper类自动完成,同时,创建后,会返回一个SQLiteDatabase类: try { ?????? ?????? SQLi

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档