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.
- 将DB文件与APP一起发布
- 内存数据库
- SqliteDatabase.create,创建的内存数据库,当程序退出时自动释放.