android app数据存储,基于Android开发的APP数据存储研究

谢原武+龙文

b60390c71822d63ecf8392e45a15549b.png

摘要: 作为一个完整的应用程序,数据存储操作是必不可少的。Android系统一共提供了四种数据存储方式分别为File文件存储、Shared Preferences存储、ContentProvider存储和SQLite数据库存储。该文以“爱自己”健康APP为例,简单地介绍了这些本地数据存储的原理和特点,并对其优缺点进行了分析。

关键词:数据存储,数据管理,存储机制

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0012-02

Abstract: As a complete application, data storage operation is necessary. The Android system provides a total of four kinds of method of data storage: the File files are stored and Shared Preferences, ContentProvider storage and SQLite database storage. Based on this, through to this topic to complete the "love yourself" health APP, simply introduces the principle and characteristics of the local storage, and analyses their advantages and disadvantages.

Key words: data storage; data management; storage mechanism

1 引言

随着社会的飞速发展和人民生活水平的进一步提高,人们已经不仅仅满足于生活的温饱和娱乐,而是更多地去关注自身的身体健康,去追求健康的生活方式。本课题开发和设计了一款基于Android平台的“爱自己”健康医疗APP,算法和数据是这个软件的程序运行的核心,相应的Android开发平台提供了各种数据存储机制,使得这个健康APP在进行数据存储和管理时可以选择使用不同的方式。本文对Android系统提供的存储方式进行了简单研究,以及本次创新项目完成的“爱自己”健康APP的存储方式选择。

2 数据存储方式

2.1 File文件存储

File文件存储就是以I/O流形式来对数据进行保存和读取,可以直接将数据输出到文件中,以文件的形式存入手机内存或者SD卡中,默认的存储目录是/data/data/Package_Name/files[1]。这是个默认私有的文件,在访问这文件的时候需要设置操作模式为可读或可写。它主要是提供了openFileOutput()和openFileInput方法对文件进行读写。文件存储是Android中最基本的一种数据存储方式,不仅能将大量的数据存储到系统中,还能存储到手机SD卡上,进而节省了手机自身的存储空间,比数据库存储实现简单。但是它的缺点是更新数据比较麻烦,数据不能共享和进行条件访问。

2.2 Shared Preferences存储

Shared Preferences是在Android平台上使用的一个轻量级存储类,一般用来保存一些简单的配置信息,实质上是以.xml文件形式来存储key-value键值对数据,其对应的文件可以是在/data/data/ Package_Name/shared_prefs文件夹中找到,跟文件存储一样,这样的文件也是默认私有的,在多个应用程序之间是无法共享数据的。Shared Preferences对象本身只能获取数据,并不能支持数据存储和数据修改的操作,只能通过Shared Preferences.Editor()对象来进行这些操作。Shared Preferences对象不用像数据库管理那样创建数据库、创建表、写SQL语句等操作,相对而言快速、方便、简洁。但是这种方式只能存储boolean、int、float、long和String5种简单数据类型,而且数据是以XML格式存储到手机内存中,无法存储大量的数据。

2.3 ContentProvider存储

ContentProvider为存储和获取数据提供了统一的接口。ContentProvider一般使用表的形式来组织数据,每一个ContentProvider都对外拥有一个公共的URL,Android设备上的任何程序都可以通过这个URL来访问或对数据进行操作,实现了应用程序之间的数据共享[2]。用户一般可以通过ContentProvider类所提供的query(),insert(),update(),getType等方法去访问数据。严格意义上来说,ContentProvider并不是一种数据存储方式,而是一种对数据库中数据的封装,最终会以.db文件形式存储在手机上,它的访问方式与数据库的访问方式基本相似,操作起来也与数据库相似,基本优缺点与数据库一样,但是在Android设备中的各个应用程序间的数据应该是相互保密的,所以这种存储方式在Android开发过程中比较少用。

2.4 SQLite数据库存储

SQLite是一个可用于嵌入式设备开发的强大的轻量级数据库,支持SQL语言。它资源占用率非常低、运行效率高,具有独立性、隔离性、跨平台、安全性等多种特性,特别适合于嵌入式设备开发,目前已经应用在很多嵌入式设备开发领域中。在使用SQLite时,最常用到两个类:SQLiteDatabase和SQLiteOpenHelper。

