1、基于Android的日历系统的设计与实现 摘要Android系统凭借其良好的用户体验、低廉的成本及高开放性产生了巨大的应用量和广阔的应用面。如今,基于Android系统的应用极为丰富,从输入法到影音播放器,从系统工具到网页浏览器,从社交网络客户端到学习办公助手工具,以及形式繁多的游戏应用,都有力体现了Android平台的强大的适应性和发展潜力。而日历应用作为智能终端的出厂必备控件,更是Android系统中不可或缺的一部分。而应用开发商力求为客户带来更好的用户体验,将日历这一原本普通的生活用品打造成植于移动终端中的生活助手,且界面风格迥异,功能也是趋于多样化和一体化。本文通过论述对基于Andro
2、id的日历系统的开发的全过程,研究了Android系统的开发环境、核心构架、主要组件,展示了开发移动应用的一般过程,并对Android平台的背景、现状和发展前景进行了讨论。本次项目所实现的日历系统,除了最基本的日期信息查询功能外,还具备了公历转换农历功能、指定日期跳转功能、当天日期定位功能和日程管理功能。通过转换功能,用户可将希望查询的公历日期转为农历日期;如果用户想知道某一天或某个月有什么节日,可以使用跳转功能;在主界面没有显示当月日期时,用户可通过定位功能回到当天日期;而日程管理功能则为用户提供了类似备忘录的平台。关键词;Android;移动终端;手机日历;移动应用开发THE DESIGN
3、 AND IMPLEMENTATION OF CALENDER BASED ON ANDROID SYSTEMAbstractAndroid system has been achieved a great number of users because of its excellent user experience,low cost and high openness.Nowadays,there are plenty of smartphone applications based on android system such as input methods,audio/video p
4、layers,system tools,web browsers,social networks,school/office softwares,games,etc,which show great adaptation and development potential of Android.Calender has become a necessary widget in intelligent terminals and also a quite important part of Android system.App developers strive to improve the u
5、ser experience so that they change the calender,a commonplace articles for daily use,into a kind of assistant for users,with different kinds of interface.And its function becomes more and more diversified and incorporate.This article is about the whole development process of calender based on Androi
6、d system, the development environment,the core framework and the main module of Android.Also,we will discuss the background,the current situation and the development potential.The Calendar we enforce in this project contains functions not only the most basic date information inquire,but also other f
7、unctions such as gregorian-lunar transformer,current date locator,events manager.Users are able to transform gregorian dates they want to lunar dates by using gregorian-lunar transformer;If users want to check out festivals of dates,the skip function will help;Users could skip back to current date w
8、ith the help of date locator when the main interface doesn t show;And the events manager provides a kind of platform like memorandum.Keywords: Android; The mobile terminal; Smart mobile Calender;Mobile application development II华北电力大学本科毕业设计(论文)目 录摘要IAbstractII目 录11绪论11.1课题背景11.2 发展现状11.2.1 Android S
9、DK发布里程碑11.2.2 Android市场发展轨迹31.3 Android系统的发展前景31.4 课题研究意义31.5 本文主要结构52 Android系统核心技术概述62.1 Android的体系结构62.2 Android系统组件82.3 Android主要控件92.4 本章小结113 基于Android的日历系统123.1需求分析123.1.1 系统目标123.1.2 功能需求描述123.1.3 界面需求分析123.1.4 运行需求分析123.2 系统概要设计123.2.1 系统功能结构123.2.2 系统界面布局133.3 主要算法与核心代码实现143.3.1 主界面143.3.2
10、 菜单项目操作163.3.3 日程管理功能实现183.3.4 农历、闰年、节日算法183.4 软件测试193.4.1测试平台203.4.2 软件安装203.4.3 程序运行情况213.5 本章小结234 总结244.1 论文工作总结244.2 问题与展望24参考文献26致谢2711绪论1.1课题背景Android一词最早出现在法国作家威利耶德利尔亚当的科幻小说中,作者将外表像人的机器称为“Android”1。它由四部分构成,分别如下;(1) 生命系统(平衡、步行、发声等)(2) 造型解质(关节能自由活动的金属覆盖体)(3) 人造肌肉(有肌肉、静脉等人体特征)(4) 人造皮肤(含有肤色、毛发等)
11、Andy Rubin创立了两个手机操作系统公司,分别是Danger和Android。Danger在2008年以5亿美元卖给Microsoft;Android与2005年卖给了Google。因此,Android系统一开始并不是由Google研发出来的。2007年11月5日,Google正式发行了这款名为Android基于Linux平台的开源移动操作系统平台,并且在当天与34家手机制造商、软件开发商、电信运营商以及芯片制造商组成开放手持设备联盟(Open Handset Alliance)。该联盟将共同研发Android系统及其应用软件并生产Android系统的智能手机。而后,Google发布了第
12、一个面向开发者的软件开发包(SDK)Android 1.0 beta,Android平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件平台2。至此,Android进入世人的视野,也开始了一场移动互联网的伟大革命。1.2 发展现状作为当前最热门的移动应用操作系统之一,Android早在2012年就已经占据欧美市场超过50%的市场份额。而在国内,市场上采用Android系统的智能终端也在不断增多。1.2.1 Android SDK发布里程碑Android1.12008 年9月发布的Android第一版Android1.5 Cupcake(纸杯蛋糕)2
13、009年4月30日,官方1.5版本(Cupcake:纸杯蛋糕)的Android发布。主要的更新如下;拍摄/播放影片,并支持上传到Youtube;支持立体声蓝牙耳机,同时改善自动配对性能;最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索性能大大提高;提供屏幕虚拟键盘;主屏幕增加音乐播放器和相框widgets;应用程序自动随着手机旋转;短信、Gmail、日历,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件;相机启动速度加快,拍摄图片可以直接上传到Picasa;来电照片显示;支持中文。Android1.6 Donut(甜甜圈)2009年9月15日,1.6(Donut;甜甜圈)版
14、本软件开发工具包发布。主要的更新如下;重新设计的Android;Market手势;支持支持CDMA网络;文字转语音系统(Text-to-Speech);快速搜索框;全新的拍照接口;查看应用程序耗电;支持虚拟私人网络(VPN);支持更多屏幕分辨率,支持OpenCore2媒体引擎;新增面向视觉或听觉困难人群的易用性插件。Android2.0/2.0.1/2.1 Eclair(松饼)2009年10月26日,2.0(Eclair 松饼)版本软件开发工具包发布。主要的更新如下;优化硬件速度;Car;Home程序;支持更多的屏幕分辨率;改良的用户界面;新的浏览器的用户接口和支持HTML5;新的联系人名单;
15、更好的白色/黑色背景比率;改进Google;Maps;3.1.2;支持Microsoft;Exchange;支持内置相机闪光灯;支持数码变焦;改进的虚拟键盘;支持蓝牙2.1;支持动态桌面的设计。Android2.2/2.2.1 Froyo(冻酸奶)2010年5月20日,2.2(Froyo 冻酸奶)版本软件开发工具包发布。整体性能大幅度的提升;3G网络共享功能;Flash的支持;App2sd功能;全新的软件商店;更多的Web应用API接口的开发。Android2.3 Gingerbread(姜饼)2011年2月2日, 3.0(Honeycomb 蜂巢)优化针对平板;全新设计的UI增强网页浏览功能
16、;n-app purchases功能Android3.1 Honeycomb(蜂巢)2011年5月11日在Google I/O开发者大会宣布发布,Honeycomb 蜂巢(改进3.0BUG) 经过优化的Gmail电子邮箱;全面支持GoogleMaps Android手机系统跟平板系统再次合并从而方便开发者。任务管理器可滚动,支持USB 输入设备(键盘、鼠标等)。支持 Google TV.可以支持XBOX 360无线手柄 widget支持的变化,能更加容易的定制屏幕widget插件。Android3.2 Honeycomb(蜂巢)2011年7月13日发布,支持7英寸设备;引入了应用显示缩放功能。
17、Android4.0 Ice Cream Sandwich(冰激凌三明治)2011年10月19日 在香港发布,4.0(Ice Cream Sandwich 冰激凌三明治)版本主要更新;蓝色主题;接近于桌面版的Chrome;Lite浏览器,有离线阅读,同步Chrome书签,新的标签样式等;截图功能;更强大的图片编辑功能;自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序;Gmail加入手势、离线搜索功能,UI更强大。新增流量管理工具,可具体查看每个应用产生的流量。正在运行的程序可以像电脑一样的互相切换;人脸识别功能;系统优化、速度更快;支持虚拟按
18、键,手机可以不再拥有任何按键;专为3D优化的驱动;平板电脑和智能手机通用。Android 4.1/4.2 Jelly Bean(果冻豆)2012年6月28日发布。添加了基于时间和位置的语音搜索;Google Now;增加离线语音输入,即不需要联网也能够语音输入;增强通知中心;Google Play增加内容订阅购买功能;新的安卓彩蛋。Android 4.2;完整的Chrome浏览器。全新的手机风景模式;全新的文件管理器;Android Key Lime Pie精简版;具有开关切换的用户界面;全新的电源管理系统;全新的锁屏界面;全新的时钟界面3。1.2.2 Android市场发展轨迹苹果公司推出的
19、iPhone开启了智能手机的革命,并很快获得了消费者的青睐。但Andro id平台正以更快的速度蔓延世界。从第一台Android设备T-Mobile G1于2008年10月22日在美国上市以来,在不到四年的时间里,Android成长为移动操作系统的霸主。截止2012年第二季度占据全球52.6%的市场份额,较7月多了0.4%,与同年5月相比有1.7%的增长。Android操作系统超过称霸数以十年的诺基亚Symbian OS系统,在目前,使用Android系统的手机厂商主要包括;Sony Ericsson、宏达电子-HTC、三星-Samsung、Motorola与LG。至今,Android已经成为
20、全世界最为欢迎的智能手机平台,且平板电脑也大多应用此系统4。市场表现; (1) 中国市场Android开始在国内占据手机操作系统竞争的上风。据艾媒咨询发布的2011年中国Android用户调研报告数据显示,2011年中国Android智能手机用户使用品牌调查中,国内品牌华为、中兴、酷派占比分别为11.4%、9.8%、9.2%。 (2) 美国市场2010年8月3日早间消息称,尼尔森公司最新数据显示,Android手机在美国市场的销售量首次超过苹果iPhone,达到27%。 (3) 其他国家据国外媒体消息称,Kantar WorldPanel ComTech最新数据显示,Android智能手机主宰
21、了欧洲主要市场的销售,在英国、法国、意大利、西班牙及德国等五大国家的整体市场占有率从去年5月的38.8%上升到今年5月的60%。随着iOS新版本的不断推出,以及Microsoft已经推出的Windows Phone系统不断完善,再加上RIM即将推出的全新操作系统BlackBerry 10做最后一搏,手机智能系统的竞争愈加激烈,但就目前来说,Android手机的统治地位还是无法改变的5。1.3 Android系统的发展前景就目前而言,智能设备主要是三大玩家、七大公司所引领。三大玩家指Apple、Microsoft和Google;七大公司指的是Amazon、Samsung、Sony Ellison
22、、HTC、联想和华为。就目前看,智能设备上,苹果三星暂时领先,Amazon最有潜力。智能设备的未来不是由硬件决定的,是由第三方软件和渠道来决定。第三方软件上,苹果领先,谷歌其次,微软第三;渠道上苹果领先,亚马逊其次,微软最次。由于苹果全面控制了操作系统和硬件,导致其他公司大部分只能依靠安卓。类似PC战胜Mac一样,随着iPhone潮流随乔布斯而去,众多公司合力之下,Android占据智能手机主流将是发展趋势6。1.4 课题研究意义随着科技的发展,智能手机已经开始逐步取代传统PC渗透进入了人们娱乐、生活的各个方面。从2011年开始,我们的生活开始步入移动互联网时代,微博和微信已经占据了大多数人的
23、社交圈。而作为它们的载体智能手机,时至今日也对我们的生活造成了颠覆性的影响。手机从过去单一的通话功能,到今天集通话、短信、摄影、上网、听歌、电子书于一身,不仅极大地满足了人们的通讯需求,也满足了人们的娱乐需求。 手机上网,将信息整合使人们随身携带的手机成了互联网的终端机,手机与电脑相比,具有体积小、便于携带、价格便宜等优点,而且手机上网相比有着移动性的优势,从而能够迅速、及时得满足人们的信息需求。手机信息载体比报纸、广播、电视信息在信息传递上更方便、直接、快速。而作为智能手机平台中的霸主,Android平台凭借其优势,得到了广阔的普及面。(1)开放性在优势方面,Android平台首先就是其开发
24、性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。(2)不受束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从2007年iPhone上市后,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDP
25、A这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。(3)丰富的硬件这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。(4)方便开发Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力
26、、情色方面的程序和游戏如何控制正是留给Android难题之一。(5)Google应用在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务7。综上所述,Android系统的发展与成熟时大势所趋,精通基于Android平台上应用软件的开发技术,也是紧随时代发展脚步的当务之急。1.5 本文主要结构本篇文章共分为四个章节,从开端到结尾循序渐进地论述了基于Android平台开发应用软件的过程。各个章节涵盖内容如下。第一章 :绪论。向读者展示了Andro
27、id的由来和历史,列举了从发布至今Android SDK各个版本及其新特性,引用数据说明了Android的现状及前景,讨论了这类课题的研究意义。第二章 :介绍了Android系统的架构,Android的四大组件,以及开发常用的一些控件。第三章 :对日历系统进行需求分析,根据需求设计系统功能,例举其中的核心代码介绍系统是如何实现的,实现后对日历系统进行了测试。第四章 :对整个论文的工作过程进行了总结,讨论了Android的不足,并对其发展趋势进行展望。2 Android系统核心技术概述2.1 Android的体系结构在Android操作系统中,将体系结构划分为四层;应用层(Application
28、)、应用框架层(Application Framework)、系统运行库层(Libraries)以及Linux内核层(Linux Kernel)。这四层架构如图2-1所示8。 图1-6 Android的体系结构(1)应用层(Application)应用层是和用户交互的一个层次,用户可以看得见的一些应用,用户可以操作。这类应用基本都是通过Java语言编写的独立的能够完成某些功能的应用程序。Android本身提供了桌面(Home),联系人(Contacts),拨打电话(Phone),浏览器(Browsers)等很多基本的应用程序。开发人员可以使用应用框架提供的API编写自己的应用程序,普通开发人员
29、要做的事情就是开应用层的程序提供该广大消费者使用。(2)应用框架层(Application Framework)普通开发者可以使用Android基本应用程序使用的系统API,android 应用框架中的各个模块都可以被复用,各种服务也可以被复用,理解了这个机制,开发人员可以更好的更轻松的开发出优秀的android应用。开发过程中常用到的基本框架组件如下;1)一组View(UI 组件),这些UI组件包括Button(按钮),EidtView(文本框),TextView(标签),List(列表)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。2) Content Providers(内
30、容提供者),听起来有点抽象,通俗的理解Content Provider 就是提供一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。3) Resource Manager 顾名思义就是资源管理,android中的资源很多包括图片,用户界面(Layout xml),字体,颜色,UI组件的ID等等都可以称之为资源,这些丰富的资源,都是通过Resource Manager来统一进行管理。4) Notification Manager(消息通知管理),它在不影响用户正常操作和使用设备的时候在状态栏上提供消息的提示
31、。比如有短信来的时候,android自动会将这个消息提示在状态栏上,用户可以及时的看到。5) Activity Manager(活动管理),Activity管理着应用程序的生命周期,并且控制着应用的导航,扮演控制器的角色。每个Activity类似于Windows应用中的一个wendow。一般的应用都是通过一个个Activity交互构成的。6) Window Manager(窗口管理),管理所有启动的窗口。7) Location Manager(位置管理),用来管理地图服务的相关功能。8) Telephoney Manager(电话管理),用来管理有关的电话的相关功能。9) Package Ma
32、nager(包管理),管理所有的安装在android系统内的应用程序。(3)系统运行库层(Libraries)这部分内容开始涉及底层,开发普通的应用不会直接对这个层进行操作。这层中包含了一组类库(Libraries)和运行时(RunTime)。1)系统C库(libc),一个从BSD集成来的标准C系统函数库(libc)它是专门为基于嵌入式Linux的设备定制的。2)媒体库(Media Framework),基于PackeVideo OpenCore,该库支持多种常用的音频,视频格式以及回放和录制,同时支持静态图像文件。编码格式包括;MPEG4、H.264,MP3、AAC、AMR、JPG、PNG。
33、(3)Surface Manager 对显示子系统的管理,并且为多个应用提供2D,3D图层的无缝融合。 4)WebKit,一个最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图。 5)SGL 底层的2D图形引擎。 6)OPENGL|ES,基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加速。7)FreeType,位图(bitmap)和适量(vector)字图显示支持。 8)SQLite,一个对所有应用程序可用,功能强大的轻量级关系型数据库引擎。9)Core Libraries 该核心库提供了Java编程语言核心库的大多数功能
34、。10)Dalvik VM,android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM。(4)Linux内核层(Linux Kernel)Android 的核心系统服务依赖于Linux 2.6 内核,操作系统为Android提供的服务包括; 1)安全性(Security)。 2)内存管理(Memory Management) 3)进程管理(Process Management) 4)网络堆栈(Network Stack)5)驱动程序模型(Driver Model)对android的整体框架有一定的了解后对与理解android的一些机制和应用开发有很大的帮助,只有了解了android框
35、架才能更好的使用android提供的功能和服务。从而使学习android应用开发少走弯路9。2.2 Android系统组件 一般情况下,有四种组件组成Android应用程序;活动-Activity、广播接收器-Broadcast Intent Receiver、服务-Service和内容提供器-Content Provider。应该重视的是,并非每个Android程序都需要构建该4个组件,确定要应用的组件,应该在AndroidMani-fest.xml中列出,它是XML配置文件,可定义程序中的组件的必要条件及功能。最基本的组件就是活动,每个活动往往是一个单独的屏幕,每个活动均被实现为独立的类,
36、还由活动基类中继承过来。活动类可以显示通过视图控件构成的用户接口,同时就事件发出响应;广播接收器能够使应用程序就外部事件发出响应,服务在Android中拥有比较长的生命周期;内容提供器是对外提供数据的一个借口, 类似于普通Web运用的Web service借口,根据标准开放出接口,使另外的应用取得数据。 (1) Activity 简介在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统
37、来控制。 (2) Service 简介 顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过元素声明才能使用.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service (3) Broadcast Receiver 简介 Broadcast Receiver 顾名思义广播接收器,它
38、和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent (4) ContentProvider简介Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。Android 为常用的数据类型(如;音视频、图片和联系方式等)提供
39、了大量的Content Provider。它们被定义在android.provider包下面。通过这样定义好的ContentProvider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问10。2.3 Android主要控件(1) EditText主要函数: setText/getText 设置/获取文本内容 setHint 设置缺省显示内容(2) RadioGroup,RadioButtonRadioButton的isChecked()判断是否被选中获取选中RadioButon的ID:设置RadioGro
40、up.setOnCheckedChangeListener方法public onCheckedChanged(RadioGroup group,int checkedId)/checkedId是选中RadioButton的ID。(3)CheckBoxisChecked()判断是否被选中setOnCheckedChangeListener方法监视选中状态改变情况(4)Spinner a,显示数据 b,设置下拉列表的风格(可选)adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); c,监听选项
41、选择变更事件setOnItemSelectedListener设置监听去Spinner.OnItemSelectedListener类须实现以下两个方法public void onItemSelected (AdapterView parent, View view, int position, long id)/view 选中项实例,position选择项在adapter中的位置public void onNothingSelected(AdapterView arg0) d,设置选中项Spinner.setSelection(position)/索引从0开始getSelectedItemP
42、osition ()getSelectedItem () /该值toString()则为选中内容的字符串getSelectedItemId ()getSelectedView ()(5)AutoCompleteTextViewsetAdapter设置数据adapter设置输入多少个字符显示提示AutoCompleteTextView.setThreshold(int threshold)(6)DatePicker,TimePickera,DatePickerb,TimePickerc,获取系统当期时间和日期Calendar.getInstance()返回CalendarCalendar.get
43、 (int field) -field 可以为Calendar.YEAR/ Calendar.MONTH/ Calendar.DAY_OF_MONTH/ Calendar.HOUR_OF_DAY/ Calendar.MINUTE(7)ImageView/ImageButton主要方法setImageResource 设置显示图片setAlpha 设置Alphainvalidate 强制更新setScaleType( ScaleType st) 设置图片显示方式,st是一枚举setAdjustViewBounds 设置是否调整控件适应图片大小setBackgroundResource 设置背景(
44、8)GridView(表格显示一系列图片)显示数据setAdapter(ListAdapter adapter)设置数据适配器.数据适配器可以继承自BaseAdapter,该类 public View getView(int position, View convertView, ViewGroup parent) 返回当前选择的视图(ImageView)选项选中监听setOnItemSelectedListenergetSelectedView()返回当前选中的视图(9)ListView a.显示数据setAdapter(ListAdapter adapter) adapter可为new S
45、impleCursorAdapter/SimpleAdapter(Context context, int layout, Cursor c, String from, int to) layout 用来显示数据的模板.显示一列可用android.R.layout.simple_list_item_1 两列可用android.R.layout.simple_list_item_2 多列则需要自己实现xml视图布局文件 b. 动态增删数据 adapter.notifyDataSetChanged() c.数据(可用ArrayList构造数据) from : to 用来显示对应列的空件id d.设
46、置背景色 setBackGroudRource112.4 本章小结本章节简要介绍了Android系统的内核结构,对其系统构架进行了一定的阐述。分别介绍了Activity、Intent、Service及Content Provider四大组件,并列举了Android SDK中较为常用的一些开发控件。基于本章内容,对Android系统底层有了一定程度的理解。3 基于Android的日历系统3.1需求分析3.1.1 系统目标设计并实现一款基于Android平台的日历系统,具备基本的日期显示功能;能够显示公历、农历、星期、节日等;并提供日程记事本功能。要求该系统能够在真机上顺利安装并运行。3.1.2
47、功能需求描述该系统除实现基本的日历功能之外,还有附加的插件以满足用户需求。(1) 可以使用户查看当天日期为何年何月何日、当天是星期几、阴历日期为多少。(2) 可满足用户对于是否闰年、闰几月、生肖年、干支年的查询需求。(3) 用户能够获的具体日期的节日信息,包括国际节日与中国传统节日。(4) 为用户提供日程管理功能,允许在指定日期下添加、查询、删除、修改提醒事件。(5) 可快速将用户指定的公历日期转换为农历日期。(6) 可快速跳转到用户想要查看的日期。(7) 提供当天日期定位功能。3.1.3 界面需求分析用户界面(User Interface,简称UI)是软件的重要部分。用户通过UI来得到服务,后台的代码结构往往与用户的直观体验关系不大,故用户界面的成功与否直接关系到用户软件的满意度12。(1) 界面应布局合理,简洁大方,使用户对于日期信息一目了然.(2) 当天日期应特殊显示,使用户能够方便快捷地得知当天信