今天做的项目有个需求。要把我们的apk 混淆一下。
于是花了一下午的时间研究了一下,用python 写了个一键生成的脚本。
原理:
我的开发环境是 adt bundle 是android sdk 的集成开发环境,自带了ProGuard。
只需要导出的时候,在project.properties 打开注释的代码。
然后选择 export 导出apk 就自动混淆了,ProGuard默认是混淆全部代码的,但是这样经常会引起一些问题。
重点是混淆规则的编写,。总结起来就三条:
1 android 自带类库不能混淆
2 第三方的jar 不能混淆
3 自己用到反射的部分不能混淆
脚本会帮你完成第一步和第二步。
主要是把你用到的第三方包,自动扫描第三方jar内部的包名,然后生成规则语句,避免混淆。
使用的时候,需要把
“D:\workspace\Family\libs”
替换成你自己的android应用项目的libs 目录。
然后一键运行就可以了。生成的文件默认是 E盘根目录下的tt.txt
运行完之后自己把自己需要避免混淆的代码手动添加一下(如果有的话)。
然后把生成的文本复制到 “proguard-project.txt” 里就ok了
代码如下:
#coding=utf-8
'''
Created on 2015-05-19
@author: 从小比较呆
'''
import os
import zipfile
def GetFileLis