免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1501 | 回复: 0
打印 上一主题 下一主题

[转]Android数据存储(总结篇) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-30 23:59 |只看该作者 |倒序浏览

在前面的2篇文章:
Android SQLite解析

Android 应用程序之间数据共享
中分别详细说明了,如何使用数据库存储信息,以及如何通过ContentProvider获取其他应用程序共享的数据,现将Android数据存储做下总结,在以后的开发过程中根据需求选择合适的数据存储方式。
Android提供了5种方式存储数据:
  • 使用SharedPreferences存储数据;
  • 文件存储数据;
  • SQLite数据库存储数据;
  • 使用ContentProvider存储数据;
  • 网络存储数据;
    其中3,4已经在Android SQLite解析、Android 应用程序之间数据共享篇幅中详细说明,不在此重复说明,现将其他3种方式详细介绍。
    使用SharedPreferences存储数据
    首先说明SharedPreferences存储方式,它是Android提供的用来存储一些简单配置信息的一种机制,例如:登录用户的用户名与密码。其采用了Map数据结构来存储数据,以键值的方式存储,可以简单的读取与写入,具体实例如下:
    void  ReadSharedPreferences()
    {
    String  strName,strPassword;
    SharedPreferences   user = getSharedPreferences(“user_info”,0);
    strName = user.getString(“NAME”,””);
    strPassword = user getString(“PASSWORD”,””);
    }
    void  WriteSharedPreferences(String  strName,String strPassword)
    {
    SharedPreferences   user = getSharedPreferences(“user_info”,0);
    uer.edit();
    user.putString(“NAME”, strName);
    user.putString(“PASSWORD” ,strPassword);
    user.commit();
    }
    数据读取与写入的方法都非常简单,只是在写入的时候有些区别:先调用edit()使其处于编辑状态,然后才能修改数据,最后使用commit()提交修改的数据。实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data//shares_prefs下。以上面的数据存储结果为例,打开后可以看到一个user_info.xml的文件,打开后可以看到:
    moandroid
    SharedPreferences
    使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。
    文件存储数据
    文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。
    FilterInputStream

    FilterOutputStream
    等可以到
    Java  io  package
    说明中去详细学习,不再此详细说明,具体实例如下:
    String fn = “moandroid.log”;
    FileInputStream fis = openFileInput(fn);
    FileOutputStream fos = openFileOutput(fn,Context.MODE_PRIVATE);
    除此之外,Android还提供了其他函数来操作文件,详细说明请阅读
    Android SDK

    网络存储数据
    网络存储方式,需要与Android 网络数据包打交道,关于Android 网络数据包的详细说明,请阅读Android
    SDK引用了Java SDK的哪些package?

    总结说明
    以上5中存储方式,在以后的开发过程中,根据设计目标、性能需求、空间需求等找到合适的数据存储方式。Android 中的数据存储都是私有的,其他应用程序都是无法访问的,除非
    通过ContentResolver获取其他程序共享的数据



    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/85193/showart_2107817.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP