课程目标:

掌握Android中数据存储的几种方式

熟练使用PreferenceActivity&PreferenceScreen做专业的Setting功能

熟练使用SQLite3来存储数据

深入研究SQLite3数据库特性,并且比对与大型数据库的包括存储过程,主外键关联等特性

了解文件存储的内外存储分别  了解网络存储C/S结构原理 。

重点难点:SQLiteOpenHelper类的使用   SQLIte数据库的特性掌握

考核目标:

说出Android数据存储的几种形式 ?

Sqlite3能支持存储过程么,支持主外键关联么 ?

如何让自己的Setting程序与系统的Setting程序融合

一、Android数据存储初探

XML              Share Preference

Binary File     File  <使用内部存储,使用扩展存储>

关系型数据库   SQLite3

网络访问         Network <Socket , Http,Https>

二、SharedPreference

2.1 最基本操作步骤

1)   getSharedPreference

2)   get SharedPreferences.Editor

3)   Editor.commit()。

2.2 三种方式得到preference区别

1) public SharedPreferences getPreferences (int mode)

通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity。

2) public SharedPreferences getSharedPreferences (String name, int mode)

因为Activity继承了ContextWrapper,因此也是通过Activity对象获取,但是属于整个应用程序,可以有多个,以第一参数的name为文件名保存在系统中。

3)public static SharedPreferences getDefaultSharedPreferences (Context context)

PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但是只有一个,Android会根据包名和PreferenceActivity的布局文件来起一个名字保存。

2.3 打造专业的User Preference

PreferenceActivity

PreferenceScreen..

. setOnPreferenceChangeListener...

2.4 如何嵌套系统preference

 

2.5 Subtopic

三、SQLite3

3.1 SQLite数据库简介

SQLite (http://www.sqlite.org/),是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

特征:轻量级,独立性,隔离性,跨平台,多语言接口,安全性。

3.2 总结

SQLite 是一个全面而又完整支持sql语句的文件型数据库

Sqlite 支持 事务 , 视图 , 索引,触发器 ,主外键约束

默认的必须给每张表的主键名字为_id

SqliteDatabase 可以用封装的insert ,update ,delete ,query 方法 ,也可以用execSql , rawSql 等原生方法

3.3 SQLiteOpenHelper

getReadableDatabase()

getWritableDatabase()

onCreate(SQLiteDatabase db , int oldVersion, int newVersion)

onOpen(SQLiteDatabase db)

onUpgrade(SQLiteDatabase db)

1)通过Helper , 建立好数据库表结构 - onCreate , onUpgrade。

2)调用helper实例 , 通过get***Database()得到DB对象。

3)通过DB对象实例来调用增删改查 ,insert()。

3.4 建立数据库,更新数据库: adb shell 看数据库

 

3.5 具体的数据操作:Add,Update,Search,Delete,批量更新和删除。

 

3.6 我们思考一下Sqlite3数据库引擎在哪儿? external/sqlite

思路:

如你来移植,对开源的项目,你是编译好类库放上来还是直接源码都放上来呢?

如果源码放上来,我们去官网下载源码 , 打开看看

去搜索一下源码

找到地址 。

3.7 我们来思考一下SQlite3连接方式实际是什么? libcore/sqlite-jdbc

 

3.8 表的主外键关系

3.9 表的视图

3.10 表的触发器,存储过程

3.11 Sqlite事务

beginTransaction

setTransactionSuccessful

endTransaction

10、Android数据存储的更多相关文章

  1. Android数据存储之SQLCipher数据库加密

    前言: 最近研究了Android Sqlite数据库(文章地址:Android数据存储之Sqlite的介绍及使用)以及ContentProvider程序间数据共享(Android探索之ContentP ...

  2. Android数据存储之GreenDao 3.0 详解

    前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...

  3. 【Android开发日记】之入门篇(七)——Android数据存储(上)

    在讲解Android的数据源组件——ContentProvider之前我觉得很有必要先弄清楚Android的数据结构. 数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也 ...

  4. Android数据存储方式--SharedPreferences

    Android数据存储方式有如下四种:SharedPreferences.存储到文件.SQLite数据库.内容提供者(Content provider).存储到网络服务器. 本文主要介绍一下Share ...

  5. Android数据存储-通过SharedPreferences实现记住密码的操作

    在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ...

  6. Android - 数据存储 -存储文件

    Android使用的文件系统和其他平台的基本磁盘的文件系统很相似.这里将要介绍如何使用File API在Android文件系统中读写文件. File对象适合按顺序读写大量的数据.例如,适合图片文件或者 ...

  7. Android - 数据存储 -存储键值对

    如果你有少量的键值数据需要存储,可以使用SharedPreferencesAPI.SharedPreferences对象指向一个包含键值对的文件并且提供了一些简单的方法来读取它们.每个SharedPr ...

  8. Android数据存储五种方式

    1 使用SharedPreferences存储数据:常用于做本地缓存 2 文件存储数据:(1)data/data/<package name>/files目录内   (2)SDCard内 ...

  9. Android数据存储:SDCard

    Android数据存储之SDCard 0.获取sd卡路径. 1.讲述 Environment 类. 2.讲述 StatFs 类. 3.完整例子读取 SDCard 内存 0.获取sd卡路径 方法一: p ...

随机推荐

  1. C#中Thread.sleep()

    我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:1.假设现在是 2008-4-7 12:00:00.000,如果我调 ...

  2. 1024: [SCOI2009]生日快乐 - BZOJ

    Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕.现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋 ...

  3. httpmime-session 会话保持

    sesion在浏览器和web服务器直接是通过一个叫做name为sessionid的cookie来传递的,所以只要在每次数据请求时保持sessionid是同一个不变就可以用到web的session了,做 ...

  4. 查网卡信息(千M o 万M)

  5. Recommender Systems基于内容的推荐

    基于内容的推荐的基本推荐思路是:用户喜欢幻想小说,这本书是幻想小说,则用户有可能喜欢这本小说 两方面要求:(1)知道用户的喜好:(2)知道物品的属性 基于内容的推荐相比协同过滤方法(个人观点):协同过 ...

  6. FireFly 服务端 Unity3D黑暗世界 客户端 问题

    启动服务端成功截图: 连接成功截图: 测试服务端是否启动成功: 在Web输入:http://localhost:11009/  按回车 (查看cmd启动的服务端 是否多出如下显示) 服务端启动成功.P ...

  7. Hadoop之RPC

           Hadoop的RPC主要是通过Java的动态代理(Dynamic Proxy)与反射(Reflect)实现,代理类是由java.lang.reflect.Proxy类在运行期时根据接口, ...

  8. 【leetcode】Permutations II (middle)

    Given a collection of numbers that might contain duplicates, return all possible unique permutations ...

  9. Android EditText边框颜色的selector 使用focus标记当前填写的框

    案例:当选中一个EditText时,将其边框变为蓝色,其他未被选中的EditText则为灰色. 主界面: <?xml version="1.0" encoding=" ...

  10. 使用Nginx+Keepalived组建高可用负载平衡Web server集群

    一,首先说明一下网络拓扑结构: 1,Nginx 反向代理Server(HA):     ①Nginx master:192.168.1.157     ②Nginx backup:192.168.1. ...