Android短信备份系统毕业设计论文

更新时间:2024-03-17 09:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中南大学

本科生毕业论文(设计)

题 目 基于Android的短信息备份系统的设计

学生姓名: 徐婷

指导老师: 彭春华

学 院: 信息科学与工程学院

专业班级: 通信工程0803

完成时间: 2012.06

1

目 录

中 文 摘 要 .............................................................. I ABSTRACT .............................................................................................................................. I 第一章 绪 论 ........................................................................................................................... 1 1.1 研究背景 ............................................................................................................................ 1 1.2 研究的目的及意义 ............................................................................................................ 1 1.3 国内外研究现状 ................................................................................................................ 2 1.4 Android平台的不同之处 ................................................................................................... 3

1.4.1 Android—下一代平台 .............................................................................................. 3 1.4.2 免费开放源代码 ...................................................................................................... 3 1.4.3 为应用程序提供的―自由市场‖ ............................................................................... 3 1.5 本文设计内容及组织结构 ................................................................................................ 4 第二章 Android架构 ............................................................................................................... 5 2.1 Android平台的架构 ........................................................................................................... 5 2.2 Android的内核分析 ........................................................................................................... 6

2.2.1 内核在操作系统中的地位 ...................................................................................... 6 2.2.2 Android内核 .......................................................................................................... 7 2.3 Android应用的构成与工作机制....................................................................................11 2.3.1 Activity... .............................................................................................................. 10 2.3.2 Intent Receiver ..................................................................................................... 11 2.3.3 Service ................................................................................................................. 11 2.3.4 Context ................................................................................................................. 12 2.4 Android中的Intent ......................................................................................................... 12 2.4.1 抽象描述的内容 ................................................................................................... 12 2.4.2 Android解析Intent的过程 ................................................................................... 13 2.5 本章总结 ........................................................................................................................ 14 第三章 Android开发环境的搭建及测试 ............................................................................. 15 3.1 关于Eclipse ................................................................................................................... 15 3.2 配置开发环境 ................................................................................................................ 16 3.2 开发环境的测试 ............................................................................................................ 22 3.2.1 在Eclipse工程中导入Snake应用程序 .................................................................. 22 3.2.2 为Snake工程创建Android虚拟设备(AVD) .................................................... 22 3.2.3 为Snake工程创建运行配置参数 ........................................................................... 22

2

3.2.4 在Android模拟器中运行Snake应用程序 ...................................................... 23 3.3 本章总结 .......................................................................................................................... 23 第四章 Android提供的几种重要工具的使用 ..................................................................... 25 4.1 关于Android模拟器 ....................................................................................................... 25 4.1.1 Android虚拟设备AVD(Android Virtual Devices) .............................................. 25 4.1.2 Android SDK(Software Development Kit) 和AVD管理器 .................................... 25 4.1.3 指定AVD启动模拟器 ............................................................................................. 26 4.2 Android DDMS( Dalvik调试监视服务) .......................................................................... 26 4.2.1 DDMS的关键特性 ................................................................................................. 26 4.2.2 文件浏览器和模拟器控制 ..................................................................................... 27 4.3 Android 调试桥 ............................................................................................................. 27 4.4 本章总结 .......................................................................................................................... 28 第五章 Android短信息备份方案设计与实现 ..................................................................... 29 5.1 短信息读取模块的实现 .................................................................................................. 29 5.2 短信息备份恢复模块的设计 .......................................................................................... 29 5.3 DDMS与模拟器交互 .................................................................................................... 34 5.4 向模拟器导入apk文件 .................................................................................................. 36 5.5 模拟器运行备份软件 ...................................................................................................... 37 5.6 本章总结 .......................................................................................................................... 40 第六章 总结及展望 ............................................................................................................... 41 6.1 本文总结 .......................................................................................................................... 41 6.2 展望Android的发展前景 ............................................................................................... 41 参考文献 ................................................................................................................................. 43 致 谢 ..................................................................................................................................... 44

3

中 文 摘 要

Android平台是Google推出的一种以Linux为基础的开放源码操作系统,主要使用于便携设备,是一种开放性移动设备综合平台。目前Android占据全球智能手机操作系统市场50%以上的份额,具有巨大的市场发展潜力。随着社会信息化的普及,手机作为非常重要的通信工具在人们日常生活中发挥着巨大作用,而其中短信作为手机上的一种业务,让本来具有语言传递功能的手机变成了电报式的解读工具,让耳朵闲置并让文字彰显更大的作用。短信息作为用文字传递信息和沟通的一种方式,它让拇指灵敏起来,让嘴巴休息,使现代的电信业务具备了技术和文化的双重色彩。在这个商品经济社会中,人们常常会遇到一些重要的短信息需要保留,所以短信备份就成为了人们的一种需要。

本文对基于Android的短信息备份过程的实现进行了完整详细的介绍,其中对Android开发环境的搭建和短信息备份的实现原理及实现过程进行了重点描述。对开发过程中使用到的几种开发工具的特点及使用技巧也进行了总结。并且,文中对Android平台的发展现状、发展前景及其优越性也进行了阐述。

本设计充分的证明了基于Android平台的短信息备份的可行性及实用性,并完整的实现了短信息备份。

[关键词]Android平台,智能手机,短信备份

基于Android的短信息备份系统设计 第二章 Android架构

ABSTRACT

2

基于Android的短信息备份系统设计 第一章 绪 论

第一章 绪 论

1.1 研究背景

Android被誉为“第一个完整、开放而且免费的移动平台”。设计人员在开发Android

平台时综合了各种考虑。他们从一个安全的操作系统出发,在上层构建了一个健壮的应用程序架构,从而提供了丰富的应用程序开发机会。Android平台建立在开放源代码的基础上。开发人员在开发应用程序时获得了前所未有的访问手机设备的权限。开发Android应用程序是免费的,在这个平台上开发应用程序不需要任何的许可凭证,不需要承担任何的版权费用,也无需缴纳会员费、测试费等等。

虽然Android所具有的许多新颖的特性在目前存在的移动平台中还不具有,但它的设计者们正在努力促使许多被事实所证明有效的方法在无线通信领域中得以应用。诚然,其中的许多特性已在现有的专用平台中有所体现,但Android免费而开放的将它们融合起来,虽然某些在这些平台上应用时所发现的缺陷正在处理与解决中。 在Android开发平台下,本地应用程序同第三方应用程序之间没有区别,这样使得应用程序开发人员之间保持着良性的竞争。所有的Android应用程序均使用同样的库。 Android平台最具革命性也最令人着迷的特性之一则在于设计精妙的应用程序组合。如果你愿意的话,Android可以提供所有供你制作一个更好的“蝙蝠捕捉器”所需的工具。某些平台,如Symbian,始终遭受着恶意软件的困扰。Android强有力的应用程序安全模型可以帮助用户和系统避免恶意软件的侵袭。

1.2 研究的目的及意义

1992年,世界上第一条短信在英国沃达丰的网络上通过电脑向手机发送成功,从

而宣布手机短信诞生。至于中国的第一条短信诞生于何时何地已无从知晓,但据考证,中国的移动通信网络早在1994年就具备了短信功能,只是那时有手机的人根本不需要它罢了。随着手机的日益普及,从1998年开始,移动、联通先后大范围拓展短信业务:2000年,中国手机短信息量突破10亿条;2000年,达到189亿条;2004年,其飞涨到900亿条。于是短信理所应当地成为了第五种传播工具;于是从1998年至今,管你愿意与否,短信已逐渐走入我们的生活,成为生活的一部分,我们的生活也因短信而改变着。

短信作为手机上的一种业务,让本来具有语言传递功能的手机变成了电报式的解读

基于Android的短信息备份系统设计 第二章 Android架构

工具,让耳朵闲置,让文字彰显更大的作用;短信作为用文字传递信息和沟通的一种方式,让拇指灵敏发达起来,让嘴巴休息,现代电信的业务具有了技术和文化的双重色彩。尽管移动市场发展飞速,不过短信仍然是其最重要的一项附加价值服务。据此前IDC公司统计,文字短信仍是亚太地区手机用户普及率最高的一项移动服务,即使在短信的发展中市场,例如西欧短信服务的使用率也达到了90%。而随着科技的日益发展,信息时代的到来,在人们使用手机的信息交流中,已渐渐离不开了短信,短信的重要性就越来越突出了。且在这个商品经济社会中人们常常会遇到一些重要的短信需要保留,所以短信备份就成为了一个重要的问题。

Android 是开放手机联盟开发的第一个完整、开放、免费的手机平台。自发布来得到了广泛关注和迅猛发展。而基于Android的短信备份,可以实现手机端、PC 端两个平台的资源交互共享,可与PC、手机进行信息导入导出,安全性显著提高,且您能将短信通过电子邮件直接群发给朋友、客户,便捷迅速。如此一来,要是手机出现什么意外,你也不用担心重要短信会丢失了。

1.3 国内外研究现状

