本来这里的方法很多,在mac上做到还是没有win下方便,
1,借助一个jar包(AndroidUnusedResources1.6.2.jar):
把该jar包放到工程目录下,如下图所示:
然后在控制台执行:cd 你所在的工程路径
例如:cd /Users/hl/Documents/workspace/YourProject
然后再执行
java -jar AndroidUnusedResources1.6.2.jar > del.txt
此句的意思是直接将废弃资源的路径找到并生成一个文件,可能需要执行几分钟,至此你可以刷新工程目录,会找到一个del.txt文件
2,可以打开del.txt文件之后
会发现有很多地址路径,如果此时你批量删除的话,有很多可能误删,所以我就根据路径最后带的格式来批量删除
3,新建一个java工程
package com.hloong.deletefile;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Delete {
private static String dir = "/Users/hl/Documents/workspace/YourProject/del.txt";
public static void main(String[] args) {
try {
deletefile(dir);
} catch (IOException ex) {
System.out.println("etes");
}
}
private static void deletefile(String dir) throws IOException {
// TODO Auto-generated method stub
File file = new File(dir);
InputStreamReader read = new InputStreamReader(new FileInputStream(file),"UTF-8");//考虑到编码格式
BufferedReader bReader = new BufferedReader(read);
String string = "";
while ((string = bReader.readLine())!=null) {//循环读取行
if (!string.contains("ssdk_")) {//保留sharesdk的资源,防止误删
if (string.contains(".png") || string.contains(".xml")) {//假如是图片或者.xml
System.out.println(string.replaceAll("/","//").toString().trim());
new File(string.replaceAll("/","//").trim()).delete();
}
}
}
read.close();
}
}
运行然后刷新下工程目录就会发现很多资源已经被删掉了
但是如果你不保留一些第三方的资源比如sharesdk,会发现他们也被删掉了,所以没办法你只能把sharesdk的资源保留,可以在删除文件的java工程里过滤(代码里有示例)
其他的就只能手动删了,毕竟这个jar包还是能力有限
原文地址:http://blog.csdn.net/tmacsky/article/details/45766387