




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕毕 业业 论论 文(设文(设 计)计) 题目: 基于 android 手机系统的软件开发与应用 英文: the development and application of the software basing on android system 院 (系) 别: 计算机科学学院 专业(班级): 姓 名: 学 号: 指 导 教 师: 答 辩 日 期: 基于基于 androidandroid 手机系统的软件开发与应用手机系统的软件开发与应用 摘要摘要 android 平台原意是“机器人” ,于 2007 年 11 月推出立即受到许多手机厂商,运 营商和芯片厂商的大力支持。android 基
2、于 linux 平台的开源手机操作系统的名称,该 平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的 真正开放和完整的移动软件。许多厂商继而组建成一个全球性的联盟组织开放手 机联盟(open handset alliance,oha) ,如三星,摩托罗拉,lg 电子,日本 ntt docomo,中国移动,intel,等 34 家公司都加入了这个庞大的阵营。 android 在中国的前景十分广阔,首先是有许多成熟的消费者,在国内,android 社区 十分红火,这些社区为 android 在中国的普及做了很好的推广作用。国内厂商和运营 商也纷纷加入了 android 阵营
3、,包括中国移动,中国联通,华为通讯,联想等大企业。 目前 android 允许开发人员自由获取,修改代码,平台完全开放,吸引了越来越多的 程序员加入 android 开发阵营之中,android 的快速发展给了商家,程序员一个非常宝 贵的机会,谁能把握住这个机会,商机,谁就能获得成功。目前,android 的软件在中 国还是有限,甚至不能说成熟,因此开发功能强大,方便消费者日常使用的软件已经 是一个迫在眉睫的任务。 关键字:关键字:android 手机软件,intent 机制,activity,dom,sax,sqlite 数据 库 the development and applicatio
4、n of the software basing on android system abstract the origin of the meaning of android platform is robot. in november 2007,android is publish. many mobile phone manufacturers, chip venders and operators all support it. android platform bases on the linux which consist of operation system,middlewar
5、e,ui and application software.android is claimed to be the first to make real mobile terminal open and complete mobile software.a lot of manufacturers and companys form into a global alliance - open mobile handset, kent league (alliance oha), such as samsung, motorola, lg electronics, japan, china m
6、obile, docomo ntt intel and so on .34 companies have joined this huge alliance. take the prospects of android in china, firstly there are many mature consumers. in china, the communities of android are so hot. it do a very good promotion effect for android. domestic manufacturers and operators have
7、joined the android, including china mobile, china unicom, huawei, lenovo, meizu etc. currently android allows developers to have the free access codes, modify them.android platform completely open.this attracts more programmer join in android development camp. the rapid development of the android gi
8、ves business, programmers a very precious chance. if you can seize the opportunity,you will succeed.at present, in china , the android software, cant even say mature.so to develop some powerful, convenient softwares for comsumers is an urgent task. key words:android software;intent;activity;dom,sax;
9、sqlite database 目录 序言 .1 1 绪论 .2 11 android的背景.2 12 android的意义.3 13 android核心知识.4 1.3.1 架构图直观.4 1.3.2 linux kernel 详解.5 1.3.3 androidruntime 详解.5 1.3.4 libraries 详解.5 1.3.5 applicationframework 详解.6 1.3.6 applications 详解.6 14 开发 android所采用的技术 .7 1.4.1 java 程序设计语言.7 1.4.2 web service 技术.7 1.4.3 xml 技
10、术.8 1.4.4 dom 和 sax 解析技术.9 1.4.5 sqlite 数据库 .10 1.4.6 location 定位技术.11 1.4.7 android intent 机制.12 1.4.8 photoshop 图像处理技术 .13 2 android 软件需求分析.14 21 android软件的概述.14 22 android软件的设计目标 .14 23 android的软件的可行性分析 .15 24 android的设计思想.15 25 android软件的功能需求分析 .16 26 android的开发及运行环境 .19 2.6.1 硬件环境.19 2.6.2 软件环境
11、.19 3 android 软件的概要设计.20 31 android软件的功能分析 .20 32 android软件总体设计.20 33 android软件各模块的设计 .21 3.3.1 播放器模块的设计.21 3.3.2 天气预报模块的设计.22 3.3.3 地震模块的设计.23 3.3.4 位置模块的设计.24 3.3.5 餐馆信息模块的设计.25 34 android软件的分析与划分 .27 3.4.1 播放器模块状态.27 3.4.2 天气预报模块状态.27 3.4.3 地震信息模块状态.28 3.4.4 位置定位模块状态.28 3.4.2 餐馆信息模块状态.29 4 androi
12、d 软件的详细设计.30 41 数据库需求分析.30 42 数据库概念结构设计.31 43 android数据存储 shared preferences.34 44 软件主要功能模块的实现.34 4.4.1 首页的实现过程.34 4.4.2 播放器的实现.37 4.4.3 天气预报的实现.38 4.4.4 地震信息的实现.42 4.4.5 位置定位的实现.45 4.4.6 餐馆信息的实现.49 5 android 软件测试.56 51 测试的目的与目标.56 52 测试的方法.56 53 系统测试的用例.58 5.3.1 天气预报测试用例.58 5.3.2 地震信息测试用例.58 5.3.3
13、位置定位测试用例.58 5.3.3 位置定位测试用例.58 6 android 软件的安全.60 6.1 应用程序版本管理.60 6.2 手机签名策略 .60 结论 .61 参考文献 .62 致谢 .63 附录 .64 附录 a 在模拟器中虚拟 sd 卡.64 附录 b android开发的环境搭配.64 序言序言 android 一词的本义指“机器人” ,同时也是 google 于 2007 年 11 月 5 日宣布的 基于 linux 平台的开源手机操作系统的名称,早期由 google 开发,后由开放手机联盟 开发。它采用了软件堆层 的架构,主要分为三部分。底层以 linux 内核工作为基
14、础, 只提供基本功能;其他的应用软件则由各公司自行开发,以 java 作为编写程序的一部 分。另外,为了推广此技术,google 和其它几十个手机公司建立了开放手机联盟。 android 在未公开之前常被传闻为 google 电话或 gphone。目前最新版本为 android2.2。2010 年谷歌开发者大会上,android2.2 发布,名称为 froyo,意为冻酸 奶。 android 作为谷歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供 信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于 android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至
15、平台。出于这个目 的,android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各 地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并 推广这些产品。 android 平台的研发队伍阵容强大,包括摩托罗拉、google、htc、t-mobile、高通、 魅族、三星、lg 以及中国移动在内的 34 家企业,都将基于该平台开发手机的新型业务, 应用之间的通用性和互联性将在最大程度上得到保持。 “开放手机联盟”表示, android 平台可以促使移动设备的创新,让用户体验到最优越的移动服务,同时,开发 商也将得到一个新的开放级别,更方便的进行协同合作,从而保
16、障新型移动设备的研 发速度。 34 家企业的加盟,也将大大降低新型手机设备的研发成本,完全整合的“全 移动功能性产品”成为“开放手机联盟”的最终目标。 这 34 家企业中并不包含把持 symbian 的诺基亚,以及凭借着 iphone 风光正在的苹果公司,美国运营商 at在城区由于高大建筑物较多,电波传播环境不好,信号很难直 接从基站到达移动台,一般要经过折射或反射,因此定位精度会受到影响,定位范围 为 100200 米,一般情况定位响应时间在 36s 之间。而在无法接收到手机信号的地 方,就谈不上定位了。而 gps 定位由于接收机任何时刻都至少被 4 颗卫星覆盖,所以 信号得到了很好的保证,
17、并且由于卫星居高临下,排除卫星钟及大气干扰等因素,精 度也能保证在几米至几十米 谷哥正在测试一项手机定位服务。通过此服务,即使你没有 gps,也能通过你的手机 来对你当前的位置进行定位。这项服务将来会加入进谷哥 maps,这样在你每次搜索时 就不用再输入自己当前的位置了。每次一打开 maps,系统就会根据你的位置自动定位 到你现在所在的地方,这项定位技术被称为 “我的位置” 。只要在安装了相应软件的设 备上轻按确认,系统就会在地图上将你的当前位置用一个蓝点标注出来。该定位系统 在数据库里储存不同运营商各个不同基站的识别信息,通过对这些数据进行对比来定 位用户。当前这个数据库建设还不是很完善,所
18、以“我的位置”使用起来还不是太精 确。但相信随着时间的推移,这个数据库会很快地建设起来。谷哥表示这项技术不会 收集用户的手机号码以及其他个人信息。而且整个功能也可以随时关闭。用户无需担 心自己的隐私被泄露。 1.4.7 android intent 机制机制 android 中提供了 intent 机制来协助应用间的交互与通讯,或者采用更准确的说 法是,intent 不仅可用于应用程序之间,也可用于应用程序内部的 activity/service 之间的交互。intent 这个英语单词的本意是“目的、意向”等,对于较少从事于大型 平台开发工作的程序员来说,这可能是一个不太容易理解的抽象概念,因
19、为它与我们 平常使用的简单函数/方法调用,或者上节中提到的通过库调用接口的方式不太一样。 在 intent 的使用中你看不到直接的函数调用,相对函数调用来说,intent 是更为抽象 的概念,利用 intent 所实现的软件复用的粒度是 activity/service,比函数复用更高 一些,另外耦合也更为松散。 android 中与 intent 相关的还有 action/category 及 intent filter 等,另外还 有用于广播的 intent,这些元素掺杂在一起,导致初学者不太容易迅速掌握 intent 的 用法。在讲解这些名词之前,我们先来从下面的例子中感受一下 inte
20、nt 的一些基本用 法,看看它能做些什么,之后再来思考这种机制背后的意义。 理解 intent 的关键之 一是理解清楚 intent 的两种基本用法:一种是显式的 intent,即在构造 intent 对象 时就指定接收者,这种方式与普通的函数调用类似,只是复用的粒度有所差别;另一 种是隐式的 intent,即 intent 的发送者在构造 intent 对象时,并不知道也不关心接 收者是谁,这种方式与函数调用差别比较大,有利于降低发送者和接收者之间的耦合。 另外 intent 除了发送外,还可用于广播。 1.4.8 photoshop 图像处理技术图像处理技术 photoshop 是 ado
21、be 公司旗下最为出名的图像处理软件之一,集图像扫描、编辑修 改、图像制作、广告创意,图像输入与输出于一体的图形图像处理软件,深受广大平 面设计人员和电脑美术爱好者的喜爱。从功能上看,photoshop 可分为图像编辑、图像 合成、校色调色及特效制作部分。 图像编辑是图像处理的基础,可以对图像做各种变 换如放大、缩小、旋转、倾斜、镜像、透视等。 图像合成则是将几幅图像通过图层操 作、工具应用合成完整的、传达明确意义的图像,这是美术设计的必经之路。 校色调 色是 photoshop 中深具威力的功能之一,可方便快捷地对图像的颜色进行明暗、色编 的调整和校正。 该软件是本人先手绘,然后通过数码产品
22、传到电脑,最后用 photoshopcs4 加工而完成 的。本软件的主题是小王子 , 小王子是作家安东尼德圣-埃克苏佩里于 1942 写成的著名法国儿童文学短篇小说。 本书的主人公是来自外星球的小王子。书中以一 位飞行员作为故事叙述者,讲述了小王子从自己星球出发前往地球的过程中,所经历 的各种历险。作者以小王子的孩子式的眼光,透视出成人的空虚、盲目和愚妄,用浅 显天真的语言写出了人类的孤独寂寞、没有根基随风流浪的命运。同时,也表达出作 者对金钱关系的批判,对真善美的讴歌。以这个故事为主题,主要是想宣传作者这种 思想,我们可以长大,但童年的那些事千万别忘记。 2 2 androidandroid
23、 软件需求分析软件需求分析 2 21 1 androidandroid 软件的概述软件的概述 目前,android 的软件在中国还是有限,甚至不能说成熟,因此开发功能强大,方 便消费者日常使用的软件已经是一个迫在眉睫的任务了。迫于这个原因,我开发了这 个运行于 android 系统的软件,该软件采用 android sdk 1.5+myeclipse8.0 开发,具 有平时消费者特需求的功能,有很好的使用价值。软件包括了大约 5 个功能,有(1) 音乐播放器,此播放器简单易用,剔除了用户平时不多用的功能,让音乐做到简单。 (2)天气预报,只要你输入想查询的城市,详细的天气预报信息就会毫无保留地
24、展示 在你面前。 (3)地震消息查看,虽然地震预测在各国还是一个很大难题,但提供一些 实时的地震消息还是有一定的参考价值,返还于未然。(4)位置定位,不管你在哪里, 高山或是郊区,只要有信号,你就能准确地定位你当前的位置,同时提供 googlemap 让你一目了然,这样今后去旅游或探险之类的活动再也不怕迷失方向了。 (5)创意十 足的餐馆管理,上班族一定有一个很大的问题,那就是不知道到哪吃饭好,此功能能 帮你解决这个烦恼,只要你平时都记录下餐馆的地址之类的信息,那么系统就会帮你 随机选出餐馆,同时也提供 google map 地图给你,而且不但如此,系统还能算出你目 前到该餐馆的大约路程和到该
25、餐馆所需时间。功能虽小,但却很好地为用户提供功能 及实时消息,方便日常生活。一个软件能使你生活过得更顺利,更开心,那么它就有 它存在的意义和价值了。 2 22 2 androidandroid 软件的设计目标软件的设计目标 android 虽然在中国还没有像 symbian 系统那样拥有丰富的第三方软件,但它的 优越性是显而易见的,它具有开放性,所有的应用程序是平等的,应用程序间无界限, 快速方便的应用程序开发等特点,这是其他手机系统无法提供给开发者的。因此借着 这个优越的平台,我设计了这个多功能的手机软件,意在方便手机用户的日常生活, 例如餐馆信息管理功能,它创意十足。很多上班族一定有一个很
26、大的问题,那就是不 知道到哪吃饭好,此功能能帮你解决这个烦恼,只要你平时都记录下餐馆的地址之类 的信息,那么系统就会帮你随机选出餐馆,同时也提供 google map 地图给你,而且不 但如此,系统还能算出你目前到该餐馆的大约路程和到该餐馆所需时间。功能虽小, 但却很好地为用户提供功能及实时消息,方便日常生活。还有其他功能,天气预报, 播放器,位置定位等无不是生活中的小帮助。顾这个软件就是意在帮助手机客户解决 生活细小问题。 2 23 3 androidandroid 的软件的可行性分析的软件的可行性分析 我开发了这个运行于 android 系统的软件,该软件采用 android sdk 1.
27、5+myeclipse8.0 开发,具有平时消费者特需求的功能,有很好的使用价值。软件包 括了大约 5 个功能,有(1)音乐播放器,此播放器简单易用,剔除了用户平时不多用 的功能,让音乐做到简单。 (2)天气预报,只要你输入想查询的城市,详细的天气预 报信息就会毫无保留地展示在你面前。 (3)地震消息查看,虽然地震预测在各国还是 一个很大难题,但提供一些实时的地震消息还是有一定的参考价值,返还于未然。(4) 位置定位,不管你在哪里,高山或是郊区,只要有信号,你就能准确地定位你当前的位 置,同时提供 googlemap 让你一目了然,这样今后去旅游或探险之类的活动再也不怕 迷失方向了。 (5)创
28、意十足的餐馆管理,上班族一定有一个很大的问题,那就是不知 道到哪吃饭好,此功能能帮你解决这个烦恼,只要你平时都记录下餐馆的地址之类的 信息,那么系统就会帮你随机选出餐馆,同时也提供 google map 地图给你,而且不但 如此,系统还能算出你目前到该餐馆的大约路程和到该餐馆所需时间。鉴于在 android 开源系统的基础上,开发这个功能丰富的软件是完全可行的。 2 24 4 androidandroid 的设计思想的设计思想 目前 android 的发展是十分迅速的,从 android sdk1.5 到 2.2 才不足两年,所 以可见 android 的前途是无法预料的!我想通过这个平台开发
29、一些手机用户生活中需 要的细小功能,例如天气预报,位置定位等,特别是餐馆功能,创意十足,上班族一 定有一个很大的问题,那就是不知道到哪吃饭好,此功能能帮你解决这个烦恼,只要 你平时都记录下餐馆的地址之类的信息,那么系统就会帮你随机选出餐馆,同时也提 供 google map 地图给你,而且不但如此,系统还能算出你目前到该餐馆的大约路程和 到该餐馆所需时间。于是鉴于这个想法,我用了 myeclipse 和 adt 插件来开发这个软 件,界面是用 photoshop 来加工的。 2 25 5 androidandroid 软件的功能需求分析软件的功能需求分析 如下是播放器模块的用况分析: 播放器用
30、例图 如下是天气预报模块的用况分析: 天气预报用例图 如下是地震信息模块的用况分析: 地震信息用例图 如下是位置定位模块的用况分析: 定位信息用例图 如下式餐馆信息的用况分析: 餐馆信息用例图 2 26 6 androidandroid 的开发及运行环境的开发及运行环境 2.6.1 硬件环境硬件环境 cpu:intel(r) celeron(r) m cpu 430 1.73ghz 硬盘:320g 内存:kingston 1.5gb 2.6.2 软件环境软件环境 操作系统:windows 7 系统类型:32 位操作系统 应用软件:jdk version 1.5+android sdk 1.5
31、分辨率:推荐使用分辨率为 1027*768 像素 数据库:sqlite 数据库(c 语言编写的) 开发工具:myeclipse8.0 adt 插件+photoshopcs4 建模工具:violetuml 用具 3 3 androidandroid 软件的概要设计软件的概要设计 3 31 1 androidandroid 软件的功能分析软件的功能分析 该软件采用 android sdk 1.5+myeclipse8.0 开发,具有平时消费者特需求的功能, 有很好的使用价值。软件包括了大约 5 个功能,有(1)音乐播放器,此播放器简单易 用,剔除了用户平时不多用的功能,让音乐做到简单。 (2)天气
32、预报,只要你输入想 查询的城市,详细的天气预报信息就会毫无保留地展示在你面前。 (3)地震消息查看, 虽然地震预测在各国还是一个很大难题,但提供一些实时的地震消息还是有一定的参 考价值,返还于未然。(4)位置定位,不管你在哪里,高山或是郊区,只要有信号,你 就能准确地定位你当前的位置,同时提供 googlemap 让你一目了然,这样今后去旅游 或探险之类的活动再也不怕迷失方向了。 (5)创意十足的餐馆管理,上班族一定有一 个很大的问题,那就是不知道到哪吃饭好,此功能能帮你解决这个烦恼,只要你平时 都记录下餐馆的地址之类的信息,那么系统就会帮你随机选出餐馆,同时也提供 google map 地图
33、给你,而且不但如此,系统还能算出你目前到该餐馆的大约路程和到 该餐馆所需时间。功能虽小,但却很好地为用户提供功能及实时消息,方便日常生活。 一个软件能使你生活过得更顺利,更开心,那么它就有它存在的意义和价值了。 商品功能表: 3 32 2 androidandroid 软件总体设计软件总体设计 为了保证软件的实用性和应用性,软件的功能是手机客户十分急需的功能,有播 天气预报显示输入城市的天气状况 播放器播放手机或内存卡里的音乐文件 地震信息显示世界各地的地震信息状况 位置定位显示当前的位置,可以通过 gps 等获得 增加餐馆信息加入平时常去的餐馆或著名的餐馆 餐馆编辑可以对数据库里的餐馆信息进
34、行编辑 餐馆信息显示用 googlemap 显示餐馆信 放器,天气预报,位置定位,和餐馆信息管理等。有与系统有提供 sqlite 数据库功能, 这极大方便了我们对数据的管理。软件的这些功能都是通过 java 语言编写的,利用 google 提供 android api 来实现功能。界面是本人先手绘,然后通过数码产品传到电 脑,最后用 photoshopcs4 加工而完成的。本软件的主题是小王子 , 小王子是作 家安东尼德圣-埃克苏佩里于 1942 写成的著名法国儿童文学短篇小说。希望自己 设计的软件能实现其自身价值。 3 33 3 androidandroid 软件各模块的设计软件各模块的设计
35、 android 软件总体设计图 android 应用软件 音 乐 播 放 器 天 气 预 报 地 震 信 息 位 置 定 位 餐 馆 信 息 管 理 总体结构图图 3.3.1 播放器模块的设计播放器模块的设计 音乐播放器,此播放器简单易用,剔除了用户平时不多用的功能,让音乐做到简 单。 该模块包括的主要设计 查看 sd 卡或手机中的音乐文件 系统提供了 contentprovider,因此可以获取数据库中的文件 增加音乐文件(用 adb 管理) 用 adb 命令符来增加歌曲,例如:adb push frank.mp3 sdcard/frank.mp3 显示音乐文件信息(歌手,歌曲,专辑名)
36、根据系统提供的信息获取 前台播放音乐文件 播放器最基本的功能,播放音乐,暂停音乐,停止音乐 后台播放音乐文件 不用关闭播放器就可以去运行别的程序 音乐播放器功能模块 后 台 播 放 歌 曲 增 加 歌 曲 播 放 音 乐 暂 停 音 乐 停 止 音 乐 歌 曲 信 息 显 示 歌 曲 列 表 显 示 3.3.2 天气预报模块的设计天气预报模块的设计 各地气候查询 输入城市的拼音,例如广州(guangzhou) ,就可以获取广州的气候,气温,湿度等信 息 各地气候实时更新 由于天气是变化的,因此可以实时更新气候信息 该模块包括的主要设计 天气预报功能模块 天 气 实 时 更 新 各 地 天 气
37、查 询 3.3.3 地震模块的设计地震模块的设计 (1)各地地震信息显示 同过美国地震局的 xml 文件解析,从而获取信息 (2)各地地震信息实时更新 同天气一样,地震也是变化的,因此可以实时更新地震信息 该模块包含的主要设计: 地震信息功能模块 地 震 信 息 实 时 更 新 各 地 地 震 查 询 3.3.4 位置模块的设计位置模块的设计 (1)位置定位 同过 gps 或者基站返回经纬度,然后再同过 google 地图显示出来 (2)地图的放大 按比例放大地图 (3)地图的缩小 按比例缩小地图 (4)卫星地图的显示 两种地图互换 (5)位置实时更新 定时更新位置 该模块包括的主要设计 位置
38、定位功能模块 位 置 显 示 位 置 实 时 更 新 卫 星 地 图 转 换 放 大 地 图 缩 小 小 地 图 3.3.5 餐馆信息模块的设计餐馆信息模块的设计 (1)餐馆信息增加 餐馆名称,餐馆地址,食物热量多少 (2)餐馆数据显示 通过 listview 显示出来 (3)餐馆信息编辑 餐馆信息修改,餐馆信息删除 (4)餐馆地址显示 同过 google 地图显示随机餐馆的位置 (5)当前位置与随机餐馆的距离 算出距离,如果提供参数,可以算出道道目的地的所需时间 该模块包含的主要设计 餐馆信息功能模块 餐 馆 信 息 增 加 餐 馆 地 图 显 示 餐 馆 距 离 时 间 计 算 餐 馆 信
39、 息 修 改 餐 馆 信 息 显 示 3 34 4 androidandroid 软件的分析软件的分析与划分与划分 3.4.1 播放器模块状态播放器模块状态 3.4.2 天气预报模块状态天气预报模块状态 3.4.3 地震信息模块状态地震信息模块状态 3.4.4 位置定位模块状态位置定位模块状态 3.4.2 餐馆信息模块状态餐馆信息模块状态 4 4 androidandroid 软件的详细设计软件的详细设计 4 41 1 数据库需求分析数据库需求分析 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直 接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数
40、 据存储的效率,保证数据的完整和一致。 数据库接口设计: android 系统数据库系统数据库 音乐播放器音乐播放器 天气预报天气预报 web services or gps 餐馆数据信息餐馆数据信息 地震信息地震信息 位置定位位置定位 根据手机软件的特性以及软件的逻辑设计,设计了一个数据库,本软件使用的是 用 c 语言编写的 sqlite 数据库,该数据库是轻量级的,支持常用的 sql 语言。 数据库名称:mydb 数据表:t_restaurant 字段:f_id,f_name,f_address,f_cal 一个表包含 id 号,餐馆名字,餐馆地址,食物热量 t_restaurant 表(
41、餐馆信息表) 字段名称字段类型字段大小是否为空备注 f_idint2 否标识符 f_name text10 是餐馆名称 f_addresstext10 是餐馆地址 f_caltext100 是食物热量 在实际的应用程序编写中,为了更好地应对 sqlite 数据库的创建,打开以及更好 进行管理,往往要编写一个继承自 sqliteopenhelper 的数据库辅助类来帮助我们创建 和打开数据库。 4 42 2 数据库概念结构设计数据库概念结构设计 数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量 分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什 么字
42、段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的 3 个元素,也是一个好的数据库设计的核心。本软件是手机软件,有别于 pc 软件的数 据库,其用 sqlite 轻量级的数据库。支持常用的 sql 语言。 本软件的餐馆信息管理需要数据库的支持,一个餐馆就是一个记录,分别有四个字段, id 字段是数据库自动配置的,其余的三个字段信息是用户输入的 。 下面是 sqliteopenhelper 的主要代码,包括增删改等功能 /初始化数据库 public void oncreate(sqlitedatabase db) if (tablenames = null) message
43、= no_create_tables; return; /初始化表格 for (int i = 0; i tablenames.length; i+) string sql = create table + tablenamesi + (; for (int j = 0; j fieldnamesi.length; j+) sql += fieldnamesij + + fieldtypesij + ,; sql = sql.substring(0, sql.length() - 1); sql += ); db.execsql(sql); /判断版本 public void onupgrad
44、e(sqlitedatabase db, int arg1, int arg2) for (int i = 0; i tablenamesi.length(); i+) string sql = drop table if exists + tablenamesi; db.execsql(sql); oncreate(db); public void execsql(string sql) throws java.sql.sqlexception sqlitedatabase db = this.getwritabledatabase(); db.execsql(sql); /查询数据 pub
45、lic cursor select(string table, string columns, string selection, string selectionargs, string groupby, string having, string orderby) sqlitedatabase db = this.getreadabledatabase(); cursor cursor = db.query ( table, columns, selection, selectionargs, groupby, having, orderby ); return cursor; /插入数据
46、 public long insert(string table, string fields, string values) sqlitedatabase db = this.getwritabledatabase(); /* 将添加的值放入 contentvalues */ contentvalues cv = new contentvalues(); for (int i = 0; i fields.length; i+) cv.put(fieldsi, valuesi); return db.insert(table, null, cv); /删除数据 public int delet
47、e(string table, string where, string wherevalue) sqlitedatabase db = this.getwritabledatabase(); return db.delete(table, where, wherevalue); /更新数据 public int update(string table, string updatefields, string updatevalues, string where, string wherevalue) sqlitedatabase db = this.getwritabledatabase()
48、; /* 将修改的值放入 contentvalues */ contentvalues cv = new contentvalues(); for (int i = 0; i updatefields.length; i+) cv.put(updatefieldsi, updatevaluesi); return db.update(table, cv, where, wherevalue); public string getmessage() return message; override public synchronized void close() / todo auto-gene
49、rated method stub super.close(); 4 43 3 androidandroid 数据存储数据存储 sharedshared preferencespreferences sharedpreferences 是 android 平台上一个轻量级的存储类,主要是保存一些常 用的配置比如窗口状态,一般在 activity 中重载窗口状态 onsaveinstancestate 保存 一般使用 sharedpreferences 完成,它提供了 android 平台常规的 long 长整形、int 整形、string 字符串型的保存,它是什么样的处理方式呢? shared
50、preferences 类似 过去 windows 系统上的 ini 配置文件,但是它分为多种权限,可以全局共享访问, android123 提示最终是以 xml 方式来保存,整体效率来看不是特别的高,对于常规的 轻量级而言比 sqlite 要好不少,如果真的存储量不大可以考虑自己定义文件格式。 xml 处理时 dalvik 会通过自带底层的本地 xml parser 解析,比如 xmlpull 方式,这 样对于内存资源占用比较好。该软件的音乐播放器模块就用到了 shared preferences 的数据存储方法。软件保持了上次打开的音乐链接,这样下次打开软件时播放的就是 上次关闭前播放的歌
51、曲。android 的数据存储在 shared preferences 和 sqlite 数据库 的配合下发挥的淋漓尽致。 4 44 4 软件主要功能模块的软件主要功能模块的实现实现 软件包括了大约 5 个功能,有(1)音乐播放器,此播放器简单易用,剔除了用户 平时不多用的功能,让音乐做到简单。 (2)天气预报,只要你输入想查询的城市,详 细的天气预报信息就会毫无保留地展示在你面前。 (3)地震消息查看,虽然地震预测 在各国还是一个很大难题,但提供一些实时的地震消息还是有一定的参考价值,返还 于未然。(4)位置定位,不管你在哪里,高山或是郊区,只要有信号,你就能准确地定 位你当前的位置,同时提
52、供 googlemap 让你一目了然,这样今后去旅游或探险之类的 活动再也不怕迷失方向了。 (5)创意十足的餐馆管理,上班族一定有一个很大的问题, 那就是不知道到哪吃饭好,此功能能帮你解决这个烦恼,只要你平时都记录下餐馆的 地址之类的信息,那么系统就会帮你随机选出餐馆,同时也提供 google map 地图给你, 而且不但如此,系统还能算出你目前到该餐馆的大约路程和到该餐馆所需时间。 4.4.1 首页的实现过程首页的实现过程 对于手机软件来说,软件的首页是十分重要的,这关于着使用者的支持度,如同 网页一样,良好的视觉是吸引使用者的一个重要因素,手机首页运行如下图: 如下是主界面的 xml 代码
53、,其他界面和主界面相仿: 主界面的 xml 代码: 4.4.2 播放器的实现播放器的实现 音乐播放器,此播放器简单易用,剔除了用户平时不多用的功能,让音乐做到简 单。 该模块包括的主要设计 查看 sd 卡或手机中的音乐文件 系统提供了 contentprovider,因此可以获取数据库中的文件 增加音乐文件(用 adb 管理) 用 adb 命令符来增加歌曲,例如:adb push frank.mp3 sdcard/frank.mp3 显示音乐文件信息(歌手,歌曲,专辑名) 根据系统提供的信息获取 前台播放音乐文件 播放器最基本的功能,播放音乐,暂停音乐,停止音乐 后台播放音乐文件 不用关闭播放
54、器就可以去运行别的程序 运行界面如下图所示: 4.4.3 天气预报的实现天气预报的实现 天气预报,只要你输入想查询的城市,详细的天气预报信息就会毫无保留地展示 在你面前。功能如下: 各地气候查询,输入城市的拼音,例如广州(guangzhou) ,就可以获取广州的气候, 气温,湿度等信息 各地气候实时更新 由于天气是变化的,因此可以实时更新气候信息 运行界面如下图所示: 天气预报主要代码,sax 解析: public void startelement(string namespaceuri, string localname, string qname, attributes atts) th
55、rows saxexception if (localname.equals(forecast_information) this.in_forecast_information = true; else if (localname.equals(current_conditions) this.in_current_conditions = true; else if (localname.equals(forecast_conditions) this.in_forecast_conditions = true; else string dataattribute = atts.getva
56、lue(data); if (localname.equals(city) else if (localname.equals(postal_code) else if (localname.equals(latitude_e6) / one could use this to convert city-name to lat/long. else if (localname.equals(longitude_e6) /one could use this to convert city-name to lat/long. else if (localname.equals(forecast_
57、date) else if (localname.equals(current_date_time) else if (localname.equals(unit_system) if (dataattribute.equals(si) this.usingsitemperature = true; else if (localname.equals(day_of_week) if (this.in_current_conditions) / 可扩展 else if (this.in_forecast_conditions) / 可扩展 else if (localname.equals(ic
58、on) if (this.in_current_conditions) this.seticonurl(dataattribute); else if (this.in_forecast_conditions) / 可扩展 else if (localname.equals(condition) if (this.in_current_conditions) this.setcurrentcondition(dataattribute); else if (this.in_forecast_conditions) / 可扩展 else if (localname.equals(temp_f)
59、/ this.setcurrenttemp(integer.parseint(dataattribute); else if (localname.equals(temp_c) this.setcurrenttemp(integer.parseint(dataattribute); else if (localname.equals(humidity) this.setcurrenthum(dataattribute); else if (localname.equals(wind_condition) / 可扩展 / inner tags within else if (localname.
60、equals(low) /int temp = integer.parseint(dataattribute); if (this.usingsitemperature) / 可扩展 else / 可扩展 else if (localname.equals(high) / int temp = integer.parseint(dataattribute); if (this.usingsitemperature) / 可扩展 else / 可扩展 4.4.4 地震信息的实现地震信息的实现 地震消息查看,虽然地震预测在各国还是一个很大难题,但提供一些实时的地震 消息还是有一定的参考价值,返还于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁科技大学《大学体育(基础)(Ⅱ)》2023-2024学年第二学期期末试卷
- 辽宁城市建设职业技术学院《经典电视栏目分析》2023-2024学年第二学期期末试卷
- 保安证考试个人目标题及答案
- 西安高新科技职业学院《流行病学》2023-2024学年第二学期期末试卷
- 哈尔滨金融学院《武术1》2023-2024学年第一学期期末试卷
- 南京邮电大学通达学院《西班牙语跨文化交际》2023-2024学年第二学期期末试卷
- 2025年保安证考试小贴士试题及答案
- 2025年保安证考试易错试题及答案
- 浙江省湖州市长兴县龙山共同体2024-2025学年九年级下学期3月月考英语试题(含答案无听力原文及音频)
- 19 如何提高幼儿园教师的教学能力:试题及答案
- 介绍家乡山西太原
- 2025届湖北省孝感市八校教学联盟高三第二次模拟考试数学试卷含解析
- 2025年重庆市中考英语试卷与参考答案
- 放射性皮肤损伤的护理-中华护理学会团体标准
- 顶管专项施工方案
- 农田土壤改良项目实施方案
- 糖尿病-运动课件
- 2024年湖北省公务员录用考试《行测》试题及答案解析
- 2024中国儿童大脑发育白皮书
- 某幼儿园食物中毒事故应急预案
- 【课件】往复式压缩机课件
评论
0/150
提交评论