移动数据存储

1,SharedPreferences

  • key-value对.
  • 将xml格式的文件,写入到ROM私有目录中.data/data/<packname>/shared-prefs目录下.
  • 可以直接putXxx来存取简单类型,对于复杂类型,需要Base64编码.
  • 文件的访问权限
    • Linux中的文件,扩展名不重要,依据文件属性来决定文件.
    • 属性分为4段,第一段表示文件类型(目录,文件,链接,..d,-,l).
    • 2-4端都是由3个字母组成的代表不同用户(2创建者,3创建者的组,4其他用户)的读,写,执行权限(r,w,x代表有该权限;-代表无该权限).

2,文件存储

  • openFileOutput/openFileInput.将文件保存在手机内存中的固定路径.data/data/<packname>/files.
  • FileInputStream/FileOutputStream用以操作SD卡中的文件.该操作需要权限.
  • SAX引擎读取XML文件.
    • 边读边解析.保留了5个分析点.
    • 继承DefaultHandler,并重载这5个分析事件来处理XML文件.
  • 内置了将文件压缩为zip/jar的能力.

3,SQLite数据库.

  • SQLiteOpenHelper类.
    • onCreate在第一次创建数据库文件时被调用.
    • onUpdate.当前Version高于上次创建或者升级时的version时被调用.
  • SQLiteDatabase操作任何路径下有权限的数据库文件.
    • 增删改查操作都有两种方法:调用rawQuery来执行SQL语句;调用SQLiteDatabase.insert方法.
  • 将数据库与APP一起发布
    • 将DB文件与APP一起发布
      • 在PC上创建DB文件,添加好数据记录后,放到res/raw目录中.
    • 打开DB
      • 并不能直接打开apk包中的数据库.尺寸会变化.
      • 使用openRawResource获取res/raw中资源的InputStream对象.然后将DB复制到内存或者SD卡中.
    • 也可以将DB文件和APP独立发布,让用户从网络上下载DB.
  • 内存数据库
    • SqliteDatabase.create,创建的内存数据库,当程序退出时自动释放.

你可能感兴趣的:(数据存储)