之前项目中需要清理下无用的图片资源,减下apk的大小,我用一下方法成功的为我们的应用减去4M。
1.执行Lint命令生成无用资源列表
1)执行命令 lint --check "UnusedResources" /Users/baozi/Dev/android/android > c:/result.txt
2)命令说明lint --check "UnusedResources" "工程目录" > "生成文件目录"
3)如果你的lint命令不能执行,看看你是否在Android sdk目录下或者是否配置了环境变量
2.执行一下代码去删除无用的资源文件
package com.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
System.out.println("start");
try {
init(true);
} catch (Exception e) {
e.printStackTrace();
}
}
private static void init(boolean b) throws Exception {
String encoding = "UTF-8"; // 字符格式
String projectPath = "C:/Users/Administrator/Desktop/project/";//Android工程所在地址
String filePath1 = "C:/Users/Administrator/Desktop";//result的所在路径
File file = new File(filePath1, "result.txt");//获取result.txt 文件 生成地址
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
if (line.contains("UnusedResources") && !line.contains("res\\values") && !line.contains("appcompat")
&& !line.contains("res\\xml")) {
// System.out.println(line);
int end = line.indexOf(":");
if (end != -1) {
String file_end = line.substring(0, end);
String f = projectPath + file_end;
System.out.println(f);
if (b) {
boolean bool = new File(f).delete();
if(bool)
{
System.out.println("删除成功");
}else
{
System.err.println("删除失败");
}
}
}
}
}
read.close();
}
}
}