基于Android的日历系统的设计与实现

基于Android的日历系统的设计与实现
基于Android的日历系统的设计与实现

设 计(论文)

` 院 系 控制与计算机工程学院计算机系 专业班级 软件工程1001班 学生姓名 指导教师

二○一四年六月

题 目 基于Android 的日历系统

的设计与实现

基于Android的日历系统的设计与实现

摘要

Android系统凭借其良好的用户体验、低廉的成本及高开放性产生了巨大的应用量和广阔的应用面。如今,基于Android系统的应用极为丰富,从输入法到影音播放器,从系统工具到网页浏览器,从社交网络客户端到学习办公助手工具,以及形式繁多的游戏应用,都有力体现了Android平台的强大的适应性和发展潜力。

而日历应用作为智能终端的出厂必备控件,更是Android系统中不可或缺的一部分。而应用开发商力求为客户带来更好的用户体验,将日历这一原本普通的生活用品打造成植于移动终端中的生活助手,且界面风格迥异,功能也是趋于多样化和一体化。

本文通过论述对基于Android的日历系统的开发的全过程,研究了Android系统的开发环境、核心构架、主要组件,展示了开发移动应用的一般过程,并对Android平台的背景、现状和发展前景进行了讨论。本次项目所实现的日历系统,除了最基本的日期信息查询功能外,还具备了公历转换农历功能、指定日期跳转功能、当天日期定位功能和日程管理功能。通过转换功能,用户可将希望查询的公历日期转为农历日期;如果用户想知道某一天或某个月有什么节日,可以使用跳转功能;在主界面没有显示当月日期时,用户可通过定位功能回到当天日期;而日程管理功能则为用户提供了类似备忘录的平台。

关键词;Android;移动终端;手机日历;移动应用开发

THE DESIGN AND IMPLEMENTATION OF CALENDER BASED ON ANDROID

SYSTEM

Abstract

Android 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 players,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 user 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 Android 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 functions such as gregorian-lunar transformer,current date locator,events https://www.360docs.net/doc/6f6538077.html,ers 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 with 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

目录

摘要....................................................................................................................................................................... I Abstract ................................................................................................................................................................ II 目录 (3)

1绪论 (1)

1.1课题背景 (1)

1.2发展现状 (1)

1.2.1Android SDK发布里程碑 (1)

1.2.2Android市场发展轨迹 (3)

1.3Android系统的发展前景 (3)

1.4课题研究意义 (4)

1.5 本文主要结构 (5)

2Android系统核心技术概述 (6)

2.1Android的体系结构 (6)

2.2Android系统组件 (8)

2.3Android主要控件 (9)

2.4本章小结 (11)

3基于Android的日历系统 (12)

3.1需求分析 (12)

3.1.1系统目标 (12)

3.1.2功能需求描述 (12)

3.1.3界面需求分析 (12)

3.1.4运行需求分析 (12)

3.2系统概要设计 (12)

3.2.1系统功能结构 (12)

3.2.2系统界面布局 (13)

3.3主要算法与核心代码实现 (14)

3.3.1主界面 (14)

3.3.2菜单项目操作 (16)

3.3.3日程管理功能实现 (18)

3.3.4农历、闰年、节日算法 (19)

3.4软件测试 (20)

3.4.1测试平台 (20)

3.4.2软件安装 (20)

3.4.3程序运行情况 (21)

3.5本章小结 (23)

4总结 (24)

4.1 论文工作总结 (24)

4.2 问题与展望 (24)

参考文献 (26)

致谢 (27)

1绪论

1.1课题背景

Android一词最早出现在法国作家威利耶德利尔·亚当的科幻小说中,作者将外表像人的机器称为“Android”[1]。它由四部分构成,分别如下;

(1)生命系统(平衡、步行、发声等)

(2)造型解质(关节能自由活动的金属覆盖体)

(3)人造肌肉(有肌肉、静脉等人体特征)

(4)人造皮肤(含有肤色、毛发等)

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发布了第一个面向开发者的软件开发包(SDK)Android1.0beta,Android平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件平台[2]。

至此,Android进入世人的视野,也开始了一场移动互联网的伟大革命。

1.2发展现状

作为当前最热门的移动应用操作系统之一,Android早在2012年就已经占据欧美市场超过50%的市场份额。而在国内,市场上采用Android系统的智能终端也在不断增多。1.2.1Android SDK发布里程碑

Android1.1

2008年9月发布的Android第一版

Android1.5Cupcake(纸杯蛋糕)

2009年4月30日,官方1.5版本(Cupcake:纸杯蛋糕)的Android发布。主要的更新如下;拍摄/播放影片,并支持上传到Youtube;支持立体声蓝牙耳机,同时改善自动配对性能;最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索性能大大提高;提供屏幕虚拟键盘;主屏幕增加音乐播放器和相框widgets;应用程序自动随着手机旋转;短信、Gmail、日历,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件;相机启动速度加快,拍摄图片可以直接上传到Picasa;来电照片显示;支持中文。

Android1.6Donut(甜甜圈)

2009年9月15日,1.6(Donut;甜甜圈)版本软件开发工具包发布。主要的更新如下;

(Text-to-Speech);快速搜索框;全新的拍照接口;查看应用程序耗电;支持虚拟私人网络(VPN);支持更多屏幕分辨率,支持OpenCore2媒体引擎;新增面向视觉或听觉困难人群的易用性插件。

Android2.0/2.0.1/2.1Eclair(松饼)

2009年10月26日,2.0(Eclair松饼)版本软件开发工具包发布。主要的更新如下;优化硬件速度;"Car;Home"程序;支持更多的屏幕分辨率;改良的用户界面;新的浏览器的用户接口和支持HTML5;新的联系人名单;更好的白色/黑色背景比率;改进Google;Maps;3.1.2;支持Microsoft;Exchange;支持内置相机闪光灯;支持数码变焦;改进的虚拟键盘;支持蓝牙2.1;支持动态桌面的设计。

Android2.2/2.2.1Froyo(冻酸奶)

2010年5月20日,2.2(Froyo冻酸奶)版本软件开发工具包发布。整体性能大幅度的提升;3G网络共享功能;Flash的支持;App2sd功能;全新的软件商店;更多的Web应用API接口的开发。

Android2.3Gingerbread(姜饼)

2011年2月2日,3.0(Honeycomb蜂巢)优化针对平板;全新设计的UI增强网页浏览功能;n-app purchases功能

Android3.1Honeycomb(蜂巢)

2011年5月11日在Google I/O开发者大会宣布发布,Honeycomb蜂巢(改进3.0BUG)经过优化的Gmail电子邮箱;全面支持GoogleMaps Android手机系统跟平板系统再次合并从而方便开发者。任务管理器可滚动,支持USB输入设备(键盘、鼠标等)。支持Google TV.可以支持XBOX360无线手柄widget支持的变化,能更加容易的定制屏幕widget插件。

Android3.2Honeycomb(蜂巢)

2011年7月13日发布,支持7英寸设备;引入了应用显示缩放功能。

Android4.0Ice Cream Sandwich(冰激凌三明治)

2011年10月19日在香港发布,4.0(Ice Cream Sandwich冰激凌三明治)版本主要更新;蓝色主题;接近于桌面版的Chrome;Lite浏览器,有离线阅读,同步Chrome书签,新的标签样式等;截图功能;更强大的图片编辑功能;自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序;Gmail加入手势、离线搜索功能,UI更强大。新增流量管理工具,可具体查看每个应用产生的流量。正在运行的程序可以像电脑一样的互相切换;人脸识别功能;系统优化、速度更快;支持虚拟按键,手机可以不再拥有任何按键;专为3D优化的驱动;平板电脑和智能手机通用。

Android4.1/4.2Jelly Bean(果冻豆)

2012年6月28日发布。添加了基于时间和位置的语音搜索;Google Now;增加离线语音输入,即不需要联网也能够语音输入;增强通知中心;Google Play增加内容订阅购买功

能;新的安卓彩蛋。

Android4.2;完整的Chrome浏览器。全新的手机风景模式;全新的文件管理器;Android Key Lime Pie精简版;具有开关切换的用户界面;全新的电源管理系统;全新的锁屏界面;全新的时钟界面[3]。

1.2.2Android市场发展轨迹

苹果公司推出的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已经成为全世界最为欢迎的智能手机平台,且平板电脑也大多应用此系统[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智能手机主宰了欧洲主要市场的销售,在英国、法国、意大利、西班牙及德国等五大国家的整体市场占有率从去年5月的38.8%上升到今年5月的60%。

随着iOS新版本的不断推出,以及Microsoft已经推出的Windows Phone系统不断完善,再加上RIM即将推出的全新操作系统BlackBerry10做最后一搏,手机智能系统的竞争愈加激烈,但就目前来说,Android手机的统治地位还是无法改变的[5]。

1.3Android系统的发展前景

就目前而言,智能设备主要是三大玩家、七大公司所引领。三大玩家指Apple、Microsoft 和Google;七大公司指的是Amazon、Samsung、Sony Ellison、HTC、联想和华为。就目前看,智能设备上,苹果三星暂时领先,Amazon最有潜力。

智能设备的未来不是由硬件决定的,是由第三方软件和渠道来决定。第三方软件上,苹果领先,谷歌其次,微软第三;渠道上苹果领先,亚马逊其次,微软最次。由于苹果全

面控制了操作系统和硬件,导致其他公司大部分只能依靠安卓。类似PC战胜Mac一样,随着iPhone潮流随乔布斯而去,众多公司合力之下,Android占据智能手机主流将是发展趋势[6]。

1.4课题研究意义

随着科技的发展,智能手机已经开始逐步取代传统PC渗透进入了人们娱乐、生活的各个方面。从2011年开始,我们的生活开始步入移动互联网时代,微博和微信已经占据了大多数人的社交圈。而作为它们的载体——智能手机,时至今日也对我们的生活造成了颠覆性的影响。手机从过去单一的通话功能,到今天集通话、短信、摄影、上网、听歌、电子书于一身,不仅极大地满足了人们的通讯需求,也满足了人们的娱乐需求。手机上网,将信息整合使人们随身携带的手机成了互联网的终端机,手机与电脑相比,具有体积小、便于携带、价格便宜等优点,而且手机上网相比有着移动性的优势,从而能够迅速、及时得满足人们的信息需求。手机信息载体比报纸、广播、电视信息在信息传递上更方便、直接、快速。

而作为智能手机平台中的霸主,Android平台凭借其优势,得到了广阔的普及面。

(1)开放性

在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

(2)不受束缚

在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从2007年iPhone上市后,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。

(3)丰富的硬件

这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian 中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。

(4)方便开发

Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情

色方面的程序和游戏如何控制正是留给Android难题之一。

(5)Google应用

在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google 服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务[7]。

综上所述,Android系统的发展与成熟时大势所趋,精通基于Android平台上应用软件的开发技术,也是紧随时代发展脚步的当务之急。

1.5 本文主要结构

本篇文章共分为四个章节,从开端到结尾循序渐进地论述了基于Android平台开发应用软件的过程。各个章节涵盖内容如下。

第一章:绪论。向读者展示了Android的由来和历史,列举了从发布至今Android SDK 各个版本及其新特性,引用数据说明了Android的现状及前景,讨论了这类课题的研究意义。

第二章:介绍了Android系统的架构,Android的四大组件,以及开发常用的一些控件。

第三章:对日历系统进行需求分析,根据需求设计系统功能,例举其中的核心代码介绍系统是如何实现的,实现后对日历系统进行了测试。

第四章:对整个论文的工作过程进行了总结,讨论了Android的不足,并对其发展趋势进行展望。

2Android系统核心技术概述

2.1Android的体系结构

在Android操作系统中,将体系结构划分为四层;应用层(Application)、应用框架层(Application Framework)、系统运行库层(Libraries)以及Linux内核层(Linux Kernel)。这四层架构如图2-1所示[8]。

图1-6Android的体系结构

(1)应用层(Application)

应用基本都是通过Java语言编写的独立的能够完成某些功能的应用程序。Android本身提供了桌面(Home),联系人(Contacts),拨打电话(Phone),浏览器(Browsers)等很多基本的应用程序。开发人员可以使用应用框架提供的API编写自己的应用程序,普通开发人员要做的事情就是开应用层的程序提供该广大消费者使用。

(2)应用框架层(Application Framework)

普通开发者可以使用Android基本应用程序使用的系统API,android应用框架中的各个模块都可以被复用,各种服务也可以被复用,理解了这个机制,开发人员可以更好的更轻松的开发出优秀的android应用。开发过程中常用到的基本框架组件如下;

1)一组View(UI组件),这些UI组件包括Button(按钮),EidtView(文本框),TextView (标签),List(列表)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。

2)Content Providers(内容提供者),听起来有点抽象,通俗的理解Content Provider 就是提供一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。

3)Resource Manager顾名思义就是资源管理,android中的资源很多包括图片,用户界面(Layout xml),字体,颜色,UI组件的ID等等都可以称之为资源,这些丰富的资源,都是通过Resource Manager来统一进行管理。

4)Notification Manager(消息通知管理),它在不影响用户正常操作和使用设备的时候在状态栏上提供消息的提示。比如有短信来的时候,android自动会将这个消息提示在状态栏上,用户可以及时的看到。

5)Activity Manager(活动管理),Activity管理着应用程序的生命周期,并且控制着应用的导航,扮演控制器的角色。每个Activity类似于Windows应用中的一个wendow。一般的应用都是通过一个个Activity交互构成的。

6)Window Manager(窗口管理),管理所有启动的窗口。

7)Location Manager(位置管理),用来管理地图服务的相关功能。

8)Telephoney Manager(电话管理),用来管理有关的电话的相关功能。

9)Package Manager(包管理),管理所有的安装在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。(3)Surface Manager对显示子系统的管理,并且为多个应用提供2D,3D图层的无缝融合。

4)WebKit,一个最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web 视图。

5)SGL底层的2D图形引擎。

6)OPENGL|ES,基于OpenGL ES1.0APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加速。

7)FreeType,位图(bitmap)和适量(vector)字图显示支持。

8)SQLite,一个对所有应用程序可用,功能强大的轻量级关系型数据库引擎。

9)Core Libraries该核心库提供了Java编程语言核心库的大多数功能。

10)Dalvik VM,android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM。

(4)Linux内核层(Linux Kernel)Android的核心系统服务依赖于Linux2.6内核,操作系统为Android提供的服务包括;

1)安全性(Security)。

2)内存管理(Memory Management)

3)进程管理(Process Management)

4)网络堆栈(Network Stack)

5)驱动程序模型(Driver Model)

对android的整体框架有一定的了解后对与理解android的一些机制和应用开发有很大的帮助,只有了解了android框架才能更好的使用android提供的功能和服务。从而使学习android应用开发少走弯路[9]。

2.2Android系统组件

一般情况下,有四种组件组成Android应用程序;活动--Activity、广播接收器--Broadcast Intent Receiver、服务--Service和内容提供器--Content Provider。应该重视的是,并非每个Android程序都需要构建该4个组件,确定要应用的组件,应该在AndroidMani-fest.xml中列出,它是XML配置文件,可定义程序中的组件的必要条件及功能。最基本的组件就是活动,每个活动往往是一个单独的屏幕,每个活动均被实现为独立的类,还由活动基类中继承过来。活动类可以显示通过视图控件构成的用户接口,同时就事件发出响应;广播接收器能够使应用程序就外部事件发出响应,服务在Android中拥有比较长的生命周期;内容提供器是对外提供数据的一个借口,类似于普通Web运用的Web service借口,根据标准开放出接口,使另外的应用取得数据。

(1) Activity简介

在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。

(2) Service简介

顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过元素声明才能使用.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service

(3) Broadcast Receiver简介

Broadcast Receiver顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent

(4) ContentProvider简介

Content Provider用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。

Android为常用的数据类型(如;音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在android.provider包下面。通过这样定义好的ContentProvider我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问[10]。

2.3Android主要控件

(1)EditText

主要函数:

setText/getText设置/获取文本内容

setHint设置缺省显示内容

(2)RadioGroup,RadioButton

RadioButton的isChecked()判断是否被选中

获取选中RadioButon的ID:设置RadioGroup.setOnCheckedChangeListener方法

public onCheckedChanged(RadioGroup group,int checkedId)//checkedId是选中RadioButton的ID。

(3)CheckBox

isChecked()判断是否被选中

setOnCheckedChangeListener方法监视选中状态改变情况

(4)Spinner

a,显示数据

b,设置下拉列表的风格(可选)

adapter.setDropDownViewResource(https://www.360docs.net/doc/6f6538077.html,yout.simple_spinner_dropdown_item);

c,监听选项选择变更事件

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开始

getSelectedItemPosition ()

getSelectedItem () //该值toString()则为选中内容的字符串

getSelectedItemId ()

getSelectedView ()

(5)AutoCompleteTextView

setAdapter设置数据adapter

设置输入多少个字符显示提示AutoCompleteTextView.setThreshold(int threshold) (6)DatePicker,TimePicker

a,DatePicker

b,TimePicker

c,获取系统当期时间和日期

Calendar.getInstance()返回Calendar

Calendar.get (int field) ---field可以为Calendar.YEAR/ Calendar.MONTH/

Calendar.DAY_OF_MONTH/ Calendar.HOUR_OF_DAY/ Calendar.MINUTE

(7)ImageView/ImageButton

主要方法

setImageResource设置显示图片

setAlpha设置Alpha

invalidate强制更新

setScaleType( ScaleType st) 设置图片显示方式,st是一枚举

setAdjustViewBounds设置是否调整控件适应图片大小

setBackgroundResource设置背景

(8)GridView(表格显示一系列图片)

显示数据

setAdapter(ListAdapter adapter)设置数据适配器.

数据适配器可以继承自BaseAdapter,该类public View getView(int position, View

convertView, ViewGroup parent) 返回当前选择的视图(ImageView)

选项选中监听setOnItemSelectedListener

getSelectedView()返回当前选中的视图

(9)ListView

a.显示数据setAdapter(ListAdapter adapter)

adapter可为new SimpleCursorAdapter/SimpleAdapter(Context context, int layout, Cursor c, String[] from, int[] to)

layout用来显示数据的模板.显示一列可用https://www.360docs.net/doc/6f6538077.html,yout.simple_list_item_1两列可用https://www.360docs.net/doc/6f6538077.html,yout.simple_list_item_2

多列则需要自己实现xml视图布局文件

b. 动态增删数据

adapter.notifyDataSetChanged()

c.数据(可用ArrayList构造数据)

from ':

to用来显示对应列的空件id

d.设置背景色

setBackGroudRource[11]

2.4本章小结

本章节简要介绍了Android系统的内核结构,对其系统构架进行了一定的阐述。分别介绍了Activity、Intent、Service及Content Provider四大组件,并列举了Android SDK 中较为常用的一些开发控件。基于本章内容,对Android系统底层有了一定程度的理解。

3基于Android的日历系统

3.1需求分析

3.1.1系统目标

设计并实现一款基于Android平台的日历系统,具备基本的日期显示功能;能够显示公历、农历、星期、节日等;并提供日程记事本功能。要求该系统能够在真机上顺利安装并运行。

3.1.2功能需求描述

该系统除实现基本的日历功能之外,还有附加的插件以满足用户需求。

(1)可以使用户查看当天日期为何年何月何日、当天是星期几、阴历日期为多少。

(2)可满足用户对于是否闰年、闰几月、生肖年、干支年的查询需求。

(3)用户能够获的具体日期的节日信息,包括国际节日与中国传统节日。

(4)为用户提供日程管理功能,允许在指定日期下添加、查询、删除、修改提醒事件。

(5)可快速将用户指定的公历日期转换为农历日期。

(6)可快速跳转到用户想要查看的日期。

(7)提供当天日期定位功能。

3.1.3界面需求分析

用户界面(User Interface,简称UI)是软件的重要部分。用户通过UI来得到服务,后台的代码结构往往与用户的直观体验关系不大,故用户界面的成功与否直接关系到用户软件的满意度[12]。

(1)界面应布局合理,简洁大方,使用户对于日期信息一目了然.

(2)当天日期应特殊显示,使用户能够方便快捷地得知当天信息。

(3)本月日期与非本月日期应区别显示。

(4)允许用户左右滑动屏幕来跨月查询。

3.1.4运行需求分析

该系统应能够在虚拟机上和真机上顺利安装、运行、卸载;应保证运行流畅,不卡机不死机;能够适应不同智能终端的多种设备屏幕。

3.2系统概要设计

3.2.1系统功能结构

界面、公农历转换控件、当天日期定位菜单、日期跳转项。功能结构如图3-1所示。

图3-1日历系统功能结构

3.2.2系统界面布局

本日历系统的主界面采用线性布局(Linear Layout)与列表视图(GridView)相结合的界面构造。图3-2为主界面的简要布局示意[13]。

图3-2主界面的布局示意图

3.3主要算法与核心代码实现

3.3.1主界面

主界面提供日期信息显示,允许呼出菜单栏,并支持左右滑动。

(1)主界面显示Activity

public void addTextToTopTextView(TextView view){

StringBuffer textDate = new StringBuffer();

draw = getResources().getDrawable(R.drawable.top_day);

view.setBackgroundDrawable(draw);

textDate.append(calV.getShowYear()).append("年").append(

calV.getShowMonth()).append("月").append("\t");

if (!calV.getLeapMonth().equals("") && calV.getLeapMonth() != null) { textDate.append("闰").append(calV.getLeapMonth()).append("月")

.append("\t");

}

gridView = new GridView(this);

gridView.setNumColumns(7);

gridView.setColumnWidth(46);

if(Width == 480 && Height == 800){

gridView.setColumnWidth(69);

}

gridView.setGravity(Gravity.CENTER_VERTICAL);

gridView.setSelector(new ColorDrawable(Color.TRANSP ARENT));

gridView.setVerticalSpacing(1);

gridView.setHorizontalSpacing(1);

gridView.setBackgroundResource(R.drawable.gridview_bk);

(2)创建菜单

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, menu.FIRST, menu.FIRST, "今天");

menu.add(0, menu.FIRST+1, menu.FIRST+1, "跳转");

menu.add(0, menu.FIRST+2, menu.FIRST+2, "日程");

menu.add(0, menu.FIRST+3, menu.FIRST+3, "日期转换");

return super.onCreateOptionsMenu(menu);

}

(3)左右滑动屏幕

public class CalendarActivity extends Activity implements OnGestureListener { @Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

int gvFlag = 0; //每次添加gridview到viewflipper中时给的标记

if (e1.getX() - e2.getX() > 120) {

//像左滑动

addGridView(); //添加一个gridView

jumpMonth++; //下一个月

calV = new CalendarView(this,

getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);

gridView.setAdapter(calV);

//flipper.addView(gridView);

addTextToTopTextView(topText);

gvFlag++;

flipper.addView(gridView, gvFlag);

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out));

this.flipper.showNext();

flipper.removeViewAt(0);

return true;

} else if (e1.getX() - e2.getX() < -120) {

//向右滑动

addGridView(); //添加一个gridView

jumpMonth--; //上一个月

calV = new CalendarView(this,

getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);

gridView.setAdapter(calV);

gvFlag++;

return true;

}

return false;

}

3.3.2菜单项目操作

菜单栏包含四项功能操作;当今日期定位、指定日期跳转、日程管理以及公农历转化。

(1)定位至今天日期

public boolean onMenuItemSelected(int featureId, MenuItem item) {

switch (item.getItemId()){

case Menu.FIRST:

//跳转到今天

int xMonth = jumpMonth;

int xYear = jumpYear;

int gvFlag =0;

jumpMonth = 0;

jumpYear = 0;

if(xMonth == 0 && xYear == 0){

//nothing to do

}else if((xYear == 0 && xMonth >0) || xYear >0){

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_in));

this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_left_out));

this.flipper.showNext();

}else{

this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_right_in));

android系统开发--HAL层开发基础

android系统开发--HAL层开发基础 Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念 1,源代码和目标位置 源代码:/hardware/libhardware目录,该目录的目录结构如下: /hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录 /hardware/libhardware/include/hardware目录下包含如下头文件: hardware.h 通用硬件模块头文件 copybit.h copybit模块头文件 gralloc.h gralloc模块头文件 lights.h 背光模块头文件 overlay.h overlay模块头文件 qemud.h qemud模块头文件 sensors.h 传感器模块头文件 /hardware/libhardware/modules目录下定义了很多硬件模块 这些硬件模块都编译成xxx.xxx.so,目标位置为/system/lib/hw目录 2,HAL层的实现方式 JNI->通用硬件模块->硬件模块->内核驱动接口 具体一点:JNI->libhardware.so->xxx.xxx.so->kernel 具体来说:android frameworks中JNI调用/hardware/libhardware/hardware.c中定义的hw_get_module函数来获取硬件模块, 然后调用硬件模块中的方法,硬件模块中的方法直接调用内核接口完成相关功能 3,通用硬件模块(libhardware.so) (1)头文件为:/hardware/libhardware/include/hardware/hardware.h 头文件中主要定义了通用硬件模块结构体hw_module_t,声明了JNI调用的接口函数 hw_get_module hw_module_t定义如下: typedef struct hw_module_t { /** tag must be initialized to HARDWARE_MODULE_TAG */ uint32_t tag; /** major version number for the module */ uint16_t version_major; /** minor version number of the module */ uint16_t version_minor; /** Identifier of module */ const char *id; /** Name of this module */ const char *name;

Android日历完整实现

实用第一智慧密集 2011. 05 实现基于Android 的日历系统 摘要: Android 作为目前较为流行的智能手机操作系统已成为大多数人的首选。在美国乃至世界 的很多地方的出货量已经超越Iphone,成为世界上最大智能手机操作系统。因此,世界各地的程 序员都跃跃欲试地想学习Android 的开发,并希望从中捞得属于自己的第一桶金。在此给出一个 基于Android 的日历系统的完整实现过程。 关键词: Android;日历;绘画;农历;记录;提醒 1 引言 要实现的日历除了常规的日历功能外,还可以显示与当前 日期相关的信息,如当前日期的农历日期、天干地支、节日等 信息。下面先看看日历的绚丽界面,如图1、图2 所示。 主要功能

2 绘画基础 由于实现的日历系统要涉及到大量的Android 绘图技术, 因此,要简单介绍Android 的绘图技术。 绘制图形通常在Android.view.View 或其子类的onDraw 方 法中进行。该方法的定义如下: protected void onDraw(Canvas canvas); 其中Canvas 对象提供了大量用于绘图的方法,这些方法 主要包括绘制像素点、直线、圆形、弧、文本,这些都是组成 复杂图形的基本元素。如果要画更复杂的图形,可以采用组合 这些图形基本元素的方式来完成。例如,可以采用画3 条直线 的方式来画三角形。下面来看一下绘制图形基本元素的方法。 2.1 绘制像素点 public native void drawPoint(float x, float y, Paint paint); // 画一个像素点 public native void drawPoints(float[] pts, int offset, int count, Paint paint); // 画多个像素点 public void drawPoints(float[] pts, Paint paint); // 画多个像素点 参数的含义如下: (1) x:像素点的横坐标。 (2) y:像素点的纵坐标。 (3) paint:描述像素点属性的Paint 对象。可设置像素点 的大小、颜色等属性。绘制其他图形元素的Paint 对象与绘制 像素点的Paint 对象的含义相同。在绘制具体的图形元素时可 根据实际的情况设置Paint 对象。 (4) pts: drawPoints 方法可一次性画多个像素点。pts 参数 表示多个像素点的坐标。该数组元素必须是偶数个,两个一组 为一个像素点的坐标。 (5) offset: drawPoints 方法可以取pts 数组中的一部分连 续元素作为像素点的坐标,因此,需要通过offset 参数来指定 取得数组中连续元素的第一个元素的位置,也就是元素偏移 量,从0 开始。例如,要从第3 个元素开始取数组元素,那么 offset 参数值就是2。 (6) count:要获得的数组元素个数, count 必须为偶数 (两个数组元素为一个像素点的坐标)。 要注意的是, offset 可以从任意一个元素开始取值,例如, offset 可以为1,然后count 为4。

android系统开发工作介绍

android系统开发工作介绍 一、android的开发工作 Android的开发分为三个类型:移植开发移动设备系统;android系统级开发和应用程序开发。 1、移植开发移动设备系统 2、Android系统级开发,指的是扩展android的框架或者是修改bug,这方面比较少,除非有些开发移动设备的厂商,比如做gps,可以往里面加入一些自己的特定系统东西,这可能导致一些不兼容。当然也可能是简单的修复bug,详细的内容后面还有说。 3、开发应用程序,这应该是比较主流的开发,也就是给android系统写应用程序。当然我们这里主要是研究android的framework如何给这些应用程序提供服务的。 总结一下,我们可以把android分为四个层次,从底层往上依次为:linux内核、C/C++库、java 框架和java应用程序。移植开发移动设备涉及到linux内核(包括其驱动);android系统级开发涉及到C/C++库的开发及给上层java框架;android应用程序开发就是调用java的框架写应用程序。 简单的从上到下,android应用程序需要有java框架支持,比如它要发送短信,就需要java 框架,java框架其实就是将C/C++库包装成为了一个JNI,而实现具体的功能是C/C++库,最后驱动硬件完成功能,这也就是linux内核部分。 所谓framework,也就是系统级开发,这将是本文的重点,虽然android的framework 开发比较少,但是对其了解后更有利于整体开发的进行,当然很多设备厂商还是非常需这要些的。 二、android系统架构

Linux内核及驱动、C/C++框架、java框架、java应用程序。 1)、Linux内核及驱动 其中linux内核及驱动是内核层的(本人对linux内核也有过痴迷的时候,就像现在android 痴迷一样),系统总是需要操作系统的支持的,比如内存管理、进程管网理、络协议栈等。 2)、android的C/C++框架 系统C库:用的是libc,没什么好说的,C程序员都知道。多媒体库SurFace Manager:显示子系统的管理器LibWebCore:web浏览器引擎,支持android浏览器SGL:skia图形库,底层的2D图形引擎 3D库:OpenGL FreeType:字体显示Android的运行环境,这个也应该属于这个框架里面的,android的虚拟机叫做Dalvik,运行环境就是由这个虚拟机和基础的java类库组成。 3)、android应用框架 提供一系列的服务和系统,包括视图、内容提供器、资源管理器、通知管理器活、动管理器。 视图非常丰富:list、grid、text box、button等。内容提供器是使得应用程序可以访问另一个程序的数据。资源管理器是提供访问非代码的资源访问,如布局文件。通知管理器,使得程序可以在状态栏中显示自定义的提示信息。活动管理器,用来管理程序生命周期。 4)、android应用程序Android所有的应用程序都是用java写的,当然现在好像也支持一些脚本语言,如 ruby,但是不支持C开发,所谓支持C开发是指jni的形式。 。。。。。。。。。

基于android的手机日程管理系统需求规格说明书

需求说明书 一、引言: 1.背景: 手机日程管理系统就是针对当代大学生的日程管理需求,在基于android内核以及架构的基础上,采用自定义控件和用户接口,利用后台服务实施定时提醒、自动删除等技术,实现手机的个人日程管理、课程表管理、定时提醒删除、安全设置等多种功能。 2.编写目的: 当下大学生生活作息时间紊乱,社团活动、社交和游戏等搞的众多大学生毫无时间观念,重要的事情和约会等被打乱。在这种情况下,本手机日程管理系统的开发显得很有意义,帮你管理平时安排,提醒你的重要时间和约会。 二、系统特性: 1.系统角色 用户: 用户 设置日程 设置今日安排 查看课程表 查看日历 设置功能图1 用户用例图 2.数据管理 (1)用户添加课程表数据 使用者:用户 目的:添加课程表信息 基本事件流: 1、用户从主界面进入课程表添加界面 2、用户点击添加按钮跳转输入信息界面,输入信息,点击确认按钮提交数据库

(2)用户添加今日安排数据 使用者:用户 目的:添加今日安排信息 基本事件流: 1、用户从主界面进入今日安排界面 2、用户点击添加按钮跳转输入信息界面,输入信息,点击确认按钮提交数据库 3、设置日程标题、地点、是否为重要日程、是否为全天计划、起始时间、结束时间、是否重复设置、是否提醒、提前多长时间提醒等。 (3)用户添加日程安排数据 使用者:用户 目的:添加日程安排信息 基本事件流: 1、用户从主界面进入日程安排界面 2、用户点击添加按钮跳转输入信息界面,输入信息,点击确认按钮提交数据库 3、设置日程标题、地点、是否为重要日程、是否为全天计划、起始时间、结束时间、是否重复设置、是否提醒、提前多长时间提醒等。 3.数据查询 (1)用户查询今日安排数据 使用者:用户 目的:查询今日安排 基本事件流: 1、用户从主界面进入今日安排界面 2、用户即可查看简单的今日日程信息,点击日程标题可查看具体日程信息(2)用户查询课程数据 使用者:用户 目的:查询课程 基本事件流: 1、用户从主界面进入课程界面 2、用户即可查看课程信息,点击课程标题可查看具体信息 (3)用户查询近日安排数据 使用者:用户 目的:查询近日安排 基本事件流: 1、用户从主界面进入日程安排界面

Android系统原理及开发要点详解.

内容简介 本书全面介绍开放的移动电话平台Android系统,包括Android系统中的Linux 驱动、本地框架、Java框架和Java应用4个层次。本书内容以知识性内容为纲,重点关注开发要点,各个部分内容注重相互照应,按照清晰的思路向读者介绍整个Android系统的原理和开发方法。 本书按照Android系统的框架和各个子系统的主线,重点介绍开发Android应用程序和构建硬件抽象层。其内容涵盖了Android应用程序开发和Android系统移植构建手机系统两大方面。 本书既适合从事Android各个层次开发的工程师阅读,也适合通用嵌入式Linux 系统的学习者使用。 本书购买地址:当当网卓越网中国互动出版网 作者简介 梁泉是移动系统开发资深工程师,在Android领域具有完备的知识和前沿的技术,长期从事一线开发工作。 韩超是中国大陆地区较早参与Android系统开发的人员之一,也是中国大陆的Androidin(机锋网开发社区的核心成员和重要组织者之一;也曾经引领大陆各种相关技术人员进入Android领域,并组织参与国内外的相关枝术交流。 前言 Android 是Google历经数年和投资数亿美元开发出来的智能手机系统,Google 也发起了围绕Android的组织——开放手机联盟,其英文全称为“Open Handset Alliance”。

随着各大移动终端生产商大力开发和生产基于Android的移动智能设 备,Android迅速得到业界和社会的认可,并成为整个产业的热点,基于Android平台的各类人才逐渐成为各大企业竞相争夺的焦点。 Android系统是一个开放的系统,任何公司、个人开发者、爱好者都可以参与其中。对于技术工作者,Android不仅是一个智能手机的系统,也可以作为学习嵌入式Linux系统的较完整的软件平台。 Android是一个较新的系统和技术,因此介绍Android的资料和书籍还比较少,尤其简体中文的书籍,相对更少。本书《Android系统原理及开发要点详解》是一本综合介绍Android系统的书,集合了Androidin社区多位专家作者的经验,精心编写而成。 Android 作为一个庞大的系统,包括了Linux操作系统、各种本地程序、虚拟机和运行环境、Java框架和Java应用程序多方面的内容。这对于初学者是一个非常大的挑战,因此对于学习、研究进而开发Android系统来说,掌握系统的脉络和使用恰当的学习方法是非常重要的,这也是本书的组织主旨。 本书特点为了适应Android系统的情况,本书在内容的编排和组织上具有以下一些重要特点。 保持完整性和层次性本书紧紧把握Android系统的4个层次,分章节介绍,并且有重点地介绍了Android整个系统的代码结构、编译系统、相关工具、各部分组织等全局性内容。这将让读者即使只花费较短的时间,也可以获得对Android 系统大致的感性理解。 提供清晰的框架Android是一个有数百兆大小的较大系统,各部分之间是有机联系的,这就要求Android的学习和开发者需要具有一些软件架构方面的知识。本书为Android整体和重点模块绘制了大量的框图,这样非常有利于帮助读者直观地理解系统。本书在讲述每一个部分时,均列出相关代码的路径,帮助读者对应着进行快速、高效地学习。

基于Android的日历系统的设计与实现毕业设计(论文)

华北电力大学本科毕业设计(论文) 毕业设计(论文) ` 题目基于Android的日历系统 的设计与实现 二○一四年六月

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

