• 过滤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同级的目录。

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

  • 相关阅读:
    会议管理要素
    项目管理—沟通管理
    项目管理的五大过程组和十大知识领域
    fastjson $ref引用问题
    项目管理——问题解决方法
    windows服务器添加磁盘后,提示The disk is offline because of policy set by an administrator的解决办法
    关于bat/cmd中转义符的使用
    关于bat中日期时间字符串的格式化
    关于windows服务器的Security安全类日志的导出
    关于windows服务器创建一个ps1脚本的周期性定时任务
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/2993315.html
Copyright © 2020-2023  润新知