基于Android系统的手机通讯录增强软件的实现
摘 要
Android系统在如今的移动终端上,是全球最热门的智能操作系统,不管对于普通消费者,开发人员或是手机厂商都具有很强的吸引力。这种吸引力来自于它美观的界面,丰富的应用,丰富的操作体验,以及系统的开放性。并且,这种吸引力在Android系统的不断跟新中得到进一步加强。
本课题的目标是开发一款基于Android系统的手机通讯录增强软件。在开发过程中,主要研究了以下内容:(1)Android程序生命周期的研究;(2)Android消息组件的研究;(3)SQLite数据库的研究;(4)基于Android系统的QR码生成与解析的研究;(5)Android布局Layout的研究;(6)Android自定义控件的研究。通过这些研究和学习,本课题基本实现了手机通讯录的功能。
通过在Android系统上的开发学习,进一步认识了Android这个系统的优缺点,也进一步对移动互联网有了新的认识。本论文将系统地介绍基于Android系统的手机通讯录增强软件的开发过程、测试过程以及其主要的功能。该软件能为用户提供新鲜的通讯录操作体验以及便捷的使用方法,使传统的通讯录功能得到进一步增强。
关键字:通讯录安卓智能手机
目 录
1. 绪论 1
1.1课题背景 1
1.2课题的目的和意义 2
2. 开发环境和主要技术 3
2.1开发环境 3
2.1.1硬件环境 3
2.1.2开发工具 3
2.2主要技术 3
2.2.1 Activity生命周期 4
2.2.2 Android BroadcastReceiver 5
2.2.3 Android数据存储 5
2.2.4 第三方jar包 7
3. 总体设计 9
3.1软件结构图 9
3.2数据库设计 9
3.2.1数据字典 10
3.2.2关系模型 12
3.3功能模块设计 12
3.3.1联系人管理模块 13
3.3.2短信管理模块 13
3.3.3通话管理模块 14
3.3.4定时提醒模块 14
3.4项目目录结构 14
3.5 UI设计 16
3.5.1主要界面设计 16
3.5.2自定义控件设计 17
4. 详细设计及重点代码介绍 18
4.1配置文件 18
4.1.1配置程序入口 18
4.1.2配置权限 18
4.2 QR Code生成和扫描 19
4.2.1 生成QR Code 20
4.2.2扫描QR Code 21
4.3接收短信 22
4.4手势操作 24
5. 测试 26
5.1黑盒测试 26
5.2测试分析 27
总结 29
参考文献 30
致谢 31
1.绪论
1.1课题背景
随着移动互联网大潮来袭,Android操作系统广为人知。凭借着丰富的应用,多样的操作体验,Android系统牢牢占据着移动终端操作系统的霸主地位。应用方面,相关数据显示,在Android应用市场中,社交类应用的受欢迎仅次于游戏排在第二。可见,社交类应用的潜力很大。
根据以上的分析,可以看出Android智能系统在移动终端市场占据上风。在手机应用方面,社交类应用深受广大用户喜爱。因此,开发一款手机应用,应尽量挖掘它的社交功能,吸引用户。手机通讯录也应如此。而传统的手机通讯录功能简单,内容单一,没有充分挖掘社交功能,而其实手机通讯录中存放的一般都是自己熟识的人,如亲朋好友,同学等,这些人之间可以有更多可以共享的信息,可以使彼此更了解。本课题充分利用这一特点,致力于开发一款更强大的通讯录软件。另外,传统的通讯录软件添加联系人繁琐,需要逐字逐字输入信息,使智能手机显得不智能。因此本课题也致力于解决这一问题,使添加联系人更加快捷、智能。
纵观现在Android应用市场的多种通讯录软件,下载量比较多的有以下几款软件:“QQ通讯录”、“号簿管家”、“和通讯录”、“蜡笔同步”、“通通电话”、“号簿助手”、“触宝号码助手”、“搜狗号码通”等。他们的优点主要包括:1、良好的用户操作体验;2、大多支持云端同步联系人;3、智能拨号、搜索;4、自定义分组5、发送图片等。除了云端同步,这些功能本课题都应努力实现。另外,这些应用也有不足,主要包括:1、没有充分挖掘联系人信息;2、没有充分挖掘社交功能,功能传统,没有突破;3、添加联系人繁琐等。以上不足,是本应用要努力实现改进的。
根据市场预测,未来手机系统市场Android将依然占据超过一半的市场份额,发展前景依然良好,Android平台的手机应用市场也将继续发展扩大,应用数量将持续增加。伴随着搭载Android系统的手机的热销,Android应用下载量也将进一步增加。其中社交软件仍将是最受公众喜爱的软件类型之一。因此,开发一款Android平台的更强大,更便捷,更不一样的手机通讯录软件是很有必要的。
1.2课题的目的和意义
本课题致力于开发一款手机通讯录增强软件,可以实现传统的通讯录功能,包括拨打电话,收发短信,群发短信,保存通话、短信记录,手动添加、修改、删除联系人信息等。除此之外,本课题还将努力实现通过扫描二维码快速添加联系人功能;定期问候联系人功能,即根据某些重要信息(如生日,节日),自动以闹钟的形式提醒用户或自动发送短信问候,或者也可以手动设置提醒时间;同样基于联系人的信息,本课题还将挖掘更多的特色小功能;对联系人不一样的分类功能,即根据联系人的信息对联系人进行基于圈子的分类,如在同一城市的好友,同一工作的好友,单身的好友等,用户可以把他们的信息在通讯录好友之间以短信的形式进行分享,介绍相互认识,强化人们之间的联系。本课题意在完善市场上的通讯录软件添加联系人繁琐,没有充分利用联系人信息、挖掘社交功能等不足,致力于强化用户与手机通讯录中的联系人之间的联系,为用户提供方便、实用、不一样的通讯录使用体验。
本课题可以使用户在使用通讯录添加联系人时更快捷,并且能够改变传统通讯录多年来都是简单的实现拨打电话和收发短信的功能的现状,使通讯录更加社交化,丰富用户体验,产生更好的用户粘性,真正起到加强人与人之间联系的作用。
2.开发环境和主要技术
本章将详细阐述本课题用到的开发环境和主要技术,以及第三方Jar包。开发环境主要包括Eclipse3.7,Android SDK;主要技术包括java,Activity
生命周期,Android数据存储,Android BroadcastReceiver;第三方jar包,包括pinyin4j.jar,zxing.jar。
2.1开发环境
2.1.1硬件环境
本课题所用到的硬件开发环境包括PC机和智能手机。PC机装有64位Windows7操作系统,处理器为Intel(R) Core(TM) i3,安装内存4G;智能手机装有Android4.1.2操作系统,处理器为ARM Cortex-A9 1.2GHz双核处理器,运行内存1G,分辨率为480*800。
2.1.2开发工具
本科题所用的开发工具是Eclipse3.7。Eclipse作为一个开源项目,它支持Java语言的开发,C语言的开发等等,它为开发者提供一个全面的开发平台。Java开发主要由Eclipse中的JDT支持、C语言开发主要由CDT支持。Eclipse3.7在2011年发布。
为了进行Android开发,还需安装Android SDK。Android SDK 指的是特定于Android开发的工具包,主要为Android开发人员提供API和Android模拟器。Android模拟器是Android SDK自带一个模拟手机的模拟器。开发人员编写完程序后,可以通过电脑上安装的Android模拟器进行调试,而不用连接真实手机硬件来测试程序。Android模拟器功能非常强大,它支持开发人员写的程序调用其他程序,播放音、视频和访问网络等。Android模拟器的调试能力也很强大,它可以模拟收发短信或拨打、接听电话,也可以通过控制台显示内核的输出等。为了使Eclipse和Android SDK建立连接,还需安装ADT插件。
2.2主要技术
2.2.1 Activity生命周期
Android系统支持多任务模式,它包括5种类型的进程:空进程,后台进程,服务进程,可见进程和前台进程。
5种类型的进程中,属前台进程的优先级最高。进程优先级如图2-1所示:
图2-1 进程优先级
Activity属于前台进程,Activity有三种基本状态,都属于它生命周期的一部分:
l 活动状态:这个时候活动在显示屏幕前活动,并且用户能够操作它。
l 暂停状态:这个时候活动仍处于可见状态,但用户不能对其进行直接操作,比如弹出了一个对话框。
l 停止状态:这个时候活动是不可见的,但是仍然在内存中运行。
Activity生命周期如图2-2所示:
图2-2 Activity生命周期
2.2.2 Android BroadcastReceiver
BroadcastReceiver是Android中重要的组件之一,它可以接收多种消息,包括短信和电话,网络变化,电量变化等等。本课题主要用它来接收短信和接听电话。使用中,需要登记注册,有两个方法,它是动态和静态的注册登记。
1) 静态注册。这种注册方法是在配置文件中进行配置,本课题用到的是静态注册,静态注册的好处是当应用程序关闭后,如果有相关消息传来,注册的Receiver也能接收到消息并进行恰当的操作。静态注册的代码如下:
android:enabled="true" >
2) 动态注册。动态注册是通过Java代码进行注册,这种注册方式与静态注册相反,即当应用程序关闭后,注册的Receiver不能对消息做出响应。在实际应用中,如果用的是动态注册,要记得完成操作后解除注册,否则会报错。
2.2.3 Android数据存储
Android系统提供了多种方式存储数据,根据不同的需要选择恰当的存储方式很有必要。本课题主要用到文件存储和SQLite数据库存储。
1) 文件存储
Android文件存储主要用到两个函数:
l openFileOutput()方法,当需要把信息写入文件时使用该函数,本课题用于保存图片信息。
l openFileInput()方法,当需要从文件中读取某些信息时使用该函数,本课题用于读取图片信息。
Android系统支持四种文件操作模式,如表2-1所示:
表2-1 四种文件操作模式
模式 说明
MODE_PRIVATE 私有模式,缺陷模式,文件仅能够被文件创建程序访问,或具有相同UID的程序访问。
MODE_APPEND 追加模式,如果文件已经存在,则在文件的结尾处添加新数据。
MODE_WORLD_READABLE 全局读模式,允许任何程序读取私有文件。
MODE_WORLD_WRITEABLE 全局写模式,允许任何程序写入私有文件。
2) 数据库存储
相对于Oracle等大型数据库,SQLite数据库可以说是小而精,主要用于小型的嵌入式系统,如手机。它具备如下优点:
l 效率高,占用的空间、资源较少。
l 开发时不需要进行繁琐的配置。
l 能处理大多数数据操作任务。
SQLite数据库由8个主要的模块组成,这些模块将复杂的数据操作分解为若干小的任务去解决。
原文链接:http://www.jxszl.com/jsj/qrs/759.html