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. vs2013的asp.net 管理

    iisexpress.exe /path:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ASP.NETWebAdminFiles /vpath:/AS ...

  2. c#多播委托

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  3. Firefox浏览器设置字符编码格式

    按照网上说的:工具 -> 选项 -> 内容 -> 字体&颜色 -> 高级 -> 字体编码,根本没有找到utf-8,还是把浏览器定制一下吧,看源文件的时候也可以用, ...

  4. Apache Common-pool2对象池分析和应用

    Apache Common-pool2包提供了一个通用的对象池技术的实现.可以很方便的基于它来实现自己的对象池,比如DBCP和Jedis他们的内部对象池的实现就是依赖于Common-pool2. 对象 ...

  5. WPFのTopMost属性的应用

    最近做一个东西,需要用到多个子窗体层级关系,首先,有一个MainWindow,然后有一个win1和win2甚至更多,我需要达到的控制是,win1选为focus的时候,win2在win1的上面,TopM ...

  6. mfc截图

    1.进入截图状态 PRTSCRING = TRUE;//开始截图标志为TRUE AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED);//主窗口最大化 Se ...

  7. ViewController之间的切换动画

    一 .API介绍 iOS7开始,苹果推出了自定义转场动画API.从此,任何可以用Core Animation实现的动画,都可以出现在两个ViewController的切换之间 知识点图: 从上图可以看 ...

  8. 数据库SQL语句练习题5--9

    5. 查询Score表中成绩为85,86或88的记录. ,,) 6. 查询Student表中“95031”班或性别为“女”的同学记录. ' or ssex = '女' 7. 以Class降序查询Stu ...

  9. EasyUI--messager

    1. alert 方法 <script type="text/javascript"> $( function() { $.messager.alert("调 ...

  10. 05_IOC容器装配Bean(注解方式)

    IOC容器装配Bean(注解方式) 1.使用注解方式进行Bean注册 xml 方式: <bean id="" class=""> spring2.5 ...