版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕业设计(论文) 题目:基于Android平台记事本的设计与实现姓 名: 学 号: 系 (院):信息工程系 班 级: 指导教师: 职 称: 讲师 二O一四 年 五 月 二十 日 目 录 TOC o 1-3 h z u HYPERLINK l _Toc388471281 第一章 引言 PAGEREF _Toc388471281 h 3 HYPERLINK l _Toc388471282 1.1研究目的及意义 PAGEREF _Toc388471282 h 3 HYPERLINK l _Toc388471283 1.2 国内外研究现状分析 PAGEREF _Toc388471283 h 3 HY
2、PERLINK l _Toc388471284 1.3 发展趋势 PAGEREF _Toc388471284 h 4 HYPERLINK l _Toc388471285 1.4 可行性分析 PAGEREF _Toc388471285 h 5 HYPERLINK l _Toc388471286 1.5 基本内容 PAGEREF _Toc388471286 h 6 HYPERLINK l _Toc388471287 第二章 开发环境的安装和配置 PAGEREF _Toc388471287 h 7 HYPERLINK l _Toc388471288 2.1开发包及其工具的介绍 PAGEREF _To
3、c388471288 h 7 HYPERLINK l _Toc388471289 2.2 Android开发平台搭建步骤: PAGEREF _Toc388471289 h 8 HYPERLINK l _Toc388471290 2.3硬件环境 PAGEREF _Toc388471290 h 9 HYPERLINK l _Toc388471291 2.4软件环境 PAGEREF _Toc388471291 h 9 HYPERLINK l _Toc388471292 2.5 系统架构 PAGEREF _Toc388471292 h 9 HYPERLINK l _Toc388471293 2.6 工
4、程主体架构 PAGEREF _Toc388471293 h 11 HYPERLINK l _Toc388471294 第三章系统的设计 PAGEREF _Toc388471294 h 13 HYPERLINK l _Toc388471295 3.1功能需求 PAGEREF _Toc388471295 h 13 HYPERLINK l _Toc388471296 3.1.1用户触发事件 PAGEREF _Toc388471296 h 13 HYPERLINK l _Toc388471297 3.1.2记事本基本需求控制 PAGEREF _Toc388471297 h 13 HYPERLINK l
5、 _Toc388471298 3.2系能需求 PAGEREF _Toc388471298 h 14 HYPERLINK l _Toc388471299 3.2.1响应时间 PAGEREF _Toc388471299 h 14 HYPERLINK l _Toc388471300 3.2.2稳定性 PAGEREF _Toc388471300 h 14 HYPERLINK l _Toc388471301 3.2.3安全性 PAGEREF _Toc388471301 h 14 HYPERLINK l _Toc388471302 第四章程序的设计 PAGEREF _Toc388471302 h 15 H
6、YPERLINK l _Toc388471303 4.1 记事本组件的设计 PAGEREF _Toc388471303 h 15 HYPERLINK l _Toc388471304 4.2 记事本逻辑设计 PAGEREF _Toc388471304 h 15 HYPERLINK l _Toc388471305 4.3记事本存储实现 PAGEREF _Toc388471305 h 15 HYPERLINK l _Toc388471306 4.3.1数据存储之sharedPreferences PAGEREF _Toc388471306 h 16 HYPERLINK l _Toc388471307
7、 4.3.2数据存储之files PAGEREF _Toc388471307 h 16 HYPERLINK l _Toc388471308 4.3.3数据存储之network PAGEREF _Toc388471308 h 18 HYPERLINK l _Toc388471309 4.3.4数据存储之SQLite PAGEREF _Toc388471309 h 19 HYPERLINK l _Toc388471310 4.3.5 数据存储之ContentProviders PAGEREF _Toc388471310 h 22 HYPERLINK l _Toc388471311 第五章程序的开发
8、 PAGEREF _Toc388471311 h 22 HYPERLINK l _Toc388471312 5.1主activity的设计 PAGEREF _Toc388471312 h 22 HYPERLINK l _Toc388471313 5.2编辑内容 PAGEREF _Toc388471313 h 23 HYPERLINK l _Toc388471314 5.3删除记事 PAGEREF _Toc388471314 h 25 HYPERLINK l _Toc388471315 第六章 系统的测试 PAGEREF _Toc388471315 h 25 HYPERLINK l _Toc38
9、8471316 6.1 添加新记事 PAGEREF _Toc388471316 h 25 HYPERLINK l _Toc388471317 6.2 查看记事 PAGEREF _Toc388471317 h 29 HYPERLINK l _Toc388471318 6.3 删除/修改/删除记事 PAGEREF _Toc388471318 h 30 HYPERLINK l _Toc388471319 第七章 总结 PAGEREF _Toc388471319 h 31 HYPERLINK l _Toc388471320 参考文献 PAGEREF _Toc388471320 h 32 HYPERLI
10、NK l _Toc388471321 致 谢 PAGEREF _Toc388471321 h 33 第一章 引言1.1研究目的及意义这次课题的目的是在Android系统的手机开发平台之上,研究与开发一个记事本软件,提供适用手机的记事本功能服务。首先,记事本的基本功能就是记事,手机用户首先用到的就是文本记事,输入事务信息以文本的形式展现出来,存储起来。随着用户需求的增加,可能希望用图形来代替文本来记事,用户之间打开记事本,看到图片就能联系自己所记载的事务信息。这样免去了输入文字的麻烦,反而会更简单。又或者是文本与图片的交叉运用,可以让用户自己选择自己喜欢的记事方式,更加自由与便捷。所以此功能的意
11、义是让简单的记事信息能以文本和图形表达,更加丰富多彩。其次,在支持传统的文字记事方式下,还要支持语音记事。因为用户需要追求更加简单的记事方式,不需要手动输入文字,而是直接语音记事。语音直接保存,有利于下次用户直接查看时点击按钮就可以播放相应的录音信息了。这对于某些眼睛不太好的,或者说更喜欢听的用户是很有吸引力的。再次,如果记事本的信息很多,而用户又需要快速找到自己需要的记事信息,这时候内容检索就非常有用了。对于业务繁忙,或者是经常写备忘录记事的群体,这个内容检索功能能带给用户很多的便利。让他们更加高效的利用手机,节约时间,高效工作与生活。最后,针对商务人士,或者是经常使用邮箱的用户来说,有时候
12、希望通过查看邮箱的同时查看记事本的信息,一次性获取全部。所以记事本同步邮箱功能能够为用户带来更多的功能与便利。1.2 国内外研究现状分析目前国内外有4款比较火的记事本软件。分别是Evernote,小米便签,NoteEverything,麦库记事。Evernote 在软件界面方面界面清爽,需注册登录后才可使用,图标布局比较协调;记事笔记方面可编写内容,添加标签,支持上传图片、音频、视频、文件等附件;特色功能方面具有搜索笔记和发送笔记、定位服务、同步等功能;资源占用方面内存占最多,CPU占用适中。小米便签在软件界面方面界面功能简单,可查看和新建便签,菜单功能相对丰富;记事方面只支持文字内容,可以选
13、择桌面Widget颜色、字体大小等;特色功能方面可以移进文件夹和分享、备份、还原和设置保护密码;资源占用方面内存占用较中,CPU占用最少。Note Everything界面简洁,上方有新建记事和搜索等按钮,菜单功能非常丰富;支持文本、绘图、语音、图片、清单、图库、视频、条形码等形式,可固定显示记事;特色是单个记事加密,数据备份、还原、导入、到处,创建快捷方式;内存占用最少,CPU占用较中。麦库记事界面比较精美,菜单功能相对简单;可选分类、加标签、附件,支持拍照和实时录音。特色是笔记搜索和分类,网络同步和笔记分享;内存占用适中,CPU占用最多。1.3 发展趋势随着3G应用的不断开发推广,用户会越
14、来越需要更加个性化、优质化的多媒体数据服务,用户希望能够随时、随地无缝利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。根据观察,在不久的将来,移动手机终端将会在以下若干方面具有新的发展。首先,提供智能提醒服务,手机能够与用户实现密切配合,并监控用户的个性化设置(保持在本地或者云端),当重要时间点或关键事物需要用户注意时,手机会向用户发出“提醒”服务,服务包括日程提醒、交通状况、最佳行车路线、最佳泊位、优惠活动、实时新闻、体育赛事、天气情况、股市行情、好友活动、亲友生日等。其次,提供虚拟现实体验,手机可以借助传感器、周边设备了解到您的身边环境,并根据收集到的信息,智能的
15、为您提供有用的信息,如在网络世界养的宠物,可以借助音频设备表达叫声,借助马达和位置传感器等传递其跳、跃等行为信息;也可以在用户购物时,提供相关的同类产品价格参考,提醒用户附近的那个卖场更物美价廉;根据实际场景,为用户及时提供正在操控的产品的使用方法提醒。接着,发挥物联网的优势,借助无处不在的传感器,可以感知并分享到周围世界的海量信息,这些信息将在“云端”得到整合,帮助用户及时、准确的获得气息信息、交通路况。另外借助物联网,用户间可以方便、快速的分享资源,协助和交互。如进行端到端的多人游戏、照片分享、书籍分享、音乐分享等。然后,作为经济工具,在交通或者信息不发达的情况下,帮助用户找到最佳的市场,
16、获得有价值的帮助信息,帮助用户从事的经济活动的收益率。最后,更加智能、安全的设备,随着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策那些内容可以浏览、下载或分享。在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付、在线贸易等。1.4 可行性分析)技术可行性本项目仅需要一台装有eclipse及配置好android开发环境的计算机即可,对计算机本身有一定的要求,它可以使用windows xp及其以上版本,mac os,linux等操作系统。 2) 经济
17、可行性由于本软件开发只有一个单个人,一台电脑就行,基本不需要太大的成本。在经济上完全可行。3) 操作可行性界面设计时充分考虑用户的习惯以及手机方面的局限性,程序必须要很简单;本程序只涉及到开发环境配置,安卓组件的熟悉,以及安卓平台上的数据存储。并没有太大的难度,所以,该项目完全有可操作性。1.5 基本内容基本内容是在android手机平台下,研究与开发记事本软件。具体要设计与实现的功能是:(1) 设计实现”添加新记事”,”编辑内容”,”删除当前记事”这三个主要的功能模块。 (2) 分析并解决实现中的若干技术问题,像组件的选择以及保存方式的选择。 (3)进行测试并分析结果。当然记事本的基本功能,
18、建立新文件,修改现有文件,删除文件,查看已建立文件等功能是首先必须完成的。可以编写内容,编辑及删除,除了支持文字内容的记事,还支持图片等形式,让记事的方式多样化。事本软件的界面设计力求简洁,给人清爽的感觉,让图标及按钮以协调的布局呈现出了,菜单功能要相对简单,让用户操作方便,不能复杂。对于记事本的特色功能实现是要支持语音记事,让用户有不同的记事体验;同时还能够搜索笔记,在纷繁复杂的记事文件中搜索出用户想要获取的文件,这样给用户的备忘生活带来了高效,从而让用户体会到此款软件的实用。并且能够实习同步邮箱功能,让用户在电脑上或手机上查收邮件能够看到记事信息,这是功能的多方便利。记事本软件要内存占用适
19、中,CPU占用也是适中,这样让软件运行顺畅。第二章 开发环境的安装和配置2.1开发包及其工具的介绍Android以java作为开发语言,jdk是进行java开发时必需的开发包。eclipse是一款非常优秀的开源IDE,在大量插件的”配合”下,完全可以满足从企业级java应用到手机终端java游戏的开发。Google官方也提供了基于Eclipse的android开发插件ADT,所以本软件开发选择Eclipse作为开发IDE。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由谷歌公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区
20、较多人使用“安卓”或“安智”Android操作系统最初由Andy Rubin开发,主要支持 HYPERLINK /subview/1455/5443915.htm t _blank 手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视,数码相机,游戏机等。2011年第一季度,Android在全球的市场
21、份额首次超过 HYPERLINK /view/2059103.htm t _blank 塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。JDK包含的基本组件包括:javac 编译器,将源程序转成字节码jar 打包工具,将相关的类文件打包成一个文件javadoc 文档生成器,从源码注释中提取文档jdb debugger,查错工具java 运行编译后的java程序(.class后缀的)appletviewer:小程序浏览器,一
22、种执行HTML文件上的Java小程序的Java浏览器。Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。Jconsole: Java进行系统调试和监控的工具Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C
23、开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。2.2 Android开发平台搭建步骤: 首先到HYPERLINK /downloads/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载Java EE 集成版本,可以为平台的搭建省下不少工作。接着再去HYPERLINK /javase/downloads/index.
24、jsp/javase/downloads/index。jsp 站点下载SDK后安装,下载HYPERLINK /android/android-sdk-windows-1.5_r1.zip/android/android-sdk-windows-1。5_r1。zip,Android SDK1。5后解压。第一步下载工序就结束了。双击Eclipse解压后目录中的eclipse。exe然后启动,选择Eclipse菜单中的Help- Install New Software- 选项卡上的Available Software,点击右侧的“Add”输入HYPERLINK /android/eclipse/a
25、ndroid/eclipse/后确定,然后在“Work with”下拉菜单中选择刚才输入的网址。过一会就会出现一个Developer Tools选项,勾上以后点击Next以后Eclipse会自动网上查找Android 开发工具插件,然后找到Android DDMS和Android Development Tools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。重启后选择Eclipse菜单中的Windows- Preferences 在左侧的Android项目中SDK Location中填入Android SDK解压后的目录,然
26、后点击Apply。 在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的Android SDK目录下的tools文件夹。2.3硬件环境1. Android设备,如Android手机或平板电脑:主频在1Ghz及以上,内存为512MB以上,系统版本为Android2.1及以上。2.在eclipse平台下安卓了安卓android SDK 插件的电脑:Window 系统 P4 1.8主频以上电脑2.4软件环境1.操作系统:Windows7 2.IDE:Eclipse8.03.Android SDK集成环境2.5 系统架构Android的系统架构和其操作系统一样,采用分层的架构如
27、下图:图2.5-Android的系统架构和其操作系统分层的架构从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使
28、用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。通知管理器 (Notification Manager) 使得应
29、用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。系统运行库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:(1)系统 C 库一个从BSD继承来的标准C系统函数库 Libc ), 它是专门为基于Embedded linux的设备定制的。(2)媒体库 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264,
30、 MP3, AAC, AMR, JPG, PNG 。(3)Surface Manager 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。(4)LibWebCore 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。2.6 工程主体架构工程主体架构如下图所示:1.str文件夹Str文件夹下com.samplenote包下Java为系统主要Activity类:AddActivity.java是增加功能的Activity,通过设置两个按钮的监听来实现对输入文本的存储或退出。DbAdapter.java是数据库基本操作功能实现的Activity,
31、类中主要的函数实现的功能是:打开、关闭数据库,获得时间,插入数据,删除输入,获得数据,查询数据,更新数据,根据内容生成标题,创建表和删除表。NotepadCheckActivity.java是在系统界面中生成记事列表的Activity。通过onCreate函数实现。NotPadActivity.java为系统主要功能实现的Activity。通过监听的方法来实现记事的删除、编辑、搜索和短信发送功能。2.gen文件夹gen文件夹是项目自动生成的文件夹R.java是工程下各个资源的标识符负责所有资源的索引。3.bin文件夹bin文件夹是编译后的字节码存放的目录,编译的过程首先是编译成为android
32、 java虚拟机文件classes.dex,再打包成APK格式的包。4.res文件夹Res是资源目录,res资源目录,它包含项目中的资源文件并将其编译进应用程序中,向此目录添加资源时,会被R.java自动记录。res目录存放所有程序中用到的资源文件。“资源文件”指的资料文件、图片等。子目录有:drawable、layout、values。 layout。屏幕布局目录, main.xml是主界面的布局文件、add.xml是增加数据页面的布局文件、check_notepad.xml是搜索功能时的布局文件、click.xml是几个功能按钮的布局文件、list.xml是显示记事列表界面的布局文件、mo
33、dtitle.xml是修改功能时所需文本框的布局文件。 values。参数值目录,存放软件所需要显示的各种文字和一些数据。strings.xml存放各种文字,还可以存放不同类型的数据。style.xml负责存放界面颜色、文本框大小等信息。5.AndroidManifest.xmlAndroidManifest.xml描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers。第三章系统的
34、设计3.1功能需求3.1.1用户触发事件用户通过点击屏幕来实现与数据的交互。记事本上的相关按钮是操作请求的输入设备,屏幕是用于向用户输出信息的输出设备。事件是来自人操作的重要的消息,触发时间如下表所示记事本系统中可能发生的所有事件响应及其执行结果。事件系统响应执行结果1从手机屏幕点击软件系统调用函数入口,启动系统,进入该软件进入该软件,显示记事列表2点击Menu,选择添加记事调用添加函数进入添加界面3点击其中一个记事调用查看记事函数进入详细界面4在记事详细界面点击Menu,可对记事进行修改编辑调用修改函数进入修改界面5在记事详细界面点击Menu,可对记事进行删除调用删除函数删除记事6在记事列表
35、界面点击Menu,选择退出调用退出函数退出软件3.1.2记事本基本需求控制系统用例图描述的是用户眼中的系统,即用户希望系统有哪些功能和通过哪些操作完成这些功能。一个用例代表用户与系统交互的一种方式。正如前面介绍过的,识别用例的最好方法是从参与者的角度分析系统。在Android记事本中,首先的参与者是用户。系统E-R图如下图所示,它从用户角度描述了该系统应该具有何种功能。3.2系能需求3.2.1响应时间一般来说,基于Android开发出来的应用程序响应时间很大程度上依赖于安卓设备的硬件配置和系统版本。因此,用户的安卓设备的硬件配置和系统版本都会对应用程序的响应时间又一定的影响。3.2.2稳定性应
36、用程序为本地应用,用户只需通过自己的硬件就可以使用应用。3.2.3安全性Android为开源系统本身比较稳定,同时应用程序无需连接网络因此不存在信息网络泄露的风险。第四章程序的设计4.1 记事本组件的设计本项目涉及到以下组件:TextView:“记事本”,“新建记事”,“编辑记事”等标题EditView:“记事本的标题”,“内容”等Button:“确定”按钮Menu:“添加新记事”,“编译内容”,“删除当前记事”等 4.2 记事本逻辑设计 1.首先是添加新记事:如果当前没有记事,点击”menu”后只有一个菜单选项”添加新记事”,写完记事之后,点击”确定”进行保存2.”编辑内容”: 选中要编辑的
37、那一个记事,然后点击”menu”菜单,会出现三个选项”新建记事”,” 编辑内容”,”删除当前记事”,点击”编辑内容”对被选中的记事进行编辑,然后点击”确定”加以保存.3.”删除记事”点击上下键,选中要删除的记事,然后点击”menu”菜单,然后点击”删除当前记事”,对选中的记事加以删除. 4.3记事本存储实现Android 中一共提供了5种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据.就要使用android提供的ContentProviders. ContentProviders:Android提供的一个特殊的存储数据的类型,它提供了一套标准
38、的接口来获取,操作数据. Shared Preference:用来存储”key-value paires”格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型.Files:它通过FileInputStream 和 FileOutputStream对文件进行操作.但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件SQLite:android提供的一个标准的数据库,支持SQL语句Network:通过网络来存储和获得数据 4.3.1数据存储之sharedPreferences通过getpreferences()方法来获得Preference对象,通过
39、”SharePreferences.Editor editor=uiState.edit;”取得编辑对象,然后通过”editor.put()”方法添加数据,最后通过commit()方法来保存数据. 4.3.2数据存储之files我们可以通过自定义的save()方法来保存数据,同时也可以通过load()方法来获取文件中的数据.boolean save()Properties properties = new Properties();/* 将数据打包成Properties */properties.put(bmusic, String.valueOf(mbMusic);tryFileOutput
40、Stream stream = this.openFileOutput(music.cfg, Context.MODE_WORLD_WRITEABLE);/* 将打包好的数据写入文件中 */properties.store(stream, );catch (FileNotFoundException e)return false;catch (IOException e)return false;return true;/* 装载、读取数据 */void load()/* 构建Properties对对象 */Properties properties = new Properties();tr
41、y/* 开发文件 */FileInputStream stream = this.openFileInput(music.cfg);/* 读取文件内容 */properties.load(stream);catch (FileNotFoundException e)return;catch (IOException e)return;/* 取得数据 */mbMusic = Boolean.valueOf(properties.get(bmusic).toString();4.3.3数据存储之network通过网络来获取和保存数据资源,将数据存储到网络上的方法很多,比如将要保存的数据以文件的方式
42、上传到服务器,发送邮件等.下面我们看下如何实现读取网络文件.String myString = null;try/* 定义我们要访问的地址url */URL uri = new URL(10:8080/android.txt);/* 打开这个url连接 */URLConnection ucon = uri.openConnection();/* 从上面的链接中取得InputStream */InputStream is = ucon.getInputStream();BufferedInputStream bis = new BufferedInputStream(is);ByteArrayB
43、uffer baf = new ByteArrayBuffer(100);int current = 0;/* 一直读到文件结束 */while (current = bis.read() != -1)baf.append(byte) current);myString = new String(baf.toByteArray();catch (Exception e) myString = e.getMessage();另外由于在程序中访问了外部网络,我们需要在AndroidManifest.xml文件中给予权限,代码如下4.3.4数据存储之SQLite这个方法在数据保存中非常常用.只是它只
44、会被一个程序读取数据,不能在不同程序间共享数据./*创建和打开数据库*/mSQLiteDatabase = this.openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);/*创建表*/mSQLiteDatabase.execSQL(CREATE_TABLE);/* 删除数据库 */public void DeleteDataBase()this.deleteDatabase(DATABASE_NAME);this.finish();/* 删除一个表 */public void DeleteTable()mSQLiteDatabase.
45、execSQL(DROP TABLE + TABLE_NAME);this.finish();/* 更新一条数据 */public void UpData()ContentValues cv = new ContentValues();cv.put(TABLE_NUM, miCount);cv.put(TABLE_DATA, 修改后的数据 + miCount);/* 更新数据 */mSQLiteDatabase.update(TABLE_NAME, cv, TABLE_NUM + = + Integer.toString(miCount - 1), null);UpdataAdapter();
46、/* 向表中添加一条数据 */public void AddData()ContentValues cv = new ContentValues();cv.put(TABLE_NUM, miCount);cv.put(TABLE_DATA, 测试数据库数据 + miCount);/* 插入数据 */mSQLiteDatabase.insert(TABLE_NAME, null, cv);miCount+;UpdataAdapter();/* 从表中删除指定的一条数据 */public void DeleteData()/* 删除数据 */mSQLiteDatabase.execSQL(DELE
47、TE FROM + TABLE_NAME + WHERE _id= + Integer.toString(miCount);miCount-;if (miCount = 0)/ ListAdapter是ListView和后台数据的桥梁ListAdapter adapter = new SimpleCursorAdapter(this,/ 定义List中每一行的显示模板/ 表示每一行包含两个数据项android.R.layout.simple_list_item_2,/ 数据库的Cursor对象cur,/ 从数据库的TABLE_NUM和TABLE_DATA两列中取数据new String TAB
48、LE_NUM, TABLE_DATA ,/ 与NAME和NUMBER对应的Viewsnew int android.R.id.text1, android.R.id.text2 );/* 将adapter添加到m_ListView中 */m_ListView.setAdapter(adapter);4.3.5 数据存储之ContentProviders ContentProviders: Android提供的一个特殊的存储数据的类型,它提供了一套标准的接口来获取,操作数据.查询数据:可以使用ContentProvider.query()或者Activity.managedQuery()方法修改
49、数据:通过ContentResolver.update()方法可以用来修改数据添加数据:通过ContentResolver.insert()方法来增加一条数据删除数据:通过ContentResolver.delete()方法来删除一条记录 第五章程序的开发 5.1主activity的设计 当选择”新建记事本”,”编辑内容”,”删除当前记事”等菜单选项时对应的操作public boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId() / 插入一条数据case MENU_ITEM_INSERT:Intent inte
50、nt0 = new Intent(this, ActivityDiaryEditor.class);intent0.setAction(ActivityDiaryEditor.INSERT_DIARY_ACTION);intent0.setData(getIntent().getData();startActivity(intent0);return true;/ 编辑当前数据内容case MENU_ITEM_EDIT:Intent intent = new Intent(this, ActivityDiaryEditor.class);intent.setData(item.getInten
51、t().getData();intent.setAction(ActivityDiaryEditor.EDIT_DIARY_ACTION);startActivity(intent);return true;/ 删除当前数据case MENU_ITEM_DELETE:Uri uri = ContentUris.withAppendedId(getIntent().getData(),getListView().getSelectedItemId();getContentResolver().delete(uri, null, null);renderListView();return supe
52、r.onOptionsItemSelected(item); 5.2编辑内容 protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);/setTheme(android.R.style.Theme_Black);final Intent intent = getIntent();final String action = intent.getAction();setContentView(R.layout.diary_edit);mTitleText = (EditText) f
53、indViewById(R.id.title);mBodyText = (EditText) findViewById(R.id.body);/确定按钮confirmButton = (Button) findViewById(R.id.confirm);if (EDIT_DIARY_ACTION.equals(action) / 编辑记事本mState = STATE_EDIT;mUri = intent.getData();mCursor = managedQuery(mUri, PROJECTION, null, null, null);mCursor.moveToFirst();Str
54、ing title = mCursor.getString(1);mTitleText.setTextKeepState(title);String body = mCursor.getString(2);mBodyText.setTextKeepState(body);setResult(RESULT_OK, (new Intent().setAction(mUri.toString();setTitle(编辑记事); else if (INSERT_DIARY_ACTION.equals(action) / 新建日记mState = STATE_INSERT;setTitle(新建记事);
55、 else Log.e(TAG, no such action error);finish();rgetContentResolver().insert(Diary.DiaryColumns.CONTENT_URI, values);private void updateDiary() String title = mTitleText.getText().toString();String body = mBodyText.getText().toString();ContentValues values = new ContentValues();values.put(Diary.Diar
56、yColumns.CREATED, DiaryContentProvider.getFormateCreatedDate();values.put(Diary.DiaryColumns.TITLE, title);values.put(Diary.DiaryColumns.BODY, body);getContentResolver().update(mUri, values,null, null); 5.3删除记事 private void renderListView() Cursor cursor = managedQuery(getIntent().getData(), PROJECT
57、ION, null,null, DiaryColumns.DEFAULT_SORT_ORDER);SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.diary_row, cursor, new String DiaryColumns.TITLE,DiaryColumns.CREATED , new int R.id.text1,R.id.created );setListAdapter(adapter); 第六章 系统的测试6.1 添加新记事如图: 添加新记事 编辑记事-保存记事6.2 查看记事6.3 删除/
58、修改/删除记事 如图:删除/修改/查看第七章 总结经过几个月的学习,研究和开发,我终于按时完成了这个项目。由于对JAVA浓厚的兴趣引发了我对Android的好奇心,从一开始什么都不懂一直摸索完成了这个软件。通过这个项目的研发,我终于认识到理论跟实际还是有很大的不同的。对安卓的基本知识进行了锻炼,对自己的成果也有了很大的成就感,激发了我对安卓研究的巨大兴趣。在这个过程中,我学会了很多知识,比如Android环境的搭建、Intent、Activity、Service、ContentProvider、SQLite等,但我学会的最重要的一点是,利用现有的资源去解决问题,在图书馆、在网络上寻找答案。通过
59、此次设计过程我会到了许多知识,这也是在大学里第一次比较完整的独立完成一个小项目,虽然过程中遇到了许多困难,在同学和老师的帮助下一一克服了。通过不断的发现问题,总结问题和解决问题的过程,使我在此次毕业设计活动中不断的提高,和得到了宝贵的经验。虽然,这个软件目前运行良好,但是我认为代码还不够完美,在整个工程的构思方面也不足,用户操作界面还不够灵活,这些问题还需要今后逐一解决。与此同时,这个软件还可以进一步扩展,使功能更加强大,带给用户更好的体验与生活的便捷。参考文献1杨丰盛,Android 应用开发揭秘,机械工业出版社, 出版2008年9月2邓凡平,深入理解android,机械工业出版社,出版20
60、10年8月3 柯元旦,Android内核剖析,电子工业出版社,出版2006年09月4 吴亚峰、索依娜等,Android核心技术与实例详解电子工业出版社,2010-10出版5 郭宏志,Android应用开发详解,电子工业出版社,2010-06出版6 靳岩、 姚尚朗编著,Android开发入门与实战,人民邮电出版社,2009-07出版7杨丰盛Android应用开发揭秘。北京:机械工业出版社,20108余志龙,陈昱勋,郑名杰AndroidSDK开发范例大全。北京:人民邮电出版社,20109张运芳Android创赢路线与产品开发实战。北京:电子工业出版社,201010罗伟Android平台的即时通讯系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度离婚协议书详述财产分配与子女抚养细节及责任2篇
- 《大学生职业生涯规划预就业指导》课件-第16章 职业岗位定位-
- 2025年福建货运从业资格证模拟试题题库及答案大全
- 2024年标准股权转让与回购协议版B版
- 2025年南昌b2从业资格证模拟考试题目
- 2025年百色货运从业资格证模拟考试题
- 第2日:《海底两万里》阅读解析版
- 暑期作业03:字音字形+词语运用+名句默写(解析版)
- 2024年甲乙双方关于多功能智能净水设备维护及技术支持服务合同
- 2024全新医疗设备搬运工安全搬运合同下载3篇
- 脓毒症休克中西医详解
- 小兔子乖乖ppt课件.ppt
- 常压矩形容器设计计算软件
- 交流变换为直流的稳定电源设计方案
- PR6C系列数控液压板料折弯机 使用说明书
- 钢结构工程环境保护和文明施工措施
- 物业管理业主意见征询表
- 中药分类大全
- 管道定额价目表
- 民国文献《潮州茶经》
- 220千伏线路工程深基坑开挖方案(实施版)
评论
0/150
提交评论