基于android的短息拦截系统的实现_第1页
基于android的短息拦截系统的实现_第2页
基于android的短息拦截系统的实现_第3页
基于android的短息拦截系统的实现_第4页
基于android的短息拦截系统的实现_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)论文题目基于ANDROID的短信拦截系统的设计与实现THESISTOPICBASEONTHEREALIZATIONOFTHEANDROIDSSMSINTERCEPTIONSYSTEM2015年5月18日毕业设计(论文)任务书第1页毕业设计(论文)题目基于ANDROID的短信拦截系统的设计与实现毕业设计(论文)要求及原始数据(资料)1综述短信息发展及前景;2深入了解短信拦截系统的相关技术;3分析短信拦截系统的实现,训练编写程序的能力;4设计并完成基于内容的短信拦截功能;5深入分析短信拦截系统的关键技术与编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容1综述短信息发展及前景;2了解短信拦截系统的相关技术;3熟悉基于ANDROID短信拦截系统的开发环境;4设计并完成基于内容的短信拦截功能;5深入分析短信拦截系统的关键技术与编写语言JAVA;6熟练掌握ECLIPSE的使用;7设计与实现基于ANDROID的短信拦截系统。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;所在院系软件工程学院专业班级软件工程1107班完成日期2015年5月18日2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。主要参考文献(资料)1胡成杰,靳新春3G网络时代下的短信发展前景J科技传播,20112黄日生浅议垃圾短信之规制J每周电脑报20053黄良友垃圾短信治理对策研究J重庆邮电大学学报社会科学版20104宋仁博,许开明,王海峻,孙大伟多举措防治垃圾短信J电信工程技术与标准化20095徐英慧,刘梅彦基于内容的手机端垃圾短信过滤策略研究J北京信息科技大学学报自然科学版20136张燕,傅建明垃圾短信的识别与追踪研究J计算机应用研究20067吴振奎,娄涛,田刚,赖晓龙,乔芸垃圾短信拦截技术研究J电信工程技术与标准化20118ACKER,AMELIATHESHORTMESSAGESERVICESTANDATDS,INFRASTRUREANDINNOVATIONTELEMATICSANDINFORMATICS20149ZHOU,SHUMINTHEDEVELOPMENTOFSHORTMESSAGEPLATFORMBASEDONCMPPINTERNATIONALCOFERENCEONCOMMUNICATIONTECHOLOGYPROCEEDINGS200610PEERSMAN,GTUTORIALOVERVIEWOFTHESHORTMESSAGESERVICEWITHINGSMCOMPUTINGANDCONTROLENGINEERING2000专业班级软件1107班学生要求设计(论文)工作起止日期2015年3月23日2015年7月3日指导教师签字日期2015年3月23日教研室主任审查签字日期系主任批准签字日期基于ANDROID的短息拦截系统的实现摘要随着我国移动通信业务的发展,人们之间的交流越加方便。其中手机短信业务因价格便宜、方便快捷,赢得了广大手机用户的青睐,即使微信等APP的出现也依旧没能替代它的存在。但手机短信服务的广泛使用,随之而来“垃圾短信”问题也愈演愈烈,称为一大社会公害。垃圾短信泛滥,已经干扰到人们的正常生活和市场的正常运行。而ANDROID作为手机平台的一个主流操作系统面临着巨大的市场,基于ANDROID的短信拦截系统的出现也是必然趋势。垃圾短信的有效治理事关短信服务业的健康发展和移动运营商的社会形象,是形成消费者信任感的关键与保证,短信作为一种日益重要的创博媒介直接影响到社会诚信体系的建立,对维护人们的通信自由,生活安宁以及社会善良风俗有着重要意义。关键词移动通信;传播媒介;垃圾短信;短信拦截BASEONTHEREALIZATIONOFTHEANDROIDSSMSINTERCEPTIONSYSTEMABSTRACTWITHTHEDEVELOPMENTOFCHINASMOBILECOMMUNICATIONSBUSINESS,THECOMMUNICATIONBETWEENPEOPLEMORECONVENIENTTHESMSBUSINESSWONTHEMAJORITYOFMOBILEPHONEUSERSBECAUSEOFTHEPRICEISCHEAP,CONVENIENTANDQUICK,EVENTHEAPPEARANCEOFTHEAPPSUCHASMICROLETTERALSOSTILLCANTREPLACEITBUTTHEWIDESPREADUSEOFMOBILEPHONESMS,THEN“SPAM“PROBLEMALSOINTENSIFIED,REFERREDTOASAPUBLICNUISANCESPAMMESSAGES,HAVEINTERFEREWITHPEOPLESNORMALLIFEANDNORMALOPERATIONOFTHEMARKETBUTTHEANDROIDMOBILEPLATFORMAMAINSTREAMOPERATINGSYSTEMISFACINGTHEHUGEMARKET,BASEDONTHEANDROIDMESSAGEINTERCEPTIONSYSTEMISINEVITABLETRENDTHEEFFECTIVEGOVERNANCEOFTHESPAMMESSAGESABOUTTHEHEALTHYDEVELOPMENTOFTHESMSSERVICESANDTHEOPERATORSSOCIALIMAGE,ISTHEKEYTOTHEFORMATIONOFCONSUMERTRUSTANDASSURANCE,SMSASANINCREASINGLYIMPORTANTMEDIUMDIRECTLYAFFECTTHEESTABLISHMENTOFSOCIALCREDITSYSTEM,TOMAINTAINTHECOMMUNICATIONOFPEOPLEFREE,PEACEFULLIFEANDSOCIALGOODCUSTOMSHASIMPORTANTSIGNIFICANCEKEYWORDSTHEMOBILECOMMUNICATIONMEDIASPAMMESSAGESSMSBLOCKING目录1绪论811研究内容812研究意义8121垃圾短信的界定8122垃圾短信的类型8123垃圾短信的危害8124具体原因9125解决方法913研究现状和发展趋势102系统分析1221研究目标1222需求分析1223性能分析1224灵活性分析123ANDROID开发环境1331ANDROID介绍13311ANDROID系统框架13312SDK提供的工具介绍1932ANDROID开发现状2033ANDROID的特点2134ANDROID开发环境搭建224程序设计2541用户界面设计2542数据库设计2543程序模块设计265程序开发2851文件结构与用途2852广播29521什么是广播29522广播有什么用30523广播发送者阅读垃圾短信会浪费用户时间,即使是删除垃圾短信也会浪费时间,打扰正常的工作和生活用户接收到一些色情、谣言、恐怖信息等也会给个人情绪带来困扰和影响。扰乱社会秩序不同类型的垃圾短信会扰乱不同的社会秩序,危害国家安全、颠覆国家政权和民族团结的违法性垃圾短信会影响社会的安定与和谐,不利于社会的稳定发展色情、谣言等垃圾信息对社会文化秩序带来影响,破坏社会风气和社会道德商业广告类垃圾短信会扰乱社会经济秩序,可能造成不正当竞争或者侵犯消费者权益。因此,垃圾短信会严重扰乱社会秩序,对政治、经济、文化秩序均有消极影响。侵犯用户合法权利垃圾短信在其性质上本身就侵犯了公民的宪法等权利,泄露用户手机号码等信息侵犯了公民的隐私权以及个人信息保护权未经用户同意发送用户不愿接受的信息侵犯了用户的通信自由权以及手机消费者接受信息服务的公平交易和选择权垃圾短信干扰用户正常生活,也侵犯了公民的生活安宁权。诈骗类的违法性垃圾短信对公民的财产权面对巨大的风险和威胁。而另外一些谣言、诽谤、恐吓等垃圾短信也侵犯了用户的人格权等人身权利。124具体原因第一,某些趣味低下的人传播黄色短信以取悦他人;第二,一些不法分子利用短信诈取钱财;第三,一些人利令智昏,轻易相信各种“天上掉馅饼”的好事;第四,在特定环境中,人们容易听信空穴来风的谣言;第五,更重要的原因是中国有关信息安全方面的立法不到位,相关部门的监管机制不健全,社会主义道德观没有真正确立。125解决方法国家方面从国家方面来看,法律法规必不可少。2014年11月3日,工信部发布通信短信息服务管理规定(征求意见稿)。如果这一法规最终正式发布,消费者对抗垃圾短信、政府部门监管垃圾短信将有法律依据。个人方面从个人而言,我们也要学会自我保护,因此短信拦截系统应运而出。ANDROID平台短信拦截系统,让广大ANDROID用户免受垃圾短信的骚扰,为人民提供更好的生活环境。13研究现状和发展趋势相对于传统的媒体,手机短信息具有以下特点短信收视率高手机用户收到短信后都会去查阅,只有查看到短信息后,短信息才会消除,所以可以达到95以上甚至100的查看率,这是其他任何媒体都无法达到的。短信发布对象的含金量高手机用户群体相对非手机用户来说是有一定收入的群体,具有一定的消费能力。短信发布快速传统的媒体需要制作、排版及编辑,而且只能在固定的时间发布,受到时空的限制。而手机短信则可以随时发布,速度快,手机用户在全国各地都可以收到,遇有短评快或紧急的宣传活动,手机短信非常适合。短信成本发布低电视、报纸及户外等媒体,成本较高,而短信成本较低,在相同的广告宣传费用下,手机短信的受众用户要比传统媒体的受众用户要多出数倍。短信形式新颖短信与其他传统媒体不同,它是一种基于现代移动通讯的新型的媒体。由于手机是用户随身携带的个人通信工具,用户可以在任何场所包括在出差旅途中轻松地接收信息,更容易被用户接受,有更好的广告效果,短信息相对语音通讯是一种非语音通讯方式,就像打电话推销保险,所以不会引起法律纠纷。因此使用短信做广告的越来越多。当前,手机已经成为日常生活必备工具,但因其带来的骚扰问题也日趋严重。近日,360互联网安全中心发布2014年二季度手机安全状况报告,报告中指出,今年二季度360手机卫士共为全国用户拦截各类垃圾短信1768亿条,平均每天拦截垃圾短信194亿条;而从用户举报各类垃圾短信的内容看,广告推销、地产、促销占据了垃圾短信绝大部分。据了解,一季度垃圾短信拦截量为2088亿条,相比之下二季度垃圾短信拦截量1768亿条有明显下降趋势,这很可能与今年工信部、电信运营商加大力度整治垃圾短信有关。但报告显示垃圾短信每天被拦截量为194亿条的数值仍不容乐观。从用户举报垃圾短信情况看,今年二季度,举报各类垃圾短信5824万条,平均每天举报垃圾短信64万条。通过举报垃圾短信的内容,广告类垃圾短信依旧最多占比高达776;其次为违法信息、诈骗信息的垃圾短信,占比分别为121和46。而广告类垃圾短信中,广告推销、地产广告以及商家促销占据了广告类垃圾短信类别的前三位。据了解,为加快垃圾短信整治办法,工信部目前正抓紧制定通信短信息服务管理规定及8项反垃圾短信技术标准,以规范短信息服务,特别是针对商业性短信的发送行为,将明确对违背用户意愿滥发短信等违规行业的处罚措施,预计该项规定最快有望年内出台。而目前,部分商家也已做出努力,如用户在收到该类商家的产品促销、广告短信时,这类短信末端会注明“回复TD,退订此业务”,从源头避免了对用户造成的打扰。此外,用户也可使用防骚扰类软件对垃圾短信实行拦截,这也是目前拦截垃圾短信最有效、最快捷的方式。通过智能识别、拦截、用户举报等防骚扰功能,全面抵制当前垃圾短信给人们带来的困扰。短信业务正以其短小、迅速、简便、价格低廉等诸多优点日益成为人们的一种重要通信和交流方式。移动短信业务在飞速发展的过程中,一方而给广大使用者带来了各种方便和帮助另一方而也出现了诸多的问题,如垃圾短信的泛滥、短信诈骗、短信病毒、短信谣言等。我们可以把这些问题统一归类到垃圾短信。据不完全统计,去年全国垃圾短信总量约2000亿条,垃圾短信的“产地”在全国呈现东高西低的趋势,广东省所产短信最多,占21。而受骚扰最严重的是北京的手机用户,平均每天会收到222条垃圾短信;其次是河南、吉林、江西、上海、天津等地用户,平均每天会收到2条以上的垃圾短信。在内容方面,65为广告促销内容,15为房地产广告,诈骗短信为样本总量4。参照垃圾邮件的定义,一条短信是否是垃圾短信,只根据其内容对短信接收者而言无任何价值进行判断,这类短信只会消耗接收者的时间、侵占手机的存储空间。因此,短信拦截系统的出现是必然的趋势。2系统分析21研究目标熟悉基于ANDROID应用程序的开发设计熟悉ANDROID的各种组件,并使用它们进行开发。熟悉SQLITE数据库的使用,应用其在短信拦截系统中。22需求分析本软件是基于ANDROID的应用程序,开启之后可以查看已经拦截到的短信,它们都保存在数据库中,而且可以对它们进行操作(删除),也可以对该软件进行设置,包括关键字设置,黑名单设置,白名单设置等。因此其功能需求有主界面查看当前软件运行状态;短信拦截界面可以查看当前已经拦截到的短信,并可点击查看具体信息;详细短信查看界面可以通过短信拦截界面点击进入,查看当前短信的具体信息;设置界面可以对软件拦截的要求进行设置,包括关键字,黑名单,白名单设置等;关于界面可以查看有关该软件的具体信息,作者,版本等。23性能分析程序响应迅速、处理速度快、安全性能高。24灵活性分析该软件基于ANDROID平台,兼容ANDROID40以上各个版本。3ANDROID开发环境31ANDROID介绍ANDROID是一种基于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由GOOGLE公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。ANDROID操作系统最初由ANDYRUBIN开发,主要支持手机。2005年8月由GOOGLE收购注资。2007年11月,GOOGLE与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良ANDROID系统。随后GOOGLE以APACHE开源许可证的授权方式,发布了ANDROID的源代码。第一部ANDROID智能手机发布于2008年10月。ANDROID逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,ANDROID在全球的市场份额首次超过塞班系统,跃居全球第一。2013年的第四季度,ANDROID平台手机的全球市场份额已经达到781。2013年09月24日谷歌开发的操作系统ANDROID在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。311ANDROID系统框架ANDROID系统是基于LINUX和JAVA技术,它在底层采用LINUX内核和本地库,在上层提供JAVA支持框架和开发接口。它借助于LINUX强大的稳定性、开放性和可移植性,JAVA语言开发的广泛性、简单性和可移植性,一经推出就受动广泛关注和欢迎,在嵌入式开发中产生比较深远的影响。考虑到性能的问题,GOOGLE没有采用SUN的基于堆栈的虚拟机,而是开发了一个基于寄存器的ANDROID虚拟机DALVIK虚拟机。当然ANDROID系统提供了一个工具用来把JAVA虚拟机格式转换为DALEIK虚拟机格式。不过ANDROID仅支持有限的JAVA运行库,因此不是所有的JAVA程序都可以在ANDROID里直接编译运行。当然任何一个系统都有其固有个缺点,而且它就隐藏在它的优点之中,ANDROID也不例外。首先ANDROID系统的开放性导致任何厂家都可以修改定制而推出自己的ANDROID系统,这就导致了尽管设备运行的系统都是ANDROID,但运行的程序就或多或少不兼容,这对第三方程序开发员人来说不是个好消息,标准的不统一势必会影响的ANDROID程序的开发使用。其次,尽管ANDROID系统是基于LINUX和JAVA的,但由于它开发了一套独立的UI系统,它完全不兼容现有的LINUX和JAVA应用程序,这不仅是浪费了现有的开发资源,而且是极大的浪费了未来的开发资源。不管ANDROID社区有多大,比起LINUX开源社区来说,它也是大海中的一点水,这是否会给对手以机会呢如INTEL的MOBLIN系统、NOKIA的MAEMO系统以及UBUNTU的上网本系统,还有最新的由INTEL和NOKIA联合开发的MEEGO系统。回到ANDROID系统本身,如图11,它主要包括五个部分,分别是LINUX内核(红色部分)、本地库(绿色部分)、DALVIK虚拟机(黄色部分)、应用程序框架和应用程序(蓝色部分)。ANDROIDLINUX内核最初的ANDROID内核是基于2625的,但由于采用的同样的版本管理系统,ANDROID内核紧跟LINUX内核的进度,目前最新的开发版本是2631,但版本其实已经不重要了,你只要记住ANDROID内核基本上同步于LINUX内核就可以了,在此基础上ANDROID对LINUX内核做了些修改和功能添加使之ANDROID化,如著名的BINDER、匿名共享内存(ASHMEM)等。目前在ANDROID的源代码仓库中有4个关于LINUX的项目,他们分别是KERNEL/COMMONGITCOMMONANDROIDKERNELTREEKERNEL/EXPERIMENTALGITEXPERIMENTALKERNELPROJECTSKERNEL/MSMGITKERNELTREEFORMSM7XXXFAMILYONANDROIDKERNEL/OMAPGITKERNELTREEFOROMAPFAMILYONANDROID本地库说到本地库,首先我们想到的一定是LIBC库。是的,ANDROID也不例外,他支持C库,但不是GLIBC或其他常见的小型仓库,比如UCLIBC,而是一个额称为BIONIC的C库。尽管它不是很强大,但足够用了。按照GOOGLE的说法,选择BIONIC的原因是因为尽量移除GPLLICENSE的模块更小的代码密度和更快的运行速度但BIONICC库也有它的局限性首先,不完全支持POSIX标准;其次,不支持LIBM和LIBTHREAD_DB;第三,不能使用标准的TOOLCHAIN来编译ANDROID本地应用。ANDROID的编译链也是依赖于BIONIC库的,它的动态链接库加载使用的是LINKER,而不是LDSO。它的PRELINK使用的是APRIORIBUILD/TOOLS/APRIORI,STRIP工具使用的是SOSLIM(BUILD/TOOLS/SOSLIM)而不是STRIP。ANDROID的本地库基本上位于源代码树的EXTERNAL和SYSTEM目录下。DALVIK虚拟机DALVIK是GOOGLEANDROID平台最重要的一个部分,是GOOGLE专门为ANDROID开发的JAVA虚拟机,被称为DALVIK虚拟机。按照GOOGLE的说法,DALVIK具有高效、简洁、节省资源的特点,非常适合资源有限的嵌入式系统。DALVIK是按照APACHELICENSEV2方式发布的,GOOGLE尽量把GPLLICNSE的软件移除ANDROID系统。这就避免了非免费的JAVAME版权问题,也移除了GPLV2的JAVASE。以前也有些公司搞过LINUX/JAVA平台,即底层支持LINUX系统、上层采用JAVA技术,但都因为效率的问题而放弃。GOOGLE的DALVIK虚拟机很好的解决了这个问题,同其他的JAVA虚拟机相比,DALVIK虚拟机有如下特点DALVIK虚拟机采用了基于寄存器的虚拟机技术。与JAVA虚拟机不同,DALVIK采用了基于寄存器(REGISTERBASED)的技术,而不是基于堆栈(STACKBASED)的技术。我们不去争论基于寄存器的虚拟机是不是更好,如果有兴趣,你可以去比较他们的性能差异。DALVIK虚拟机使用自定义的字节码格式(称为DEX文件,DEX),不兼容现有JAVA字节码格式。ANDROID里的DX工具负责把JAVA字节码转换成DALVIK字节码。DALVIK虚拟机运行效率高,同事代码密度小,节省资源。DALVIK虚拟机常量池只使用32位的索引。DALVIK虚拟机不支持JIT编译技术(JUSTINTIMECOMPILER)。对于ANDROID应用程序开发者来说,我们必须清楚如何在ANDROIDDALVIK虚拟机上使用内存,下面是内存使用上的一些限制DALVIK默认的栈大小是12K3个页,每个页4K。DALVIK堆(HEAP)默认启动大小2M,默认最大值16M。DALVIK堆(HEAP)支持的最小启动大小1M,支持的最大值1024M。DALVIK的堆和栈参数可以通过XMS和XMX更改。对于ANDROID的JAVA应用程序来说,每一个应用对对应于一个独立的DALVIK虚拟机实例进程,当然每个ANDROIDJAVA应用程序的线程也对应于一个LINUX线程。这相当于每个ANDROIDDALVIK应用程序都运行在自己的沙盒里面从而保证DALVIK应用程序的安全性。当然ANDROID系统也充分利用了这个特性,每个ANDROIDDALVIK应用程序都被赋予了一个独立的LINUXPID(APP_)。应用程序框架ANDROID应用程序框架完全使用JAVA语言编写,运行在ANDROIDDALVIK虚拟机之上,它通过JAVAJNI接口调用本地库的接口。ANDROID应用程序框架向下封装了系统的各种系统服务及硬件的访问接口,向上提供统一的应用程序开发接口,即ANDROIDAPI。ANDROID应用程序通过调用ANDROID应用程序框架接口来实现各种功能。ANDROID应用程序框架封装了大部分的系统服务功能,它们包括ACTIVITYMANAGERWINDOWSMANAGERCONTENTPROVIDERVIEWSYSTEMRESOURCEMANAGERNOTIFICATIONMANAGERPACKETMANAGERTELEPHONYMANAGERLOCATIONMANAGER对于ANDROID开发者来说,ANDROID应用程序框架是最重要的一部分,只有真正理解了这个框架说包含的内容,才能写出高效的ANDROID应用程序。应用程序ANDROID是一个功能完全的移动设备操作系统,它自带了核心应用程序,这样你就不需要额外的开发而直接在你的设备上使用ANDROID系统了,这些应用程序开起来中规中矩,如果你想要一个更加绚丽的操作界面,你可以修改他们来实现自己的应用程序。很明显,ANDROID应用程序都是用JAVA语言开发的,它依赖于ANDROID应用框架(FRAMEWORKJAR),同时运行在ANDROIDDALVIK虚拟机之上。ANDROID的系统架构和其它操作系统一样,采用了分层的架构。ANDROID分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和LINUX核心层。ANDROID是以LINUX为核心的手机操作平台,作为一款开放式的操作系统,随着ANDROID的快速发展,如今已允许开发者使用多种编程语言来开发ANDROID应用程序,而不再是以前只能使用JAVA开发ANDROID应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在ANDROID中,开发者可以使用JAVA作为编程语言来开发应用程序,也可以通过NDK使用C/C作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如PYTHON、LUA、TCL、PHP等等),还有其他诸如QT(QTFORANDROID)、MONO(MONOFORANDROID)等一些著名编程框架也开始支持ANDROID编程,甚至通过MONODROID,开发者还可以使用C作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的ANDROIDSIMPLE语言,该语言类似BASIC语言。而在网页编程语言方面,JAVASCRIPT,AJAX,HTML5,JQUERY、SENCHA、DOJO、MOBL、PHONEGAP等等都已经支持ANDROID开发。而在ANDROID系统底层方面,ANDROID使用C/C作为开发语言。应用程序早期的ANDROID应用程序开发,通常通过ANDROIDSDK(ANDROID软件开发包)下使用JAVA作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。例如开发者可以通过ANDROIDNDK(ANDROIDNATIVE开发包)使用C语言或者C语言来作为编程语言开发应用程序。同时谷歌还推出了适合初学者编程使用的SIMPLE语言,该语言类似微软公司的VISUALBASIC语言。此外,谷歌公司还推出了GOOGLEAPPINVENTOR开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。开发人员可以使用和核心应用程序使用的完全相同的API框架。应用程序架构的设计的目的是为了简化组件的重用;任何应用程序都可以发布它的功能,其他的应用程序可能会利用到这些功能(需遵守框架提供的安全约束)。依靠同样的机制,组件可以被用户所取代。底层的所有的应用程序是一组服务和子系统,包括一组丰富并且可扩展的VIEW,这组VIEW可以被用来构建一个应用程序,包括列表,表格,文本框,按钮,甚至可嵌入的WEB浏览器一组CONTENTPROVIDER,可以使应用程序访问其它应用程序的数据比如通讯录,或者共享自己的数据。一个资源管理器,提供对非代码资源的访问,比如本地化的字符串,图形和布局文件一个通知管理,可以使所有的应用程序在状态栏显示定制的提醒一个ACTIVITY管理,它管理的应用程序的生命周期,并且提供了一个通用的后台切换栈库ANDROID包括了一套C/C库,这套库被ANDROID系统的各个组件使用。这些能力通过ANDROID应用框架展示给应用开发人员。一些核心库的如下系统C库一个针对于标准C系统库LIBC的BSD派生的实现,针对于嵌入式LINUX设备进行了调整媒体库基于PACKETVIDEO的的OPENCORE;该库支持回放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4,H264,MP3,AAC,AMR,JPG和PNG格式SURFACE管理器管理访问显示子系统和从多个程序中无缝合成二维和三维图形层LIBWEBCORE一个流行的WEB浏览器引擎,它对ANDROID浏览器和嵌入式WEB视图具有良好的支持SGL底层的2D图形引擎3D库基于OPENGLES10API的一个实现;该库使用硬件3D加速(如果可用)或包含高度优化的3D软件光栅扫描器FREETYPE用于位图和矢量字体渲染SQLITE一个提供给所有的应用程序使用的强大的,并且轻量级的关系型数据库引擎ANDROID的运行ANDROID包括一组核心库,这组核心库提供了用于JAVA编程语言的核心库可用的大多数功能。每个ANDROID应用都运行在它自己的进程里,并依附一个单独的DALVIK虚拟机实例。一个设备可以高效地运行多个DALVIK虚拟机。DALVIK虚拟机执行DALVIK可执行文件(DEX)的格式,此格式做了最小的内存占用优化。DALVIK虚拟机是基于寄存器的,并运行由DX工具将JAVA语言编译器编译完的CLASS文件转换为的DEX格式文件。DALVIK虚拟机的底层功能依赖LINUX内核,例如线程和底层的内存管理。LINUX内核ANDROID的核心系统服务,比如安全,内存管理,进程管理,网络协议栈和驱动模块都是依赖于LINUX26。内核也作为在硬件和软件栈之间的抽象层。312SDK提供的工具介绍ANDROIDSDK包含各种各样的定制工具,其中最重要的工具是ANDROID模拟器和ECLIPSE的ANDROID开发工具插件(ADT)。1ANDROID模拟器(ANDROIDEMULATOREMULATOREXE)2集成开发环境插件(ANDROIDDEVELOPMENTTOOLSPLUGINFORTHEECLIPSEIDE,ADT)可以从ECLIPSE集成开发环境内部访问别的ANDROID开发工具。通过它可以进行包括截屏、管理端口转发(PORTFORWARDING)、设置断点、查看线程和进程信息的一系列操作它提供一个新的项目向导,用于快速创建一个新的ANDROID应用需要的所有基本文件它使构件ANDROID应用的过程自动化和简单化它提供一个ANDROID代码编辑器,用于为ANDROID的MANIFEST和资源文件编写有效的XML。3调试监视服务(DALVIKDEBUGMONITORSERVICEDDMSBAT)它集成在DALVIK(ANDROID平台的虚拟机)中,用于管理运行在模拟器或者设备上的进程,并协助进行调试。可以用它来去除进程、选择一个特定进程来调试、生成跟踪数据、查看堆和线程数据、对模拟器和设备进行屏幕快照等。4ANDROID调试桥(ANDROIDDEBUGBRIDGEADBEXE)它用于向模拟器或手机设备安装应用程序的APK文件和从命令行访问模拟器或手机设备。也可以用于将标准的调试器连接到运行在ANDROID模拟器或手机设备上的应用代码,5ANDROID资源打包工具(ANDROIDASSETPACKAGINGTOOLAAPTEXE)可以通过AAPT工具来创建APK文件,这些文件包含了ANDROID应用程序的二进制文件和资源文件。6ANDROID接口描述语言(ANDROIDINTERFACEDESCRIPTIONLANGUAGEAIDLEXE)它用来生成进程间接口代码,例如,在一个服务中可能就会用到。7SQLITE3数据库(SQLITE3SQLITE3EXE)ANDROID应用程序可以创建和使用SQLITE数据文件,而开发者和使用者也可以方便的访问这些SQLITE数据文件。8跟踪显示工具(TRACEVIEWTRACEVIEWEXE)它可以生成跟踪日志数据的图形分析视图,这些跟踪日志数据由ANDROID应用程序产生9创建SD卡工具(MKSDCARDMKSDCARDEXE)它帮助创建磁盘镜像。这个磁盘镜像可以在模拟器上模拟外部存储卡。10DX工具(DXDXBAT)它将CLASS字节码重写为ANDROID字节码(存储在DEX文件中)11生成ANT构件文件(ACTIVITYCREATORACTIVITYCREATORBAT)它是一个脚本,用来生成ANT构建文件。ANT构建文件用来编译ANDROID应用程序。如果在安装了ADT插件的ECLIPSE环境下开发,就不需要这个脚本了。12ANDROID虚拟设备(ANDROIDVIRTUALDEVICESAVD)每个ANDROID虚拟设备(AVD)模拟了单一的虚拟设备来运行ANDROID平台,这个平台至少要有自己的内核,系统图象和数据分区。开发者可以创建并保存多种虚拟模拟器配置。32ANDROID开发现状目前国内的ANDROID开发还是主要以应用开发为主,主要分成3类为企业开发应用、开发通用应用(放到ANDROIDMARKET或者其他APPMARKET销售)以及游戏开发(放到ANDROIDMARKET或者其他APPMARKET销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种为国外公司进行外包开发,或者通过GOOGLE的移动广告(ADMOB)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者,目前和第二类开发者类似。应用构成ANDROID的应用一般由以下四个关键部分构成ACTIVITY、INTENTRECEIVER、SERVICE、CONTENTPROVIDER。其中ACTIVITY是必要部分。应用场合ACTIVITY每个应用都是必须得,ACTIVITY代表一个应用的一个具体的界面管理类,其本身并不显示。INTENTRECEIVER可使应用对外部事件做出响应,比如,当应用正在执行,突然有了来电,这个时候可使用INTENTRECEIVER做出处理是应用更健壮。SERVICEANDROID应用的生命周期是由ANDROID系统来决定的,不由具体的应用的线程左右。当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到SERVICECONTENTPROVIDER可以说CONTENTPROVIDER封装很多ANDROID当中的上下文环境,包括SQLITE,这就使得在不同应用之间交互成为可能。ANDROID特点之布局管理FRAMELAYOUT左上角只显示一个组件。LINEARLAYOUT线性布局管理器,分为水平和垂直俩中,只能进行单行布局。TABLELAYOUT任意行和列的表格布局管理器。其中TABLEROW代表一行,TABLEROW的每一个视图组件代表一个单元格。ABSOLUTELAYOUT绝对布局管理器,坐标轴的方式,左上角是(0,0)点,往右X轴递增,往下Y轴递增。RELATIVELAYOUT相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。ACTIVITY交互INTENT方式INTENT其实就是用来在ACTIVITY之间做交互用的,需要说明的是INTENT有个意图说明,值得用深究,举个简单的例子,有种叫INTENTACTION_CALL,可直接拨打电话。SHAREDPREFERENCES是ANDROID平台上一个轻量级的存储类,主要是保存一些常用的配置。SHAREDPREFERENCES类似过去WINDOWS系统上的INI配置文件,但是它分为多种权限,可以全局共享访问,最终是以XML方式来保存,效率不如INTENT,但是由于可以共享,所有可以再ACITIVITY之间交互。但其效率比SQLITE要高。SQLITE也就是数据库,这种方式不推介,因为其效率问题,如果是在不同应用之间交互,可以考虑SQLITE。或是永久存储的情况下。SQLITESQLITE是ANDROID中提供的内置数据库,据说比MYSQL更轻巧。SQLITE也是开源产品。数据库的操作方式主要有以下俩中SQL语句直接操作,插入、更新、删除都可以直接写SQL语句,调用EXECSQL就可以,而查询需要使用RAWQUERY()来完成,查询结果返回是一个可滚动的结果集,CURSOR在对CURSOR操作前,需要将其游标移动到第一位,每取一个结果向下移一位。33ANDROID的特点开放性。GOOGLE与开放手机联盟合作开发了ANDROID,GOOGLE通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。应用程序无界限。ANDROID上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JAVASCRIPT和样式表,还可以通过WEBVIEW显示网络内容。应用程序可以并行运行。ANDROID是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引起注意。34ANDROID开发环境搭建工具JDKECLIPSEADTJDK下载地址JDK下载地址HTTP/WWWORACLECOM/TECHNETWORK/JAVA/JAVASE/DOWNLOADS/INDEXHTMLJDKJAVADEVELOPMENTKIT是整个JAVA的核心,包括一系列JAVA开发的东西,安装完毕需要配置一下环境变量。JAVA_HOMEJDK的安装路径,这个环境变量本身不存在,需要创建,创建完则可以利用JAVA_HOME作为统一引用路径,其值为JDK在你电脑上的安装路径。PATHPATH属性已存在,可直接编辑。作用是用于配置路径,简化命令的输入,其值为JAVA_HOMEBIN。CLASSPATH用于编译时JAVA类的路径,注意这里设置的是两个值,表示的是JVM先搜索当前目录。其值为JAVA_HOMELIBTOOLSJAR。配置完毕后,通过CMD运行以下命令JAVAVERSION,JAVAC如果出现返回信息,则设置成功。ECLIPSE下载地址ECLIPSE下载地址HTTP/WWWECLIPSEORG/DOWNLOADS/选择ECLIPSESTANDARD版本即可。ECLIPSE为JAVA及ANDROID开发的IDE。ECLIPSE不需要安装,把解压包解压后,剪切ECLIPSE文件夹到你想安装的地方,打开时设置你的工作目录即可。ANDROIDSDK下载地址ANDROIDSDK下载地址HTTP/DEVELOPERANDROIDCOM/SDK/INDEXHTML。ANDORIDSDK为ANDROID管理开发包工具,提供了ANDROID各级平台的开发包和工具。注意,因为我们是独立安装,不是一体化集成系列工具所以需要单独下载SDK。如图运行安装文件,并把安装目录下TOOLS文件夹路径设置进PATH环境变量。去到安装目录运行SDKMANAGER,一开始什么平台和工具也没有,需要下载回来。公司内网的话需要使用代理来下载。到TOOLSOPTIONS把代理填上,点击CLOSE后则会出现众多平台列表,把ANDROIDTOOLS选上安装,另外建议把22以上的全部下载安装。安装ADT启动ECLIPSE,点击HELP菜单INSTALLNEWSOFTWARE,点击ADD,输入地址HTTP/DLSSLGOOGLECOM/ANDROID/ECLIPSE/。选取要安装的项,一路NEXT完成安装并重启。这样ADT就安装完毕了。配置ADT选择WINDOWPREFERENCES,在弹出面板中就会看到ANDROID设置项,填上安装的SDK路径,则会出现刚才在SDK中安装的各平台包,按OK则完成配置。此时ANDROID的环境就搭建完毕,可以进行ANDROID项目的开发了。4程序设计41用户界面设计根据需求分析可以知道,应用程序主要包含三个用户界面,以及几个详细信息显示界面,现在需要对每个界面中的内容进行设计。主页面中,显示有当前软件拦截状态,以及跳转到拦截短信列表页面及设置页面的两个按钮。拦截短信列表页面显示拦截到的短信列表,并且点击可跳转到该短信详细信息页面。设置页面中有一个LIST,分别对应黑名单,白名单,关键字,及关于的列表项,点击可进入相应设置。详细信息页面包括,拦截短信列表跳转,及黑名单,白名单,关键字设置及关于中显示的该短信拦截系统的信息。根据这些信息,绘制草图图41主要用户界面42数据库设计该软件中有两部分需要存储,分别是拦截到的垃圾短信,以及设置中的黑白名单,拦截关键字等。分别建立4张表SMS_SMS,SMS_BLACK_PHONE,SMS_WHITE_PHONE,SMS_KEY,以此存储需要的数据。表41拦截短息存储SMS_SMS的结构属性数据类型说明_IDINTEGER自动增加的主键PHONECHAR拦截短信的号码DATECHAR拦截短信发送日期MSGCHAR拦截短信的内容表42黑名单存储表SMS_BLACK_PHONE的结构属性数据类型说明_IDINTEGER自动增加的主键PHONECHAR需要拦截的号码表43白名单存储表SMS_WHITE_PHONE的结构属性数据类型说明_IDINTEGER自动增加的主键PHONECHAR需要放行的号码表44拦截关键字存储表SMS_KEY的结构属性数据类型说明_IDINTEGER自动增加的主键KEYCHAR需要拦截的关键字43程序模块设计从功能需求分析上可以看出,整个程序应该分为3个模块,分别是用户界面、数据库模块、后台服务模块,各模块之间的关系如图所示图41主要用户界面用户界面可以操作该APP及显示其所反映的信息,可以再设置中对黑名单,白名单,拦截关键字进行设置,也可以查看拦截到的短信息。后台服务是整个的核心,对于发送来的短信是否拦截或放行,都由后台服务来控制,与数据库的交互也是后台服务来完成。数据库模块贯穿整个软件,不论是黑名单,白名单号码设置,或拦截关键字的设置及拦截到的短信存储都要用到该模块。5程序开发51文件结构与用途新建ANDROID工程“SMS”,根据分析结果,可建立该工程结构如图所示图51SMS工程源代码文件源代码文件名称及用途表51SMS工程文件用途说明文件名说明ABOUTACTIVITYJAVA关于软件的说明BLACKACTIVITYJAVA黑名单设置与查看页面KEYACTIVITYJAVA拦截关键字设置与查看页面MAINACTIVITYJAVA主界面MYLISTACTIVITYJAVA拦截短信列表页面MYSQLITEOPENHELPERJAVASQLITE数据库帮助类SETACTIVITYJAVA设置页面SMSITEMACTIVITYJAVA拦截短信详细信息页面SMSRECEIVERJAVA广播页面WHITEACTIVITYJAVA白名单设置页面ANDROID的资源文件保存在/RES的子目录中。其中/RES/LAYOUT中保存的是ACTIVITY的布局文件。文件名说明ACTIVITY_ABOUTXML关于页面布局ACTIVITY_BLACKXML黑名单设置页面布局ACTIVITY_KEYXML拦截关键字设置页面布局ACTIVITY_MAINXML主界面布局ACTIVITY_MY_LISTXML拦截短信列表界面布局ACTIVITY_SETXML设置页面布局ACTIVITY_SMSITEMXML拦截短信详细信息布局ACTIVITY_WHITEXML白名单页面布局LIST_ITEMSXML短信显示列表项PHONELIST_ITEMSXML黑白名单号码列表项SETLIST_ITEMSXML设置页面列表项52广播521什么是广播在现实生活中,当我们开车的时候,会听到交通台从广播里说“某大街拥堵”,如从这里通过的车辆请绕行,这就是广播,交通台是发送方,我们个人是接收方,至于我们到底在没在听交通台,我们也许在听郭德纲的相声,又或者我们虽听了交通台,要不要再走某大街是我们自己的事情了,所以在ANDROID中也是一样的,广播只管发送数据,至于怎么接收数据和怎么处理数据就是接收方的事情了。在ANDROID中,BROADCAST是一种广泛运用的在应用程序之间传输信息的机制。我们拿广播电台来做个比方。我们平常使用收音机收音是这样的许许多多不同的广播电台通过特定的频率来发送他们的内容,而我们用户只需要将频率调成和广播电台的一样就可以收听他们的内容了。ANDROID中的广播机制就和这个差不多的道理。522广播有什么用笼统一点讲就是用来传输数据的。具体一点说就是实现了不同的程序之间的数据传输与共享,因为只要是和发送广播的ACTION相同的接受者都能接受这个广播。典型的应用就是ANDROID自带的短信,电话等等广

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论