过滤Android工程中多余的资源文件

(欢迎访问:http://www.3body.tk/iblog/

在Android项目开发过程中经常会遇到这样的情况:界面开发人员发布了一个新版本的资源包,不过有的图片名称改了,有的图片删掉了,可是在实现的时候开发人员只是把新的资源覆盖到原来的资源文件夹中,随着版本的发布,在drawable或values中积累的无用资源越来越多,直到最后发布正式版的时候再想要删除这些多余的文件,于是不得不一个一个文件检查看是否有用,再决定要不要删除之。

那能不能将这个检测过程自动化呢,对于无所不能的程序猿们来说这是必须地~

处理这一类问题大家首先想到的应该就是shell脚本,下面是一段使用shell脚本来自动检测文件有没有用到,并实现自动删除没有用到的文件的功能:

  #!/bin/sh
  resfile=result.txt
  #drawdir=res/layout
  drawdir=res/drawable-hdpi
  tmpdrawfile="tmpdraw.txt"

  #clear tmp file
  echo "" > $tmpdrawfile
  echo "" > $resfile
  ls $drawdir > $tmpdrawfile
  #ls $tmpdrawfile
  cat $tmpdrawfile | while read line
  do
  filename=`echo $line | sed 's/..*//'`
  #echo $filename
  #start to search
  grepMode=@drawable/$filename"
  grepDir=./res
  #grepMode=R.layout.$filename
  #grepDir=./com
  result=`grep -r $grepMode $grepDir`
  if [ "$result" == "" ]
  then
    echo $line
    echo $line >> $resfile
    rm -f $drawdir/$line
  #else
   # echo "----------------"
  fi
  done
  rm -f $tmpdrawfile

上面的代码很简单,首先将drawable(或者你可以改成任意目录)下的所有文件列出来,然后在整个目录中遍历,对每个文件检测有没有‘@drawable/$filename’这种格式的用法(你可以自己改成任意格式),如果没有使用到的话,就将文件删除。使用的时候需要将这个脚本放在跟res同级的目录。

这段代码也可以用在其他任何需要检测出未使用/已使用文件的地方,只要将对应的目录和匹配模式修改一下就可以了,或者如果为了通用,可以将所有配置写在一个配置文件,也可以将配置作为参数传递进去。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值