Android系统清理程序残留文件方法的研究.docx
- 文档编号:9969061
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:14
- 大小:712.78KB
Android系统清理程序残留文件方法的研究.docx
《Android系统清理程序残留文件方法的研究.docx》由会员分享,可在线阅读,更多相关《Android系统清理程序残留文件方法的研究.docx(14页珍藏版)》请在冰豆网上搜索。
Android系统清理程序残留文件方法的研究
Android系统清理程序残留文件方法的设计与实现
续磊,邹仕洪1.51.51.51.51.51.51.51.51.51.51.51.51.5StateKeyLaboratoryofNetworkingandSwitching,BeijingUniversityofPostsandTelecommunications,Beijing100876;StateKeyLaboratoryofNetworkingandSwitching,BeijingUniversityofPostsandTelecommunications,Beijing100876北京邮电大学网络与交换技术国家重点实验室,北京100876;北京邮电大学网络与交换技术国家重点实验室,北京100876100876;100876138********;138********138********;138********北京市海淀区北京邮电大学学十楼1018;北京市海淀区北京邮电大学网络技术研究院bage1988320@;zoush@续磊(1988-),男,硕士研究生,移动信息安全;邹仕洪(1978-),男,北京邮电大学网络与交换技术国家重点实验室副教授,移动信息安全续磊;邹仕洪XuLei;ZouShihong邹仕洪1.51.51.51.51.51.51.51.51.51.51.51.51*|*期刊*|*樊志刚.Android手机的发展综述[J].中国科技博览,2012-10:
3-4
67-68.
23-25
5-7
4-5|1|续磊|XuLei|北京邮电大学网络与交换技术国家重点实验室,北京100876|StateKeyLaboratoryofNetworkingandSwitching,BeijingUniversityofPostsandTelecommunications,Beijing100876|续磊(1988-),男,硕士研究生,移动信息安全|北京市海淀区北京邮电大学学十楼1018|100876|bage1988320@|13811367013|13811367013
(北京邮电大学网络与交换技术国家重点实验室,北京100876)
摘要:
本文首先简单介绍了Android系统,然后详细地介绍了该清理方法在Android平台上的设计与实现。
该清理方法包括三个模块:
用户界面,扫描引擎,更新管理模块。
本文重点讨论了这三个模块实现的关键技术,最后对该方法进行了测试。
关键词:
android;清除;垃圾文件;FileOberver;ApiHook
中图分类号:
TP311
Designandimplementationofclearingandroidapplication'sresidualfiles
XuLei,ZouShihong
(StateKeyLaboratoryofNetworkingandSwitching,BeijingUniversityofPostsandTelecommunications,Beijing100876)
Abstract:
Firstly,thispapersimplyintroducestheAndroidoperatingsystem,adetailedintroductionofthedesignandimplementationofclearingresidualfilesonandroidplatform.Thismethodmainlyincludesthreemodules:
userinterface,scanengine,udpatemanager.Thispaperdiscussesthekeytechnologiesthatimplementingthethreemodules,andthentestingthemethodfunctions.
Keywords:
android;clear;residualfile;FileObserver;ApiHook
1引言
2005年,Google收购了成立仅22个月的Android公司。
2007年11月,谷歌公司正式发布自己的智能手机操作系统:
Android系统,并且联合了多家厂商,联手开发和推广Android系统。
由此Android系统开始了飞速发展。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年7月数据,Android占据全球智能手机操作系统市场59%的份额,中国市场占有率为76.7%[1]。
随着Android高速发展,Android用户也越来越多。
Android手机上有用户日常所需的许多应用程序,包括游戏、聊天软件或杀毒软件等,由于用户在不同时期有不同需求,对许多应用进行过安装或卸载,被卸载的应用程序对应生成的文件依然保存在手机上,形成垃圾文件占用手机存储空间。
大量无用的文件杂在有用文件之中占用移动终端的存储空间,久而久之,移动终端运行速度减慢,影响用户对其它有用文件的正常使用。
虽然移动终端的存储空间可以进行扩展,但这种扩展毕竟是有限的。
用户需要及时清理垃圾文件,使手机运行更敏捷快速,方便使用。
经过调研,发现市场上的一些垃圾文件清理软件都是清理应用程序产生的缓存,临时文件等,从来没有清理应用程序产生的残留文件。
所以如何及时进行清理Android系统中的应用程序残留垃圾文件,就成为了一个亟需解决的问题。
本文主要阐述了一种实现清理应用程序残留文件的方法。
2Android系统架构简介
如图1所示,它展示了Android系统的主要组成部分[2]:
图1Android系统架构图
从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。
2.1应用程序层(Applications)
Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。
这些应用程序都是 用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化[3]。
2.2应用程序框架层(ApplicationFramework)
应用程序框架层是从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。
2.3系统运行库层(Libraries)
Android包含一个C/C++库的集合,供Android系统的各个组件使用。
这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。
如系统C库,媒体库,3D库等。
2.4Linux内核层(LinuxKernel)
Android基于Linux2.6提供核心系统服务,例如:
安全、内存管理、进程管理、网络堆栈、驱动模型。
LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
3清除程序残留文件软件的设计
要清除这些残留垃圾文件,其实就是要找到每个文件对应的应用程序,查看该应用程序是否被卸载,如果该应用程序已经被卸载,则该文件为残留垃圾文件,然后建议用户删除。
3.1概要设计
根据功能需求的分析,本文提出了该方法的体系架构。
如图2所示:
图2清除程序残留文件方法的系统架构图
该清除残留文件方法主要分为以下四个模块来实现。
●用户界面:
友好地与用户进行交互。
●扫描引擎:
通过特征匹配,实现快速高效的残留文件检测。
各模块可以并发地以异步方式提出扫描申请,扫描引擎根据各自的优先级决定扫描的先后顺序,然后再扫描结束后向相应模块返回扫描结果。
●更新管理模块:
通过GPRS等无线通信方式实现快速的程序对应文件路径特征库更新。
●文件路径特征库:
存储主流应用程序生成文件或者文件夹的路径,以供扫描引擎使用,由更新管理模块进行更新。
3.2工作流程图
如图3所示。
图3清除程序残留文件的工作流程图
如图3所示,用户在刚开始运行程序的时候,先检查是否联网,如果联网,则将本地当前文件特征库上传到服务器,服务器将服务器的文件特征库最新版本号与客户端本地版本号作比较,查看是否需要更新。
如果需要更新,返回需要更新标识,客户端弹框提示用户需要更新文件特征库。
当用户完成更新操作后,用户选择扫描目录,客户端通过扫描引擎扫描指定目录,获取该目录下的文件信息。
将该文件信息与文件特征库进行匹配(文件特征库主要由应用程序,应用程序生成的文件和文件夹路径组成),通过对比获得该文件信息对应的应用程序,然后查看该应用程序是否被卸载,如果被卸载,则该文件是残留文件,建议用户清除该文件。
3.3详细设计
用户界面模块主要包含类Display,MyAdapter,MyDialog等。
Display类主要负责主体界面展示,如扫描结束后的界面展示,更新数据库等按钮等。
MyAdapter继承Android中的BaseAdpater抽象类,将用户要清理残留文件数据填充到MyAdapter中,然后通过ListView以列表形式展现给用户。
MyDialog主要给用户展现对话框,提示用户是否进行该操作。
扫描引擎模块主要包含类FullScan和类QuickScan。
FullScan类就是实现深度扫描,进行全盘扫描,获取所有的文件和文件夹信息,这个方法扫描范围广,但是时间比较长。
QuickScan类就是实现快速扫描,指定目录进行快速扫描,只获取文件夹信息,方便用户快速地定位扫描。
更新管理模块主要包含类UpdateManager和类NetManager。
UpdateManager类实现获取当前特征库版本号和调用NetManager的联网模块进行更新。
NetManager类通过HTTP协议实现与服务器的交互。
通信协议数据规范遵循XML协议的数据规范,统一编码为UTF-8。
文件路径特征库主要实现在服务器端。
服务器端通过爬虫技术不断地从主流Android应用市场上下载应用程序,安装到测试机上,通过文件监控技术[4]获取软件运行时生成的文件和文件夹路径。
然后将新增记录插入文件特征库,不断地更新,扩展文件路径特征库。
文件监控主要通过Android系统下的apihook技术实现的。
经过调研发现Android程序一般都是调用系统函数mkdir()来创建文件夹,调用createfile来创建文件。
只要通过hook这两个系统api就可以得到里面的参数(包括文件路径,调用该函数的应用程序包名等信息),那么就可以得到应用程序与之对应的文件和文件夹的关系。
首先,在Zygote阶段注入动态库。
当zygote孵化子进程时,加载该动态库,实现了对虚拟机中的系统函数mkdir(),createfile()做hook操作。
该hook函数用自定义的函数替换系统api,并且将应用进程名,生成文件或者文件夹全路径做记录[5],最终达到监控文件的目的。
4客户端测试
通过测试验证客户端的设计的正确性,下面主要进行客户端的功能测试。
4.1测试环境
如表1所示,列出了测试的系统环境。
表1测试环境
软件环境(相关软件、操作系统等)
操作系统:
Android
操作系统版本:
2.3
测试软件名称:
清除程序残留文件软件
硬件环境(网络、设备等)
设备1:
三星I9100
4.2功能测试
本文通过功能测试来检测垃圾清理功能的正确性,下面为测试步骤和主要功能截图。
步骤一:
点击垃圾清理按钮,如图4所示,为正在扫描界面,程序正在扫描整个手机文件,将程序残留文件记录在列表中。
图4正在扫描界面
步骤二:
如图5所示,程序扫描完成后,将程序残留文件列表显示到界面。
本测试机中因为原来安装过微信客户端,产生过很多相关文件。
现在将微信客户端卸载后,所以客户端检测该文件是残留文件,提示用户清理。
图5扫描结果
步骤三:
如图6所示,用户可以点击“腾讯微信”这行时,可以进入到残留目录“Tencent/MicroMsg”中,查看该目录下的文件,查看有没有不想删除的文件,防止误删重要的文件。
图6查看目录详情
步骤四:
如图7所示,用户可以选择“腾讯微信”,点击“一键清理”按钮进行清理。
图7用户选择清理文件
步骤五:
如图8所示,该图为清理结束的界面,显示清理结果和当前存储空间的剩余空间。
图8清理结束界面
4.3测试结论
根据测试可以看出,用户通过客户端扫描得到程序残留文件,通过查看该文件详情防止误删。
用户选中不需要的文件进行删除,删除成功。
所以该客户端成功实现了清理程序残留文件的功能。
5结论
本文首先简单介绍了Android系统框架,然后对清理Android系统下清理应用程序残留文件方法进行详细的设计与实现。
主要实现就是找到每个文件对应的应用程序,查看该应用程序是否被卸载,如果该应用程序已经被卸载,则该文件为残留垃圾文件。
[参考文献](References)
[1]樊志刚.Android手机的发展综述[J].中国科技博览,2012-10:
3-4
[2]李惠,丁革建.智能手机125操作系统概述[J].电脑与电信,2009,(03):
67-68.
[3]余志龙.GoogleAndroidSDK开发范例大全[M].人民邮电出版社,2009:
23-25
[4]温敏.艾丽蓉.王志国.WENMin.AILi-rong.WANGZhi-guoAndroid智能手机系统中文件实时监控的研究与实现[J].科学技术与工程2009,9(7):
5-7
[5]骆力明.符宇同.鲁悦.LUOLIMING.FUYUTONG.LUYUE利用Hook技术实现进程控制[J].微计算机信息,2009,23(15):
4-5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 系统 清理 程序 残留 文件 方法 研究