APK瘦身资源优化,查找大文件

简介


本文讲述如何开发一款小工具用于快速检索大文件,先来体验一下如何使用:

指定检索文件夹、文件大小,将循环遍历出目录下所有文件,筛选出大于设置尺寸的文件,并排序输出。
应用开发者可从这些大文件着手,进行APK资源瘦身。


实现方式


使用python脚本实现

步骤一:遍历文件夹

使用 os 模块 walk() 方法,很方便遍历出文件列表,root 指文件夹路径,dirs 文件下的子文件夹列表,files 文件夹下的文件列表,此方法循环遍历子文件夹

1
2
for root, dirs, files in os.walk(path):
......

步骤二:查找出文件大小大于设置值的文件

1
2
3
4
5
6
7
8
9
for fil in files:
tmpPath = os.path.join(root, fil)
tmpSize = os.path.getsize(tmpPath)
# 跳过文件大小 小于设置值的文件
if tmpSize < size:
continue
tmpFile = SrcFile(tmpPath, tmpSize)
print tmpFile
resultFiles.append(tmpFile)

步骤三:对筛选出的文件排序

1
resultFiles = sorted(resultFiles, cmp=lambda x, y: cmp(x.size, y.size), reverse=True)

步骤四:从命令行读取路径和文件大小参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if __name__ == "__main__":
if len(sys.argv) != 3:
print use_age
else:
try:
path = sys.argv[1]
if not os.path.exists(path):
raise Exception("文件夹不存在")
size = int(sys.argv[2])
print "=" * 50
print "正在检索大于 %sK 的文件" % size
print
result = list_file_size(path, size * 1024)
if result:
print
print "=" * 50
print "共检索出%s个文件,按大小排序后: \n" % len(result)
for item in result:
print item
else:
print
print "=" * 50
print "未找符合条件的文件 \n"
except Exception, e:
print str(e)
print use_age

步骤五:编译生成可执行文件

Python 脚本可使用 pyinstaller 模块很方便的打包成可执行文件(使用方法参看pyinstaller官网)

1
pyinstaller -F list.py

步骤六:查看使用方法


总结


如果您使用mac, 可下载可执行脚本使用
当然您也可以自行编译源码,点击下载源码





文章目录
  1. 1. 简介
  2. 2. 实现方式
  3. 3. 总结