配色: 字号:
《Android项目式程序设计》05 数据持久化操作写字字帖
2023-05-24 | 阅:  转:  |  分享 
  
项目五数据持久化操作学习目标掌握使用SharedPreferences读写移动智能系统的配置文件掌握读写SD卡的图片掌握使用Android
API操作SQLite数据库情景导入随着智能手机的普及,越来越多的人习惯将一些重要资料保存到手机中,一旦手机没电关机,保存的数据也
会随之丢失。因此Android提供了 SharedPreferences、SD存储、SQLite三种数据存储机制来保存数据。本次任
务主要实现登录系统数据持久化操作。任务描述本任务将设计一款利用SharedPreferences、SD卡和SQLite存储的“登录
系统”软件。使用线性布局技术来设计登录系统界面Logo界面,Toast提示“欢迎进入登录系统”登录界面,点击“注册”按钮,跳转到注
册界面注册界面,输入姓名、性别、用户名、用户密码,点击图片拍照,点击“注册”按钮进行注册登录界面,输入已注册的用户名和用户密码,点
击“登录”按钮进行登录登录界面,点击“记住密码”选择框,程序退出后再次进入登录界面时,用户名,用户密码依旧显示登录界面,点击“自动
登录”选择框,程序退出后再次进入登录界面时,系统自动实现登录功能 【基本框架】基本框架如图5.1、5.2所示,将框架图转换成的效果
如图5.3-5.6所示。任务描述图5.1 登录系统Login界面框架图图5.2 登录系统Register界面框架图 图5.3 登录
系统Logo界面效果图 任务描述 图5.4 登录系统Login界面效果图 图5.5登录系统Register界面效果图图5.6登录系
统Success界面效果图任务技能技能点1 SharedPreferences概述1 SharedPreferences存储类
的特点SharedPreferences存储类是以XML方式来保存,整体效率比较低,但对于常规的轻量级而言效率要高很多,如果存储量
小可以考虑自己定义文件格式。XML处理文件时是使用Dalvik通过自带底层的本地XML Parser解析的,XML Pull方式也
是使用的上述方法进行解析文件,这样对于内存资源占用比较好。任务技能2 SharedPreferences的特点SharedPre
ferences是Android平台上一个轻量级的存储类,有以下几个特点:保存应用的一些常用配置。在Activity生命周期中了解
当Activity执行onpause()时,最好存储数据,一般将此Activity的状态保存到SharedPreferences中
。当Activity重载的时候,系统回调方法onSaveInstanceState(),就能从SharedPreferences中
将值取出SharePreferences提供了多种类型数据的保存接口,比如long、int、String、char类型接口可以全局
共享访问任务技能3 SharedPreferences操作模式移动应用程序存储配置数据有四种模式,在上下文创建SharedPre
ferences实例对象的时候要指定目标访问应用程序的访问模式。四种模式如表5.1所示。任务技能4 SharedPreferen
ces常用方法及实现步骤SharedPreferences常用来存储一些轻量级的数据,常用的方法如表5.2所示。任务技能技能点2
读写SD卡1 Environment类的常用方法移动设备的拍照频率高且每个图片都需要一定的存储空间,因此采用读写SD卡中的数据
可以满足业务需求的存储要求。读写SD卡上的图片文件都是通过流的方式进行读取的,可以使用在Java面向对象程序设计中的流操作类。在读
写SD卡时会常用到设备环境android.os.Environment工具类,Environment类的常用方法说明如表5.3所示
。任务技能2 读写SD卡的文件的步骤读写SD卡的文件的一般步骤为:(1)判断移动设备中是否存在SD卡,如果存在则对Android
系统SD卡里的文件操作添加使用权限。程序通过调用Environment.getExternalStorageState( )方法的
返回值与Environment.MEDIA_MOUNTED比较,如果SD卡存在并且具有操作权限则返回true。Environmen
t.getExternalStorageState().equals(android.os.Environment.MEDIA_M
OUNTED)Android中SD卡外部设置的状态情况如表5.4所示。任务技能(2)通过调用Environment.getExte
rnalStorageDirectory()获取文件绝对路径(即/mnt/sdcard/+文件名),也可以在程序中直接写“ /mn
t/sdcard/+文件名”这个字符串。(3)获取文件路径后的操作,使用FileInputStream、FileOutputStr
eam、FileReader、FileWriter四个类的方法实现读写SD卡文件数据。(4)如果是在模拟器中测试使用SD卡,需要设
置SD卡的大小如图5.7所示。在Android操作系统中操作SD卡需要在AndroidManifest.xml配置文件的Permi
ssion选项卡添加两个用户访问权限,如图5.8所示。任务技能任务技能任务技能技能点3 SQLite数据库简介及操作1 SQL
ite数据库简介SQLite轻量级关系型数据库发布于2000年。尽管SQLite是一个轻量级的数据库,但它支持关系型数据库(如SQ
L Server、Oracle)操作数据的大部分功能,如触发器、索引、自动增长字段和LIMIT/OFFSET子句等。SQLite数
据库在运行时占用的系统资源极少,目前广泛的应用在嵌入式产品中。Android平台已经嵌入了SQLite数据库,其具有如下特点。任务
技能跨平台:SQLite可以编译运行在绝大多数主流操作平台上的软件,也适用于移动终端平台紧凑性:SQLite一个功能齐全但体积很小
数据库,可以描述为1个头文件,1个库适应性:作为一个内嵌式的数据库,具备强有力而且可伸缩的关系型数据库前端,简单而紧凑的多路搜索树
后端 不受拘束的授权:SQLite的全部代码都在公共域中,不需要授权可靠性:SQLite是一个开源的数据库,包含大约30000行标
准C代码 易用性:SQLite还提供一些独特的功能来提高易用性,包括动态类型、冲突解决和“附加”多个数据库到一个连接的能力任务技能
SQLite的存储是采用动态数据存储类型,可以根据存入的值自动进行判断。SQLite支持5种数据类型:NULL-空值、INTEGE
R-带符号的整型、REAL-浮点型、TEXT-字符串文本和BLOB-二进制对象。在实际编程过程中SQLite数据库可以写入int、
varchar等大多数数据类型,在数据库运算或保存时将其转化为可以接受的5种数据类型。移动应用开发阶段只需要引用SQLite提供的
API接口工具类即可创建和使用指定的数据库。通常在移动平台上使用SQLiteDatabase工具类创建或打开数据库的方法说明,如表
5.5所示。任务技能任务技能2 SQLite数据库操作基于数据库创建的基础上,可以对数据库进行建表并且对数据库表的DML(数据操
纵)进行操作。根据Android API中SQLiteDatabase提供的数据操作方法,下面通过表5.6列出常用的数据操作方法。
任务技能任务实施第一步:在Eclipse中创建一个Android工程,命名为“登录系统”?,并设计界面。如图5.3-5.6所示。第
二步:在src文件夹下建立LogoActivity.java文件和LoginActivity.java文件,并实现从闪屏界面跳转到
登录界面。?第三步:实现Login界面初始化。第四步:在src文件夹中下建立 RegisterActivity.java文件并设置
Login界面“注册”按钮事件,点击“注册”按钮,跳转到Register界面。?任务实施第五步:在src文件夹下建立数据库regi
ster.db并建表msg。第六步: 在Register界面实现界面初始化。第七步:在RegisterActivity.java界
面输入姓名、账号、密码、性别,利用系统照相机拍照。第八步:在Register界面设置“注册”按钮点击事件,点击“注册”按钮将界面上
的所有信息保存到数据库中。任务实施第九步:将注册信息写入数据库表msg中。第十步:返回到Login界面设置“登录”按钮事件。点击“
登录”按钮查询数据库信息。第十一步:将查询信息语句写入数据库表msg中。第十二步:在Login界面判断数据库信息与输入信息是否相同
,根据判断结果进行登录或提示错误,并添加记住密码以及自动登录功能。第十三步:运行程序,结果如图5.3-5.6?所示 。?任务拓展【
拓展目的】 熟悉并掌握数据持久化操作技能。【拓展内容】在“登录系统”基础上增加“忘记密码”功能。结果如图 5.9 – 5.11所示
。图5.9 Login界面 结果图 图5.10 Forget界面结果图 图5.11 Update界面结果图【拓展步
骤】1 设计思路点击“忘记密码”后,用户可根据用户真实姓名与账号修改密码。修改信息判断以及提示信息。输入新密码进行密码修改。修改
数据库数据代码。任务拓展任务总结本项目内容?主要介绍了在移动设备中应用存储相关技术的基础知识。重点讲解? SharedPreferences存储配置参数、SD卡的读写图片和SQLite数据库存储图书信息等技能。通过这些技能点在实际业务中的应用,明确在开发中采用合适的技术。??英语角name? 名字password? 密码?remember? 记着register 注册sleep 睡眠create 创造insert 插入updata 更新delete 删除
献花(0)
+1
(本文系大高老师首藏)