保定职业技术学院
毕业设计开题报告
|
2014年 9 月 10 日
一、开题报告
1.课题背景:
情感上,你有困惑、迷茫和不确定吗?他/她究竟爱不爱我?
购物中,你患有选择困难症吗?这个好看还是那个好看?
生活上,你有10万个为什么吗?
只要你提问,就会有解答。
Hi帮——让朋友帮你解决所有难选的纠结和困扰。
2.文献综述(本课题在国内外研究现状):
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。2005年由Google收购注资,2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智能
的IOS系统已经占据全球智能手机市场的91.1%,而其中,Android占据市场的70.1%,远远领先排名第二的IOS[1]。
手机平台。据2013年市场研究公司IDC研究报告显示Android 系统和苹果公司
入迷茫,深入抉择面对困难时可以向你的朋友进行求助。
Android平台开发用的是Java语言,不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。Android基于Linux2.6提供核心系统服务,例如:内存管理、进程管理、网络堆栈、安全、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。分层的好处就是使用下层提供的服务而为上层提
供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(SeverAccess Point),也就是高内聚、低耦合,使用Android系统和Java语言来开发软件优点有很多[2]。
Android有很多优点。
a)开源 Android系统是开源的,“开源”是用于描述那些源码可以被公众使用的软件,
并且此软件的使用、修改和发行也不受许可证的限制。Android操作系统的开源意味着开放的平台允许任何移动终端厂商加入到Android联盟中来。因为Android的开源,专业人士可以利用开放的源代码来进行二次开发,打造出个性化的Android。例如中国的MIUI就是基于Android2.3原生系统深度开发的Android系统,其与原生系统相比有了较大的改动。而且开放性可以缩短开发周期,降低开发成本。如此一来跟有利于Android的发展[3]。
b)自由度高
Android操作系统给予了用户跟高的自由度,熟悉Android的都清楚:用户可以根据自己的喜好来设置手机界面,Android的应用市场甚至上还有各式各样的启动器来供用户自己选择,让自己的手机与众不同。例如,用户要是喜欢HTC的操作界面,便马上可以在应用市场上找到,甚至还能模仿IOS的界面。相比于IOS操作系统,Iphone手机只有一成不变的手机界面,不能对其进行更改[4]。
c)选择多样化
Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生,由于Android
Android为操作系统的机型已经达到了几十上百种。但是这些功能、机型上的差异不会影响到数据的同步、软件的兼容等等。
的开放性,众多的厂商为了迎合大众会推出层出不穷的新产品。迄今为止,以
纽带,而Android平台手机将无缝结合这些优秀的Google服务[5]。
Java有很多有点
a)使用最广泛
Java是目前使用最为广泛的网络编程语言之一。它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点[6]。
b)简单
不要将简单误解为这门语言很干Java语言简单是指这门语言既易学有好用。
瘪。你可能很赞同这样的观点英语要比阿了伯语言容易学。但这并不意味着英
语就不能表达丰富的内容和深刻的思想,许多文学若贝尔奖的作品都是英文写的。Java和 C++是两种完全不同的语言,他们各有各的优势,将会长期并存下去,Java语言和C++语言已成为软件开发者应当掌握的语言。如果从语言的简单性方面看,Java要比 C++简单,C++中许多容易混淆的概念,或者被Java弃之不用了,或者以一种更清楚更容易理解的方式实现,例如,Java不再有指针的概念
[7]。
c)面向对象
基于对象的编程更符合人的思维模式,使人们更容易编写程序。在实际生活中,我们每时每刻都与对象在打交道。Java语言与其它面向对象语言一样,引入了类的概念,类是用来创建对象的模板,它包含被创建的对象的状态描述和方法的定义[8]。
d)与平台无关
与平台无关是Java语言最大的优势。其它语言编写的程序面临的一个主要问题是操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程
序出现错误或无法运行。Java的虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了Java虚拟机JVM的计算机上正确的运行,Sun公司实现了自己的目标“一次写成,处处运行”。
e)解释型
C,C++等语言,都是只能对特定的CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CUP有关,Java不像C++,它不针对特定的CPU芯片进
器码的文件,可以在提供了 Java虚拟机 JVM 的任何系统上被解释执行。Java被设计成为解释执行的程序,即翻译一句,执行一句,不产生整个的机器代码程
行编译,而是把程序编译为称做字节码的一个“中间代码”。字节码是很接近机
同一个程序,码经过仔细设计,很容易便能使用JIT即时编译方式编译技术将字节码直接转
化成高性能的本地机器码,Sun公司在 Java 2发行版中提供了这样一个字节码
编译器——JIT(JustIn Time),它是Java 虚拟机的一部分。Java运行系统在提供JIT
的同时仍具有平台独立性,因而“高效且跨平台”对Java来说不再矛盾。如果
把Java 的程序比做“汉语”的话,字节码就相当于“世界语”,世界语不和具
体的“国家”关,只要这个“国家”提供了“翻译”,就可以再快速地把世界语翻译成本地语言[9]。
f)多线程
Java的特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生多个任务在同时执行的错觉,因为,目前的计算机的处理
器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速地切换,
处理器速度非常快,远远超过了人接收信息的速度,所以给人的感觉好象多个任务在同时执行。C++没有内置的多线程机制,因此必须调用操作系统的多线程功
能来进行多线程程序的设计[10]。
g)安全
当你准备从网络上下载一个程序时,你最大的担心是程序中含有恶意的代码,
比如试图读取或删除本地机上的一些重要文件,甚至该程序是一个病毒程序等。当你使用支持Java的浏览器时,你可以放心地运行Java的小应用程序JavaApplet ,不必担心病毒的感染和恶意的企图,Java小应用程序将限制在Java运行环境中,不允许它访问计算机的其它部分[11]。
h)动态
Java程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序及类库,而不像C++那样,每当其类库升级之后,相应的程序都必须重新修改,编译[12]。
3.课题的目的、意义:
Hi帮是一款全新的社交应用,趣味的投票形式,既可以参与投票,
可以公开发起也可以匿名询问,可以发布文本票和数字票,同时可以进
又可以发起自己对某一意见的投票,寻求朋友,陌生人,上帝的建议,
a)本课题要研究或解决的问题
在网络飞速发展的今天,在社会更新换代的今朝,很多自己纠结的问题但又
不好意思打电话问朋友,依靠这款软件不仅可以匿名向好友说出自己纠结的问题,
也可以帮助其他朋友解决一些纠结的问题。这样既帮助了自己也帮助了他人。
本课题开发的Android系统的投票软件APP解决的问题分五大模块:广场
模块,票夹模块,发起模块,票友模块和我的模块。这五个模块相互独立又存在
一定的联系。
1)广场模块主要展示好友、官方和自己发起的投票,用户可以在此页面进行
投票、收藏等业务。
2)票夹模块分为:参与的、发起的、收藏的。参与的展示自己投过票的信息 ;
发起的展示自己所发的投票;收藏的展示自己收藏的投票。
3)发起模块主要是用户自己发起投票的页面,分为文本票和数字票。
4)票友模块主要展示自己的票友和好友。
5)我的模块主要展示自己的个人信息,以及修改自己的个人信息。
首先完成这些模块的基本功能,在可能的情况下,再做更多的扩展,实现更
多的功能,更好的方便用户的使用。
b)本课题拟采用的研究手段及途径:
本课题以Java为开发语言,EclipseAndroid ADT等开发工具首先进行需求分析,依据分析结果建立相关的数据表,并且完成系统的功能模块图,确定系统的基本功能,然后完成相关功能的源代码编写,初步完成系统的制作,随后进行细节的修改,逐步完善系统功能。最后进行系统测试,检查系统存在的错误,并且进行相应的修改,经过反复的测试修改,最终完成系统初期的愿望,并完成文档的编写后将论文整理成册。
5. 预期达到的目标:
6.课题进度:
9月底完成整体框架的搭建,以及发起投票的实现
10月底完成广场票夹的功能
11月底完成我的模块,并完成交叉测试。
参考文献
1刘卫国.Android的架构与应用开发研究[J].计算机系统应用.2008(06):20~22.
2李刚.疯狂Android讲义[M].北京:电子工业出版社,2011.
3郑莉.计算机入门语言[J].计算机教育,2006(07):25~26.
4公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化.2008(05):8~12.
5杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社.2010.
6张鹏.Eclipse插件开发学习笔记[M].北京:电子工业出版社,2008.
7Grant Allen ,Mike Owens. The Definitive Guide to SQLite(Second
Edition)[M].北京:电子工业出版社,2012.1. 8 康德尔,达西,张魏,李卉.Android移动应用开发从入门到精通[M].北京 :
10 朱平.Java程序设计教学[J].湖北教育学院学报,2006,23(02):46~48..
11 杜国庆,龚越新.浅谈新型网络地图服务[J].2006年8 月4(29):10~13.
12差沙,地狱男爵.用Android开发手机应用[J].程序员2008(01):18~20.
二、指导教师意见
|
组长(系主任):刘海军 |