中关村在线

软件

ProGuard混淆保护Android源码

由于Android源码容易被反编译工具解析,因此常通过代码混淆来增强安全性。ProGuard不仅能混淆代码,还能进行优化。本文将介绍如何在Eclipse环境中配置ProGuard混淆功能,并说明如何查看代码混淆前后符号的对应关系,帮助开发者有效保护应用程序逻辑不被轻易还原。

1、 在Eclipse中创建一个名为proguard_demo的Android项目,项目仅包含MainActivity.java和Person.java两个文件。由于MainActivity作为程序入口必须保持不变,因此不能被混淆。接下来将展示如何对Person类进行代码混淆处理,以达到保护源码的目的,同时确保程序正常运行。

2、 打开project.properties文件,找到已被注释的原有配置行,在其下方新增一行内容:proguard.config=./proguard-project.txt。该设置的作用是指定当前目录中的proguard-project.txt文件作为代码混淆时所使用的配置文件,启用后即可在构建过程中应用相应的混淆规则,有效保护源码逻辑不被轻易反编译识别。

3、 打开proguard-project.txt文件,于末尾处添加相应内容。

4、 }

5、 }

6、 }

7、 }

8、 }

9、 运行程序后,界面显示一个包含hello,world文字的文本框。通过dex2jar工具对生成的APK进行反编译,可观察到其中包含MainActivity类和Person类,说明这两个类已成功打包进应用中。

10、 直接运行项目的方式无法启用ProGuard进行代码混淆,因此不能在此过程中应用ProGuard。正确的操作应通过Eclipse的导出功能来完成。具体步骤为:在项目工程上点击右键,选择Export...,然后进入Export Android Application选项,开始导出APK文件。在此过程中,系统会引导用户选择签名密钥,可使用Eclipse默认提供的调试密钥(debug keystore)完成打包。整个导出流程会自动集成ProGuard混淆设置,确保代码在发布时得到有效保护。若对密钥配置或导出细节存在疑问,可参考相关文档了解详细操作步骤,其中包含了完整的图文说明和注意事项,帮助开发者顺利完成应用的打包与发布。

11、 将导出的proguard_demo.apk使用dex2jar进行反编译,再通过jd-gui打开查看,可发现Person类已被混淆。

12、 在工程根目录下,Eclipse生成了一个名为proguard的文件夹。进入该文件夹后,可见其中包含四个文件,其中一个为mapping.txt,该文件详细记录了代码混淆前后类、方法和字段的对应关系。例如,原本的Person类被重命名为bJ,其内部成员变量name则被改为a。这种映射关系在MainActivity中同样有所体现。此外,proguard还对代码进行了优化,将部分方法调用直接替换为对成员变量的访问,从而提升了运行效率。通过这些信息可以清晰地了解混淆过程对代码结构的影响。

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具