本來這裏的方法很多,在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包還是能力有限