Android系统开发入门

Android系统开发入门 注:相信大家都知道Android的APP的是用Java写的,运行在Dalvik 虚拟机上,还有,Android的系统是基于Linux Kernel 2.6的。那么,要想深入了解Android系统的各种细节,当然少不了Linux Kernel 的知识了。阅读本文需要具备一定的C和JAVA语言基础,并且对linux 系统有一定了解。最好对C++也有一定的了解。 本文的内容是基于Android2.2版本平台,以一个设备(将系统内存模拟成一个带4字节寄存器的设备)为例,从底层驱动,到中间件,到上层应用程序全过程的代码实现。 所编写的代码例子,都可以在Android模拟器进行运行。但由于https://www.360docs.net/doc/6f6538077.html,在2011年9月份被人黑了无法访问,导致本人没有下载goldfish_defconfig,无法编译能在模拟器运行的kernel,故采用JZ4760BLYNX开发板运行代码例子。 搭建好JZ android编译环境,开始进行android系统开发之旅。 Android硬件抽象层(HAL)概要介绍和学习计划

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux 内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,是可以的,然而从商业的角度来看,把对硬件的支持逻辑都放在内核空间,可能会损害厂家的利益。我们知道,Linux内核源代码版权遵循GNU License,而Android源代码版权遵循Apache License,前者在发布产品时,必须公布源代码,而后者无须发布源代码。如果把对硬件支持的所有代码都放在Linux驱动层,那就意味着发布时要公开驱动程序的源代码,而公开源代码就意味着把硬件的相关参数和实现都公开了,在手机和平板市场竞争激烈的今天,这对厂家来说,损害是非常大的。因此,Android才会想到把对硬件的支持分成硬件抽象层和内核驱动层,内核驱动层只提供简单的访问硬件逻辑,例如读写硬件寄存器的通道,至于从硬件中读到了什么值或者写了什么值到硬件中的逻辑,都放在硬件抽象层中去了,这样就可以把商业秘密隐藏起来了。也正是由于这个分层的原因,Android被踢出了Linux内核主线代码树中。大家想想,Android放在内核空间的驱动程序对硬件的支持是不完整的,把Linux内核移植到别的机器上去时,由于缺乏硬件抽象层的支持,硬件就完全不能用了,这也是为什么说Android是开放系统而不是开源系统的原因。 撇开这些争论,学习Android硬件抽象层,对理解整个Android整个系统,都是极其有用的,因为它从下到上涉及到了Android系统的硬件驱动层、硬件抽象层、运行时库和应用程序框架层等等,下面这个图阐述了硬件抽象层在Android系统中的位置,以及它和其它层的关系: 在学习Android硬件抽象层的过程中,我们将会学习如何在内核空间编写硬件驱动程序、如何在硬件抽象层中添加接口支持访问硬件、如何在系统启动时提供硬件访问服务以及如何编写JNI使得可以通过Java接口来访问硬件,而作为中间的一个小插曲,我们还将学习一下如何在Android系统中添加一个C可执行程序来访问硬件驱动程序。由于这是一个系统的学习过程,本人将分成六个章节来描述每一个学习过程,包括:

基于android的手机日程管理系统概要设计说明书

基于Android的手机日程管理系统的设计 与实现 概要设计说明书 学生姓名:王炜 学号: 0911******* 指导教师:刘雪梅 课题类型: AXP 专业:软件工程 学部:信息学部 审核组长: 北京城市学院 2013 年 2月 19日

日期版本说明作者2013/2/19 1 未评审的初稿王炜2013/3/3 2 版本内容删改王炜

目录 1引言 (1) 1.1 编写目的 (1) 1.2 背景 (1) 1.3定义 (1) 1.4参考资料 (1) 2总体设计 (2) 2.1需求规定 (2) 2.2 运行环境 (2) 2.3 基本设计概念和处理流程 (2) 2.4结构 (3) 2.4.1 设置课程表 (3) 2.4.2 查看课程表 (3) 2.4.3 新增日程 (4) 2.4.4 查看日程 (4) 2.4.5 查看日历 (4) 2.4.6 设定安全密码 (5) 2.5人工处理过程 (5) 2.6尚未问决的问题 (5) 3 接口设计 (5) 3.1用户接口 (5) 3.2内部接口 (5) 3.2外部接口 (6) 4 运行设计 (7) 4.1运行模块组合 (7) 4.2 运行控制 (7) 4.3 运行时间 (7) 5 系统出错处理设计 (7) 5.1 出错信息 (7) 5.2补救措施 (7) 5.3 系统维护设计 (8)

