android的apk使用proguard混淆

自己辛苦写的程序总不希望被别人轻松反编译后修改成他人。我用的是proguard混淆。在网上找了许多文章,试了许多次,总算混淆成功了一回。
先提提我的失败经验:

1.网上说需要proguard.cfg文件,我看是不需要的。开始我找关天,还手工生成此文件,也没有用。最终是不需要它的。


2.还有人说要打开项目目录下project.properties文件,去掉#proguard.config=${sdk.dir}\tools\proguard\proguard-android.txt:proguard-project.txt前的#号。我试了也没有用。


3.在proguard目录下有一个proguardgui.bat,大概可以脱离eclipse单独用来混淆。结果搞头天,不是说有duplicate class definitions,就是说有 Warning: XXX: can't find referenced class。即使先生成配置文件apk.pro,然后在apk.pro中添加 -ignorewarnings,再加载此配置文件,然后生成没有错了,结果生成的结果为空。啥也没有。唉,水太深。搞不定。


最终在网上看到有文章说:

如果通过Run as -> Android application生成的bin\*.apk是没有效果的,要通过export来生成!天杀的!

不知道正统的android教材有没有讲到要和export来生成程序,我是半路出家的,看到run可以直接生成apk就一直以为这样就行了。咳咳,学艺不精害死人啊。


下面再讲讲成功的方法,知道路子就很简单了。

前提:我用的环境是adt-bundle-windows-x86,这是一个已经包含eclipse+adk+proguard的IDE,只需要设置一下java目录就能用了。其它环境我就不知道了。


1.上面说的第2条,还是要的。

proguard.config=你的sdk/tools/proguard/proguard-android.txt:proguard-project.txt

我特地试了一下,前面加了#生成的结果就没有混淆。


2.创建一个新android程序,什么代码也不写----这样可以容易混淆,不出现其它错误。

在菜单上选择file->Export,然后选择Android->Export Android Application。


3.如果第一次这么做,需要创建一个key,我暂时也不知道干嘛用的,反正选择一个目录,定义一个新的名称,再输入密码,它就保存下来。后面还要输入一大堆信息创建这个key。


4.再次输入密码创建应用程序,然后输入最终的文件名。


5.完成。


你会发现,生成的apk,比原来小多了。用反编译工具查看,所有的类名,都成了a,b,c,d。

大功告成。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值