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. 为开发者准备的9个实用PHP代码片段

    一.查看邮件是否已被阅读 当你发送邮件时,你肯定很想知道你的邮件是否已被对方查看.下面的代码就能实现记录阅读你邮件的IP地址,还有实际的阅读日期和时间. error_reporting(0);Head ...

  2. mysql一些常用命令总结

    mysql时间戳转日期格式SELECT FROM_UNIXTIME(add_time,'%Y-%m-%d %H:%i:%s') FROM `wh5_username` where id=23; 按in ...

  3. Alice and Bob(贪心HDU 4268)

    Alice and Bob Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...

  4. 判断sql执行效率以及针对临时表的使用

    /****** Script for SelectTopNRows command from SSMS ******/ SET STATISTICS io ON SET STATISTICS time ...

  5. javascript + jquery函数大全

    JAVASCRIPT Array 函数   array创建数组 concat()连接两个或更多的数组,并返回结果. join()把数组中所有元素组成字符串. pop()删除并返回数组的最后一个元素 s ...

  6. 零零碎碎写的shell脚本(三):一键自动归档压缩脚本

    #!/bin/bash # author by sysk read -p "There files: " FILE1 FILE2 FILE3 read -p "Desti ...

  7. Spring 框架 详解 (一)

    Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 * 分层: * SUN提供的EE的三层结构:web层.业务层.数据访问层(持久层,集成层) * Struts2是 ...

  8. linux设置tomcat开机自启动

    本文假设jdk环境安装成功,如何安装JDK请参考这个链接: http://www.cnblogs.com/yoyotl/p/5395208.html 1. 下载apache的安装包,例如本例下载了ap ...

  9. 用sql的select语句从数据库中获取数据

    基本的select语句 select语句中的算数表达式和NULL值 列的别名 使用连接符操作,literal character strings,alternative quote operator, ...

  10. 在服务器上log4net没写日志

    登录到服务器上,发现log4net没写日志 在相应文件夹加上User用户的写权限后恢复正常了.