Commit 26df1396 authored by pengjunjing's avatar pengjunjing

feat:移动到合理的目录. 更新文档

parent 94a818fc
# 安卓项目辅助工具
## 工具列表
1. 删除没有被引用到的图片/xml文件
2. 将图片/xml文件移动到使用的模块
## 在项目中️以模块的形式导入,然后修改部分Java代码,以Java的形式运行即可
---
# 原理:
## 使用方式
在项目中️以模块的形式导入,找到需要使用工具的入口,然后修改部分Java代码,以Java的形式运行即可
---
## 1. 删除没有被引用到的图片/xml文件
### 使用场景:
AndroidStudio自带的移除未使用资源有bug,有时候明明有在使用确被删掉了,所以用此工具作为替代
### 入口:
UnuseRes.kt的main方法
### 原理:
1. 遍历指定目录,读取出所有的切图文件,例如png jpg webp.......
2. 遍历出所有的代码文件 *.java *.kt *.xml
3. 因为在代码中有使用到资源的代码,都是不会中间换行的 ,
......@@ -14,7 +26,7 @@
* 对xml类型的图片资源原理也是类似的
# 使用方法
### 使用方法
* 首先指定要检查的目录 , 打开UnuseRes.kt ,修改要检查的模块目录,直接填写绝对路径也行,之后会对该目录递归查找
* 然后运行UnuseRes.kt的main方法
* 当有xml使用了一些切图,但是并没有代码使用该xml文件,会导致该文件显示为已标记,无法删除 所以应删除xml之后再运行一次,才会删除图片. 建议多运行几次,结果都为0之后才算完成
......@@ -24,3 +36,19 @@
* **删除操作不可逆 , 确保在有Git的仓库上进行操作 , 或者有备份的情况下进行操作**
* **删除操作不可逆 , 确保在有Git的仓库上进行操作 , 或者有备份的情况下进行操作**
* **删除操作不可逆 , 确保在有Git的仓库上进行操作 , 或者有备份的情况下进行操作**
---
## 2. 将图片/xml文件移动到使用的模块
### 使用场景:
在组件化的项目中,以APP模块为例,一般会依赖base模块,APP模块使用的部分图片或者xml资源放在base模块中,这时候一一把APP模块使用的资源从base模块找出来,并且移入APP模块下,可使用此工具进行分析
### 入口:
SingleImplement.kt的main方法
### 原理:
跟第一个工具差不多,前三步跟第一个工具一样
4. 统计此文件被哪些代码文件依赖,存到列表中
5. 对每个资源文件的依赖列表进行判断,通过路径得到所属的模块,再通过set进行去重.
6. 第五步得到的结果数量为1的说明就是被一个模块依赖了,再通过代码执行git命令,将文件移动过去
### 使用方法
跟第一个工具的使用方法差不多,图片和xml都是分开来操作的. 所以需要循环操作几次,均为0的时候才算完全完成
* ***请在有GIT跟踪的目录下进行***
package com.laihua.projecthelper.implement
import com.laihua.projecthelper.ParseUtil
import com.laihua.projecthelper.ReadUtil
import com.laihua.projecthelper.unuse.ParseUtil
import com.laihua.projecthelper.unuse.ReadUtil
import java.io.BufferedReader
import java.io.File
import java.io.InputStreamReader
......@@ -32,8 +32,8 @@ fun main(args: Array<String>) {
// val baseFile = File("${projectRoot.absolutePath}")
println(baseFile.absolutePath + "\n")
//图片文件和xml资源分别执行
// val readImageRes = ReadUtil().readImageRes(baseFile)
val readImageRes = ReadUtil().readXmlFile(baseFile)
val readImageRes = ReadUtil().readImageRes(baseFile)
// val readImageRes = ReadUtil().readXmlFile(baseFile)
val readCodeFile = ReadUtil().readCodeFile(projectRootF)
......
package com.laihua.projecthelper
package com.laihua.projecthelper.unuse
import java.io.File
import java.io.FileReader
import java.util.ArrayList
/**
* Author: pengjunjing
......
package com.laihua.projecthelper
package com.laihua.projecthelper.unuse
import java.io.File
......
package com.laihua.projecthelper
package com.laihua.projecthelper.unuse
import java.io.File
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment