混淆的代码

我被要求为Android创build一个简单的应用程序。 事实上,第一个我会付钱,所以我真的不想把它搞砸了:)。 其中一个要求是代码必须被混淆。

我学会了混淆的一般概念,但我不想犯任何愚蠢的错误。

我需要做什么才能使代码混淆? 将它作为发行版导出还是需要其他步骤? 任何言论也赞赏。

PS。 如果有问题,我正在使用Eclipse。

编辑

从文章中提出的文章:

要启用ProGuard以使其作为Ant或Eclipse版本的一部分运行,请在/project.properties文件中设置proguard.config属性。 path可以是相对于项目根目录的绝对path或path。

如果将proguard.cfg文件保留在其默认位置(项目的根目录)中,则可以像这样指定其位置:

proguard.config = proguard.cfg

我的项目目录中确实有project.properties文件。 但是我没有proguard.cfg文件。 相反,我有proguard-project.txt文件。 我想这是一个替代品。

project.properties:

这个文件是由Android工具自动生成的。 不要修改这个文件 – 你的改变将被删除!

该文件必须在版本控制系统中进行检查。

要自定义Ant构build系统使用的属性,请编辑“ant.properties”,并覆盖值以使脚本适应您的项目结构。

要使ProGuard缩小和混淆代码,请取消注释(可用属性:sdk.dir,user.home):

proguard.config = $ {sdk.dir} \工具\ proguard的\ proguard的-android.txt:proguard的-project.txt

项目目标。 目标=机器人-7-

原来除了最后一行以外的所有内容都被注释掉了。

proguard-project.txt中,所有内容都被注释掉了。

我想我在这里迷路了,所以我会非常感激如果有人能够一步一步地告诉我我应该做什么,以及如何检查它是否真正起作用。

Solutions Collecting From Web of "混淆的代码"

官方开发网站上的文章已经过时了。 从SDK Tools r17开始,他们改变了ProGuardconfiguration的工作方式。 基本上他们分裂了以前是proguard.cfg到两个文件(也简单地做成.txt文件): proguard-android.txtproguard-project.txtproguard-android.txt驻留在您的{SDK dir}\tools\proguard目录中,而proguard-project.txt位于您的每个项目目录中。

他们拆分文件,以便Android团队认为非常标准的通用configuration/标志将位于proguard-android.txt文件中,并且可以使用每个SDK工具修订版进行更新(基本上是静默)。 然后,任何开发人员/项目特定的标志,开发人员可以添加到proguard-project.txt文件。

这就是为什么你注意到你的proguard-project.txt文件中的所有内容都被注释掉了,因为一般情况下,大多数人没有任何项目特定的需求, 他们只是想用标准设置运行ProGuard,并完成它。

作为参考(一个非常好的解释): http : //tools.android.com/recent/proguardimprovements

一步一步(日复一日:P)

(使用Eclipse IDE)启用ProGuard,仅使用默认设置进行缩小和模糊处理:

  • 首先将您的SDK工具更新到最新版本(撰写本文时为r19)
  • project.properties取消注释这一行:

proguard.config = $ {sdk.dir} \工具\ proguard的\ proguard的-android.txt:proguard的-project.txt

如果你在r17之前创build了这个项目,那么你可能看不到同样的东西。 如果是这种情况,我build议你创build一个新的虚拟项目(在更新SDK工具之后),并复制proguard-project.txtproject.properties文件。

而已! ProGuard现在将启用,它将运行,但在发布版本(当您使用Android工具和导出签名/未签名的apk)。

发布版本时,您会注意到在项目文件夹中会创build一个新的ProGuard文件夹。 在这个文件夹中,您可以find四个文件,例如保存或删除了哪些类/方法。 还要注意,当你混淆时,你也会在发生错误时混淆你的堆栈跟踪。

编辑:(9/4/12)只是想更新这个答案,以反映在工具R20的变化。

Android团队现在添加了一个额外的proguardconfiguration文件。 它是proguard-android-optimize.txt ,它也驻留在{SDK dir}\tools\proguard目录中。 这个文件和原始的proguard-android.txtconfiguration文件是一样的, 只是打开了 proguard优化。

这个额外的文件是为了方便那些想要打开优化的人而添加的(也许这样他们可以执行诸如去掉日志调用等需要优化的东西)。 现在你可以直接指向这个文件,而不是在你的project.properties文件中,像这样:

 proguard.config=${sdk.dir}\tools\proguard\proguard-android-optimize.txt:proguard-project.txt 

和以前一样,不要试图改变任何proguard-android...configuration文件。 任何项目特定的标志都应该放在项目文件夹中的proguard-project.txt文件中。

阅读这篇文章: http : //developer.android.com/guide/developing/tools/proguard.html