自己辛苦写的程序总不希望被别人轻松反编译后修改成他人。我用的是proguard混淆。在网上找了许多文章,试了许多次,总算混淆成功了一回。
先提提我的失败经验:
先提提我的失败经验:
1.网上说需要proguard.cfg文件,我看是不需要的。开始我找关天,还手工生成此文件,也没有用。最终是不需要它的。
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我特地试了一下,前面加了#生成的结果就没有混淆。
在菜单上选择file->Export,然后选择Android->Export Android Application。
3.如果第一次这么做,需要创建一个key,我暂时也不知道干嘛用的,反正选择一个目录,定义一个新的名称,再输入密码,它就保存下来。后面还要输入一大堆信息创建这个key。
5.完成。
大功告成。