为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

通讯工程专业毕业论文--Android平台下通信Blacklist服务设计与实现

2017-09-26 39页 doc 83KB 18阅读

用户头像

is_471618

暂无简介

举报
通讯工程专业毕业论文--Android平台下通信Blacklist服务设计与实现通讯工程专业毕业论文--Android平台下通信Blacklist服务设计与实现 通讯工程专业毕业论文--Android平台下通信 Blacklist服务设计与实现 摘要随着移动终端硬件的迅猛发展移动终端的功能也越来越强大目前智能手机已经拥有PC的大部分功能然而手机给我们带来方便的同时也带来了一些让人烦恼的问题比如很多人都曾受到过一声响电话电话推销广告短信诈骗短信等骚扰本项目以eclipse为开发环境针对Android智能手机开发来电归属地信息显示黑名单拦截防电信诈骗等功能让用户在第一时间知道来电的详细信息并且自动屏蔽黑名...
通讯工程专业毕业论文--Android平台下通信Blacklist服务设计与实现
通讯工程专业毕业论文--Android平台下通信Blacklist服务与实现 通讯工程专业毕业论文--Android平台下通信 Blacklist服务设计与实现 摘要随着移动终端硬件的迅猛发展移动终端的功能也越来越强大目前智能手机已经拥有PC的大部分功能然而手机给我们带来方便的同时也带来了一些让人烦恼的问题比如很多人都曾受到过一声响电话电话推销广告短信诈骗短信等骚扰本项目以eclipse为开发环境针对Android智能手机开发来电归属地信息显示黑名单拦截防电信诈骗等功能让用户在第一时间知道来电的详细信息并且自动屏蔽黑名单号码的电话和短信大大地降低了用户被骚扰的可能Android是基于Linux内核的手机操作系统名称该平台由操作系统中间件用户界面和应用软件组成是首个为移动终端打造的真正开放和完整的移动软件 本文简要介绍了Android移动手机平台包括Android平台的组成Android的API分析Android应用程序类型分析以及Android的开发环境配置等着重阐述了Android平台下Blacklist服务的设计思路和方法以及各个模块的具体实现 关键词Android eclipse Blacklist服务 AbstractWiththerapiddevelopmentofthemobileterminalhardwaremobiledevicescanbemorepowerfulAtpresentsmartphoneshavealreadyownedthemostfunctionofthePCHowevermobilephoneswhileconvenienttousitalsobringssomevexingproblemsForexamplealotofpeoplehavebeenharassedbyasoundtelephonephonesalesadvertisingmessagesfraudmessagesetc TheprojectregardseclipseasdevelopmentenvironmentforAndroidsmartphonecallshometodevelopinformationdisplayblacklistinginterceptionthetelecomfraudandotherfunctionsBesidesitletusersknowthecallinthefirsttimeandautomaticallyshieldsthetelephonenumberandtextmessagefromtheblacklistwhichgreatlyreducesthepossibilityofharassmenttotheusersAndroidisbasedontheLinuxkernelmobilephoneoperatingsystemnamewhichconsistoftheoperatingsystemmiddlewareuserinterfaceandapplicationsoftwarecomponentItisthefirstrealopenandcompletemobilesoftwaretocreateformobileterminal This article briefly describes the Android mobile phone platform including the composition of the Android platform Android API for Android application type and Android development environment configuration Focuses on the Blacklist services in the Android platform designing ideas and methods as well as the concrete implementation of each module Keywords Android Eclipse Blacklist services 目 录 1 11 研究背景 1 12 研究的目的与意义 3 13 4 第二章 Android相关知识 5 21 Android简介 5 22 Android的系统架构 5 23 Android应用程序四大组件 7 24 Intent类 9 25 Java语言和事件处理模型 9 26 异常处理 10 27 SQLite数据库 11 com SQLite的功能 11 com SQLite简介 11 com SQLite特性 11 13 31 系统需求分析 13 32 可行性分析 14 33 系统概要设计 14 34 系统主要功能模块设计 16 19 41 主页面设计 19 42 黑名单管理模块 20 43 防火墙设置模块 22 44 拦截记录模块 23 45 拦截统计图模块 24 25 致 谢 26 参考文献 27 第一章 绪 论 随着移动通信的发展以及互联网向移动终端的普及网络和用户对移动终端的要求越来越高而SymbianWindows MobilePalmOS等手机平台过于封闭不能很好的满足用户的需求因此市场迫切需要一个开放性很强的平台经过多年的发展第三代数字通信 3G 技术获得了广泛的接受它为移动终端用户带来了更快的数据传输速率随着3G网络的使用移动终端不再仅是通讯网络的终端还将成为互联网的终端因此移动终端的应用软件和需要的服务将会有很大的发展空间Google为此于2007年11月推出了一个专为移动设备设计的软件平台AndroidAndroid是一套真正意义上的开放性的移动设备综合平台它包括操作系统中间件和一些关键的平台应用Android是由LinuxJava构成的开源软件允许所有厂商和个人在其基础上进行开发Android平台的开放性等特点既能促进技术 包括平台自身 的创新又有助于降低开发成本还可以使运营商能非常方便地制定自己的特色化的产品因此它具有很大的市场发展潜力 11 研究背景 目前国外各软硬件厂商已经推出过多款手机操作系统下面简单介绍一下现主流手机操作系统 诺基亚公司主导推出的Symbian 操作系统Symbian是为手机而设计的操作系统它是一个实时性多任务的纯32位嵌入式的操作系统具有低能耗内存占用较少等特点现在流行的Symbian系统有以下四个版本分别为S40S60 第二版S60第三版S60第五版S60第五版为触摸屏手机版本 iOS是由苹果公司为iPhone开发的操作系统它主要是给iPhoneiPod touch 以及iPad使用 Windows Mobile 系列操作系统是从微软计算机的Windows操作系统演化而来的Windows Mobile系列操作系统功能强大而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器主频比较高在其它硬件配置 如内存储存卡容量等 上也比采用其它操作系统的智能手机要高出许多因此性能比较强劲速度比较快 Android 作为谷歌移动互联网战略的重要组成部分将进一步推进随时随地为每个人提供信息这一企业目标的实现全球为数众多的移动电话用户从未使用过任何基于Android 的电话最开始拥有两个内部测试版本并且以著名的机器人名称来对其进行命名它们分别是阿童木Android Beta发条机器人Android 10后来由于涉及到版权问题谷歌将其命名变更为用甜点作为它们系统版本的代号的命名方法甜点命名法开始于 Android 15 发布的时候作为每个版本代表的甜点的尺寸越变越大然后按照26个字母数序纸杯蛋糕Android 15甜甜圈Android 16松饼Android 2021冻酸奶Android 22姜饼Android 23蜂巢Android 30冰激凌三明治Android 40根据最新消息新一代Android版本将命名为果冻豆Jelly Bean 相对国外手机系统百花齐放的局面国内手机操作系统则处于刚起步的阶段 自2007年Google发布Android系统10之后各大手机生产厂商纷纷将目光投向了最具发展潜力的Android系统并陆续推出了各种品牌的搭载Android系统的智能手机 时隔五年Android手机在手机市场中占的市场份额正以非常迅猛的速度上升2012年市场份额Symbian 15Android 469iPhone 287windows Mobile 52RIM 166 Nokia的Symbian系统在Android系统的冲击下已经从手机市场中的王者被挤下 来在未来的几年内Android手机必定会占据手机市场的主要份额所以在这种形式下Android应用的前景也必定是前景一片大好 随着3G应用的不断开发推广用户会越来越需要更加个性化优质化的多媒体数据服务用户希望能够随时随地无缝利用3G网络进行办公网上交易游戏娱乐欣赏影视节目收听和下载音乐等根据观察在不久的将来移动手机终端将会在以下若干方面具有新的发展 首先提供智能提醒服务服务包括日程提醒交通状况最佳行车路线最佳泊位优惠活动实时新闻体育赛事天气情况股市行情好友活动亲友生日等 其次提供虚拟现实体验手机可以借助传感器周边设备了解到您的身边环境并根据收集到的信息智能的提供有用的信息 然后作为经济工具在交通或者信息不发达的情况下帮助用户找到最佳的市场获得有价值的帮助信息帮助用户从事的经济活动的收益率 最后更加智能安全的设备提供基于手机的金融活动如电子钱包在线支付在线贸易等 在信息化高速发展的今天手机已经成为了人们必不可少的通信工具但是手机给我们带来方便的同时也带来了一些让人烦恼的事情比如说一天到晚要接很多电话包括愿接的不愿接的打错的骚扰的无聊的经常会在睡梦中被手机铃声惊醒一切似乎都被手机控制了经常收到一些广告信息和垃圾短信甚至接到一些诈骗电话这些都是让人难以忍受的本系统能够让这些烦人的问题迎刃而解为用户提供全方位的来电与信息防护它是手机用户的卫士让手机不再成为用户的心理负担 12 研究的目的与意义 随着科技的进步和人们生活质量的提高普通手机已经无法满足人们的要求手机不断更新换代变得更加人性化和智能化产生了智能手机智能手机越来越被大众所接受而根据以往使用电脑的经验智能手机也伴生新的安全隐患目前智能手机的发展使得手机上的应用日渐丰富甚至有超过电脑终端应用的趋势传统互联网上存在着的各种信息安全问题逐渐延伸到移动互联网领域甚至演化成为新的安全威胁说到这可以看一下现有智能手机安全软件情况目前针对智能手机的安全软件大概分两种一种是杀毒类的硬安全另一种是隐私保护或恶意电话屏蔽等的软安全如果说还能找出一种的话就是前面两种的结合体手机安全问题近期成为热点被社会各界普遍关注在未来几年随着智能手机用户的快速增长和手机支付等应用的普及手机病毒制造的利益链将形成手机安全面临的威胁将更加严峻在实际应用中手机的安全问题主要是由手机病毒引起的其主要危害可以分为五种情况 ?导致用户手机里的私人信息丢失 ?控制手机进行强行消费导致手机用户通信费用及信息费用剧增 ?通过手机短信的方式传播非法信息 ?破坏手机软件或者硬件系统 ?造成手机通讯瘫痪 随着手机手机病毒垃圾短信等等的猖獗手机安全也越来越受到人们的重视和关注以下是几款常用的安卓手机安全软件 1360手机卫士 com For Android 360手机卫士是一款完全免费的手机安全软件集防垃圾短信防骚扰电话防隐私泄漏对手机进行安全扫描联网云查杀恶意软件长途电话IP自动拨号系统清 理手机加速祝福闪信便捷发送电话归属地显示及查询等功能于一身 2连云防火墙 HTC摩托罗拉等品牌的Android 16202122版本系统手机屏幕分辨率240x320 3扣费克星 v20 For Android 很多人都有被恶意流氓软件无端扣费的经历大量扣费手段隐藏在主题游戏和软件当中普通人难以分辨扣费克星的出现让暗扣成为历史除非主动认可的付费行为否则一切流氓软件盗窃话费都是不可能的 4安全管家 com For Android 安全管家Andriod11版是一款完全免费的手机安全软件集骚扰来电和短信拦截上网流量监控自动IP拨号隐私保护和手机防盗保护等多功能于一身其全方位的手机安全保护便捷实用的功能与操作是手机安全的首选必备软件 2011年初数据显示仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统使之跃居全球最受欢迎的智能手机平台现在Android系统不但应用于智能手机也在平板电脑市场急速扩张在智能MP4方面也有较大发展基于Android系统在目前手机市场上占有较大的份额本毕业设计基于Android操作系统对病毒程序任意发送短信拨打电话与用户手动发短信打电话进行研究并提出一个实现基于Android手机电话短信黑名单服务实现在用户手动发送短信拨打电话时可以顺利通过防火墙不需要向用户提示而其他程序自动发送短信拨打电话时则需要向用户请求通过用户允许才能发送这样在实现功能的同时采用在window系统下模拟学习的方式学习用户发送短信的行为与程序自动发送的区别给用户良好的使用体验 13 第1章全文的绪论部分该章首先阐述本论文研究的背景与意义概述本文主要的工作描述本文的内容安排 第2章Android的相关知识包括在windows系统下构建Android开发环境了解Android的系统架构和其应用程序的四大组件等 第3章Blacklist服务系统的需求状况以及系统的模块设计 第4章Blacklist服务系统的具体页面设计讲述各部分的设计以及效果图 第二章 Android相关知识 21 Android简介 Android是以Java作为开发语一言的而JDK是进行Java开发时必须的开发包所以首先要安装JDK和配置Java开发环境Echpse是一款非常好的开源工服在大量插件的配合下上到企业级Java应用下到手机终端Java游戏的开发Eelipse都可以满足Google官方也提供了基于Eelipse的Android开发插件ADT所以本文选择Eclipse作为开发的IDE 2Android特性 1应用程序框架支持组件的重用与替换 2Dalvik虚拟机专为移动设备优化 3集成的浏览器基于开源的WebKit引擎 4优化的图形库包括定制的2D图形库基于OpenGL ES 10的3D图形库 5SQLite用作结构化的数据存储 多媒体支持包括常见的音频视频和静态图像格式 7GSM电话技术依赖于硬件 8蓝牙BluetoothEDGE3G和WiFi依赖于硬件 9照相机GPS指南针和加速度计accelerometer依赖于硬件 10丰富的开发环境包括设备模拟器调试工具内存及性能分析图表和Eclipse集成开发环境插件 22 Android的系统架构 Android的系统架构如图2-1所示 图2-1 Android系统架构图 从图2-1可以看出Android分为4层从高到底分别是应用层应用框架层系统运行库层和linux核心层 1应用层 应用层是用Java语言编写的运行在虚拟机上的程序即图中最上层的蓝色部分编写的所有应用软件都属于应用层 2应用框架层 这一层即是编写Google发布的核心应用时所使用的API框架开发人员同样可以使用这些框架来开发自己的应用这样便简化了程序开发的架构设计但是必须遵守其框架的开发原则 3系统运行库CC库以及Android运行库层 当使用Android应用框架时Android系统会通过一些CC库来支持对使用的各个组件使其能更好地为开发者服务 4Linux内核层 Android的核心系统服务基于Linux26内核如安全性内存管理进程管理网络栈和驱动模型等都依赖于Linux26内核Linux内核同时也作为硬件和软件栈之间的抽象层 23 Android应用程序四大组件 对于一个Android应用程序来说是由四种构造块组织而成的这四种构造块如下ActivityIntent Receiver Service ContentProvider 但是并不是每一个Android应用程序都需要这四种构造块这不是必须的某些时候只需要这四种中的几种组合成需要的应用 当明确了应用需要哪些构造块后就需要在AndroidManifestxml中登记这些 构造块的清单这是一个XML配置文件这个配置文件用于定义应用程序的组件组件的功能及必要条件等这个配置文件是每个Android应用必需的对于AndroidMainfestxml的Schema参考SDK包附带的文档以下是对四种构造块做一些说明 1Activity Activity是Android构造块中最基本的一种在应用中一个activity通常就是一个单独的屏幕每一个activity都被实现为一个独立的类并且继承于Activity这个基类这个activity类将会显示由几个Views控件组成的用户接口并对事件做出响应大部份的应用都会包含多个的屏幕例如一个短消息应用程序将会有一个屏幕用于显示联系人列表第二个屏幕用于写短消息同时还会有用于浏览旧短消息及进行系统设置的屏幕每一个这样的屏幕就是一个activity从一个屏幕导航到另一个屏幕是很简单的在一些应用中一个屏幕甚至会返回值给前一个屏幕 当一个新的屏幕打开后前一个屏幕将会暂停并保存在历史堆栈中用户可以返回到历史堆栈中的前一个屏幕当屏幕不再使用时还可以从历史堆栈中删除默认情况下Android将会保留从主屏幕到每一个应用的运行屏幕 Android使用了Intent这个特殊类实现在屏幕与屏幕之间移动Intent类用于描述一个应用将会做什么事在Intent的描述结构中有两个最重要的部分动作和动作对应的数据典型的动作类型有MAINactivity的门户VIEWPICKEDIT等而动作对应的数据则以URI的形式进行表示例如要查看一个人的联系方式需要创建一个动作类型为VIEW的intent以及一个表示这个人的URI 与之有关系的一个类叫IntentFilter相对于intent是一个有效的做某事的 请求一个intent filter则用于描述一个activity或者Intent Receiver能够操作哪些intent一个activity如果要显示一个人的联系方式时需要声明一个IntentFilter这个IntentFilter要知道怎么去处理VIEW动作和表示一个人的URIIntentFilter需要在AndroidManifestxml中定义 通过解析各种intent从一个屏幕导航到另一个屏幕是很简单的当向前导航时activity将会调用startActivity Intent myIntent 方法然后系统会在所有安装的应用程序中定义的IntentFilter中查找找到最匹配myIntent的Intent对应的activity新的activity接收到myIntent的通知后开始运行当startActivity方法被调用将触发解析myIntent的动作这个机制提供了两个关键好处 1Activities能够重复利用从其它组件中以Intent的形式产生的一个请求 2Activities可以在任何时候被一个具有相同IntentFilter的新的Activity取代 2Intent Receiver 当希望一个应用能够对一个外部的事件如当电话呼入时或者数据网络可用时或者到了晚上时做出响应可以使用一个Intent Receiver虽然Intent Receiver在感兴趣的事件发生时会使用NotificationManager通知用户但它并不能生成一个UIIntent Receiver在AndroidManifestxml中注册但也可以在代码中使用ContextregisterReceiver 进行注册当一个intent receiver被触发时应用不必对请求调用intent receiver系统会在需要的时候启动应用各种应用还可以通过使用ContextbroadcastIntent 将它们自己的intent receiver广播给其它应用程序 3Service 一个Service是一段长生命周期的没有用户界面的程序比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器在一个媒体播放器的应用中应该会有多个activity让使用者可以选择歌曲并播放歌曲然而音乐重放这个功能并没有对应的activity因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的在这个例子中媒体播放器这个activity会使用ContextstartService 来启动一个service从而可以在后台保持音乐的播放同时系统也将保持这个service一直执行直到这个service运行结束另外还可以通过使用ContextbindService 方法连接到一个service上如果这个service还没有运行将启动它当连接到一个service之后还可以service提供的接口与它进行通讯拿媒体播放器这个例子来说还可以进行暂停重播等操作 4Content Provider 应用程序能够将它们的数据保存到文件中SQL数据库中甚至是任何有效的设备中当想将应用数据与其它的应用共享时Content Provider将会很有用一个Content Provider类实现了一组标准的方法从而能够让其它的应用保存或读取此Content Provider处理的各种数据类型 更详细的Content Provider资料可以参考附带文档中的Accessing Content Providers 24 Intent类 Intent负责对应用中一次操作的动作动作涉及数据附加数据进行描述Android则根据此Intent的描述负责找到对应的组件将Intent传递给调用的组件并完成组件的调用因此Intent在这里起着一个媒体中介的作用专门提供组件 互相调用的相关信息实现调用者与被调用者之间的解耦 Intent有两种基本用法一种是显式的Intent也就是说在构造Intent对象时就把接收者给指定了另一种是隐式的Intent即Intent的发送者在构造Intent对象时并不知道也不关心谁是接收者这样有利于降低发送者和接收者之间的耦合 显式的Intent目标组件很明确所以Android不需要解析这类Intent但对于隐式的Intent Android需要进行解析把解析后的Intent传递给可以处理该Intent的Activity IntentReceiver或者Service 在对隐式Intent的解析过程中Android主要是对Intent的actiontype和category三个属性进行判断解析过程中Intent的Extra和Flag并没有起作用在AndroidManifestxml里查找已经注册的所有IntentFilter以及在其中定义的Intent从而找到匹配的Intent这Intent解析的机制 25 Java语言和事件处理模型 在Java程序的运行过程中当用户通过程序的用户界面进行某个操作时便引发一个相应的事件EventJava中的事件是一个数据对象用来描述用户所执行的操作当一个事件发生时该事件用一个事件对象来表示事件对象有对应的事件类分别用于描述不同的用户行为产生事件的组件叫事件源在一个按钮上单击鼠标时该按钮就是事件源会产生一个ActionEvent类型的事件 事件处理器是一个接收事件对象并进行相应处理的方法事件处理器包含在一个类中这个类的对象负责检查事件是否发生若发生就激活事件处理器进行处理 包含事件处理器并负责检查事件是否发生若发生就激活事件处理器进行处 理的类叫做事件监听器类其实例就是事件监听器对象事件监听器类必须实现事件监听器接口或继承事件监听器适配器类 事件监听器接口定义了处理事件必须实现的方法事件监听器适配器类是对事件监听器接口的简单实现目的是为了减少编程的工作量 为了能够让事件监听器检查某个组件事件源是否发生了某些事件并且在发生时激活事件处理器进行相应的处理必须在事件源上注册事件监听器这是通过使用事件源组件的以下方法来完成的 addXxxListener事件监听器对象Xxx对应相应的事件类 26 异常处理 Java异常的基础知识 异常是程序中的一些错误但并不是所有的错误都是异常并且错误有时候是可以避免的有些异常需要做处理有些则不需要捕获处理在编程过程中首先应当尽可能去避免错误和异常发生对于不可避免不可预测的情况则在考虑异常发生时如何处理 Java中的异常用对象来表示Java对异常的处理是按异常分类处理的不同异常有不同的分类每种异常都对应一个类型 class 每个异常都对应一个异常 类的 对象 异常类从哪里来有两个来源一是Java语言本身定义的一些基本异常类型二是用户通过继承Exception类或者其子类自己定义的异常Exception 类及其子类是 Throwable 的一种形式它指出了合理的应用程序想要捕获的条件 异常的对象从哪里来呢有两个来源一是Java运行时环境自动抛出系统生成的异常而不管是否愿意捕获和处理它总要被抛出比如除数为0的异常二是程序 员自己抛出的异常这个异常可以是程序员自己定义的也可以是Java语言中定义 的用throw 关键字抛出异常这种异常常用来向调用者汇报异常的一些信息 异常是针对方法来说的抛出声明抛出捕获和处理异常都是在方法中进行的 Java异常处理通过5个关键字trycatchthrowthrowsfinally进行管理基本过程 是用try语句块包住要监视的语句如果在try语句块内出现异常则异常会被抛出 代码在catch语句块中可以捕获到这个异常并做处理[12]还有以部分系统生成 的异常在Java运行时自动抛出也可以通过throws关键字在方法上声明该方法要 抛出异常然后在方法内部通过throw抛出异常对象finally语句块会在方法执行 return之前执行 27 SQLite数据库 com SQLite的功能 SQLite虽然很小巧但是支持的SQL语句不会逊色于其他开源数据库它支持 的SQL包括 ATTACH DATABASEBEGIN TRANSACTIONCommentCOMMIT TRANSACTIONCOPYCREATE INDEXCREATE TABLECREATE TRIGGERCREATE VIEWDELETEDETACH DATABASEDROP INDEXDROP TABLEDROP TRIGGERDROP VIEWEND TRANSACTIONEXPLAINExpressionINSERTON CONFLICT clausePRAGMAREPLACEROLLBACKTRANSACTIONSELECTUPDATE 同时它还支持事务处理功能等等也有人说它象Microsoft的Access有时候 真的觉得有点象但是事实上它们区别很大比如SQLite 支持跨平台操作简单能 够使用很多语言直接创建数据库而不象Access一样需要Office的支持 com SQLite简介 SQLite是一款轻型的数据库是遵守ACID的关联式数据库管理系统它的设计目标是嵌入式的而且目前已经在很多嵌入式产品中使用了它它占用资源非常的低在嵌入式设备中可能只需要几百K的内存就够了它能够支持WindowsLinuxUnix等等主流的操作系统同时能够跟很多程序语言相结合比如 TclCPHPJava等还有ODBC接口同样比起MysqlPostgreSQL这两款开源世界著名的数据库管理系统来讲它的处理速度比他们都快SQLite第一个Alpha版本诞生于2000年5月 至今已经有12个年头SQLite也迎来了一个版本 SQLite3已经发布 com SQLite特性 1ACID事务 2零配置–无需安装和管理配置 3储存在单一磁盘文件中的一个完整的数据库 4数据库文件可以在不同字节顺序的机器间自由的共享 5支持数据库大小至2TB 6足够小大致3万行C代码250K 7比一些流行的数据库在大部分普通数据库操作要快 8简单轻松的API 9包含TCL绑定同时通过Wrapper支持其他语言的绑定 10良好注释的源代码并且有着90以上的测试覆盖率 11独立没有额外依赖 12Source源代码完全开源可以用于任何用途包括出售它 13支持多种开发语言CPHPPerlJavaCPython 第三章 系统模块设计 31 系统需求分析 在随着智能手机的普及以及3G手机的迅猛发展手机用户的越来越多然而在现实生活中手机用户面临着骚扰电话和短信的打扰像有时会在上班开会晚上休息时受到一些陌生人和自己不愿意见到的人的电话和短信息一些广告商如房地产公司商家为了宣传自己的产品往往会给用户发一些让人烦躁的短信甚至更让人恼火的是有一些欺诈性质的短信和电话说什么中了什么奖得了多少钱银行账户欠了多少帐等等随着Android操作系统越来越受到消费者的青睐为了减少广大Android手机用户受骚扰电话和短信的干扰故而设计本Blacklist系统 采用基于Android的程序设计技术以及用eclipse开发Android程序的相关技术开发出具有良好用户界面操作简单功能齐全运行稳定的Blacklist服务系统 系统开发的目标是在Android21以上操作系统的手机实现对来电和来信的拦截并将拦截记录保存起来供手机用户查看此外要给出前六天电话和短信拦截记录的次数其具体要求如下 1黑名单黑名单联系人信息包括姓名电话号码大头贴等等黑名单可以从电话簿中的联系人导入用户手动添加可以对黑名单中的联系人进行添加修改删除以及查看详细信息也可查找指定的黑名单联系人 2拦截记录拦截到的短信和电话应该保存到拦截记录中去手机用户可以查看被拦截的电话和短信息的详细信息包括电话号码姓名短信的内容呼入电话和收到拦截短信的时间可以回复被拦截到的短信手机用户还可以删除拦截到的记录 3拦截模式 普通模式即拦截黑名单中的联系人的来电和来短信 智能拦截模式根据关键字进行短信的拦截 陌生人 黑名单拦截黑名单中联系人和陌生人的短信息和来电 全部拦截拦截所有的信息和来电 全部不拦截所有的信息和来电都不被拦截 智能拦截的关键字可以新增关键字删除关键字更新词库 4拦截统计图统计当前日期 包括当天 之前6天的所拦截到的呼入电话和短信的记录数并通过统计图显示出来 32 可行性分析 可行性分析的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决并非任何问题都有简单明显的解决办法事实上许多问题不可能在预定的系统规模或时间期限之内解决如过问题没有可行解那么花费人力物力财力在某个工程上是浪费的对研究中可能提出的任何一种解决方案都要从技术可行性经济可行性和操作可行性三个方面进行研究 1现实可行性 用户至上这是商家要具备的服务思想而在现实生活中骚扰电话和信使得手机用户大为反感有时会严重影响到生活和工作更为令人堪忧的是一些非法机构和个人通过一些短信欺诈手机用户尽管有些有一些人不相信这些短信但是还是有很多的用户上当受骗 目前Android手机用户数量在飞速增加在Android手机上开发出一款能够拦截一些电话和短信的软件是十分有必要的这不仅使得广大的android手机用户 不受骚扰电话和短信的困扰保护广大用户的利益最重要的是这有非常大的商业价值和利润 2技术可行性 在开发过程中可以通过运用Android四大组件等相关的技术实现电话和短信的拦截通过操作SQlite数据库来进行黑名单拦截记录的管理通过 SharedPreferences技术保存防火墙的设置开启关闭状态等信息在技术上是可行的 3操作可行性 随着Android手机操作系统的发行本系统在手机上也有着良好的交互性只要用过手机对手机操作有基本认识的用户一般都会操作因此操作可行性是可以肯定的 通过对对现实可行性技术可行性操作可行性三个方面的讨论就可以得出结论在Android操作系统的手机开发出一款拦截来电和来短信的软件是完全可行的而且也是十分有必要 33 系统概要设计 在这个系统中使用的是Android手机中自带的数据库SQLite通过SharePreference来将存储防火墙的状态 开启关闭 以及防火墙的设置数据和手机用户的登录帐号和密码 在本设计中会多次使用到HashMapListArray等数据结构来存储临时数据和传递数据 HashMap内部是使用Map实现的Map就是把键和值一一对应存储的工具HashMap在Map的基础上增加了HashCode方法HashCode方法是将hash集合分 成若干个区域把要存入hash集合中的对象按照内存地址进行hash运算后可以得到一个hashcode值将hashcode值分组每个组分别对应某个存储区域根据一个对象的hashcode值就可以确定该对象存储在哪个区域从而提高存取的效率 List是个集合接口可以理解为动态数组传统数组必须定义好数组的个数才可以使用而容器对象无须定义好数组下标总数[1718]用add 方法即可添加新的成员对象他可以添加的仅仅只能为对象不能添加基本数据类型容器还对应get remove 方法来获取和删除数据成员只要是集合类接口都会有个迭代子 Iterator 利用这个迭代子就可以对list内存的一组对象进行操作 Array很简单就是数组数组的实例被创建之前必须明确指定数组大小然后根据这个大小在内存中划分一块连续的存储区域通过数组的下标可以快速访问到数组中的某个元素但是数组的增删效率相对List来说要低很多 com 数据库表设计 按照需求分析要求设计数据库该数据库共4张表以下为SQLite数据库中表的结构 表31 黑名单信息表blacklist 字段含义 字段名称 字段类型 允许空值 黑名单联系人的Id _id Integer N 黑名单联系人名字 name text Y 黑名单联系人电话号码 telephone text Y 表32 关键字信息表 keywords 字段含义 字段名称 字段类型 允许空值 关键字编号 _id integer N 关键字内容 content text Y 表33 拦截电话信息表 stop_tele 字段含义 字段名称 字段类型 允许空值 拦截电话的Id _id integer N 来电姓名 name text Y 来电号码 telephone text Y 来电时间 time text Y 表34 拦截短信信息表 stop_message 字段含义 字段名称 字段类型 允许空值 拦截短信编号 _id integer N 图片 photo integer Y 姓名 name text Y 电话号码 telephone text Y 消息内容 content text Y 时间 time text Y 是否已读 isread int Y 34 系统主要功能模块设计 在本系统中主要分为个大模块各模块分别如图3-1所示 图3-1 系统主功能模块图 1黑名单管理模块设计 黑名单是手机来电话和来短信拦截的一个主要拦截对象是不可或缺的但用户某电话加入到黑名单中后只要设置好拦截模式就可以拦截黑名单黑名单管理模块包括查看黑名单详细信息从系统联系人中导入到黑名单修改联系人信息删除联系人添加黑名单动态查找黑名单联系人 2防火墙模块设计 防火墙的设置是本系统的最基本的一个模块一款电话短信拦截个功能的软件不可能没有设置在本系统中防火墙可以设置为普通模式 只拦截黑名单中的联系人 陌生人黑名单模式 拦截所有陌生人和黑名单中联系人的电话和短信 全部拦截模式全部不拦截模式智能拦截模式 该模式是拦截短信中出现某些特定关键字的短信 关键字的添加详见图3-2所示 图3-2 拦截模式功能模块图 3拦截记录模块设计 拦截记录模块是防火墙拦截功能中的重要部分主要是将拦截到的呼入电话和拦截到的骚扰短信存储并显示出来供手机用户去查看和操作相应的记录在此模块中将通过Tabhost即页签来显示拦截到的短信和电话的记录用户可以对拦截到的电话进行拨号查看详细信息删除信息等操作对拦截到的短信进行查看详细信息删除回复短信等操作拦截记录模块模块功能图如图3-3所示 图3-3 拦截记录功能模块图 短信和电话具体拦截流程图如图3-4所示 图3-4 电话短信拦截流程图 4拦截记录统计图模块设计 该模块的主要作用是将当前日期和前六天所有拦截到拦截记录中的电话和短信进行统计并根据每天拦截到的电话和短信的次数分别画出拦截电话和拦截短信的七天的统计图一共用户查看 第四章 详细设计 本章将对具体怎样实现本软件做详细阐述详细地设计每个模块确定实现模块功能的算法和数据结构 在这些模块中所有的可视界面都是一个Activity的运用在黑名单模块的联系人导入模块主要运用到ContentProvider方面的知识电话拦截是通过Service组件来进行的在短信拦截和短信回复后状态的监视用到了BroadcastReceiver 41 主页面设计 系统的主界面MainActivity该Activity采用是LinearLayout和RelativeLayout嵌套布局方式界面上主要有一个标题它是一个TextView控件一个操作说明的Textview控件每一行是一个RelativeLayout每一行中都有一个ImageView图片控件两个控件TextView一个Button一共有五行每一个可视的界面都是一个Activity在本页面中主要运用了四大组件之一的Activity相关知识Activity间跳转启动服务生成菜单退出所有的Activity等操作 界面和逻辑设计 1首先选取布局方式在这个界面首先要显示出该软件的标题信息需要一个TextView来显示信息然后需要另一个Textview来描述软件的功能和开启软件的操作这个应该采用线性布局即可由于在下面的要每行显示出四个控件如果采用线性布局明显做不到最好采用的是相对布局来控制各控件的显示而每行其实就是一个线性布局因此本Activity的设计将采用一个嵌套布局的方式 2控件的设置在本界面中每行里面设置四个控件分别是一个图片视图二个文本显示框一个按钮同时在本界面还要设置两个菜单分别控制防火墙开启和关闭 3逻辑设计在本界面用到了两个监听事件分别是按钮点击事件和菜单的点击事件当用户按下不同的按钮时系统将会运行到相应的Activity点击菜单将出现开启防火墙和关闭防火墙两个菜单选项用户可根据情况选择当用户选择相应的菜单后系统给用户一个提示用来增强界面的友好性告诉用户操作结果 主界面如图4-1所示 图4-1 主界面 黑名单管理点击操作 弹出添加导入删除更新黑名单选项 点击相应选项进入对应系统功能 防火墙设置点击设置弹出设置防火墙拦截模式选项点击进入设置 拦截记录点击查看进入查看拦截记录界面用于查看拦截电话以及拦截短信的记录 隐私空间点击查看进入相应界面主要用于管理隐式联系人的短信息 拦截统计图点击查看进入拦截统计界面其功能主要用于统计拦截记录的数量 42 黑名单管理模块 手机用户可以将不想听联系人加入到黑名单中防火墙开启后就会拦截黑名单中联系人的电话在黑名单管理模块中主要的操作有查找联系人添加联系人删除 包括全部删除 从系统联系人中导入到黑名单修改联系人的资料以及查看联系人详细信息在此模块中的导入联系人中将用到一个四大组件 ------ContentProvider的知识通过ContentProvider提供的query 方法得到所有的系统联系人并显示出来供用户添加到黑名单中 界面设计在这个模块中Activity主要的布局有相对布局RelativeLayout 线性布局LinearLayout Activity主要运用的控件有 TextView EditText Gallery Button ImageView Menu Dialog等主要的页面如图4-2所示 图4-2 查找和显示黑名单界面 布局文件blackxml在该布局文件中主要采用的是相对布局在该布局中有一个listView用来显示所有的黑名单的信息在这个listView中里面主要有三个控件分别是imageView两个TextView分别用来显示黑名单联系人的姓名电话号码此外在本界面还有一个EditText一个搜索的图标用来搜索要查的黑名单联系人同时设置了几个菜单选项 详细信息导入联系人修改联系人删除黑名单添加黑名单主菜单分别用来对黑名单进行相应的管理 黑名单管理界面由图4-1方法进入黑名单管理界面其主要功能包含导入联系人修改联系人查看联系人详细信息添加联系人至黑名单将阻止联系人从黑名单删除以及主菜单主菜单用于返回该系统主要操作菜单 43 防火墙设置模块 该模块主要是列出系统的五种模式普通模式陌生人黑名单模式全部拦截模式不拦截模式智能拦截模式关键的添加在这里当用户选择不同的模式时在服务Service中就先从文件中读取这个设置的数据然后服务中的方法根据这个数据来进行拦截 界面设计当用户点击主界面的防火墙设置那一行的的设置按钮后就会进入到拦截模式的选定界面该界面主要是上述的五个拦截模式和添加关键字在本界面上主要有四个单选的按钮一个复选框两个Button主要运用的布局是LinearLayout 线性布局用到的控件有 TextViewRadioButtonRadioGroupCheckBox Button 防火墙设置模块界面效果图如图4-3所示 图4-3 防火墙设置界面 防火墙设置界面点击防火墙设置进入对应防火墙系统 该系统拥有普通防火墙模式该模式只拦截黑名单人员 陌生人黑名单模式该模式拦截所有人和黑名单人员 全部拦截模式该模式将拦截所有人 不拦截模式该模式将不拦截任何人 智能拦截模式该模式将根据关键字进行拦截该系统同样设计了添加拦截关键字以便于用户添加拦截联系人 44 拦截记录模块 在拦截记录模块 该模块的记录是通过四大组件的二个----服务 Service 和广播 BroadcastReceiver 来添加到数据库中的服务中主要是拦截电话信息广播主要是拦截短信记录此外在短信回复中也要运用广播来监听短信发送完后的状态主要通过Tabhost页签来分页显示短信和电话的拦截记录在这两个页签中每行数据都放在listview的一行中点击某一行时都会弹出一个拨号和查看详细信息的对话框点击菜单键就会弹出删除全部删除回复等三个菜单用来操作短信记录和电话记录在这些界面中主要用的布局有线性布局 拦截记录显示界面设计界面主要有一个页签分别显示的是电话拦截记录短信拦截记录页面中间是一个listView 用来显示短信和电话的拦截记录三个菜单栏分别是删除全部删除回复短信此外点解某行拦截记录都有一个对话框呈现出来供用户选择操作拦截记录界面如图4-4所示 图4-4 电话拦截记录界面 电话拦截记录界面当Blacklist服务系统拦截用户电话或短信后此界面会显示出拦截号码的提示信息便于用户查看 45 拦截统计图模块 界面设计该模块主要是用来统计手机当前六天和当天拦截到的记录的总数横坐标表示的是拦截的时间纵坐标表示的是拦截的记录数 拦截图如4-5所示 图4-5 拦截记录统计图界面 拦截记录统计图界面该界面为Blacklist服务系统只能统计一定时间内拦截的所有号码自动生成曲线图便于用户观察拦截情况 总结 经过这段时间不断努力毕业设计内容已经完成了回顾这个设计过程我学到了许多书本上没有学到的知识通过这次自己亲手制作的这个软件系统丰富了自己的实践技能扩展了本专业的知识面使我受益非浅同时也体验到了搞软件开发的困难度在这次设计的同时我又从中学到了许多东西但由于我对这样的软件开发还只是一个开始了解的不多这其中或许还有很多的不足还有些功能可以完善比如还可以增加一个诈骗电话举报功能可以建一个网站用来收集网友们提供的诈骗号码以及该号码做过哪些方面的诈骗案件然后定期从网络更新黑名单中的号码这也可能是我这个系统的不足之处在这里也恳请各位老师能够对我的作品指明不足并加以指正 现如今手机已经在向掌上电脑方向发展手机终端已经可以实现PC上的大部分功能谷歌的Android手机操作系统发展非常迅速自从在2008年十月下旬T-Mobile推出G1开启了Android时代以来谷歌已经发布了不下五个版本这一速度实在令人难以置信 目前Android40已经发布并且安装在了平板电脑上今后Android系统将被广泛应用与手机PDAGPS车载系统及平板电脑等方面因此Android的前景是非常可观的 总的来说我自认为本项目还是比较成功的这也是我在大学四年来完成的一个比较全面的实际例子在这次一段时间努力中我查阅了大量的资料对Android有了较为深刻的理解对于软件工程这些辅助性的教材也巩固了不少为我这次的毕业设计提供了很大的帮助锻炼了我的能力也为我的大学生活划上了一个圆满的句号 致 谢 参考文献 [1] 吴亚峰于复Android应用开发完全自学手册[M]人民邮电出版社201210-79 [2] 韩超Android经典应用程序开发[M]电子工业出版社20121-265 [3] 金泰延宋亨周朴知勋Android框架揭秘[M]人民邮电出版社201213-27 [4] Ed BurnetteAndroid基础教程[M]人民邮电出版社20093-162 [5] gasolin深入浅出Android[M]人民邮电出版社200947-109 [6] 张弈平Google Android SDK开发范例大全[M]人民邮电出版社201025-89 [7] 杨丰盛Android应用开发揭秘[M]机械工业出版社201034-120 [8] 高焕堂Google Android应用框架原理[M]机械工业出版社201080-167 [9] 靳岩Google Android开发入门与实战[M]人民邮电出版社200912-78 [10] 汪永松Android平台开发之旅[M]机械工业出版社201028-75 [11] 李宁AndroidOPhone开发完全讲义[M]中国水利水电出版社201060-120 [12] 谭浩强Java语言程序设计第三版[M]清华大学出版社200873-122 [13] 张孝祥Java就业培训教程[M]清华大学出版社200325-74 [14] 王珊萨师煊数据库系统概论第四版[M]高等教育出版社20063-77 [15] 余志龙陈小凤郑名杰Android SDK开发范例大全[M]人民邮电出社200946-97 [16] 李宁Android应用开发实战[M]机械工业出版社20122-36 [17] 郭宏志Android应用开发详解[M]电子工业出版社20104-482 附 录 主界面的java代码 TelPhoneMangerActivity package comhoneMangerActivity import comyList import comMap import com import com import comhoneMangerDbTelphoneMangerDBHelper import comhonemangerServiceAddressService import comTelphoneDao import comtyTableContanst import comtyTelphone import andcomtDialog import andcomActivity import andcomressDialog import andcomext import andcomogInterface import andcomnt import andcomle import andcom import andcomutInflater import andcom import andcomGroup import andcomOnClickListener import andcomon import andcomkBox import andcomText import andcomView import andcomleAdapter import andcomView import andcomt public class TelPhoneMangerActivity extends ListActivity implements OnClickListener private TelphoneDao dao private TextView backNumberText private ListView listView private Button addButton private Button searchButton private Button deleteButton private CheckBox selectAllCheckBox private EditText numberEditText private HashMap String Boolean checkBoxStatus private List selectIds private AddressService addressService private ProgressDialog progressDialog private static final String ACTION "comhonemangerServiceTelphoneMangerListenterService" Override public void onCreate Bundle savedInstanceState superonCreate savedInstanceState setContentView com dao new TelphoneDao new TelphoneMangerDBHelper this addressService new AddressService this listView getListView regist 数据库的拷贝事件 if addressServicedbIsexit new Thread new DBcopyThread start progressDialog ProgressDialogshow this "初始化" " 数据正在初始化请稍等" true 找到各个按键 addButton Button findViewById comadd searchButton Button findViewById comsearch deleteButton Button findViewById comdelete selectAllCheckBox CheckBox findViewById comelect_all backNumberText TextView findViewById andcomempty 为按键设置监听 addButtonsetOnClickListener this searchButtonsetOnClickListener this deleteButtonsetOnClickListener this selectAllCheckBoxsetOnClickListener this backNumberTextsetOnClickListener this showListView 注册来电黑名单拦截 private void regist startService new Intent ACTION 拷贝数据库线程为了避免程序无响应 private class DBcopyThread implements Runnable Override public void run try addressServicecopyDB progressDialogdismiss catch Exception e eprintStackTrace 显示黑名单号码 private void showListView List Map String Object data daogetAllTelphone if datasize 0 backNumberTextsetClickable false else backNumberTextsetClickable true String[] from TableContanstNumberColumnsNUMBER int[] to comtem_number SimpleAdapter adapter new TelphoneAdpter this data comknumber_list_item from to listViewsetAdapter adapter 监听事件处理 Override public void onClick View v if v addButton v backNumberText addTelphoneMethod else if v deleteButton deleteSeleteData selectAllCheckBoxsetChecked false else if v searchButton Intent intent new Intent intentsetClass TelPhoneMangerActivitythis SearchActivityclass startActivity intent else if v selectAllCheckBox checkOrcancelAllbox selectAllCheckBoxisChecked 提示信息 protected void showToast String string ToastmakeText this string ToastLENGTH_SHORT show 添加黑名单号码 private void addTelphoneMethod LayoutInflater inflater LayoutInflater this getSystemService ContextLAYOUT_INFLATER_SERVICE final View view inflaterinflate comog null new AlertDialogBuilder this setTitle "黑名单添加" setView view setPositiveButton "添加" new DialogInterfaceOnClickListener Override public void onClick DialogInterface dialog int which numberEditText EditText view findViewById comumber String number numberEditTextgetText toString if numbertrim length 0 TelPhoneMangerActicomToast "请输入拦 截号码" else if daofindTelphone number getCount 0 TelPhoneMangerActivitythis showToast "输入号码已存在无 需增加" else Telphone telphone new Telphone number long id daoaddTelphone telphone if id 0 TelPhoneMangerActicomToast "添加 失败" else TelPhoneMangerActicomToast "添加 成功" showListView setNegativeButton "取消" new DialogInterfaceOnClickListener Override public void onClick DialogInterface dialog int which dialogcancel show 黑名单号码删除 private void deleteSeleteData AlertDialogBuilder builder new AlertDialogBuilder this buildersetTitle "黑名单删除" setMessage "确定删除所选号码" setCancelable false setPositiveButton "确定" new DialogInterfaceOnClickListener public void onClick DialogInterface dialog int id int count 0 if selectIdssize 0 ToastmakeText TelPhoneMangerActivitythis "无选中记录请选择" ToastLENGTH_LONG show else Logv "TAG" "selectIds " selectIdssize for int i 0 i selectIdssize i String deleteNumber selectIdsget i daodeleteTelphoneById deleteNumber count showListView if count 0 ToastmakeText TelPhoneMangerActivitythis "删除成功" ToastLENGTH_LONG show else ToastmakeText TelPhoneMangerActivitythis "删除失败" ToastLENGTH_LONG show setNegativeButton "取消" new DialogInterfaceOnClickListener public void onClick DialogInterface dialog int id dialogcancel AlertDialog alert buildercreate alertshow 点击ListView条目存储被点击的条目 Override protected void onListItemClick ListView l View view int position long id CheckBox box CheckBox viewfindViewById comtem_delete TextView idView TextView viewfindViewById comtem_number String deleteNumber idViewgetText toString boxtoggle 改变checkbox的选中状态 if boxisChecked selectIdsadd deleteNumber checkBoxStatusput deleteNumber true else selectIdsremove deleteNumber checkBoxStatusput deleteNumber false 全选or取消全选 private void checkOrcancelAllbox boolean checked int itemCount listViewgetCount selectIdsclear checkBoxStatusclear for int i 0 i itemCount i View view listViewgetChildAt i Map String Object data Map String Object listView getItemAtPosition i String number dataget TableContanstNumberColumnsNUMBER toString if view null CheckBox cb CheckBox viewfindViewById comtem_delete cbsetChecked checked checkBoxStatusput number checked if checked selectIdsadd number 自定义SimpleAdapter显示ListView数据 private class TelphoneAdpter extends SimpleAdapter public TelphoneAdpter Context context List extends Map String data int resource String[] from int[] to super context data resource from to selectIds new ArrayList checkBoxStatus new HashMap String Boolean Override public View getView int position View convertView ViewGroup parent View view supergetView position convertView parent CheckBox box CheckBox viewfindViewById comtem_delete TextView idView TextView viewfindViewById comtem_number String number idViewgetText toString if checkBoxStatuscontainsKey number boxsetChecked checkBoxStatusget number else boxsetChecked selectAllCheckBoxisChecked return view TelphoneDao package com import comyList import comMap import com import com import andcomentValues import andcomor import comhoneMangerDbTelphoneMangerDBHelper import comtyTableContanst import comtyTelphone public class TelphoneDao private TelphoneMangerDBHelper dbHelper public TelphoneDao TelphoneMangerDBHelper dbHelper thisdbHelper dbHelper 添加一个Telphone对象数据到数据库表 public long addTelphone Telphone phone ContentValues values new ContentValues valuesput TableContanstNumberColumnsNUMBER phonegetNumber return dbHelpergetWritableDatabase insert TableContanstBLACK_NUMBER_TABLE null values 删除一个number所对应的数据库表Telphone的记录 public int deleteTelphoneById String number return dbHelpergetWritableDatabase delete TableContanstBLACK_NUMBER_TABLE TableContanstNumberColumnsNUMBER " " new String[] number "" 查询所有的记录 public List Map String Object getAllTelphone List Map String Object data new ArrayList Map String Object Cursor cursor dbHelpergetWritableDatabase query TableContanstBLACK_NUMBER_TABLE null null null null null "_id desc" while cursormoveToNext Map String Object map new HashMap String Object 8 String number cursorgetString cursor getColumnIndex TableContanstNumberColumnsNUMBER mapput TableContanstNumberColumnsNUMBER number dataadd map cursorclose return data 黑名单号码查询 public Cursor findTelphone String number Cursor cursor dbHelpergetWritableDatabase query TableContanstBLACK_NUMBER_TABLE null "number " new String[] number null null null null return cursor IV 40
/
本文档为【通讯工程专业毕业论文--Android平台下通信Blacklist服务设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索