1引言 1.1 编写目的 编写此文档的目的是:详细、准确和全面地定义基于android的手机日程管理系统的概要设计,以利于指导该系统后续的开发工作;本文档所描述的概要设计作为该项目最终验收的标准和依据;给工作人员提供一定的维护依据,方便在以后的维修工作中提供方便。 文档读者:专业的工作技术人员对维修系统时参考的文档。 1.2 背景 软件名称:基于android的手机日程管理系统 任务提出者:毕业设计审核组 开发者:王炜 用户以及将运行该软件的平台:android手机用户 1.3定义 Broadcast Receiver:在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而Broadcast Receiver是对发送出来的Broadcast 进行过滤接受并响应的一类组件。 My Item Adapter:涉及到对单个条目的是否完成标记以及删除的设置,所以在这里重写了一个适配器My Item Adapter继承Base Adapter,并在get—view() 方法中手动映射数据。 1.4参考资料 [1]赵亮;张维;;基于Android技术的界面设计与研究[J];电脑知识与技术;2009年29期. [2]陈昱;江兰帆;;基于Google Android平台的移动开发研究[J];福建电脑;2008年11期. [3]蔡罗成;;Android后台监听实现机制浅析[J];信息安全与通信保密;2010年06期. [4]王会进,方锦亮;基于JA V A的自定义控件应用技术研究[J];微型机与应用;2005