目前国内的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用(放到Android Market或者其他App Market销售)以及游戏开发(放到Android Market或者其他App Market销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者,目前和第二类开发者类似。下图是开发者提交的应用和游戏的数目所占的比例图,从中也可以看出应用开发数目远超游戏开发。截止2010年第二季度Android系统的国内市场占有率已经过10%,在西欧以及北美智能手机市场占有率也在20%左右。可见Android系统正在崛起之中。但是对于Android系统的应用和开发在国内属于起步和探索阶段。现阶段虽然已经有较多人关注,但任然急需要大量的相关技术和人员的投入。

2

基于Android的短信息备份系统设计 第二章 Android架构

1.4 Android平台的不同之处

1.4.1 Android—下一代平台

虽然Android所具有的许多新颖特性在目前存在的移动平台中还不具有,但它的设计者们正在努力促使许多被事实证明的有效方法在无线通信领域中得到应用。诚然,其中的许多特性已经在现有的专用平台中有所体现,但Android免费而开放的将它们融合起来,虽然某些在这些平台上应用时所发现的缺陷正在处理与解决中。

Android的吉祥物是一个绿色的小机器人。Android是新一代移动平台中的开拓者,使得这一平台上的开发人员同其竞争者有明显的区别。Android的设计人员仔细研究了现有平台各自的优缺点,并集合了这些平台最成功的特性。同时,Android的设计人员避免了其他平台在过去所犯的错误。

自从Android1.0发布以来,Android平台的开发就以飞一样的速度进行着。在相当一段时间里,每两个月就会有一款新的Android SDK推出。每一个Android SDK都拥有自己的项目名称。

1.4.2 免费开放源代码

Android是一个完全开放源代码的平台。无论是程序开发人员还是手机制造商都不需要为在这一平台上进行开发而承担版权或许可证费用。 Android所依赖的基础操作系统在GUN General Public License Version 2下获得授权,这是一个强有力的“免费版权”的授权,以至于任何第三方的改进也必须继续遵守开放源代码的协议约定。Android开发人员可以在任何他们希望的协议模式下面发布他们的应用程序。开发人员可以编写免费的软件,也可以以开发需要授权许可的传统软件以获取一定的报酬。

1.4.3 为应用程序提供的“自由市场”

使用Android,开发人员可以编写并成功发布任何类型的应用程序。他们可以调整软件的规模以适应小部分人群,而不必像移动运营商所期待的那样赚取很大的利润。这样,,则可以有针对性的为特定用户开发垂直市场应用程序。

由于开发人员对于应用程序的发布方式有着灵活的自主选择权,所以他们可以从中选择最有利的发布方式,而不必遵守别人的规则。Android开发人员可以将他们的应用程序以多种形式发布到使用者手里。

3

[1]基于Android的短信息备份系统设计 第二章 Android架构

Google开发了Android market,它是一个被普遍使用的以收入分享模式运作的Android应用程序市场。Handango.com将Android应用程序纳入自己已经建立的目录中,以使用其付费机制和收入分享模式。开发人员可以使用自己的交付和支付机制。移动运营商也可以自由地开发自己的应用程序商店,同时建立自己的规则,但这已经不是开发人员发布程序的唯一方式了。

1.5 本文设计内容及组织结构

本设计旨在掌握Android系统程序开发的基本流程和方法。

第一章是本文的绪论部分,阐述了Android的开发背景、研究现状及其特性。 第二章对Android的架构进行概述。主要对Android的内核、Android应用构成及其工作机制进行了详细的描述。

第三章介绍了在windows下面搭建Android开发环境及测试开发环境的全过程。 第四章介绍了Android SDK 提供的几种重要工具的使用,对本设计中使用到的工具特性进行了详细描述。

第五章阐述了基于Android的短信息备份系统的设计方法,详细介绍了整个系统的实现过程及方法。

第六章是对本设计的总结和对Android开发平台的应用展望。

4

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

第二章 Android架构

2.1 Android平台的架构

Android平台自底向上由以下四个层次组成:Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层。如图1所示:

应用层程序 应用程序框架 其他库 视频图像 视频播放 浏览器 数据库 运行时 核心库 Dalvik虚拟机 [2]Linux内核层

图2.1 Android平台的结构

(1) Linux内核层:Android基于Linux内核来开发的,主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为一个虚拟的中间层,该层位于硬件与其它的软件层之间。需要注意的是,这个内核操作系统并非类GNU/Linux的,所以其系统库、系统初始化和编程接口都和标准的Linux系统有所不同。它没有采用虚拟内存文件系统,而是采用YAFFS2文件系统。

YAFFS(Yet Another Flash File System)文件系统是一个开源的,专门为NAND Flash设计的文件系统,具有很好的可移植性,也是一种日志型文件系统,能够在Linux、UCLinux和Windows CE上运行。YAFFS目前有YAFFS和YAFFS2两个版本,一般说来,YAFFS小页面(528字节/页)有很好的支持,而更大的页面(2K+64字节/页)就需要YAFFS2为新一代智能手机平台,Android需要支持超大容量的NAND Flash,所以采用支持大页面的YAFFS2文件系统。

5

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

(2)Android运行时库和其他库层:Android运行时库包含一组核心库(提供了Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的库类支持且大部分为开源代码,如采用的数据库为SQLite。Android选择它作为移动终端的嵌入式数据库有以下优点,它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有250KB但支持数据库大小至2KB,提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快。

(3)应用框架层:在应用框架层Android开发人员可以跟那些核心应用一样拥有访问框架API的全部权限。应用的系结构化设计简化了各组件之间的重用,任何应用都可以分发自己的组件,任何应用也可以使用这些分发的组件(应用的使用方法需遵循框架的安全性约束)。

(4)应用程序层:Android本身会附带一些核心的应用程序,包括e—mail客户端、短信程序、日历、地图、浏览器、通讯录等等,目前所有的应用程序都是由Java语言开发的。

2.2 Android的内核分析

和标准的Linux内核一样,Android内核主要实现内存管理、进程调度、进程间通信等功能。

2.2.1 内核在操作系统中的地位

Android基于Linux操作系统,由硬件、系统内核、系统服务和应用程序等四大部分组成。其中,内核Kernel是最核心的部分,其主要作用在于与计算机硬件进行交互,实现对硬件的编程控制和接口操作,调度访问硬件资源,同时向应用程序提供一个高级的执行环境和对硬件的虚拟接口。主要功能包括:中断服务程序、进程调度程序、进程地址空间的内存管理、进程间通信。

内核与普通应用程序不同,其拥有所有硬件设备的访问权限以及启动时即划分的受保护的内存空间同。

6

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

2.2.2 Android内核

Android内核是在标准Linux内核的基础上修改而成。为了适应嵌入式硬件环境和移动应用程序的开发。Android对Linux内核进行了一定的修改。Android内核源码树根目录结构如表1所示。

表2.1 Android内核源代码目录

目录 arch crypto documentation divers fs include init ipc kernel lib mm net scripts security sound user 描述 特定体系结构的源码 Crypto API 内核源码文档 设备驱动程序 VFS和各种文件系统 内核头文件 内核引导和初始化 进程间通信代码 核心子系统 通用内核函数 内存管理模块 网络模块 编译内核所用的脚本 安全模块 声音模块 早期用户空间代码

Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理、电源管理、驱动和其他方面存在不同。

1.文件系统

不同于桌面系统与服务器,移动设备大多采用的不是硬盘而是采用Flash作为存储介质,因此,Android内核中增加了标准Linux内核中没有采纳的YAFFs2文件系统。YAFFS2(Yet Another flash File Sy-stem,2nd edition)是专用于flash的文件系统,

7

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

对NAND,F1ash芯片有着良好的支持。YAFFs2是日志结构的文件系统,提供了损耗平衡和掉电保护,可以有效地避免意外断电对文件系统一致性和完整性的影响。YAFFS2按层次结构设计,分为文件管理接口、内部实现层和NAND,简化了其本身与系统的接口设计能更方便地集成到系统当中。经过测试证明YAFFs2性能比支持NOR型闪存的JFFS2文件系统优秀。

2.程问通信机制

Android增加了一种进程间的通信机制IPC Binder在内核源代码中,驱动程序文件为coredroid/include/linux/binder.h和coredroid/drivers/android/binder.c。Binder通过守护进程Service Manager管理系统中的服务,负责进程问的数据交换。各进程通过Binder访问同一块共享内存,以达到数据通信的机制。从应用层的角度看.进程通过访问数据守护进程获取用于数据交换的程序框架接口,调用并通过接口共享数据,而其他进程要访问数据,也只需与程序框架接口进行交互.方便了程序员开发需要交互数据的应用程序。

3.内存管理

在内存管理模块,Android内核采用了一种不用于标准Linux内核的低内存管理策略。在标准Linux内核当中,使用一种叫做00M(0ut of Memorv)的低内存管理策略:当内存不足时,系统检查所有的进程,并对进程进行限制评分.获得最高分的进程将被关闭(内核进程除外)。Android系统采用的则是一种叫作LMK(Low Memory Killer)的机制,这种机制将进程按照重要性进行分级、分组。内存不足时,将处于最低级别组的进程关闭。例如.在移动设备当中。UI界面处于最高级别。所以该进程永远不会被中止,这样,在终端用户看来,系统是稳定运行的。在Android内核源码中,LMK的位置是coredroid/drivers/misc/lowmemorykiller.c。

与此同时,Android新增加了一种内存共享的处理方式Ashmem(Anonvmous Shared Memory,匿名共享内存)。通过Ashmem,进程间可以匿名自由共享具名的内存块。这种共享方式在标准Linux当中不被支持。Ashmem分配和使用情况如下:

fd=ashhmem_create_region(―my-shm—region‖,size); if(fd<0) return –l;

data=mmap(NUULL,size,PROT_READ︱PROT_WRITE,MAP_SHARED,fd,0); if(data==MAP_FAILED) goto out;

8

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

但出于安全原因,其他进程无法访问此名称(my_shm—region)区域。文件描述符指向该共享内存区域,实际上是通过IPC绑定接口。

在Android内核源码中,Ashmem的位置是coredroid/mm/ashmem.c。 4.源管理

由于Android主要用于移动设备,电源管理就显得尤为重要,因此,在Android内核当中。增加了一种新的电源管理策略。目前,Android采用的是一种较为简单的电源管理策略,通过开关屏幕、开关屏幕背光、开关键盘背光、开关按钮背光和调整屏幕亮度来实现电源管理,并没有实现休眠和待机功能。有三种途径判断调整电源管理策略:RPC调用、电池状态改变和电源设置。它通过广播Intent或直接调用API的方式来与其他模块进行联系。电源管理策略同时还有自动关机机制,当电力低于最低可接受程度时,系统将自动关机。Android的电源管理模块还会根据用户行为,自动调整屏幕亮度。

5.驱动及其它

相对于标准内核,Android内核还添加了字符输出设备、图像显示设备、键盘输入设备、RTC设备、USB Device设备等相关设备驱动。增加了日志(Logger)系统,使应用程序可以访问日志消息。

2.3 Android应用的构成与工作机制

一个Android应用程序是由四种构造块组织而成的,这四种构造块分别是: ??Activity ??Intent Receiver ??Service

??Context(cetral command center)

并不是每一个Android应用程序都需要这四种构造块,这不是必须的,某些时候,只需要这四种中的几种就可以组合成应用程序。除此以外,还需要在AndroidMainfest.xml中登记这些构造块的清单。这是一个XML配置文件,这个配置文件用于定义应用程序的组件、组件的功能及必要条件等。这个配置文件是每个Android应用必需的。而以下为其构成与工作流程。

9

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

图2.2 Android的构成与工作流程

下面,对四种构造块做一些说明:

2.3.1 Activity

Activity是Android构造块中最基本的一种,在应用中,一个activity通常就是一个单独的屏幕。每一个activity都被实现为一个独立的类,并且继承于Activity这个基类。这个activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。例如,一个通信应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写信息,同时还会有用于浏览信息及进行系统设置的屏幕。每一个这样的屏幕,就是一个activity。从一个屏幕可以方便的导航到另一个屏幕。在一些应用中,一个屏幕甚至会返回值给前一个屏幕。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。

10

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

在低内存资源的情况下,Android操作系统会终止任何已暂停、停止或销毁的Activiti的进程。这本质上意味着所有不处于前台的Activity都可能被关闭。

如果Activity在onPause()方法调用后被关闭,那么它的onStop()和onDe story()方法不会被调用。在onPause()方法中释放更多的资源,转入后台的Activity被终止的可能性就越小。

终止Activity的操作并不会将其从Activity栈中移除。相反,Activity的状态会被存入一个Bundle对象中,前提是Activity实现了它并且使用了onSaveInstance State()方法保存自定义数据,不过某些View数据会自动保存。当用户稍后再次返回这一Activity时,它的onCreate()方法将被调用,不过此时会带有一个可用的Bundle作为传入参数。

2.3.2 Intent Receiver

当需要对一个外部事件(如当电话呼入,或者数据网络可用)做出响应时,可以使用一个Intent Receiver。

Intent Receiver在外部事件发生时,会使用NotificationManager通知用户,但它并不能生成一个UI。Intent Receiver在AndroidManifest.xml中注册,也可以在代码中使用Context.registerReceiver()进行注册。当一个intent receiver被触发时,系统会在需要的时候对应的程序。各种应用还可以通过使用Context.broadcastIntent()将它们的intent receiver广播给其它应用程序。

2.3.3 Service

一个Service是一段长生命周期的,没有用户界面的程序。例如,一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让用户可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为用户会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,还可以通过使用Context.bindService()方法,连接到一个service上(如果这个service还没有运行将启动它)。当连接到一个service之后,使用service提供的接口与它进行通讯。拿媒体播放器这个例子来说,还可以进行暂停、重播等操作。

11

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

有一个关于服务的很好的经验规则:如果某个任务需要使用一个线性辅助线程,并且可能会影响应用程序的影响性和性能,那么可以考虑在应用程序的生命周期外实现一个服务来处理这一任务。

2.3.4 Context

Context是Android应用程序的中央控制中心,所有应用程序持有的功能都可以通过Context进行访问。

在获得了一个可用的应用程序Context后,就可以使用它来访问应用程序范围的功能和服务了。

(1)获取应用程序资源

你可以使用应用程序Context的getResources()方法来获取应用程序资源。获取资源最直接的方式就是使用资源标识符(ID),它是一个在R.java类中自动生成的数字。 (2)访问应用程序首选项

你可以使用应用程序Context的getSharedPreferences()方法访问共享的应用程序首选项。SharedPreferences类可以用来存储简单的应用程序数据,例如配置设置。 (3)使用Context访问其他应用程序的功能。

2.4 Android中的Intent

在一个Android应用中,主要是由四种组件组成的,这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。

2.4.1 抽象描述的内容

在Android参考文档中,对Intent的定义是执行某操作的一个抽象描述。

首先,是要执行的动作(action)的一个简要描述。

12

[3]基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

其次,是执行动作要操作的数据(data),Android中采用指向数据的一个URI来表示。

另外,除了action和data这两个重要属性外,还有一些附加属性: category(类别),被执行动作的附加信息。

type(数据类型),显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。

component(组件),指定Intent的的目标组件的类名称。通常Android会根据Intent中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。

extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。

总之,action、data/type、category和extras一起形成了一种语言。这种语言使系统能够理解诸如“查看某联系人的详细信息”之类的短语。随着应用不断的加入到系统中,它们可以添加新的action、data/type、category来扩展这种语言。应用也可以提供自己的Activity来处理已经存在的这样的“短语”,从而改变这些“短语”的行为。

2.4.2 Android解析Intent的过程

在应用中,我们可以以两种形式来使用Intent: 1.直接Intent:

指定了component属性的Intent(调用setComponent(ComponentName)或者setClass(Context,Class)来指定)。通过指定具体的组件类,通知应用启动对应的组件。

2.间接Intent:

没有指定comonent属性的Intent。这些Intent需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此Intent的组件。

13

基于Android的短信息备份系统设计 第三章 Android开发环境的搭建及测试

对于直接Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接Intent,通过解析,将Intent映射给可以处理此Intent的Activity、IntentReceiver或Service。Intent解析机制主要是通过查找已注册在AndroidManifest.xml中的所有IntentFilter及其中定义的Intent,最终找到匹配的Intent。在这个解析过程中,Android是通过Intent的action、type、category这三个属性来进行判断的,判断方法如下:

(1)如果Intent指明定了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不能匹配;

(2)如果Intent没有提供type,系统将从data中得到数据类型。和action一样,目标组件的数据类型列表中必须包含Intent的数据类型,否则不能匹配。 (3)如果Intent中的数据不是content:类型的URI,而且Intent也没有明确指定它的type,将根据Intent中数据的scheme(比如http:或者mailto:)进行匹配。同上,Intent的scheme必须出现在目标组件的scheme列表中。

(4)如果Intent指定了一个或多个category,这些类别必须全部出现在组建的类别列表中。比如Intent中包含了两个类别:LAUNCHER_CATEGORY和ALTERNATIVE_CATEGORY,解析得到的目标组件必须至少包含这两个类别。

2.5 本章总结

本章详细介绍了Android架构内容和Android应用程序的四种组织构造块。本章主要内容包括:Android平台的架构,Android的内核分析,Android应用的构成与工作机制,Android中的解析Intent的过程。

14

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

第三章 Android开发环境的搭建及测试

3.1 关于Eclipse

Eclipse

[4]

是一个集成开发环境。其前身是IBM的Visual Age for Java(VA4J)。

Eclipse是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件加入到Eclipse平台中。随着Java的广泛应用,各大主要软件供应商都参与到Eclipse架构开发中,使得Eclipse插件数量与日增加。Eclipse平台的免费,架构的成熟,行业协会Eclipse基金会的支持,使得很多的Java开发采用了Eclipse架构。

插件(plug-in)是遵循一定规范的应用程序结构编写出来的程序,也称为扩展,不同于组件。Eclipse正是一个精心设计的且可扩展的核心结构。通过插件的形式,将根据自己需要选择的扩展开发工具集成到Eclipse平台核心。因此可以避免因过去的不兼容工具带来的麻烦,降低开发成本,大幅度提高工作效率。

Eclipse本身作为一个开放源码的软件项目,它主要包含3个子项目:①平台子项目,②Java开发工具(JDT-java)子项目,③插件开发环境(PDE-plug-in)子项目。其中,Java开发工具JDT为开发人员提供大量的集成工具,主要为Java应用程序提供编程接口(API)。Eclipse软件开发工具箱(SDK)是主要由Eclipse本身的项目软件和其他一些开发源码的第三方软件组成。次者,插件开发环境(JDT)则为插件开发和测试提供相应的环境,如:创建插件清单文件、定义扩展点等。

15

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

图3.1 Eclipse体系结构图

其他的Java集成开发环境有Jbuilder、WebSpher Studio、NetBeans。然而Eclipse以其强大的可扩展性和开放性脱颖而出,拥有为数众多的支持者,也被许多大的企业所青睐。

3.2 配置开发环境

要编写Android应用程序,必须对编程环境进行一定的配置,以适应Java开发。所需软件均可以免费下载。

3.2.1 下载Eclipse3.7

登录http://www.eclipse.org/downloads/,下载Eclipse Classic 3.7:

图3.2 Eclipse 3.7

根据个人电脑的配置选择,本次设计选择的是上一种。

3.2.2 安装ADT插件(在线安装)

第一次运行会提示设置workspace;在菜单栏选择Help—Install New Software,在Work with栏输入http://dl-ssl.google.com/android/eclipse/并回车,稍后显示如下图:

16

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

图3.3 下载ADT插件

选择Select All按钮,单击Next——Next,选中“I Accept”,再单击Finish,这样就开始安装插件:

图3.4 开始安装插件

安装期间会提示“Warning”,选择OK。安装完成后选择Restart,重启Eclispe。

17

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

此时选择Window,会出现如下选项:

图3.5 ADT 插件已安装

并且Preference窗口中会出现Android选项,说明ADT插件安装成功。

3.1.3 安装Android SDK

下载好Android SDK后,开始安装,Android SDK采用了Java语言,所以需要先安装JDK 5.0及以上版本。 Android SDK不用安装,下载后,直接解压即可, 将下载后的SDK的压缩包解压到适当的位置,就这么简单;SDK安装OK。 使用Eclipse进行android应用开发需要给Eclipse装ADT插件,这样Eclipse就可以和android SDK建立连接,可以在Eclipse中启动android模拟器进行程序调试等ADT插件安装这里不再累赘。也可以下载ADT的zip包安装 安装完插件后,需要做一些简单的配置。 这里文件的绝地地址是D:\\android-sdk-windows\\SDK Manager.exe

图3.6 寻找合适的SDK

18

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

图3.7 正在下载SDK

可以直接选择Install或者选择Accept All之后再选择Install。本设计中是全选的,接下来的安装过程持续了几个小时。安装完毕后,关闭SDK Manager.exe。运行Eclipse,选择Window——Preference——Android,在SDK Location选择D:\\android-sdk-windows,单击Apply后在Target Name中选择一个Android版本,单击OK,以关闭Preference对话框。 3.1.4 创建Android模拟器

在Eclipse中选择Window——Android SDK and AVD Manager,在对话框的左边选中Virtual decices,单击右部的New按钮(你可能需要把对话框拉宽才能看见这个按钮),填写参数:

19

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

图3.8 创建AVD

单击Create AVD按钮,完成模拟器的创建。创建模拟器需要一点时间,一般来说,为模拟器设定的内存越大用的时间越久。

20

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

图3.9 启动模拟器

设定参数后,单击Launch,启动模拟器:

图3.10 模拟器初始界面

上图显示的模拟器进行了一些设置,如时区选择、语言选择。至此,环境搭建完毕,可以进行开发了。

21

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

3.2 开发环境的测试

测试开发环境是否正确配置的最好方法是导入一个现成的Android应用程序,然后运行它。通过Android SDK提供的示例程序,可以非常容易的实现,这些示例程序包含在/Samples子目录下面。

在Android SDK提供的示例程序中选择一个Snake(贪吃蛇)的游戏。要构建和运行Snake程序。

3.2.1 在Eclipse工程中导入Snake应用程序

(1)选择File->New->Project

[5] (2)选择Adroid节点下的Android Project 向导

(3)修改Content区域为“Create project from existing source”并定位到Android示例目录

(4)选择Snake目录,后面的所有工程表单区域都将被自动填入,这一功能是通过Manifest文件实现的,将Build Target设置为测试设备的特定Android版本。 这样,Snake工程文件就算导入进去了。

3.2.2 为Snake工程创建Android虚拟设备(AVD)

Android虚拟设备描述用于运行Snake应用程序需要模拟的设备,下面是创建一个

AVD的步骤:

(1)点击Eclipse工具条中的虚拟设备图标,运行Android Virtual Devices Manage .

(2)在Virtual Devices菜单上,单击new按钮。接下来给AVD命名为Android_2.2。 (3)选择一个构建目标和SD卡的容量,这里根据需要尽量不要太大,否则构建这个模拟器的时间会更长。

3.2.3 为Snake工程创建运行配置参数

运行配置参数用于配置模拟器的参数和应用程序的入口点。在Eclipse环境中,在

Run菜单下创建这些参数。基本步骤如下:

(1)选择Run->Run Configuration,双击Android Application.将运行配置命名为SnakeRunconfiguration.

22

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

(2)单击Browse按钮并选中Snake工程文件,切换到Target标签页,选中刚创建的AVD.

当在设置运行或调试配置参数时,如果将Device Target Selection Mode 设置为默认的Automatic,那么应用程序将会自动安装和运行在和计算机连接的设备上,否则,应用程序将选择使用指定的AVD在模拟器中运行。当选择Manual后,可以在下面三个选项中选择:使用已有的模拟器运行应用程序;使用新的模拟器运行实例,并允许重新设置AVD;在已经联机的设备上运行程序。如果在模拟器运行时插入设备,即使当前模式为Automatic,也可以在上面三个选项中做出选择。

3.2.4 在Android模拟器中运行Snake应用程序

(1)在工具栏的下拉菜单中点击Run As图标(带三角的绿色圆圈)。 (2)在出现的列表中选择刚创建的SnakeRunconfiguration. (3)Android模拟器开始启动,这一过程需要一段时间。

确保此时没有使用USB连接Android设备,因为Run Configuration对话框的Target标签中Device Target Selection模式的默认设置为Automatic,否则,Snake程序将在目标设备(非模拟器)中执行。

3.11 在模拟器上玩贪吃蛇游戏

3.3 本章总结

23

基于Android的短信息备份系统设计 第四章 Android SDK提供的几种重要工具的使用

Android开发环境的搭建是整个设计的基础,也是其中关键复杂的一步。本章对Eclipse开发平台、Android开发环境的配置及平台测试过程进行了描述。整章内容涵盖的内容比较多,是本设计中必须掌握的一些Android开发常识。

24

基于Android的短信息备份系统设计 第四章 Android SDK 提供的几种重要工具的使用

第四章 Android SDK提供的几种重要工具的使用

4.1 关于Android模拟器

模拟器是Android软件开发包提供的最有用的工具。开发人员可以在模拟器上快速的开发出Android应用程序进而开发能够运行在各种硬件设备的强大应用程序。

4.1.1 Android虚拟设备AVD(Android Virtual Devices)

AVD就是模拟器的“人格”,没有AVD的话,模拟器就是个空壳子。每一个模拟器的配置都是唯一的,它由AVD描述并且持久的存储在模拟器的SD卡中。Android模拟器可以通过AVD配置模拟的内容包括: (1)不同的目标平台版本 (2)不同的屏幕尺寸和分辨率 (3)不同的输入法 (4)不同的底层硬件配置 (5)不同的外部存储配置

4.1.2 Android SDK(Software Development Kit) 和AVD管理器

要在Android模拟器中运行应用程序,需要配置一个Android虚拟设备。可以使用Android SDK和Eclipse中的AVD管理器(作为ADT插件的一部分)或者使用Android SDK/tools目录下的Android命令行工具来创建和管理AVD.

不管何种工具以任何方式运行AVD,每一个AVD都应该包含下面的信息用于描述这个特定的Android设备:

(1)为每一个AVD配置取一个直观的名字 (2)目标Android操作系统

(3)硬件设备支持的细节和特性,包括RAM、输入法以及可选硬件等,可选硬件包括摄像头和位置感应器等

25

[6]

基于Android的短信息备份系统设计 第四章 Android SDK 提供的几种重要工具的使用

(4)模拟外部存储(虚拟SD卡) 4.1.3 指定AVD启动模拟器

当配置好想要使用的AVD之后,就可以启动模拟器了,有很多方法可以启动模拟器,下面列举其中几种:

(1)在Eclipse中,配置应用程序的调试或运行选项,选用指定的AVD.

(2)在Eclipse中,配置应用程序的调试或运行选项,允许开发人员在启动时手动选择AVD.

(3)在Eclipse中通过Android SDK和AVD管理器直接启动模拟器。

(4)模拟器存储在Android SDK的tools目录下,它可以从命令行中以独立进程的方式运行(通常只有在不使用Eclipse时才有这种需求)。

在开发过程中,在各个调试会话期间保持模拟器处于运行状态,以便快速的重装和调试应用程序。这能够节约每次启动模拟器的几分钟时间,只需要在Eclipse中简单的运行“Debug configuration”,然后调试器就能被成功的关联。

4.2 Android DDMS( Dalvik调试监视服务)

DDMS是由Android软件开发包提供的调试工具。开发人员可以使用DDMS提供的窗口来监视模拟器或真实的设备的调试,包括对文件和进程的管理等。它是几个工具的完美融合:任务管理器(Task Manager)、文件浏览器(File Explorer)、模拟器控制台(Emulator console)和日志控制台(Logging console)。

4.2.1 DDMS的关键特性

无论是在Eclipse中使用DDMS还是单独使用它,都要注意它的几个关键特性: (1)处于运行状态的模拟器和连接的设备处于右上角区域

(2)文件浏览器允许你查看模拟器和设备上的文件,并且可以进行提取和添加。 (3)Logcat窗口能够让你监视Android日志控制台(Logcat)

(4)可以查看每一个进程(堆和线程更新),也可以查看每一个线程,还可以终止进程。可以触发进程上的“垃圾回收”,并随后查看应用程序所使用的堆。

(5)可以使用内存跟踪面板跟踪应用程序的内存分布,可以使用屏幕捕捉来捕捉模拟器和设备上的屏幕画面。

[7] 26

基于Android的短信息备份系统设计 第四章 Android SDK 提供的几种重要工具的使用

某些功能只有在Eclipse DDMS 视图下可用,比如可以在模拟器或设备的某个进程上单击,然后点击那只绿色的小虫图标为其关联一个调试器,这样就可以在提供了源代码的情况下调试这个进程了。

4.2.2 文件浏览器和模拟器控制

1.从模拟器或设备上拷贝文件

可以使用文件浏览器将模拟器或设备上的文件或文件夹拷贝到计算机上,步骤如下:

使用文件浏览器导航到需要拷贝的文件或文件夹,点击使其高亮。

在文件浏览器的右上角,点击带箭头的光盘图标提取设备中的文件。另外,还可以展开图标旁边的下拉菜单从中选择Pull flie来执行这一操作。 选择计算机上待拷贝的文件,点击Open按钮。

2. 模拟短消息接收

DDMS提供了最稳定的向模拟器发送SMS的方法。其过程和模拟语音来电类似。要使用模拟器控制标签模拟发送SMS,可执行以下步骤:在DDMS中选择需要接收SMS的模拟器;切换到Emulator标签页,输入要模拟发送的电话号码,它可以包含任何数字、+、#;选择SMS单选项,输入SMS消息的正文,点击send按钮;模拟器将会接到SMS并通知。

4.3 Android调试桥

Android调试桥是通过命令行界面直接同Android设备和模拟器进行交互的客户/服务器工具。这一工具为Android软件开发包的一部分。可以使用ABD来管理和操作与开发计算机相连的模拟器和设备,可以使用它来查看日志和调试信息。 Android 调试系统是一个面对客户服务系统,包括三个组成部分:

(1)一个在你用于开发程序的电脑上运行的客户端。你可以通过shell端使用adb命令启动客户端。 其他Android工具比如说ADT插件和DDMS同样可以产生adb客户端.

(2)在你用于发的机器上作为后台进程运行的服务器。该服务器负责管理客户端与运行于模拟器或设备上的adb守护程序(daemon)之间的通信。.

(3)一个以后台进程的形式运行于模拟器或设备上的守护程序(daemon)。.

27

[8]基于Android的短信息备份系统设计 第四章 Android SDK 提供的几种重要工具的使用

当你启动一个adb客户端,客户端首先确认是否已有一个adb服务进程在运行。如果没有,则启动服务进程。当服务器运行, adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令,—所有的adb客户端都是用端口 5037与adb服务器对话的.

一旦服务器与所有模拟器实例建立连接,就可以使用adb命令控制和访问该实例。因为服务器管理模拟器/设备实例的连接,和控制处理从来自多个adb客户端来的命令,你可以通过任何客户端(或脚本)来控制任何模拟器或设备实例.

以下的部分描述通过命令使用adb和管理模拟器/设备的状态。要注意的是如果你用,装有ADT插件的Eclipse开发Android程序,你就不需要通过命令行使用adb。ADT插件已经透明的把adb集成到Eclipse中了,当然,如果必要的话你也可以仍然直接使用adb,比如说调试.

4.4 本章总结

Android软件开发包提供了几种重要的开发工具,它们对整个Android应用程序开

发起着非常关键的作用。在本设计中,Android模拟器是使用最频繁的工具。本章对Android模拟器、DDMS以及Android调试桥的特点和使用技巧进行了详细阐述。

28

基于Android的短信息备份系统设计 第五章 Android短信息备份方案的设计与实现

第五章 Android短信息备份方案设计与实现

本章所需要描述的Android短信备份设计实现,其内容涉及,用户短信读取模块的实现和用户短信备份模块的实现这两个模块。以下就是针对这两个模块的展开描述。短信息备份最便捷的方式是备份到SD卡里面。本设采用的也是这一备份路径。

5.1 短信息读取模块的实现

Android API支持开发可以发送和接收SMS消息的应用程序。目前我们开发过程中使用的Android模拟器可以接收和发送SMS。现在我们来探索一下Android对SMS的支持,我们将会构建一个小小的应用程序来监听移动设备(或模拟器)上接收到的SMS消息,并将它显示出来。首先定义一个Intent接收器来处理SMS接收事件,接下来对这个Intent接收器进行配置以使它能获取SMS接收事件。为了能让模拟器能接收SMS,我们得先进行权限的指定,可以在AndroidManifest.xml中配置。

然后,我们的Intent接收器就可以在Android设备接收到SMS的时候被调用了,余下的事情就是去获取和显示接收到的SMS消息文本了,我们是使用SmsMessage.createFromPdu来读取短信的

Android设备接收到的SMS是以pdu形式的(protocol description unit)。android.telephony.gsm.SmsMessage这个类可以储存SMS的相关信息,我们也可以从接收到的pdu中创建新的SmsMessage实例,Toast界面组件可以以系统通知的形式来显示接收到的SMS消息文本。

通过以上的操作,我通过以在Android模拟器中构建一个应用程序的方法来监听移动设备上收到的SMS消息,并将它以PDU形式显示出来,从而实现了短信读取。而后,接下来需要做的工作就是去实现短信备份。

[9]

5.2 短信息备份恢复模块的设计

本设计是将手机短信息备份到SDCard,属于本地备份对应的路径下,用以覆盖原始数据库文件。

[10]

。本地备份则将自身的数

据库文件写到 SDCard;如果是本地恢复将 SDCard 中对应的文件写到 Contacts 应用

29

基于Android的短信息备份系统设计 第五章 Android短信息备份方案的设计与实现

用户选择本地备份或者本地恢复,ContactsReceiver 则收到广播消息后,根据信号判断操作的类别是备份还是恢复,然后启动一个线程,在线程中调用 Handler,通过 Handler 去处理读写数据。

用 Environment.getExternalStorageDirectory() 方法获取 SD 卡的路径 , 卡存储空间大小及已占用空间获取方法 :

/* 获取存储卡路径 */

File sdcardDir=Environment.getExternalStorageDirectory(); /*StatFs 看文件系统空间使用情况 */

StatFs statFs=new StatFs(sdcardDir.getPath()); /*Block 的 size*/

Long blockSize=statFs.getBlockSize(); /* 总 Block 数量 */

Long totalBlocks=statFs.getBlockCount(); /* 已使用的 Block 数量 */

Long availableBlocks=statFs.getAvailableBlocks();

图 5.1 本地备份恢复序列图

如下图给出了 BackupRestoreActivity 和 ContactsReceiver 的类图,以及他们工作机制中涉及到的类的结构。

30

基于Android的短信息备份系统设计 第五章 Android短信息备份方案的设计与实现

5.4 向模拟器导入apk文件

Android手机使用的执行文件为apk文件

[11]

。在Android模拟器中安装apk文件

有许多种方法。可以通过Eclipse+ADT,使用DDMS传输文件。还可以直接在windows的cmd中操作。只要你Run As Android Application 过,到工作目录的bin文件夹下就能找到与项目同名的apk文件。

在Eclipse中,使用DDMS进行apk文件的传输,具体过程如下: (1)在Eclipse中,进入DDMS,如下图:

(2)打开AVD,选择需要导入apk文件的模拟器,在本设计中导入的是短信息备份还原软件的可执行文件apk。

(3)单击图中右上角的两个图标,如下图所示:(一个是将虚拟机中的文件导出,一个是导入。

(4)我们单击“push a file onto the device”这个所指的图标,选取事先准备好的 apk 文件,放入虚拟机中。

(5)单击data下的app,出现如下图所示:

图5.9 DDMS界面中显示模拟器中的文件

可以看到里面有很多apk文件,其中以SMS开头的那几个apk文件就是短信息备份软件可执行文件。

36

基于Android的短信息备份系统设计 第五章 Android短信息备份方案的设计与实现

5.10 模拟器显示apk可执行文件

5.5 模拟器运行备份软件

如下图,初始界面中有Backup(短信息备份)、Restore(还原)、Check(查看)选项。

图5.11 初始界面

37

基于Android的短信息备份系统设计 第五章 Android短信息备份方案的设计与实现

图5.12 以时间主题进行备份

下面是选择一个联系人查看短信息并进行短信息备份

图5.13 以人物主题备份

38

基于Android的短信息备份系统设计 第五章 Android短信息备份方案的设计与实现

图5.14 全部备份

选择Check选项之后,能清楚的看到已经备份的短信息目录,并且显示了短信内容。

图5.15 查看备份信息

39

基于Android的短信息备份系统设计 第五章 Android短信息备份方案的设计与实现

5.6 本章总结

本章内容是数据备份恢复的设计与实现,详细讲解了一种备份恢复短信息数据库文

件的方法,存储方式有两种,一种是直接存储在本地,另一种是通过与服务器的交互,存储在网络服务器中;备份到 SDcard 或网络服务器中的短信息文件,由于每次备份时都会自动创建一个以日期时间命名的文件夹,所以可以备份 n 次而不会覆盖。本设计中选择的存储方式是存储在本地。以上给出了短信息备份的原理及实现的过程及采用的方式,本章是本设计的核心内容。

40

本文来源:https://www.bwwdw.com/article/r8h8.html

Top