zoukankan      html  css  js  c++  java
  • Android本地数据存储复习

    Android本地数据存储复习

    Android无论是应用层还是系统层都需要在本地保存一些数据,尤其在应用层中使用的就更为普遍,大体有这么几种:SharedPreference,file,sqlite数据库。

    SharedPreference

    用于保存少量数据,如应用程序的各种配置信息。本质是一个Map对象,对应着key-value键值对。

    SharedPreference本身是一个接口,在代码中使用getSharedPreference获取实例,该实例提供“读”的方法。而“写”的方法由SharedPreference.Editor方法提供。

    SharedPreference数据以xml形式保存,保存在/data/data//shared-prefs目录下。

    file

    在通用的java对文件操作的io api的基础上,Android对文件的操作也有自己独特的API,如openFileOutput()和openFileInput(),分别用于获取对应文件的输出流和输入流。

    打开的模式有以下四种:

    • MODE_PRIVATE
    • MODE_APPEND
    • MODE_WORLD_READABLE
    • MODE_WORLD_WRITEABLE

    使用以上方法处理文件,文件的存储位置在/data/data//files目录下,但是一般情况下,手机的data分区的空间都十分稀缺,如果文件比较大,则建议存储在SD卡中。此时至少需要如下权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    

    需要注意的是,在Android4.4之后,手机的内置SD卡容量逐渐增大,Google在原始逻辑中不在提供次要SD卡的写权限,这也就导致目前越来越多的手机内置SD卡容量越来越大而不在提供外置SD卡的插卡槽。而早期的、尤其是需要在SD卡上读写文件的应用就需要在高版本上对该特性做出适配。

    sqlite数据库

    轻量级数据库,无需单独创建进程去执行数据库操作。应用层实际项目中会继承SQLiteOpenHelper类来打开或更新数据库,需复写两个方法onCreate()和onUpdate()方法。onCreate方法中主要生成数据库表结构和添加初始化数据,onUpdate方法中主要在软件或数据库版本升级的时候回使用。

    很人性化的一点是,Android对sqlite数据库的API中提供两种方式操作数据库,一是直接使用SQL语句,使用execSQL方法;二是有特定的方法可以使用,如insert、delete等,其实在源码中这些方法最后也会把传入的参数组装成一个完整的SQL语句执行。

    sqlite内部仅支持五种数据类型:

    • NULL
    • INTEGER
    • REAL(浮点数)
    • TEXT(文本)
    • BLOB(较大的二进制对象)

    Android还提供一个工具可以使用命令行查看数据库,sqlite3。该工具可以在sdk中找到,也可以在adb shell中执行。但是有些手机出厂时没有带该工具,所以咱们可以自己在源码中编译出该工具,然后push到手机中使用。关于sqlite3可以通过.help的方式查看帮助。

  • 相关阅读:
    Maximum Flow Exhaustion of Paths Algorithm
    ubuntu下安装java环境
    visualbox使用(二)
    vxworks一个超级奇怪的错误(parse error before `char')
    February 4th, 2018 Week 6th Sunday
    February 3rd, 2018 Week 5th Saturday
    February 2nd, 2018 Week 5th Friday
    February 1st, 2018 Week 5th Thursday
    January 31st, 2018 Week 05th Wednesday
    January 30th, 2018 Week 05th Tuesday
  • 原文地址:https://www.cnblogs.com/hackerkevin/p/4735253.html
Copyright © 2011-2022 走看看