基于安卓系统的APP开发技术研究

龙源期刊网 https://www.360docs.net/doc/6f6538077.html, 基于安卓系统的APP开发技术研究 作者:刘海涛 来源:《名城绘》2019年第01期 摘要:随着科学技术的突飞猛进,通信行业也得到了快速的进步。伴随着智能手机的推广与深入,现如今手机的作用已经不再是单纯的拨打电话与发送短信了。消費、聊天、社交、出行各种APP就像雨后的春笋一般涌现在APP市场当中。基于此,本文对安卓系统的APP开发技术进行研究分析。 关键词:安卓系统;APP开发技术;研究 1安卓概述 Android,中文名安卓,是一个由谷歌公司开发的基于Linux核心的操作系统,主要安装 在智能手机以及平板电脑上,以Apache免费开放原始码许可证授权方式,供全世界的APP开发商使用,成为全球第一大智能手机操作系统。基于安卓平台的开发环境,具有其独特的优势,主要体现在以下几个方面: ①源码开放性好,开发者可根据自己的需求,在平台上进行二次开发,这对于底层上进行细节开发的工程师而言,明显提高的开发的效率; ②更为便捷的应用程序开发,采用Java语言编写程序,安卓系统开发平台提供了大量的 开发工具以及API接口,缩短了开发的周期; ③硬件选择多样化,安卓系统开源性使其能够支持不同硬件; ④能够与谷歌进行无缝结合,充分利用谷歌公司提供了服务。 2安卓系统 2.1基本架构 在安卓系统当中,把操作系统的架构大致分成为下列四层,分别是:Linux内核层、系统运作库层、软件框架层以及其对应的应用层。 Linux层:安卓操作系统的基础层就是依照Linux Kernel所建立起来的,其性能主要就是负责操作体系当中所具备的性能,包含有很多的驱动软件,譬如显示器驱动、红外线驱动、摄像机驱动、蓝牙驱动等,正是这样的一些驱动软件的存在来运作我们对应的设备工具。

