# ArkGuard字节码混淆工具概述

从API version 20开始，ArkGuard提供了基础字节码混淆能力，将代码中的函数名、类名、文件名等名字变成简短无意义的名字，提高通过阅读代码猜测其用途的难度。由于标识符名称缩短，通过混淆可以有效降低包大小。

**适用场景**：适用于对**安全性与防逆向**有较高要求的项目，尤其是涉及**敏感业务逻辑**、关键算法或专有接口实现的应用程序。建议在 release 构建中按需开启。

本章节详细介绍了ArkGuard字节码混淆工具的使用方法和特点，旨在帮助开发者高效地利用ArkGuard进行字节码混淆，从而提升代码的复杂度，增加逆向工程的难度。

相比源码混淆，字节码混淆的混淆对象是字节码文件。

*   ArkGuard字节码混淆原理及功能：说明混淆能力范围（包括默认混淆能力）、混淆流程机制以及各种混淆选项和保留选项的使用方法、混淆规则的合并策略。另外，介绍了ArkGuard在语言环境下的局限性。
    
*   ArkGuard字节码混淆开启指南：提供实操指南，包括如何开启字节码混淆功能、设置自定义混淆规则，以及如何查看混淆效果和进行报错栈还原。
    
*   不同包类型的字节码混淆建议：针对不同类型的包（HAP、HAR、HSP）提供混淆策略建议。
    
*   ArkGuard字节码混淆常见问题：说明字节码混淆与源码混淆差异，总结常见的功能异常情况及其排查方法，并提供典型报错案例的解决方案，帮助开发者快速定位和解决混淆过程中遇到的问题。