SQLiteDatabase是Android的核心类之一,该类封装了一系列数据库操作的API,对数据库进行增、删、改、查等操作,进而完成对数据库的创建、删除。

除了SQLiteDatabase类外,Android平台还给开发者提供了一个强大的辅助类SQLiteOpenHelper。SQLiteOpenHelper是一个抽象类,通过它可以很好的对数据库进行创建和数据库的版本更新,可以通过继承SQLiteOpenHelper类,实现它的两个抽象方法,onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabse dv, int oldVersion,int new Version),其中onCreate()一般是用来检查数据库是否存在和创建数据库、创建表的,而onUpgrade()多数用来检查和更新数据库的版本。

3 “爱自己”APP的数据库设计

由于本次创新项目的“爱自己”健康医疗APP需要能够实现本地和远程的历史数据查询功能,因此谨慎设计一个合理的数据库很有必要。结合上文的简述和比较,在Android开发中,数据存储主要有四大存储方式:File文件存储,Shared Preferences存储,ContentProvider存储以及SQLite数据库存储。其中文件存储主要是用输入输出流控制,如果想对文件更加方便地访问控制,直接使用流是最好的选择。Shared Preferences存储是Android中最简单的数据存储方式,主要处理key-value键值对数据,通常Shared Preferences将数据文件写在手机内存私有的目录中,并且以xml文件的格式存储。ContentProvider存储是Android系统中定义的应用程序与其他应用程序共享数据的桥梁,设备上的程序都通过ContentProvider的URI供其他应用程序使用。Android存储方案的核心是SQLite数据库,它是专门为嵌入式设备而设计的轻量级的数据库,执行简单地SQL语句甚至比MySQL和Postgresql还快,Android系统对于操作SQLite数据库提供了很多java工具类,从而方便我们进行Android平台数据存储功能应用开发[3]。而此次的“爱自己”APP要设计的软件数据存储部分就是使用Android SQLite数据库进行数据存储功能设计的。

“爱自己”APP要实现数据存储的需求主要有:对于用户的注册信息存储、用户的健康数据测量的数据存储和对应用户的健康数据反馈的数据存储。根据这个需求,设计了数据库personinfo.db,主要包含四张表,由于Android平台下的SQLite数据库并不是全部都支持外键功能,因此,在这四张数据表的设计过程中都没有用到外键。四张表分别包含有用户信息表,用户摄食记录表,食物所对应的卡路里表,用户健康状况反馈表。其中用户信息表主要是记录包含了用户的个人信息,用户摄食记录表主要是记录了对应用户的摄入各种食物的信息,食物所对应的卡路里表主要是记录了各种食物的卡路里量值,用户健康状况反馈表主要是记录了系统根据对应用户的健康状况给出的建议的信息。4张表的具体信息如下:

在“爱自己”的整个数据存储设计实现上使用SQLite创建数据库主要是通过继承SQLite OpenHelper类来完成创建以及各种数据库的操作。

4 结论

整个社会信息化程度的不断加深,基于Android智能设备的应用程序的不断更新与发展,算法与数据依旧是一个计算机程序运行的核心。一个完整的应用程序开发中选择一个与之相匹配的数据存储方式,便会极大地提高整个程序软件的总体运行性能。“爱自己”是一款综合型的APP,无论是实时数据还是历史数据,它都有对数据进行快速分析和处理的功能,在其数据库设计的过程中仍然存在着不足,但随着智能设备传感器的不断普及,它对传感器的调用也让用户对实时数据和历史数据都有一个深刻的认识,能在使用时充分结合两者而达到灵活转换的目的。相信随着智能时代的到来,算法和数据仍然是这一时代智能设备发展的一个主流研究。

参考文献:

[1] 传智播客高教产品研发部.Android移动应用基础教程[M]. 中国铁道出版社,2015.

[2] 朱桂英.Android开发应用从入门到精通[M].中国铁道出版社,2011.

[3] 张永瑞.基于Android及Java Web平台的个人健康信息管理系统[M].2014.

[4] 彭艳,杨欧.Android平台的数据存储技术[J].计算机系统应用,2012(5).

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值