智能移动终端应用开发
设计报告
(20XX/20XX学年第X学期)
题 目 : 通讯录 专 业 : 小组成员 : 设计成绩 :
20XX年X月XX日
1.1课题背景
随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。
Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。
根据中国互联网信息中心(CNNIC)发布的消息称,截止2011年底,中国网民数量达到了惊人的5.13亿,正式迈入了“5亿网民”时代,其中手机网民达到3.4亿,手机上网成为网络介入的一个重要发展方向。
1.2 手机操作系统的发展现状
Symbian OS(塞班) 由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。
(1) 优点:过去Symbian系统一直占据智能系统的市场霸主地位,系统能力和易用性等各方面很强!
(2) 缺点:一般配置的机型反映较慢,对主流的媒体格式的支持性较差,不同版本的软件兼容性不好。
(3) 支持厂商:芬兰诺基亚(英国索尼爱立信、韩国三星已宣布退出塞班阵营)。
Windows Mobile(微软) Microsoft 用于 Pocket PC 和 Smartphone 的软件平台,此系统将熟悉的 Windows 桌面扩展到了个人设备中。
(1) 优点:界面和操作都和电脑上的Windows十分接近,对于机友来说十分熟悉又上手;各种保存在电脑或手机里的信息、资料可以轻松实现共享;有大量的应用软件可供用户选择。
(2) 缺点:占用系统资源高、容易系统崩溃
(3) 支持厂商:中国台湾HTC、韩国三星电子、韩国LG、英国索尼爱立信、阿联酋i-mate,目前各大山寨厂商也同样生产着大量WM产品。
1
iOS(苹果iPhone系统) 苹果机专用系统,是基于Unix内核的图形化操作系统;一般情况下在普通pc上无法安装的操作系统。
(1) 优点:全触摸设计,真的是一次手机革命,娱乐性能强,第三方软件多 (2) 缺点:系统封闭 (3) 支持厂商:苹果公司
Android(Google公司) Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 ——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。
(1) 优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种
融入全部Web应用的单一平台
(2) 缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差,
导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。
2、Android的架构概述
Android是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定一个层次的系统架构,Android的架构图如下图所示:
2
分析:
第一层:Linux操作系统和驱动(Linux kernel),由C语言实现。
Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型。Linux内核也作为硬件和软件栈之间的抽象层。
除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理。
第二层:本地框架和Java运行环境(LIBRARIES 和 ANDROID RUNTIME)由C/C++实现。包含C/C++库,被Android系统中不同组件使用,它们通过Android应用程序框架为开发者进行服务。
系统C库:(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库。
多媒体库:基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式。
Suface Manager:显示子系统管理器,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore:一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图。
SGL:Skia图形库,底层的2D图形引擎。
3D libraries:基于OpenGL ES1.0 API的实现;该库可以使用硬件3D加速(如果可用),或者使用高度优化的3D软加速。
FreeType:位图(bitmap)和矢量(vector)字体显示。
Android运行环境(ANDROID RUNTIME):提供了Java编程语言核心库的大多数功能,由Dalvik Java虚拟机和基础的Java类库组成。
Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀名为.dex的Dalvik可执行文件,该格式的文件
针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的类都是有Java编译器编译,然后通过SDK中的“dx”工具
转化为.dex格式由虚拟机执行。
Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。 第三层:Android应用框架(ANDROIDFRAMEWORK)
在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。
包含的框架入上图(不在陈述)
3
第四层:Android应用程序(APPLICATIONS)
注意:Android应用程序都是有Java语言编写的。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。
3、项目概述
要求用户通过软件能够方便地实现手机通讯录的基本功能。要求软件能够实现添加、保存、编辑、删除联系人的功能。添加的联系人中应具有姓名、手机、座机、邮箱、地址等基本信息。通过打开的联系人可完成呼叫和发送短信等基本通讯功能。 3.1 用例分析
图1显示了联系人功能模块的用例。包括了查看联系人详细信息,编辑联系人信息,新建联系人,对选中的联系人,可以对其进行删除、拨打电话、发送短信的操作。
新建联系人 拨打电话 发送短信 查看联系人 手机用户 编辑联系人 删除联系人
图1 联系人用例图
4
3.2 项目设计
当用户进入该功能时,程序默认选中第一个条目,当然用户可以任意选中任一条目。在被选中后,用户可以对该条目进行编辑、拨打电话、发送短信以及删除该联系人的操作。此外,通过功能键,用户可以新建联系人。该功能模块的流程图如图2所示:
结束 选则功能 选中条目 新建 编辑 删除 拨打电话 发送短信 输入新建联系人信息后保存 更新数据库 结束 图2 联系人流程图
4、小组分工
魏霄飞、徐永兴:查阅并整合相关资料,编写程序代码,测试和调试程序。 秦晓磊:软件界面设计与美化,相关美化资源的查找与制作。
5
5、系统实现
5.1 部分功能实现及截图展示
打开软件后的用户界面,此状态为无联系人。
点击菜单按钮,可看到新建联系人和退出的选项。
6
点击新建联系人选项,可看到需要填入新联系人的相关信息。
输入要新建的联系人相关信息后点击确认,系统将自动保存并返回列表界面。继续创建新的联系人,我们可以看到创建的联系人在界面上分列显示。
7
点击想要查看的联系人,保存的相关信息分列显示在界面上。
点击菜单按钮,可显示出对联系人的相关操作选项,可以完成删除、编辑、呼叫、发送短信等操作。
8
选择编辑联系人,能够对联系人的相关信息重新编辑。 选择发短信给联系人选项,则会跳转到短信界面,收信人自动填入该联系人号码。9
选择呼叫联系人选项,则会跳转到呼叫界面,呼叫号码为该联系人号码。 选择删除联系人选项,或者在联系人列表中长按某一联系人,可以删除联系人。10
6、收货与总结
在做课程设计的时间里,收获很大,在整个过程中,有彷徨过、动摇过、悲观过,但是最终还是坚持下来了,因为我指导所有的困难只有勇敢面对,直视问题,才能够真正的解决问题,因为悲观和空想是于事无补的。最后在小组成员的共同努力下,在自己的不懈努力下,所有问题都迎刃而解。总的来看,给我启示如下:
(1)任何问题都不会是问题,只要你有足够的意志力和耐心。其实在刚刚开始动手的时候就遇见问题了,因为我没有任何Android开发经验,所以有点无从下手的感觉。但是我后来决定安心下来,先好好的研究学习Android,于是,在自己练习了几十个小程序之后,开始对Android有了质的认识,然后开始了慢条斯理的设计之路。事实证明,只有功夫深,铁棒磨成针。
(2)做事要三思而后行。做任何事之前,一定要做好规划,切记盲目,特别是开发软件。因为如果你不严格按照软件开发各个生命周期的文档开发,可能会徒劳无功,事倍功半。像我们设计的时候,由于没有做好全面的规划,数据库的字段设计不好,而导致后来开发过程中屡屡受阻,不得不重新设计数据库,浪费了大量的时间和精力。
(3)要善于思考和请教。在这个世界上,一个人能做的事情永远是那么有限,所以要善于思考问题然后请教他人。刚开始,总是想自己一股脑的做,遇见问题自己只会盲目的去查找,费时费力。而来开始请教指导老师和同学,发现很多东西其实很简单,只是自己没想到,或者很多我不知道,他们却很清楚,给予了我很大的帮助,真的是事半功倍。
7、参考文献
[1] 盖索林.Android开发入门指南[M].北京:人民邮电出版社,2009 [2] 杨丰胜.Android应用开发解密[M].西安:机械工业出版社,2010.1~63 [3] 埃史儿.Java编程思想[OL]. 西安:机械工业出版社,2007
[4] 田俊静,张波,黄湘情.Android基础教程[M].北京:人民邮电出版社,2010
[5] 张利国,龚海平,王植萌.Android移动开发入门与进阶[M].北京:人民邮电出版社,2009
11
评 语 指导教师 成 绩 (签字) 年 月 日 12
因篇幅问题不能全部显示,请点此查看更多更全内容