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

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

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

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

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

http://blog.csdn.net/aaawqqq/article/details/46684441

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

我的使用场景  :

减少Android apk 包大小

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

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

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

1) 工具

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

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

1.2) 另在eclipse当中有lint插件

此方法

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

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

2) 输入

打开命令行  使用lint命令

如图:

 
  1. 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();  方法删除

  1. /**
  2. * 删除 未使用的冗余资源(图片 xml布局)
  3. *
  4. * @param b
  5. *
  6. *            false 显示资源列表
  7. *
  8. *            true 显示资源列表 并删除资源
  9. *
  10. * @throws Exception
  11. */
  12. private static void init(boolean b) throws Exception {
  13. String encoding = "UTF-8"; // 字符格式
  14. String projectPath = "/Users/baozi/Dev/shihui/android/";//Android工程所在地址
  15. String filePath1 = "/Users/baozi";//result的所在路径
  16. File file = new File(filePath1, "result.txt");//获取result.txt 文件 生成地址
  17. if (file.isFile() && file.exists()) { // 判断文件是否存在
  18. InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式
  19. BufferedReader bufferedReader = new BufferedReader(read);
  20. String line = null;
  21. while ((line = bufferedReader.readLine()) != null) {
  22. if (line.contains("UnusedResources") && !line.contains("res/value") && !line.contains("appcompat")
  23. && !line.contains("res/xml")) {
  24. // System.out.println(line);
  25. int end = line.indexOf(":");
  26. if (end != -1) {
  27. String file_end = line.substring(0, end);
  28. String f = projectPath + file_end;
  29. System.out.println(f);
  30. if (b) {
  31. new File(f).delete();
  32. System.out.println("删除成功");
  33. }
  34. }
  35. }
  36. }
  37. read.close();
  38. }
  39. }

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 检查规则列表
 //介绍比较清晰

Android lint 删除无用图片文件和配置文件的更多相关文章

  1. android删除无用资源文件的python脚本

    随着android项目的进行,如果没有及时删除无用的资源时安装包会越来越大,是时候整理一下废弃资源缩小压缩包了,少年! 其实判断一个资源(drawable,layout)是否没有被使用很简单,文件名( ...

  2. [Android] 针对生成的图片文件在系统Gallery不显示的处理

    之前遇到过一个问题,就是发现我在程序中生成一个新的 Bitmap 之后,当我打开系统的 Gallery 查看时,并没有看到新生成的图像.然而打开文件浏览器,找到保存 Bitmap 所在的文件夹下,还能 ...

  3. Android从本地选择图片文件转为Bitmap,并用zxing解析Bitmap

    如何从本地选择图片文件 使用Intent调用系统相册后,onActivityResult函数返回的是Uri格式的路径 /** * 打开系统相册 */ private void openSysAlbum ...

  4. ubuntu的boot分区报警,删除无用内核文件。

    1. 查看当前使用内核:uname -r4.4.0-97-generic 2. 查看安装的内核dpkg --list 'linux-image*' 3. 删除旧内核sudo apt-get remov ...

  5. Android开发之将图片文件转化为字节数组字符串,并对其进行Base64编码处理

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, 转载请说明出处. /** * @将图片文件转化为字节数组字符串,并对其进行Base64编码处理 * ...

  6. 自动删除Android工程中无用的资源

    开发时间久了, 几个版本迭代之后, 工程中难免留下很多垃圾资源, 造成apk的包很大, 这里介绍一个工具, 可以自动扫描工程中, 没有使用的资源, 然后自动删除: 包括图片, xml, 文本等. 采用 ...

  7. docker 删除无用的镜像文件的命令小计

    df -h  查看当前服务器的内存情况 docker system prune  删除无用镜像文件命令 执行ok之后,再次查看内存情况.

  8. iOS ipa包瘦身------删除无用图片资源

         随着客户端业务的增多和业务的更新,App包大小越来越大,优化包大小是迫在眉睫,客户端需要优化的地方也有很多,本期主要讲如何查找无用图片并且删除无用图片的方法.      方案1:(暴力方法) ...

  9. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

随机推荐

  1. java截取字符串中的数字

    java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...

  2. shell脚本常见错误

    一.引言 想要学习使用shell脚本,却在开始的时候遇到很多不顺利,都是一些小细节的东西,所以在此记录一下. 二.各种细节问题 1.变量作为赋值对象时不需要添加$,取值时需要,也就是说,这个$就是取值 ...

  3. 基于@AspectJ和schema的aop(二)---@AspectJ基础语法

    @AspectJ使用jdk5.0和正规的AspectJ切点表达式描述切面, 由于spring只支持方法的连接点,所以Spring只支持部分AspectJ的切点语言. 1.切点表达式函数 AspectJ ...

  4. WF3.0 CallExternalMethod使用技巧

    CallExternalMethod用于工作流向宿主进程中通信 简单的介绍一下它的使用技巧,参照网上的一个questioner源码进行了改进,因为我感觉这个源码提供的通信demo过于繁琐. 看看ser ...

  5. Reading package lists... Error! 解决方案

    ubuntu 下安装python开发包,执行命令 sudo apt-get install python-dev,报错: Reading package lists... Error! E: Enco ...

  6. Less/Sass编译工具

    less中午网站有详细的说明:http://www.1024i.com/demo/less/ 那里我使用的koala   全平台支持,国产.下载地址:http://koala-app.com/inde ...

  7. c++のdll两种调用方式

    调用DLL有两种方法:静态调用和动态调用. (一).静态调用其步骤如下: 1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下; 2.把你的youApp. ...

  8. SQL 中ROLLUP 用法

    SQL 中ROLLUP 用法 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集. 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有 ...

  9. php修改和增加xml结点属性

    <?xml version="1.0" encoding="UTF-8" ?> <clientSet> <server url=& ...

  10. 复旦大学2014--2015学年第一学期高等代数I期末考试情况分析

    一.期末考试成绩班级前几名 金羽佳(92).包振航(91).陈品翰(91).孙浩然(90).李卓凡(85).张钧瑞(84).郭昱君(84).董麒麟(84).张诚纯(84).叶瑜(84) 二.总成绩计算 ...