博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android lint 删除无用图片文件和配置文件
阅读量:2221 次
发布时间:2019-05-08

本文共 3038 字,大约阅读时间需要 10 分钟。

Android lint  删除无用、冗余的  配置文件和 图片资源   

转载请注明  http://blog.csdn.net/aaawqqq?viewmode=contents

Android项目经过长期的迭代开发  项目当中有大量无用的java类和冗余图片

如果不整理将会导致 apk 包比较大  

审查 清理Java类  使用UCDetector  可以查看我的上篇 博文

Android lint 是Android SDK 提供的代码检查工具  主要检查 配置文件 资源文件  发现代码问题

我的使用场景  :

减少Android apk 包大小  

使用Android lint 发现无用图片和xml 文件  通过删除冗余资源   

我在此给大家分享的是工具与技术  

具体的知识 大家通过 其它博文去学习  可以查看文章结尾的参考链接  我在这就不复述了   

1) 工具

1.1) Android lint  在  Android sdk tools  当中   如果可以希望大家能配好环境变量

本文主讲 以命令行形式的删除无效资源的批处理

1.2) 另在eclipse当中有lint插件   

此方法

优点:运行简单  在eclipse的 直接显示 

缺点:需要手动删除  当冗余文件数量多的适合 会很伤脑筋

2) 输入

 打开命令行  使用lint命令  

 如图:

lint --check "UnusedResources" /Users/baozi/Dev/android/android > result.txt

  /Users/baozi/Dev/android/android  > result.txt   

  

  /Users/baozi/Dev/android/android  是 工程的路径  (工程名为  android )

  

  生成的扫描结果将会存放在当前目录下的  result.txt  当中

  如我的目录      /Users/baozi/result.txt

3) 输出文件result.txt

打开文件目录   /Users/baozi/result.txt     

4) 根据结果 批量删除对应的文件

本文重点   当你第一次运行时 发现需要数千资源文件需要删除的时候就会伤脑筋

手工逐条删除 并不符合程序猿三大优秀品质    :      懒惰   没有耐心   骄傲

尝试过使用 vim 删除  发现操作起来也相当麻烦  

大家可以参考下面的代码   使用FIle 获取 result.txt 中的文件信息   调用 File .delete();  方法删除   

/**	 * 删除 未使用的冗余资源(图片 xml布局)	 * 	 * @param b	 * 	 *            false 显示资源列表	 * 	 *            true 显示资源列表 并删除资源	 * 	 * @throws Exception	 */	private static void init(boolean b) throws Exception {		String encoding = "UTF-8"; // 字符格式		String projectPath = "/Users/baozi/Dev/shihui/android/";//Android工程所在地址		String filePath1 = "/Users/baozi";//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/value") && !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) {							new File(f).delete();							System.out.println("删除成功");						}					}				}			}			read.close();		}	}

projectPath  :   Android工程在硬盘中的位置   

filePath1  :  lint 运行结果   result.txt  所在的位置

方法  参数  传入false  仅打印结果   传入true 打印结果 并删除文件

填入正确的地址  就能批量执行删除未使用的 布局 &  图片 资源   (UnusedResources)  

如果想要删除其它操作  请修改 筛选条件  

if (line.contains("UnusedResources") && !line.contains("res/value") && !line.contains("appcompat")

&& !line.contains("res/xml")

使用心得:  循环使用3-6次 能完成 删除全部未使用的资源  但是有些废弃的模块 存在代码以来关系 需要手工判断删除

附1:

使用eclipse自带的 Android lint 插件 审查代码的方式

使用方式:  

右击工程 → Android Tools → Run Lint: Check for Common Error  

结果会在 Lint Warrings 当中显示  和 看logcat 的方式相同

运行结果:

 附2:  参考博文

http://blog.csdn.net/hudashi/article/details/8333349

//Android Lint 检查规则列表
   
 //介绍比较清晰
     

结尾附上神兽

//┏┓   ┏┓//┏┛┻━━━┛┻┓//┃       ┃  //┃   ━   ┃//┃ ┳┛ ┗┳ ┃//┃       ┃//┃   ┻   ┃//┃       ┃//┗━┓   ┏━┛//  ┃   ┃   神兽保佑        //  ┃   ┃   代码无BUG!//  ┃   ┗━━━┓//  ┃       ┣┓//  ┃       ┏┛//  ┗┓┓┏━┳┓┏┛//    ┃┫┫ ┃┫┫//    ┗┻┛ ┗┻┛
每日精进  希望能帮上你

你可能感兴趣的文章
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>
剑指offer 60. 不用加减乘除做加法
查看>>
Leetcode C++《热题 Hot 100-14》283.移动零
查看>>
Leetcode C++《热题 Hot 100-15》437.路径总和III
查看>>
Leetcode C++《热题 Hot 100-17》461.汉明距离
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>