模块管理

模块管理是您选择 Nativify 如何保护和优化某个发布版本的地方。配置文件保存了模块、目标平台和模式的完整选择,因此相同的已审核配置可以重复使用,而无需手动重新构建。

从接近您所需结果的配置文件开始,设置您的发布版本实际支持的目标平台,然后以小规模、可测试的组启用模块。模块只更改其适用的代码;启用它并不保证每个方法或调用点都会受到影响。

控件用途对构建和发布的影响
配置文件为应用程序或发布渠道保存命名、可审核的配置无运行时成本。仅在测试受保护产物后更新配置文件。
自动保存在您工作时将对活动配置文件的更改持久化对受保护产物无影响。当您想在保存一个配置之前比较多个配置时,请关闭它。
方法选择决定是保护 @Nativify 方法还是所有符合条件的方法更大的选择范围可能会增加构建时间、原生构建产物大小以及需要测试的应用程序行为量。
目标平台为您发布的每个操作系统和架构生成原生输出每个目标都会增加构建输出和发布测试范围。仅选择已审计的发布目标。

实际落地流程

  1. 从默认或均衡配置文件以及最小有用的方法选择开始。
  2. 选择受保护 JAR 将运行的每个目标平台。不要依赖不属于您发布计划的构建目标。
  3. 首先启用稳定的优化或混淆模块。在每个目标上验证普通应用程序流程、启动、集成和性能。
  4. 一次添加一个实验性模块。将测试结果和配置文件保存在一起,以便可以恢复已知良好的配置。
  5. 在发布之前,在每个受支持的操作系统、架构和 JDK 发行版上对确切的受保护产物进行冒烟测试。

阅读模块参考

参考按主要用途对模块进行分组。每个条目描述了预期效果、可能成本以及对发布重要的兼容性边界。

术语含义
稳定受支持的配置。它仍然需要使用您的应用程序、目标平台和 Java 运行时进行测试。
实验性更窄的兼容性范围或更强的行为权衡。仅在暂存测试覆盖代表性生产行为后启用它。
构建成本额外的编译时间、内存使用或原生输出大小。确切成本取决于所选代码和目标平台。
运行时成本受保护应用程序运行时增加的额外工作。模块也可能改善特定热路径、没有可测量的效果,或仅适用于某些代码。

性能描述是方向性的而非保证。使用代表性工作负载测量受保护产物,尤其是在同时启用多个混淆或运行时保护模块之前。

兼容性检查清单

  • 保持暂存环境中使用的 JDK 供应商和主版本与生产环境接近。
  • 测试第三方集成、反射密集型代码、序列化、动态代理、原生集成以及自定义类加载(如果存在)。
  • 使用您的客户使用的部署工具验证行为,包括调试器、分析器、安全产品、虚拟桌面基础设施以及适用的自动化测试环境。
  • 将目标平台限制和模块依赖视为硬性配置边界。

有关各个模块的描述,请参阅模块参考。