基于Android平台的日历提醒软件的设计与实现

1 引言 随着移动互联网的高速发展,人们已经无法离开移动终端,智能手机也已经越来越普及,对人们的生活产生了巨大的影响,人们可以随时随地使用手机,随时随地来查看信息,随时随地用来上网等,当然也急需青春地了解到自己每天所需要完成的事情,或是需要记录一些容易忘记的重要事件,并能有一个功能完善的软件来帮助人们完成这些事情。在这样的大背景下,基于安卓平台的日历提醒软件也逐渐进入安卓开发者的视野中。 1.1 课题背景 Android是一种基于Linux平台的开放源代码的操作系统,主要使用在移动终端上。Android操作系统最初由AndyRubin开发,最早的时候主要用在手机平台上。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上[1]。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%[2]。 Android是一种开放源代码的操作系统,随着Android的迅速发展,如今许多开发者运用其他不用的编程语言来编写Android应用程序,如今已经不再是以前那种只允许运用Java语言来开发Android应用程序的单调局面,因此众多开发者更加欢迎Android平台,Android已经成为第一个真正的开放式操作系统。 1.2 研究的目的与意义 进入互联网时代之后,随着人们对信息需求量,准确性的加大。人们对时间,日期的准确性有更大的需求,传统的日历已经不能满足人们的要求,电子万年历应运而生,大大方便了人们对时间日期的掌握,使每个用户都能随时在电脑旁边掌握日期,节日等信息。但是随着进入21世纪——移动互联网高速发展的时代,人们每时每刻都在使用移动终端,智能机已经被普及,大量进入人们手中,人们不管在何时何地都能利用移动终端来查看各类消息等,当然无论在任何时候,人们需要准确地掌握日期、节日,提醒等重要消息,手机版日历提醒系统就在这样的大背景下被开发出来。本文提到的日历系统是一款专注于为用户提供时间管理的Android软件,兼备公历、中国农历、各类节日、实时提醒等信息,方便用户每一天的生活。几乎在每一台Android

