【Android论文栏目提醒】:网学会员Android论文为您提供Android系统清理程序残留文件方法的研究 - 中学课件参考,解决您在Android系统清理程序残留文件方法的研究 - 中学课件学习中工作中的难题,参考学习。
中国科技
论文在线 http://www.paper.edu.cn
Android 系统清理程序残留文件方法的设计 与实现 续磊,邹仕洪5 (北京邮电大学网络与交换技术国家重点实验室,北 北 100876) 摘要: 本文首先简单介绍了
Android 系统,然后详细地介绍了该清理方法在
Android 平台 上。
该清理方法包括三个模块:用户界面,扫描引擎,更新管理模块。
本文重 点讨论了这三个模块实现的关键技术,最后对该方法进行了测试。
10 关键词:
android;清除;垃圾文件;FileOberver;Api Hook 中图分类号:TP311 Design and implementation of clearing
android applications residual files15 Xu Lei Zou Shihong State Key Laboratory of Networking and SwitchingBeijing University of Posts and TelecommunicationsBeijing 100876 Abstract: Firstlythis paper simply introduces the
Android operating systema detailed introduction of the design and implementation of clearing residual files on
android platform.This20 method mainly includes three modules:user interfacescan engineudpate manager.This paper discusses the key technologies that implementing the three modulesand then testing the method functions. Key words:
android clear residual fileFileObserverApi Hook25 0 引言 2005 年,Google 收购了成立仅 22 个月的
Android 公司。
2007 年 11 月,谷歌公司正式 发布自己的智能手机操作系统: 并且联合了多家厂商,
Android 系统, 联手开发和推广
Android 系统。
由此
Android 系统开始了飞速发展。
2011 年第一季度,
Android 在全球的市场份额 首次超过塞班系统,跃居全球第一。
2012 年 7 月数据,
Android 占据全球智能手机操作系 130 统市场 59的份额,中国市场占有率为 76.7 。
随着
Android 高速发展,
Android 用户也越来越多。
Android 手机上有用户日常所需的许 多应用程序,包括游戏、聊天软件或杀毒软件等,由于用户在不同时期有不同需求,对许多 应用进行过安装或卸载,被卸载的应用程序对应生成的文件依然保存在手机上,形成垃圾文 件占用手机存储空间。
大量无用的文件杂在有用文件之中占用移动终端的存储空间,久而久35 之,移动终端运行速度减慢,影响用户对其它有用文件的正常使用。
虽然移动终端的存储空 间可以进行扩展,但这种扩展毕竟是有限的。
用户需要及时清理垃圾文件,使手机运行更敏 捷快速,方便使用。
经过调研,发现市场上的一些垃圾文件清理软件都是清理应用程序产生的缓存,临时文 件等,从来没有清理应用程序产生的残留文件。
所以如何及时进行清理
Android 系统中的应40 用程序残留垃圾文件,就成为了一个亟需解决的问题。
本文主要阐述了一种实现清理应用程 作者简介:续磊(1988-),男,硕士研究生,移动信息安全 通信联系人:邹仕洪(1978-),男,北京邮电大学网络与交换技术国家重点实验室 副教授,移动信息安 全. E-mail: zoushbupt.edu.cn -1- 中国科技
论文在线 http://www.paper.edu.cn 序残留文件的方法。
1
Android 系统架构简介 2 如图 1 所示,它展示了
Android 系统的主要组成部分 :45 图 1
Android 系统架构图 从上图中可以看出,
Android 系统架构为四层结构,从上层到下层分别是应用程序层、 应用程序框架层、系统运行库层以及 Linux 内核层。
1.1 应用程序层(Applications)
Android 平台不仅仅是操作系统,也包含了许多应用程序,诸如 SMS 短信客户端程序、50 电话拨号程序、图片浏览器、Web 浏览器等应用程序。
这些应用程序都是 用 Java 语言编写 的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手 3 机操作系统固化在系统内部的系统软件,更加灵活和个性化 。
1.2 应用程序框架层Application Framework 应用程序框架层是从事
Android 开发的基础,很多核心应用程序也是通过这一层来实现55 其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的 应用程序开发,也可以通过继承而实现个性化的拓展。
1.3 系统运行库层Libraries
Android 包含一个 C/C库的集合,供
Android 系统的各个组件使用。
这些功能通过
Android 的应用程序框架(application framework)暴露给开发者。
如系统 C 库,媒体库,3D60 库等。
1.4 Linux 内核层Linux Kernel
Android 基于 Linux 2.6 提供核心系统服务,例如:安全、内存管理、进程管理、网络堆 -2- 中国科技
论文在线 http://www.paper.edu.cn 栈、驱动模型。
Linux Kernel 也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上 层提供统一的服务。
65 2 清除程序残留文件软件的设计 要清除这些残留垃圾文件,其实就是要找到每个文件对应的应用程序,查看该应用程序 是否被卸载,如果该应用程序已经被卸载,则该文件为残留垃圾文件,然后建议用户删除。
2.1 概要设计 根据功能需求的分析,本文提出了该方法的体系架构。
如图 2 所示:70 图 2 清除程序残留文件方法的系统架构图 该清除残留文件方法主要分为以下四个模块来实现。
用户界面:友好地与用户进行交互。
扫描引擎:通过特征匹配,实现快速高效的残留文件检测。
各模块可以并发地以异75 步方式提出扫描申请,扫描引擎根据各自的优先级决定扫描的先后顺序,然后再扫 描结束后向相应模块返回扫描结果。
更新管理模块:通过 GPRS 等无线通信方式实现快速的程序对应文件路径特征库更 新。
文件路径特征库:存储主流应用程序生成文件或者文件夹的路径,以供扫描引擎使80 用,由更新管理模块进行更新。
2.2 工作流程图 如图 3 所示。
-3-中国科技
论文在线 http://www.paper.edu.cn 打开软件 将当前文件特征库 手机是否联网 是 的版本号上传到服 务器 与服务器最新版本号做比较 检测当前特征库 否 是否需要更新 是 否 建议用户更新文件 扫描本机文件系统 特征库 获取本机文件信息 列表 将该文件信息与文 件特征库做匹配, 获得匹配文件信息 对应的应用程序 查看该应用程 序是否被卸载 是 该匹配文件是残留 文件 将残留文件信息通 过界面展示给用户 否 用户选择残留文件 清除 否 是否清除 是 结束 -4- 中国科技
论文在线 http://www.paper.edu.cn 图 3 清除程序残留文件的工作流程图85 如图 3 所示,用户在刚开始运行程序的时候,先检查是否联网,如果联网,则将本地当 前文件特征库上传到服务器,服务器将服务器的文件特征库最新版本号与客户端本地版本号 作比较,查看是否需要更新。
如果需要更新,返回需要更新标识,客户端弹框提示用户需要 更新文件特征库。
当用户完成更新操作后,用户选择扫描目录,客户端通过扫描引擎扫描指 定目录,获取该目录下的文件信息。
将该文件信息与文件特征库进行匹配(文件特征库主要90 ,通过对比获得该文件信息对应的应 由应用程序,应用程序生成的文件和文件夹路径组成) 用程序,然后查看该应用程序是否被卸载,如果被卸载,则该文件是残留文件,建议用户清 除该文件。
2.3 详细设计 用户界面模块主要包含类 Display,MyAdapter,MyDialog 等。
Display 类主要负责主体95 界面展示,如扫描结束后的界面展示,更新数据库等按钮等。
MyAdapter 继承
Android 中的 BaseAdpater 抽象类,将用户要清理残留文件数据填充到 MyAdapter 中,然后通过 ListView 以列表形式展现给用户。
MyDialog 主要给用户展现对话框,提示用户是否进行该操作。
扫描引擎模块主要包含类 FullScan 和类 QuickScan。
FullScan 类就是实现深度扫描,进 行全盘扫描,获取所有的文件和文件夹信息,这个方法扫描范围广,但是时间比较长。
100 QuickScan 类就是实现快速扫描,指定目录进行快速扫描,只获取文件夹信息,方便用户快 速地定位扫描。
更新管理模块主要包含类 UpdateManager 和类 NetManager。
UpdateManager 类实现获取 当前特征库版本号和调用 NetManager 的联网模块进行更新。
NetManager 类通过 HTTP 协议 实现与服务器的交互。
通信协议数据规范遵循 XML 协议的数据规范,统一编码为 UTF-8。
105 文件路径特征库主要实现在服务器端。
服务器端通过爬虫技术不断地从主流
Android 应 4 用市场上下载应用程序,安装到测试机上,通过文件监控技术 获取软件运行时生成的文件 和文件夹路径。
然后将新增记录插入文件特征库,不断地更新,扩展文件路径特征库。
文件 监控主要通过
Android 系统下的 api hook 技术实现的。
经过调研发现
Android 程序一般都是 调用系统函数 mkdir来创建文件夹,调用 createfile 来创建文件。
只要通过 hook 这两个系统110 api 就可以得到里面的参数(包括文件路径,调用该函数的应用程序包名等信息),那么就 可以得到应用程序与之对应的文件和文件夹的关系。
首先,在 Zygote 阶段注入动态库。
当 zygote 孵化子进程时,加载该动态库,实现了对虚拟机中的系统函数 mkdir,createfile做 hook 操作。
该 hook 函数用自定义的函数替换系统 api,并且将应用进程名,生成文件或者 5 文件夹全路径做记录 ,最终达到监控文件的目的。
115 3 客户端测试 通过测试验证客户端的设计的正确性,下面主要进行客户端的功能测试。
3.1 测试环境 如表 1 所示,列出了测试的系统环境。
表 1 测试环境 软件环境(相关软件、操作系统等) 操作系统:
Android -5- 中国科技
论文在线 http://www.paper.edu.cn 操作系统版本:2.3 测试软件名称:清除程序残留文件软件 硬件环境(网络、设备等) 设备 1:三星 I9100120 3.2 功能测试 本文通过功能测试来检测垃圾清理功能的正确性,下面为测试步骤和主要功能截图。
步骤一:点击垃圾清理按钮,如图 4 所示,为正在扫描界面,程序正在扫描整个手机文 件,将程序残留文件记录在列表中。
125 图 4 正在扫描界面 步骤二:如图 5 所示,程序扫描完成后,将程序残留文件列表显示到界面。
本测试机中 因为原来安装过微信客户端,产生过很多相关文件。
现在将微信客户端卸载后,所以客户端 检测该文件是残留文件,提示用户清理。
130 -6- 中国科技
论文在线 http://www.paper.edu.cn 图 5 扫描结果 步骤三:如图 6 所示,用户可以点击“腾讯微信”这行时,可以进入到残留目录 “Tencent/MicroMsg”中,查看该目录下的文件,查看有没有不想删除的文件,防止误删重135 要的文件。
-7-中国科技
论文在线 http://www.paper.edu.cn 图 6 查看目录详情 步骤四:如图 7 所示,用户可以选择“腾讯微信”,点击“一键清理”按钮进行清理。
-8- 中国科技
论文在线 http://www.paper.edu.cn140 图7 用户选择清理文件 步骤五:如图 8 所示,该图为清理结束的界面,显示清理结果和当前存储空间的剩余空 间。
-9- 中国科技
论文在线 http://www.paper.edu.cn 图8 清理结束界面145 3.3 测试结论 根据测试可以看出,用户通过客户端扫描得到程序残留文件,通过查看该文件详情防止 误删。
用户选中不需要的文件进行删除,删除成功。
所以该客户端成功实现了清理程序残留 文件的功能。
4 结论150 本文首先简单介绍了
Android 系统框架,然后对清理
Android 系统下清理应用程序残留 文件方法进行详细。
主要实现就是找到每个文件对应的应用程序,查看该应用 程序是否被卸载,如果该应用程序已经被卸载,则该文件为残留垃圾文件。
参考文献 References 1 樊志刚.
Android 手机的发展综述J.中国科技博览,2012-10: 3-4155 2 李惠,丁革建. 智能手机 125 操作系统概述J. 电脑与电信,2009,(03):67-68. 3 余志龙. Google
Android SDK 开发范例大全M.人民邮电出版社,2009: 23-25 4 温敏.艾丽蓉.王志国.WEN Min.AI Li-rong.WANG Zhi-guo
Android 智能手机系统中文件实时监控的研究 与实现J.科学技术与工程 2009,97:5-7 5 骆力明.符宇同.鲁悦.LUO LIMING.FU YUTONG.LU YUE 利用 Hook 技术实现进程控制J. 微计算机信160 息,2009,2315:4-5 - 10 -