届别2015届学号201114100130毕业设计(论文)基于Android平台的校园新闻app的开发姓名李威系别、专业数学与金融学院信息与计算科学导师姓名、职称刘智钢教授完成时间2015年5月目录摘要..........................................................IAbstract........................................................II1绪论..........................................................12设计原理和方法.................................................12.1Android操作系统分析......................................12.2xml文件及pull解析介绍...................................32.3开发工具Eclipse介绍分析..................................33系统分析.......................................................43.1研究目的.................................................43.2需求分析.................................................43.3系统设计的原则............................................44系统设计.......................................................54.1数据库的设计..............................................55详细设计.......................................................85.1首页主界面................................................85.1.1功能描述.............................................85.1.2界面设计.............................................95.1.3具体实现及相关代码..................................105.2新闻模块................................................105.2.1新闻列表模块功能描述界面设计及主要代码实现..........105.2.2新闻详情:...........................................145.2.3新闻列表功能描述界面设计及主要代码实现..............145.3注册登录模块.............................................165.3.1功能描述...........................................165.3.2界面设计............................................175.3.3具体实现及相关代码..................................185.4爆料模块.................................................185.4.1功能描述...........................................185.4.2界面设计............................................195.4.3具体实现及相关代码..................................19结论...........................................................21参考文献........................................................22致谢.......................................................23I摘要该软件,采用了xml解析技术中的Pull解析XmlPullParser工具解析,在xml文件中存储数据,模拟服务端的数据。客户端中采用了基于Sqlite数据库的一对多的android对象关系映射框架ormlite,对数据进行存储,及进行增删改操作,使用了Handler机制,采用消息队列的方式处理线程池中的各种请求。在图片加载使用了异步加载Image-Loader框架,加载网络数据时使用了Http协议。关键词:异步加载;ormlite;Handler;MaterialDesignIIAbstractThesoftware,usingPullXmlPullParseranalytictoolsinanalyticalXMLparsingtechnology,datastoredintheXMLfile,simulationserverdata.TheclientusesapairoftheAndroidobjectrelationalmappingframeworkormlitebasedonSqlitedatabase,fordatastorage,andCRUDoperations,theuseoftheHandlermechanism,processingallkindsofthreadpoolrequestbywayofmessagequeue.TheimageisloadedusingasynchronousloadingImage-Loaderframework,loadingthenetworkdatausingtheHttpprotocol.Keywords:asynchronousloading;ormlite;Handler;MaterialDesign11绪论随着当今社会的快速发展,互联网已经走进家家户户,而手机也渐渐的成为了我们日常生活中不可或缺的设备,随着3g,4g的到来,手机互联网也从开始的打电话,发短信,慢慢的升级为QQ聊天,看新闻,看视频,网上购物,听歌,玩游戏.....变得日益丰富了起来,而未来的发展趋势,在一定程度上也和手机密切相关,在互联网迅速发展的今天,手机app也如同雨后春笋般崛地而起,各种app在我们的生活中产生了很大的影响,QQ的出现,使我们与亲朋好友之间更加方便联系,各种新闻类app比如网易新闻,今日头条的出现,使得我们虽然不出门,但可以通过app了解各地新闻,等等。校园是一个丰富多彩的圈子,在这个圈子中,每天都有各种信息在圈子中流动,学校颁发的通知、系里面开展的活动、系里面发布的通知、系里面的讲座、学校的新鲜事、社团或学生会开展活动....等等很多这样的信息,而这款app正是在这样的背景下产生,目的将这些信息进行归类整理,并通过app进行传达,方便老师同学在第一时间掌握学校动态,app中也加入了爆料模块,这个模块提供一个共同的平台,在这个平台中,可以将自己身边的趣事,囧事,或者看到的不平事进行发表,给大家提供了一个交流的平台。2设计原理和方法2.1Android操作系统分析Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(OpenHandsetAlliance)开发。它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个Activity类(class)负责创建视窗(window),一个活动中的Activity就是在foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的Activity全部画面被其他Activity取代时,该Activity便被停止(stopped),甚至被系统清除(kill)。2View等同于J2ME的Displayable,程序人员可以通过View类与“XMLlayout”档将UI放置在视窗上,Android1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的AndroidHero手机即含有大量的widget。至于ViewGroup是各种layout的基础抽象类(abstractclass),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View与事件(event)息息相关,两者之间通过Listener结合在一起,每一个View都可以注册一个eventlistener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(VirtualMachine)。Bionic是Android改良libc的版本。Android同时包含了Webkit,所谓的Webkit,浏览器背后的引擎。Surfaceflinger是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的BionicLibc。Android采用OpenCORE作为基础多媒体框架。Android使用skia为核心图形引擎,搭配OpenGL/ES。skia与LinuxCairo功能相当,但相较于LinuxCairo,skia功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,SkiaGL源码被公开,目前Skia也是GoogleChrome的图形引擎。Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(DalvikVirtualMachine)。Dalvik虚拟机是一种“暂存器型态”(RegisterBased)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。Android的结构上由三层构成第一层次由C语言实现,第二层次由C和C++实现,第三层次主要由Java代码实现。第一层次和第二层次之间,从Linux操作系统的角度来看,是内核空间与用户空间的分界线,第一层次运行于内核空间,第2、3、4层次运行于用户空间。第二层次和第三层次之间,是本地代码层和Java代码层的接口。第三层次和第四层次之间,是Android的系统API的接口,对于Android应用程序的开发,第三层次以下的内容是不可见的,仅考虑系统API即可。由于Android系统需要支持Java代码的运行,这