1 Android系统简介及开发环境的搭建

1了解Android系统 1.1 Android系统介绍 Android是Google 开发的基于Linux 平台的、开源的、智能手机操作系统。Android 包括操作系统、中间件和应用程序,由于源代码开放,Android 可被移植到不同的硬件平台上。 围绕在Google的Android 系统中,形成了移植开发和应用程序开发两个不同的开发方面。手机厂商从事移植开发工作,应用程序开发可以由任何单位和个人完成,开发的过程可以基于真实的硬件系统,还可以基于仿真器环境。 作为一个手机平台,Android 在技术上的优势主要有以下几点: ●全开放智能手机平台 ●多硬件平台的支持:应用程序可通过标准API访问核心移动设备功能。 ●使用众多的标准化技术:可以轻松的嵌入HTML、JavaScript等网络内容 ●核心技术完整,统一:应用程序是平等条件创建的,可被替换或扩展。 ●应用程序可以并行运行。Android是完整的多任务环境,在后台运行时,应用程 序可生成通知引起用户注意。 ●完善的SDK 和文档 ●完善的辅助开发工具 Android 的开发者可以在完备的开发环境中进行开发,Android 的官方网站也提供了丰富的文档、资料。这些都使得Android 系统的开发和运行在一个良好的生态环境中。 1.2 Android系统的软件结构 Android 是一个开放的软件系统,它包含了众多的源代码。从下至上,Android 系统分成4个层次: ●第1 层次:Linux 操作系统及驱动; ●第2 层次:本地代码框架,包含各种类库和运行环境; ●第3 层次:Java 框架; ●第4 层次:Java 应用程序。 Android 的第1 层次由C 语言实现,第2层次由C 和/C++实现,第3、4层次主要由Java代码实现。对于Android 应用程序的开发,主要关注第3层次和第4层次之间的接口。 Android 系统的架构如图所示:

基于Android的日历系统的设计与实现

