当前位置: 首页 > 编程笔记 >

过滤Android工程中多余资源文件的解决方法

赵镜
2023-03-14
本文向大家介绍过滤Android工程中多余资源文件的解决方法,包括了过滤Android工程中多余资源文件的解决方法的使用技巧和注意事项,需要的朋友参考一下

本文以实例讲述了过滤Android工程中多余资源文件的解决方法,很有实用价值!具体描述如下:

很多开发人员在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
"
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同级的目录。

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

 类似资料:
  • 我得到了一个具有以下结构的Vaadin项目: 到目前为止,我从我的IDE(IntelliJ)构建了我的项目 然后用“构建”来包装战争- 我的资源筛选如下: 问题:当我试图用maven构建整个项目时 webapp/WEB-INF/类下的资源被跳过,它们在目标/Project/WEB-INF/类目录中,但变量是${...}(hibernate-dashboard.cfg.xml和quartz.prop

  • 我正在尝试使用maven-telte-resource-plugin在多模块maven项目中跨模块共享许多资源。不幸的是,共享的二进制资源在捆绑期间被损坏,大概是通过过滤。 我相信,由于从本地存储库中提取共享资源jar时包含损坏的二进制文件,因此在这一阶段会发生损坏。 是否有任何关闭过滤maven-远程资源插件? 目前,我的共享资源模块中的pom看起来像

  • 本文向大家介绍Android清除工程中无用资源文件的两种方法,包括了Android清除工程中无用资源文件的两种方法的使用技巧和注意事项,需要的朋友参考一下 一、调用Android lint命令查找出没有用到的资源,并生成一个清单列表: 命令:lint –check “UnusedResources” [project_path] > result.txt 执行完之后会生成一个清单文件,内容如下:

  • 我想将构建信息写入属性文件。我找到了Maven资源过滤插件。这就是我的pom相关部分的样子: 如果start构建成功,但我的文件下src/main/资源将不包含构建信息。 我的属性文件如下所示: 我做错了什么?非常感谢。

  • 本文向大家介绍Java多线程下解决资源竞争的7种方法详解,包括了Java多线程下解决资源竞争的7种方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 一般情况下,只要涉及到多线程编程,程序的复杂性就会显著上升,性能显著下降,BUG出现的概率大大提升。 多线程编程本意是将一段程序并行运行,提升数据处理能力,但是由于大部分情况下都涉及到共有资源的竞争,所以修改资源 对象时必须加锁处理。但是锁的实现

  • 本文向大家介绍Java多线程的临界资源问题解决方案,包括了Java多线程的临界资源问题解决方案的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java多线程的临界资源问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 临界资源问题的原因:某一个线程在对临界资源进行访问时,还没来得及完全修改临界资源的值,临界资源就被其他线程拿去