开发人员控制台

对应用代码进行混淆处理


对应用代码进行混淆处理

如果您已准备好将应用提交到亚马逊应用商店,请考虑使用ProGuard等工具对应用代码进行混淆处理。在他人出于恶意目的反编译您的应用时,对您的代码进行混淆处理会将源代码和机器代码修改为人类难以理解的内容。如果担心其他人会对应用进行逆向工程,使用工具对代码进行混淆处理有助于缓解此威胁。

IAP和代码混淆处理

对代码进行混淆处理时,请确保对代码的混淆处理不会影响应用内购买API功能。确保您的混淆处理程序不会混淆处理com.amazon.*命名空间下的任何门类,包括方法名称和标识符。您的混淆处理程序还必须保留注释。

在Gradle 3.4.0及更高版本中,Android Studio通过R8编译器进行优化。(有关详细信息,请参阅压缩、混淆处理和优化应用。)

请按照以下步骤操作:

  1. 将您的Android Gradle插件升级到3.6.0或更高版本。有关详细信息,请参阅更新Android Gradle插件
  2. 使用以下ProGuard规则:

    -dontwarn com.amazon.**
    -keep class com.amazon.** {*;}
    -keepattributes *注释*
    

有关应用规则的详细说明,请参阅ProGuard

ProGuard

本节介绍如何使用ProGuard对代码进行混淆处理,ProGuard是一个代码混淆处理工具,作为Android开发工具包(和Gradle 3.4.0之前的Android Studio)的一部分而提供。ProGuard会压缩、优化并混淆处理源代码。

请注意,IAP API与ProGuard v4.7版本或更高版本兼容。

为启用了IAP的项目设置代码混淆处理:

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

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

proguard.config = <proguard.cfg文件的相对或绝对路径>

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

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

  2. 在代码中指定要从混淆处理中排除的类。将以下行添加到您的文件中:
    -dontwarn com.amazon.**
    -keep class com.amazon.** {*;}
    -keepattributes *注释*
    
  3. 指定要让ProGuard执行的优化次数。根据您的应用的要求和计划使用情况,选择优化一遍或不优化:
    • 添加以下行以指定优化一遍:
      -optimizationpasses 1
    • 如果您想要完全跳过优化,请添加以下行:
      -dontoptimize

      为达最佳效果,至少执行一遍-dontoptimize -dontobfuscate,以便从您的应用中剔除所有临时依赖项。

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

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