毕 业 设 计(论文) ` 院 系 控制与计算机工程学院计算机系 专业班级 软件工程1001班 学生姓名 指导教师 二○一四年六月 题 目 基于Android 的日历系统 的设计与实现

基于Android的日历系统的设计与实现 摘要 Android系统凭借其良好的用户体验、低廉的成本及高开放性产生了巨大的应用量和广阔的应用面。如今,基于Android系统的应用极为丰富,从输入法到影音播放器,从系统工具到网页浏览器,从社交网络客户端到学习办公助手工具,以及形式繁多的游戏应用,都有力体现了Android平台的强大的适应性和发展潜力。 而日历应用作为智能终端的出厂必备控件,更是Android系统中不可或缺的一部分。而应用开发商力求为客户带来更好的用户体验,将日历这一原本普通的生活用品打造成植于移动终端中的生活助手,且界面风格迥异,功能也是趋于多样化和一体化。 本文通过论述对基于Android的日历系统的开发的全过程,研究了Android系统的开发环境、核心构架、主要组件,展示了开发移动应用的一般过程,并对Android平台的背景、现状和发展前景进行了讨论。本次项目所实现的日历系统,除了最基本的日期信息查询功能外,还具备了公历转换农历功能、指定日期跳转功能、当天日期定位功能和日程管理功能。通过转换功能,用户可将希望查询的公历日期转为农历日期;如果用户想知道某一天或某个月有什么节日,可以使用跳转功能;在主界面没有显示当月日期时,用户可通过定位功能回到当天日期;而日程管理功能则为用户提供了类似备忘录的平台。 关键词;Android;移动终端;手机日历;移动应用开发

基于Android平台的日历系统的设计

基于Android平台的日历系统的设计

基于Android平台的日历系统的设计 摘要:针对智能手机用户对日历的需求,基于Android内核和架构,设计了自定义控件和相关算法,实现了对日历的查看、日期切换、节日查询等多项功能,并附加了记事本、身体健康数据记录等常见功能,体现了日历系统的实用性和方便性。 关键词:Android;日历查看;节日查询 中图分类号:TP311 文献标识码:A 文章编号:1009-3044()12-0058-02 1 概述 这是一个移动互联网应用越来越普遍的年代,智能手机的用户群体越来越广大,随处可见拿着手机的人群。随着生活节奏的加快,人们对信息需求量越来越大,对信息准确性要求越来越高,这些都要基于对时间和日期的更高和更多的需求,传统的日历已经不能满足人们的要求,手机平台上的日历系统应运而生,用户能够随时经过手机掌握日期和节日等信息。 本设计的预期目标为: 1)功能强大:除了日历的基本功能(查看日期)外,还实现了农历阴历互转、健康查询、日期查询、每日签到等功能。 2)操作方便:对于Android手机用户来说,本软件使用方便简单,功能使用方法一看便知,大大减少了用户的操作难度。

2 关键性技术 2.1 Android平台 Android是一种开放源码的操作系统,是现在智能手机采用的主流操作系统。Android操作系统最初由AndyRubin开发,最初只能使用Java语言进行基于Android平台的应用程序的开发,随着技术的成熟,Android快速发展,现在已经能够使用其它编程语言来进行基于Android平台的应用程序开发,因此越来越多的设计开发人员投入到基于Android平台的应用程序开发中,Android平台得到发展,充分体现其开放性。 2.2 XML技术 XML,即可扩展标记语言,用于标记电子文件使其具有结构性的标记语言,能够用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 3 需求分析 3.1 系统需求 日历系统的用户是Android手机用户群体,因此,系统要满足大部分Android用户的需要,需要具备查看日历及相关的一些功能。 3.2 技术需求 日历系统采用现在最火的移动终端系统Android系统,利用分层设计的原则。需要开发人员熟悉Android平台和Java编程,

基于Android考试系统软件开发设计

毕业实习报告 题 目: 基于Android 考试系统软件开发设计 南昌航空大学信息工程学院 20 16 年 1 月 16 日 姓 名: 专 业: 通信工程 班级学号: 12042243 同组人 : 指导教师:

前言 (1) 第一章软件开发环境 (2) 1.1 JDK安装 (2) 1.2 Android SDK安装以及系统设置 (2) 1.3 Eclipse安装以及ADT工具的安装 (2) 1.4 Android平台特点 (3) 1.5 Eclipse简介 (3) 1.6 Android SDK简介 (4) 1.7 ADT简介 (4) 第二章需求分析 (5) 2.1设计平台介绍 (5) 2.2题目描叙 (5) 2.3需求分析 (5) 2.4设计思路 (6) 第三章系统结构 (7) 3.1系统整体模块 (7) 3.2登录注册模块 (7) 3.3选题模块 (7) 3.4答题模块 (7) 3.5结果显示模块 (8) 3.6程序逻辑结构 (8) 第四章系统工作原理 (8) 4.1客户端程序设计 (9) 4.2界面布局 (9) 4.3 题目读取 (11) 4.4判题算法 (12) 4.5数据交互 (14) 总结 (15) 参考文献 (16)

移动互联网时代的来临,直接促进了搭载智能操作系统、具有强大扩展性的智能手机、平板电脑等移动终端产业的蓬勃发展。来自美国最大的风险投资机构KPCB的数据显示,全球智能手机出货量正在以远高于台式电脑、笔记本电脑出货量的速度快速增长。搭载安卓操作系统的智能手机目前已经成为市场上最炙手可热的智能产品,安卓有望成为智能手机市场主导力量。据业内统计,目前国内的Android研发人才缺口至少30万。由于目前Android技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android 人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等内容需求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此Android人才的就业前景也非常广泛。 本次设计过程包含需求分析、总体设计以及详细设计。需求分析从总体上得出设计中可能要实现的模块。总体设计是对需要分析的进一步细化,掌握大致的实现过程。而详细设计则是精确到设计中的每一个细节,如何实现和解决遇到的一些问题。本系统的难点在于如何用较好的算法处理判题和记分策略,设计中采取的舍弃首行做法和各类题型分离处理方式,而且软件工程的设计方法,并且可用于实际开发中去。

(开题报告)基于Android的日程表管理系统设计与实现--

基于Android的日程表管理系统设计与实现 一.课题的意义 Android是由Andy Rubin创立的一个手机操作系统,后来被Google公司收购。Google公司希望与各方共同建立一个标准化、开放式的移动电话软件平台,从而在移动产业内形成一个开放式的操作平台。 目前使用Android系统的手机的数量已经超越iPhone,Android系统已经成为全球使用量最大的手机系统。 相关数据显示:1.Android用户已经达9亿,不就会达到10亿; 2.仅有10%的国家没有被Android覆盖 3.人才需求仍然巨大。智能招聘网站上每天大约有2000多个Android人才招聘。 Android的原意为“机器人”,Google将Android的标志设计为绿色机器人,不但表达了字面意思,而且表达Android系统是一个符合环保概念、轻薄短小、功能强大的移动系统,意在使其成为第一个真正为手机打造的开放并且完整的系统。 随着智能移动设备和物联网的快速发展,对于智能手机的发展前景,人们更希望将大部分生活所需的直接用一部智能手机就可以搞定。比如:各种支付,手机开锁,手机当遥控器等等。 以往,我们都是用备忘录来记录我们的日程安排,在这个注重效率和便利的快节奏社会,这或多或少给我们生活带来了些不便。手机日程管理系统可以为人们日常生活提供方便,而且能让我们更充分的利用时间,规划我们的生活,让我们的生活有条不紊。我们知道,传统的备忘录大多数是用便签纸或者笔记本来记录,其带来了些不便,如易丢失、携带不便以及容易损坏等。而手机,我们却

往往是生活必备品,联系好友、上网冲浪以及视频娱乐等,我们都可以用手机实现。因此,手机日程管理将代替传统备忘录。我们可以随时随地拿出手机查看我们的日程安排,而且手机日常管理系统,还提供到点提醒功能,让我们能够准时完成我们的日程安排。手机日程管理系统就显得很有必要,如果有一个很好的手机日常管理软件,就可以大大方便人们的生活。 This barrier to application development began to crumble in November of 2007 when Google, under the Open Handset Alliance, released Android. The Open Handset Alliance is a group of hardware and software developers, including Google, NTT DoCoMo, Sprint Nextel, and HTC, whose goal is to create a more open cell phone environment. The first product to be released under the alliance is the mobile device operating system, Android. (For more information about the Open Handset Alliance, see https://www.360docs.net/doc/6f6538077.html,.) With the release of Android, Google made available a host of development tools and tutorials to aid would-be developers onto the new system. Help files, the platform software development kit (SDK), and even a developers’ community can be found at Google’s Android website, https://www.360docs.net/doc/6f6538077.html,/android. This site should be your starting point, and I highly encourage you to visit the site. 二.基本概况及发展趋势 目前,安卓应用程序发展十分迅速,各种各样的应用程序都能在安卓市场中找到,日程管理软件业随处可以见。其中,日程管家、日程表、日程备忘以及课程表在安卓市场上都有相当大的使用量,甚至很多知名企业也参与开发此类应用程序,如影响力比较大360公司开发的 360 课程表。此类软件在网上都有相当多的好评,可见,其对人们生活的带来了相当大的便捷。 虽然,该类应用有很多,但没有专门针对大学生开发的具有明显特色的一款软件。在大学生中,沉重的学习压力,凌乱的作息安排,上课地点的不断更换,临时课程的添加,让我们没有多余的心思去记那繁琐的教室、课程。因此,对于日程管理系统的开发和应用的改善就显得尤为重要。因此设计一个多元化,功能全面的日程管理系统尤为重要。日程管理系统是否实用直接影响其的使用量,通常,日程可分为日程安排、日历、课程表三大类。日程安排,大学生可能用的不多,但日后成为上班族就会用的频繁。日历,在生活中也是不可或缺的。课程表,适应于对学生做学习计划及上课课程提醒,便于学生合理利用时间。本项目旨在设计一个将日程安排,日历和课程表完美结合的日程管理系统,大大提高用户交互性及系统完善性。 三.课题要求及设计方案 3.1 设计主要内容:

基于Android系统手机通讯录管理软件的设计与开发_毕业设计

重庆理工大学毕业论文基于Android的通讯录软件重庆理工大学 毕业设计 题目基于Android系统手机通讯录 管理软件的设计与开发 二级学院计算机科学与工程学院 专业软件工程 班级08软件工程3班级 时间2011/9 - 2011/10

摘要............................................................................................................................................ I Abstract ............................................................................................................................................. II 第一章绪论. (2) 1.1项目研究背景 (2) 1.2项目研究的目的及意义 (2) 1.3系统主要实现内容与实现方式 (3) 1.3.1系统主要实现内容 (3) 1.3.2安卓系统开发的方法 (3) 1.3.3 系统的开发平台 (4) 1.4系统开发需用到的技术支持 (4) 1.4.1 Java语言 (4) 1.4.2 Android (5) 第二章系统分析 (6) 2.1系统可行性分析 (6) 2.1.1技术可行性 (6) 2.1.2经济可行性 (6) 2.1.3操作可行性 (6) 2.2需求分析 (6) 2.2.1 Android通讯录的使用意义 (7) 2.2.2外部事件 (7) 第三章系统概要设计 (8) 3.1系统总体设计 (8) 3.2处理流程设计 (9) 3.2.1业务流程图 (9) 3.2.2数据增加流程图 (10) 3.2.3数据修改流程图 (11) 3.2.4数据删除流程 (12) 3.3 数据库设计 (12) 3.3.1 SQLite数据库简介 (12) 3.3.3 数据库表结构 (13) 第四章系统详细设计 (13) 4.1联系人浏览模块 (13) 4.2查看联系人模块 (16) 4.3编辑联系人模块 (17) 5.4查找联系人模块 (18) 4.5关于 (19) 第五章系统测试与调试 (19) 5.1测试目的 (19) 5.2程序调试 (20) 5.3 测试的主要内容 (20) 5.4测试用例 (21) 5.4.1功能测试—添加联系人 (21) 5.4.2功能测试—查看联系人 (21) 5.4.3功能测试—删除联系人 (22)

相关文档
最新文档