android删除无用资源文件的python脚本
随着android项目的进行,如果没有及时删除无用的资源时安装包会越来越大,是时候整理一下废弃资源缩小压缩包了,少年!
其实判断一个资源(drawable,layout)是否没有被使用很简单,文件名(不包含后缀)去文件中查找一下就行了,没找到就没有用到,直接删除了就可以了
python的字符串处理相对简单一点,就写了个脚本,供大家参考:
import os
import os.path
rootdir = 'D:\HitFm_v2.1.6\hitfm\src'
pngFiles = []
xmlFiles = []
javaFiles = []
tempFiles = []
for parent,dirnames,filenames in os.walk(rootdir):
for filename in filenames:
if(filename.find('.png') != -1):pngFiles.append(os.path.join(parent,filename))
if(filename.find('.jpg') != -1):pngFiles.append(os.path.join(parent,filename))
if(filename.find('.xml') != -1):xmlFiles.append(os.path.join(parent,filename))
if(filename.find('.java') != -1):javaFiles.append(os.path.join(parent,filename))
for pngFile in pngFiles:
pngName = pngFile.split('\\')[-1]
pngnowName = pngName.split('.')[0]
if(pngFile.find('res') == -1):continue
bFind = False
for javaFile in javaFiles:
f = open(javaFile, 'rb')
javaStr = f.read().decode()
if(javaStr.find(pngnowName) != -1):bFind = True
for xmlFile in xmlFiles:
f = open(xmlFile, 'rb')
javaStr = f.read().decode()
if(javaStr.find(pngnowName) != -1):bFind = True
if(bFind == False):
print (pngFile)
os.remove(pngFile)
for xmlFile in xmlFiles:
xmlName = xmlFile.split('\\')[-1]
xmlnowName = xmlName.split('.')[0]
if(xmlFile.find('res') == -1):continue
bFind = False
for javaFile in javaFiles:
f = open(javaFile, 'rb')
javaStr = f.read().decode()
if(javaStr.find(xmlnowName) != -1):bFind = True
for xmlFile2 in xmlFiles:
f = open(xmlFile2, 'rb')
javaStr = f.read().decode()
if(javaStr.find(xmlnowName) != -1):bFind = True
if(bFind == False):
print (xmlFile)
tempFiles.append(xmlFile)
for tempFile in tempFiles:
print (tempFile)
os.remove(tempFile)
使用的时候只需要把rootdir = 'D:\HitFm_v2.1.6\hitfm\src'修改为自己的代码目录,在命令行里执行xx.py即可(需要安装python3.0以上版本的解释器)
android删除无用资源文件的python脚本的更多相关文章
- 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本
摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...
- Android lint 删除无用图片文件和配置文件
Android lint 删除无用.冗余的 配置文件和 图片资源 转载请注明 http://blog.csdn.net/aaawqqq?viewmode=contents Android项 ...
- Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)
今天看下群里在讨论Discuz!X 3.4 任意文件删除漏洞,自己做了一些测试,记录一下过程.结尾附上自己编写的python脚本,自动化实现任意文件删除. 具体漏洞,请查看 https://paper ...
- Android 自动化测试及性能数据采集的 Python 脚本
文主要介绍一个基于 uiautomator2 封装的一个 Python 库 android-catcher ,该库的功能主要有对 Android 设备进行 UI 自动化测试 和 采集手机性能数据 ,适 ...
- Android学习--Assets资源文件读取及AssetManager介绍
APK安装过程 复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用 ...
- Android RadioGroup 及资源文件 & selector
RadioGroup :单选组 RadioButton :单选按钮 RadioButton和CheckBox的区别: 1.单个RadioButton在选中后,通过点击无法变为未选中 单 ...
- Android中的资源文件
最近复习Android资源文件的内容,留下点记录以备后用. Android中的资源主要是指存放在应用程序或者Framework相应包下/res中的内容.它们可以被本地化,如果必要的话会被编译成二进制文 ...
- android 巧用资源文件(不断积累)
1.shape的使用 <shape xmlns:android="http://schemas.android.com/apk/res/android" > <s ...
- FreeCAD stp文件基于python脚本操作
FreeCAD对于3D模型处理这块的东西封装的还是很完善的,所以移植这块的东西还是有必要的! 首先下载FreeCAD编译好的库: https://www.freecadweb.org/wiki/Dow ...
随机推荐
- MVC项目使用easyui的filebox控件上传文件
开发环境:WIN10+IE11,浏览器请使用IE10或以上版本 开发技术框架MVC4+JQuery Easyui+knockoutjs 效果为弹出小窗体,如下图 1.前端cshtml文件代码(只包含文 ...
- C# 文件/文件夹重命名
C# 重命名的方法是MoveTo() 官方文档地址 (https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo.moveto%28VS.8 ...
- C# mongodb 驱动操作(Z)
Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("nam ...
- 使用VS2010编译64的Geos库
Geos库在cmake中总是报错,所以我决定试试nmake编译64位的库.现将编译过程记录如下: 1.下载Geos,我下的是最新版3.5.0,地址在 http://trac.osgeo.org/geo ...
- Windows无法安装到GPT分区的磁盘的解决方法
thinkpad 预装win8的机子,硬盘采用gpt分区,在重新安装其它系统的时候是无法安装的,会提示“windows无法安装到这个磁盘,选中的磁盘采用GPT分区 形式".所以先采用下面的方 ...
- 站点SEO优化日记之设置目标关键词
一.怎样确定关键词? 根据百度指数,选择搜索指数较高的作为候选关键词.一个关键词的搜索结果中,若大部分都为非首页链接,则该关键词可在短时间内通过优化获得好的排名,可选择此类关键词作为目标关键词. 二. ...
- 浅析session&cookie
session&cookie没有出现的黑暗时代 大家都知道,HTTP协议是一种无状态的协议,本次请求下一次请求没有任何的关联,所有没有办法直接用http协议来记住用户的信息,试想一向,每一次点 ...
- ORACLE用户创建&删除
●sqlplus登陆sqlplus sys/isc@testgmmc as sysdba●创建用户create user testpoi3 IDENTIFIED by iscaccount unloc ...
- python+selenium 简单尝试
前言 selenium是一种自动化测试工具,简单来说浏览器会根据写好的测试脚本自动做一些操作. 关于自动化测试,一开始接触的是splinter,但是安装的时候发现它是基于selenium的,于是打算直 ...
- 浏览器-06 HTML和CSS解析2
选择器 其实现由CSSSelector类来完成: CSSSelector的作用是储存从解析器生成的结果信息; 这里匹配指的是当需要为每个DOM中的节点计算样式时,WebKit需要根据当前的节点信息来从 ...