模糊处理应用代码


模糊处理应用代码

如果您已准备好将应用提交到 Amazon Appstore,请考虑模糊处理应用的代码。如果具有恶意目的的人反编译您的应用,则模糊处理您的代码会将源代码和机器代码修改为令人难以理解。如果您担心您的应用被逆向工程,则使用工具模糊处理您的代码有助于缓解此威胁。

代码模糊处理工具

您将需要单独的工具来模糊处理代码。ProGuard 可作为 Android 软件开发工具包的一部分轻松使用,但其他模糊处理工具也可用。

ProGuard

除了在应用中实施 IAP API 外,您还需要代码模糊处理工具来模糊处理应用的代码。本页介绍如何使用 ProGuard 模糊处理代码,ProGuard 是作为 Android 软件开发工具包的一部分提供的代码模糊处理工具。ProGuard 缩小、优化并模糊处理源代码。

如果您已在使用 ProGuard,请确保您使用的版本是最新发布的版本。IAP API 与 ProGuard v4.7 之前的版本不兼容。

其他代码模糊处理工具

如果您使用 ProGuard 以外的工具来模糊处理代码,您仍需要确保保留应用内购买 API 功能。确保您的程序不会模糊处理 com.amazon.* 命名空间下的任何类,包括方法名称和标识符。您的模糊处理程序还必须保留注释。

为项目设置代码模糊处理

因为应用内购买 (IAP) API 依赖某些可供调用并提供有关购买请求的信息的方法,所以不应模糊处理这些方法。如果模糊处理并重命名了这些方法,亚马逊将无法与您的应用通信。使用 ProGuard 作为模糊处理工具,本部分讨论如何模糊您的实施 IAP API 的代码,以便亚马逊仍可以与您的应用通信。

为您的启用了 IAP 的项目设置代码模糊处理:

  1. 编辑您的项目的 build.properties 文件以启用 Proguard。如果您的项目尚未包括 build.properties 文件,请使用此名称创建一个空白文本文件。

将以下行添加到 build.properties 文件中以启用 Proguard:

proguard.config = <relative or absolute path to proguard.cfg file>

注意:​ 您应使您的配置基于在 ProGuard 配置示例中找到的示例 Android 应用文件。

  1. 编辑您的 proguard.config 文件来为您的应用配置模糊处理:

  2. 在您的代码中指定要阻止模糊处理的类。将以下行添加到您的文件中:

    `-dontwarn com.amazon.**`
    `-keep class com.amazon.** {*;}`
    `-keepattributes *Annotation* `
  3. 指定要 ProGuard 执行的优化遍数。根据您的应用的要求和计划使用情况,选择优化一遍或不优化:
    • 添加以下行以指定优化一遍:
      -optimizationpasses 1
    • 如果您想要完全跳过优化,请添加以下行:
      -dontoptimize

      作为最佳实践,至少执行一遍 -dontoptimize -dontobfuscate 以从您的应用中剔除任何临时依赖项。

  4. 删除处理优化的任何其他标志和可能与您刚指定的设置冲突的任何标志。
  5. 在发布模式下构建您的应用。

因为 ProGuard 与 Android 的构建系统相集成,所以您不必手动调用 ProGuard。如果您已按照所述设置了 proguard.cfg 和 build.properties 文件,则当您在发布模式下构建应用时,ProGuard 将自动运行。