游子的博客
慈母手中线,游子身上衣, 临行密密缝,意恐迟迟归, 谁言寸草心,报得三春晖。 数据读取中,请稍候......
posts - 330,  comments - 536,  trackbacks - 0
自己辛苦写的程序总不希望被别人轻松反编译后修改成他人。我用的是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。
大功告成。
posted on 2013-05-18 13:56 游子 阅读(1737) 评论(2)  编辑 收藏 引用 所属分类: 软件原创技术

FeedBack:
# re: android的apk使用proguard混淆[未登录]
2013-05-28 23:10 | yy
视频会议 www.polomeeting.cn/  回复  更多评论
  
# re: android的apk使用proguard混淆
2013-06-14 15:43 | 漫空星辰
不错, 实验 ,果然可用.多谢.  回复  更多评论
  

博问 - 解决您的IT难题
博客园首页  IT新闻  IT问答  程序员招聘
标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
 
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]

欢迎大家扔鸡蛋!送鲜花!

博客可以收入过千吗?

<2014年9月>
日一二三四五六311234567891011121314151617181920212223242526272829301234567891011

常用链接

留言簿(8)

随笔分类(308)

随笔档案(330)

文章分类(7)

文章档案(10)

相册

收藏夹(1)

其它

友情链接

数字电视

生活、旅游

自己的链接

计算机

搜索

  •  

积分与排名

  • 积分 - 277510
  • 排名 - 8

最新评论

阅读排行榜

评论排行榜