Android项目 删除未使用资源的方法 使用lint

今天写程序时发现apk文件upload到模拟器很慢,检查一下发现有很多未使用的资源文件。
使用adt插件上的lint做的检查,但是条目实在太多。
作为一个程序员,这种批量删除的活肯定不会愿意去干噻。
网上搜索了一下,有这方面的工具,但是根本不靠谱啊


没法,只有手动处理一下喽


第一步:
使用android-sdk-windows\tools\lint.bat工具
先将检测结果导出到文本文件
代码:lint 工程目录 >d:/Temp/res.txt
将指定工程目录下的工程检测结果导出到res.txt中


第二步:
自己写代码来处理吧
你仔细看res.txt可以发现未使用资源格式的规律

下面是部分结果:

res\layout\activity_main.xml: Warning: The resource R.layout.activity_main appears to be unused [UnusedResources]
res\drawable\adapter_bg.xml: Warning: The resource R.drawable.adapter_bg appears to be unused [UnusedResources]
res\drawable\adapter_bg3.xml: Warning: The resource R.drawable.adapter_bg3 appears to be unused [UnusedResources]


我是这样子写的删除处理:

String projectPath = "xxx";
FileRowHander hander = new FileRowHander("d:/Temp/res.xml");
hander.handerRow(new IFileRowHander() {
	// 文件读取会逐行调用一次该方法
	public void hander(String fileRow) throws IOException {
		// 包含"UnusedResources"的都是未使用资源
		if (fileRow.contains("UnusedResources")) {
			// 我们只需要第一个冒号之前的那个路径,相对与项目目录的路径
			int end = fileRow.indexOf(':');
			if (end > 0) {
				String subPath = fileRow.substring(0, end);
				System.out.println("del -- " + subPath);
				String delFile = projectPath + "/" +subPath ;
				MyFileUtils.delFile(delFile);
			}
		}
	}
});


这就是对文件逐行处理,有些操作我封装了一下,大家就当伪代码看吧


如果有更好的方法,欢迎分享哦

猜你喜欢

转载自com-my.iteye.com/blog/1866204