22

我想在 Android Studio 中生成签名的 APK,它为我提供了运行 ProGuard 的选项。它要求我提供配置文件路径,但我没有配置文件。如何创建一个?我应该使用 ProGuard 吗?你能轻松解压不使用 ProGuard 的 APK 文件吗?

编辑:谢谢你的回答,但我在任何地方都找不到 proguard.cfg 文件。只有我在项目根目录中的属性文件是 local.properties 文件,当我在 Android Studio 中打开它时,我得到了这个:

# This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.

# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=C:/.../...
4

4 回答 4

18

对 Android 应用程序进行逆向工程非常容易,所以如果你想防止这种情况发生,是的,你应该使用 ProGuard 的主要功能:混淆

ProGuard 还有另外两个重要的功能:收缩,它消除了未使用的代码,显然非常有用,而且还优化。不过,优化是使用 Java 字节码进行的,并且由于 Android 运行在从 Java 字节码转换而来的 Dalvik 字节码上,因此某些优化效果不会那么好。所以你应该小心那里。

Android 网站上有关于如何使用 proguard的说明。您需要检查的主要事情是您有线路

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

在你的project.properties文件中。由于您提到您使用 Android Studio 并且您没有此文件,但系统询问您配置文件,请尝试选择 Android SDK ( tools/proguard/proguard-android.txt) 中的那个。

于 2013-08-15T19:04:49.007 回答
12

使用 ProGuard 是可选的,无论您是否使用它,解压 apk 并获取您的资源(图形和其他资产)都非常容易。如果您不使用 ProGuard,也可以很容易地重构应用程序代码,使用 ProGuard 尝试了解在哪里发生了什么变得非常困难和麻烦(尽管如果有足够的时间和精力,这并非不可能)。

在混淆之后也要小心彻底测试你的应用程序,因为它是对应用程序的更改,有时可能会发生意想不到的事情,特别是如果 oyu 经常使用反射。

于 2013-08-15T19:06:52.833 回答
8

进行 ProGuard 混淆的一个重要案例是,一些坏人解压 apk 并将购买模块注入/替换到他们的. 我们不能指望所有用户都只从 Play 商店下载 apk,并且用户的购买帐户可能会被盗。

于 2015-12-27T07:10:21.390 回答
2

运行 ProGuard 是完全可选的,但强烈推荐。

你可以在这里找到所有你需要的东西:http: //developer.android.com/tools/help/proguard.html

您还可以从项目根文件夹中的 default.properties 文件中删除以下行:

proguard.config=proguard.cfg

于 2013-08-15T18:57:48.817 回答